オンラインのホームバンキングアカウントの安全性やアクセスなどのために、RSASecureID®キーをかなり長い間(おそらく10年)使用しています。会社の自宅からのコンピューターのネットワーク。これらのキーは、期限切れに設定された6桁の数値トークンを生成します。しかし、私は常にこれらがどのように機能するのか疑問に思っていました。

RSA SecurID keyfob

右側には1秒に1回点滅するドット(写真には表示されていません)があり、左側には6つの垂直に積み重ねられた水平のスタックがありますそれぞれが10秒に1回消えるバー。 60秒が経過するたびに、トークンは自動的にリセットされ、前のトークンは無効になります。

これらのデバイスはネットワークを使用しないため、生成された番号はサーバーで確認する必要があります(かどうか)。サーバーは銀行または会社のサーバーです)。したがって、このデバイスの内部には、小さなバッテリーで駆動される非常に正確なタイマーを含むメカニズムで乱数を生成するアルゴリズムを格納する必要があります。サーバーは生成された数字の有効性をまったく同じ時間間隔でチェックする必要があるため、タイマーは非常に正確である必要があります。すべてのユーザー/従業員について、サーバーは、私が理解している限り、顧客/従業員ごとに1つのそのようなアルゴリズムを使用して、同じ乱数生成アルゴリズムを格納する必要があります。もちろん、チップは、盗まれた場合、デバイスが壊れていても、攻撃者がそこに格納されている乱数生成アルゴリズムにアクセスできないように構築する必要があります。

これはどのように機能しますか?

ありがとうございます!

コメント

  • 同じ方法 TOTP 動作しますが、後者を除いて、'高額なソリューションを購入する必要はなく、通常の電話または基本的な計算が可能な任意のデバイスを使用できます。スマートウォッチでさえ
  • ソフトウェアで定義されたOTPは、シードのクローン作成に対する耐性を獲得するために必要な改ざん耐性を獲得できないため、非常に悪いものです。 Micro-USBケーブルと適切なツールを持っている人なら誰でも、< 5分でスマートフォンのクローンを作成できます。パスワードで保護されている場合、暗号化されたクローンは、悪意のあるソフトウェアまたはショルダーサーフィンによってコードが取得されるまで保存できます。今日の一部の電話は、改ざん防止ハードウェアキーストアを提供しているので、それを使用するか、SecuritySmart-MicroSDを使用することをお勧めします。これにより、シードが抽出されなくなり、"のみが使用されます"。ただし、RSA以外のハードウェアTOTPトークンは非常に安価です。
  • 関連: RSAトークンの仕組み
  • @sebastiannielsen thatそれでも、ソーシャルエンジニアリングや、ユーザーが自分のコンテンツを適切に監視していないことに依存しています。ユーザーの'の電話を、ユーザーが気付かないうちにコンピューターに接続できる場合は、RSAトークンを盗んで、その場所に別のトークンを配置することもできます(そして、彼は'次に使用しようとすると手遅れになるまで気付かない)。
  • リンクする価値がある: RSA SecurIDトークンの数は予測されますか?

回答

はい、おっしゃるように機能します。チップは「改ざん防止」であり、攻撃しようとすると「シード」(秘密鍵)を消去します。これは多くの場合、ユーザーが交換できないバッテリーと、デバイスが開かれるか、チップ表面が取り外されるとデバイスへの電力を遮断する「トラップ」を使用することで実現されます。次に、キーはSRAMに保存され、キーを保持するために電力が必要になります。

キーはシードであり、60秒ステップの現在の時刻(事実上、現在のUNIXタイムスタンプ/ 60)と組み合わされます。コードを更新します。

いいえ、デバイスは正確である必要はありません。代わりに、サーバーは最後に受け入れられたコードの時刻を保存します。次に、サーバーは1分前、1分先、現在の時刻にコードを受け入れます。したがって、サーバーの現在の時刻が23:20の場合、サーバーは23:19、23:20、および23のコードを受け入れます。 21。

この後、最後に受け入れられたコードの時刻が保存されます。たとえば、23:21コードが受け入れられた場合、データベースに23:21が保存され、次のようなコードの受け入れは拒否されます。 23:21以前に生成されました。

