web-dev-qa-db-ja.com

RSA SecurIDトークンの数値は予測できますか?

enter image description here

私の職場では、一時的なパスワードを提供するこれらのSecurIDトークンを使用しています。コードはすぐに期限切れになります。次の数値を計算するためのすべてのロジックは、物理的にデバイス内に配置する必要があるように見えるので、私は常にそのことに魅了されています。

トークンへの物理的なアクセスが与えられた場合、数値を予測することは可能ですか?どうやって?物理的なアクセスがなければ、シードの知識の有無にかかわらず、以前の数から将来の数を予測することは理論的に可能ですか?

*私はそれを解読しようとしているのではなく、数学的好奇心に興味があるだけです!

14
wim

SecurIDトークン が行うことは、完全に公開された知識ではありません。 RSA(会社)は、詳細を発表することにはまったく抵抗しています。推測できるのは次のとおりです。

  • 各デバイスはseedを埋め込みます。各シードはデバイスに固有です。
  • デバイスのシードは、マスターシードとデバイスのシリアル番号から決定論的に計算できます。シリアル番号はデバイスに印刷されています。この計算では暗号化の一方向関数が使用されるため、デバイスシードからマスターシードを推測することはできません。
  • デバイスシードと内部クロックから数が計算されますが、暗号化された一方向関数も使用されます。
  • 検証サーバーも同じアルゴリズムを実行する必要がある場合にのみ、派生アルゴリズムが漏洩し、これらのアルゴリズムはさまざまな場所で具体的なソフトウェアとして存在します。これらの状況では、リークとリバースエンジニアリングはほとんど避けられません。

これらの仮定の下で、次に:

  • デバイスシードがわかっている場合は、将来の数を自由に計算できます。
  • マスターシードとデバイスのシリアル番号がわかっている場合は、デバイスシードを計算できます。
  • マスターシードをデバイスシードに変換する一方向の暗号化機能が何らかの形で失敗していない限り、他のデバイスのシードを知っていても、特定のデバイスのシードを推測することはできません。
  • トークンから過去の数値を知っていても、デバイスシードを数値に変換する暗号化の一方向関数が何らかの形で失敗していない限り、同じデバイスから将来の数値を推測することはできません。
  • 物理的なデバイス自体からデバイスシードを抽出することは、理論的には実現可能ですがコストがかかります。これは、デバイスが 改ざん防止 であるからです:装甲されており、センサーでいっぱいであり、違反が検出された場合は電子自殺します。スマートカードを例にとると、デバイスシードの抽出には数千ドルのコストがかかり、デバイスを破壊する可能性があります(そのため、慎重に行うことはできません)。

2011年3月に、RSAで一部のシステムが侵害され、攻撃者が1つまたはいくつかのマスターシードを盗んだ可能性があります(デバイスが「ファミリ」に組み込まれているため、いくつかのマスターシードが存在する可能性があります)。 RSAは、4,000万のSecurIDトークンを交換する必要があると述べています。トークンのシリアル番号(トークンの外側に印刷されている場合があります)がわかっている場合は、@ dlsが指す Cain&Abel ツールを使用できます。おそらく、そのツールはリークされたアルゴリズムとマスターシードを実装しているため、将来のトークン出力を生成できます(私は試していません)。これは、置き換えられる4,000万バッチのトークンをまだ受け入れるサーバーでのみ機能します。 RSAとその顧客がこのプロセスにどの程度進んだかはわかりません。そのため、この攻撃が機能しなくなる可能性があります。それは本当にあなたが攻撃するサーバーを管理する人々の反応性に依存します。

(これらのシステム管理者が9か月後に侵害されたデバイスを交換しなかった場合、セキュリティの問題がかなり緩んでいる可能性があり、サーバーにはリモートで悪用可能なセキュリティホールが他にもいくつかある可能性があります。)

24
Tom Leek

秘密の情報があれば、それを同じように生成できます。そうでない場合、数値は数学的に関連しているため、見たものに基づいて予測を行うことは理論的に可能です。ただし、それらの関係は非常に複雑であるため、計算で実行することは不可能であると考えられています。つまり、その予測を行うために必要な計算量は、トークンの寿命よりも大幅に時間がかかります。たとえば、平均トークンが10年ごとに置き換えられた場合、その秘密情報または一連の値を計算するアルゴリズムは、すべての既知のコンピューターで並行して実行すると10億年かかるため、実際には役に立ちません。

この計算不可能性は、すべての有用な数学暗号システムの基本的な基礎です。しかし、すべての場合において、私たちが持っているものはすべて、暗号化ツールであり、それらを元に戻したり、秘密情報を解いたりすることは、計算上実行不可能であると考えられています。新たな発見により、一部のスキームは信じられていたよりも破りやすいことが明らかになるかもしれません。

3
Keith Irwin

RSAでSecurIDプロジェクトに取り組んでいます。以前の答えは正しいです。

シードがわかっている場合は、パスコード(表示される一時コード)を計算する機会があります。しかし、すべてのデバイスには製造時にランダムなシードが与えられ、シード値はどこにも保存されません。

認証マネージャーを所有している場合でも、トークンリストをアップロードできるのは管理者だけなので、パスコードを推測することはできません。このリストの情報は、特定のSecurIDまたはソフトトークンのパスコードを生成するために必要です。オンデマンド認証が有効な場合、ユーザーはSMSまたは電子メール)を介してパスコードを要求できますが、コードは依然としてユーザーに割り当てられているトークンに基づいています。

1
Shaswat