web-dev-qa-db-ja.com

「MAC機能は、選択された平文攻撃の下での存在の偽造に抵抗しなければなりません」、それはどういう意味ですか?

[〜#〜] mac [〜#〜] (メッセージ認証コード)について読みながら、私はこの文章に直面しました:

MAC機能は、選択された平文攻撃の下での存在の偽造に抵抗しなければならない

しかし、私は混乱しました。 resist existentialの意味とchosen-plaintext attacksの意味?私はこの分野に不慣れです。あなたの助けが必要なので、誰かがこれら2つの用語を説明して簡略化できますか?

例を挙げて説明をいただければ幸いです。

5
user3260672

選択された平文の実在する偽造とは、正しいMACを生成するために必要な鍵を知らなくても、攻撃者が選択した平文の有効なMACを取得する能力を持っていることです。

これの一般的なベクトルはタイミング攻撃であり、これは次のように機能します。

  1. 攻撃者はメッセージとHMAC(実際にはHMACと同じ長さのバイトシーケンスのみ)を送信し、復号化システムからの応答の時間を計ります。

  2. その後、攻撃者は同じメッセージと同じ疑似HMACを繰り返し送信しますが、HMACの最初のバイトに可能なすべての(256)値を繰り返し処理するという例外があります。

  3. 復号化システムがバイト間の不一致を見つけるとすぐにエラーを返す場合、これらの反復の1つ(復号化システムによって計算された最初のバイト値が同じもの)が戻るまでに少し時間がかかるはずです。攻撃者がその違いを検出できる場合、復号化システムのHMACキーが与えられれば、攻撃者はメッセージの正しいHMACの正しい最初のバイトを知ることができます。

  4. 攻撃者は同じメッセージとHMACを送信しますが、今回は既知の正しい最初のバイトを使用し、2番目のバイトを繰り返し、復号化システムがエラーで応答するのに少し長くかかる原因となるバイトを再び見つけます。攻撃者は正しいHMACの2番目のバイトを知っています。

  5. 攻撃者が選択したメッセージであるsans keyに対して有効なHMACが生成されるまで、HMACの連続するバイトごとにすすぎ、繰り返します。

これが、応答を返す前に、送信されたHMACのすべてのバイトを計算されたHMACと比較するHMAC比較を一定時間にする必要がある理由です。この方法では、不正なバイトの位置に関係なく、エラーが発生するまでの時間が常に同じになります。攻撃者は、不正なバイトが何であるか、どこにあるのかを知る方法がなくなりました。

そして、この答えのほとんどは、私の答えから直接コピーされます: 認証された暗号化でのHMACに対するタイミング攻撃? したがって、特にHMACへの参照。

6
Xander