興味深い部分は次のとおりです。不正確なトークンがサーバーから非同期化されるのを防ぐために、23を受け入れる必要がある場合、サーバーはデータベースに格納します。 23:20の時点で19コードまたは23:21コード。これにより、次回のログオン時に、サーバーがステップ数でコードを修正するようになります。

23:20のクロックで23:19のコードでログインするとします。サーバーはデータベースに「-1」を格納します(23:21コードの場合、データベースに「+1」を格納します)。次回ログインするとき、時計は23:40です。次に、サーバーは23:38、23:39、または23:40のコードを受け入れます。23:38コードが受け入れられると、データベースに「-2」が格納され、23:39にデータベースに「-1」が保持され、23:40にデータベースに「0」が格納されます。

これにより、サーバーとトークンの同期を効果的に維持できます。さらに、システムは、トークンがサーバーから「離れすぎている」場合(長期間使用されていないため)、再同期を許可します。これは、システム管理者によって実行されるか、セルフサービス再同期サービスが提示され、トークンユーザーは23:20と23:21、または19:10と19:11のようにトークンから2つの後続コードを提供するように求められます。サーバーは、「最後に使用されたトークンコード」があったときまたはそれ以前に生成されたトークンコードを決して受け入れないことに注意してください(これにより、OTPコードの再利用が可能になります)。再同期が行われると、トークンは提供された2つのトークンコードとの差を保存し、現在のサーバー時間と再同期では、検索ウィンドウはプラス/マイナス50ステップのようになります(これにより、約0.75時間の

サーバーは、50個の前のコードと50個の将来のコードを生成することにより、非同期トークンを検出できます。指定されたコードがそれに一致する場合、サーバーは再同期プロセスを自動的に起動します。多くの場合、攻撃者が再同期プロセスを使用して有効なコードを見つけるのを防ぐために、アカウントが再同期モードになると、再同期せずにログインは受け入れられません。そのため、攻撃者はコードの直後または前に正確なコードを見つける必要があります。見つかりました。

コメント

  • かっこいいもの、'これについて知りませんでした。

回答

SecurIDトークンには「シード」値が割り当てられており、数値を生成する特定のアルゴリズムでプログラムされています。シードとそのシステムクロックに基づいています。シード値は、トークンに同梱されているファイルにも保存されます。トークンを受け取ると、システム管理者はシードファイルを認証サーバーにインポートします。 SecurIDトークンデバイスとサーバーの両方にシード値があり、両方ともアルゴリズムを使用しているため、サーバーはいつでも正しいトークンコードを決定できます。

場合によっては、トークンのクロックが認証サーバーと同期しなくなる可能性があります。これが発生した場合、システム管理者またはその他の承認されたサポート担当者は、サーバーで再同期プロセスを実行することでユーザーを支援できます。これにより、そのトークンのタイムオフセットを認識するようにサーバーが構成されます。

注:これらの数値は、シードファイルに保存されているデータ、現在の時刻、および標準アルゴリズムのみに基づいてサーバーが予測できる必要があるため、これらの数値はサーバーによって予測可能である必要があります。攻撃者が特別なツールとトークンへのアクセスを使用して予測することもできます(さらに悪いことに、シードファイル自体へのアクセス-2011年に発生したと思われるのように。)十分な連続トークンコードが与えられると、シード値を決定し、独自に将来のコードを生成できるols。

回答

セバスチャンの回答は素晴らしかった。素人の言葉で言い換えると、SecureIDトークンは、シード値を含む単なる時計です。時間を表示する代わりに、数値を表示します。画像に表示されているドットは秒です(私は思います)。バーは数字が変わるときなので、時間を計ることができます。数字が一番下に達すると、数字が変わります。入力する場合は、待つ必要があります。

” 「シード」は、デバイスを認証しているサーバーにもあります。セキュリティ担当者がRSAサーバーをインストールするときは、ピンコードを受信するサーバーに同じシードをロードする必要があります。

つまり…基本的にはは暗号時計です。私の子供がドラやお姫様を乗せた古いLCD時計と同じように、違いは数字の計算を提供するシードです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です