質問:
静的IV(AES)の使用を強制
Mantorok
2010-12-10 21:44:35 UTC
view on stackexchange narkive permalink

256ビットキーのAESを使用して、ユーザーの資格情報を(クエリ文字列で)サプライヤーのWebサイトに伝達するために、Webサイトを拡張する必要がありましたが、情報を復号化するときに静的IVを使用しています。

IVは静的であってはならず、それを行うことは私たちの基準にはないことをアドバイスしましたが、IVが変更された場合、[大きな]コストが発生するため、これをとして受け入れることに同意しました。セキュリティリスクがあり、同じIVを使用します(私の極端なフラストレーションになります)。

私が知りたかったのは、これがセキュリティ上の脅威のどれだけかということです。これを経営陣に効果的に伝えて、彼らが何に同意しているのかを正確に把握できるようにする必要があります。

私たちも同じKEYを使用しています。

ありがとうございます

三 答え:
Thomas Pornin
2010-12-10 22:54:49 UTC
view on stackexchange narkive permalink

チェーンモードによって異なります。 AESはブロック暗号であり、16バイトのブロックに(正確に)適用されます。チェーンモードは、入力データがそのようないくつかのブロックになる方法と、出力ブロックがどのようにまとめられるかを定義します。ほとんどのチェーンモードは、ある種の「開始値」で機能する必要があります。これは秘密ではありませんが、メッセージごとに変更する必要があります。つまり、IVです。

CTRチェーンを使用する場合、同じIVを再利用することは致命的です。モード。 CTRモードでは、AESは連続するカウンター値のシーケンス(IVで始まる)で使用され、暗号化されたブロックの結果のシーケンスは、暗号化(または復号化)するデータと(ビット単位のXORによって)結合されます。同じIVを使用すると、同じシーケンスが得られます。これは、悪名高い「2回パッド」です。基本的に、2つの暗号化された文字列をXORすることにより、2つのクリアテキストデータのXORを取得します。これは非常に多くの攻撃にさらされ、基本的にすべてが壊れています。

CBCを使用すれば、事態はそれほど悲惨ではありません。 CBCでは、データ自体が16バイトのブロックに分割されます。ブロックを暗号化する場合、最初に前の暗号化ブロックとXORされます。 IVには、「-1」ブロック(最初のブロックの前の暗号化されたブロック)の役割があります。 IVを再利用する主な結果は、2つのメッセージが同じバイトシーケンスで始まる場合、暗号化されたメッセージもいくつかのブロックで同一になるということです。これによりデータが漏洩し、攻撃の可能性が広がります。

要約すると、そうしないでください。同じキーで同じIVを使用すると、IVの目的全体が無効になります。これは、IVを使用したチェーンモードが最初に使用された理由です。

Thomas Porninの答え(およびGregSのコメント)は絶対に正しいと言ってチャイムを鳴らします。参考までに、Thomas Porninは、非常に尊敬されている暗号解読者および暗号解読者です。
これが正解です。データが機密になり始める前にメッセージのどこかにランダムデータを挿入する能力がある場合、あなたは金色である必要があります(ランダムデータは貧乏人のIVとして機能します)。少なくとも1ブロック分のランダムデータを使用する必要があります。たとえば、XML形式のメッセージを送信していて、属性 `random-data ="#{base_64_encode(secure_random_bytes(32))} "`をXMLルート要素に挿入できる場合(スキーマやコントラクトを壊すことなく) 、代わりに使用する必要があります。しかし、可能な限り、貧乏人の暗号を避ける必要があります。
https://crypto.stackexchange.com/questions/3883/は、静的IVを使用したCBCが問題になる理由(おそらく2つの質問が重複している)について詳しく知るのに役立つことがわかりました。
user185
2010-12-10 22:46:27 UTC
view on stackexchange narkive permalink

すべてのデータに同じIVを使用することは、IVをまったく使用しないことと同じです。暗号文の最初のブロックは、同一の平文に対して同一になります。サプライヤが定数IVを使用する理由を知りたいのですが、それは重要ではありません。重要なのは、システムがこのように影響を受けやすいということです。攻撃者が独自の資格情報を設定し、生成された暗号文を観察できる場合、攻撃者はそれを他の暗号化された資格情報と比較して、キーに関する情報を見つけることができます。

この答えの最初の2文は正しいですが、最後の文は間違っています。静的IVは、AESキーに関する情報を明らかにしません。あなたがほのめかすように、それは平文の最初のブロックについての情報を明らかにします。
@D.W。私はそれを検証するのに十分な専門の暗号解読者ではありませんが、それは私が間違っているかもしれないことを受け入れることができることを意味します。それを示す参照を提供できる場合は、回答を変更します(またはできます;-)。
これは基本的な事実の結果です。暗号文のみ、既知の平文、または選択平文攻撃によってAESキーを見つけるための既知の実行可能な方法はありません。私はあなたにそれの参照をどこに与えるべきかわかりません。暗号に関する優れたクラス、多分、あるいは最近の暗号に関する教科書。多分[これ](http://stackoverflow.com/questions/810533/is-it-possible-to-reverse-engineer-aes256)。 AESが、キーに関する情報を明らかにする選択平文攻撃の影響を受けやすい場合、NISTによって選択されなかったでしょう。これは、ブロック暗号の最も基本的な要件の1つです。
Steve
2010-12-10 22:32:53 UTC
view on stackexchange narkive permalink

私は暗号通貨の人ではありませんが、IVが変更されず、同じ値が再暗号化された場合、出力は同じになると理解しています。したがって、リクエストごとに渡される資格情報など、繰り返しの値を探すことでコンテンツを推測することができます。

ただし、私は暗号通貨の男ではないため、間違っている可能性があります。



このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 2.0ライセンスに感謝します。
Loading...