web-dev-qa-db-ja.com

暗号化されているが署名されていないデータの問題は何ですか?

別の質問の answer 、D.W.書きました:

暗号化されたデータの信頼性保護があることを確認します(暗号化してから署名/ MACなど)。機密性と信頼性の両方の保護が必要になります。非常に一般的なエラーは、暗号化するが署名に失敗することです。このエラーは、微妙なセキュリティ問題を引き起こす可能性があります

これらのセキュリティ問題は正確には何ですか?

13

良い例はCBCの欠陥で、SSL内で、特にIMAP-over-SSL設定でのパスワード回復で実証されています。詳細は を参照してください 。簡単に言えば、SSL has MACですが、その一部は暗号化された受信データを使用して処理を行っていましたafter復号化しました--before MACを検証しています。つまり、受信システムはデータを復号化し、パディングが正しいことを確認し、そうでない場合はピアにエラーを報告し、MACのみを確認していました。 MACが間違っている場合、エラーメッセージは異なりました。そのため、レシーバー(IMAPSパスワード回復の場合はサーバー)は、復号化後に見つかったパディングが正しいかどうかに関する単一ビットの情報をリークしていました。 SSLは、PKCS#5で説明されているのと同様のパディングを使用することがよくあります。詳細は微妙です(ただし、XORは可換性および連想性であることを理解すれば、数学的に難しいわけではありません)。データバイト。同じ内容で通常の接続試行(通常、5分ごとにサーバーの新着メールをチェックするOutlook Express)を想定すると、攻撃者は各接続で新しいバイトを推測する可能性が1/256ありました。日、出来上がり!完全なパスワード。

このケースは、「MACがない」部分が非常に一時的な場合でも、アクティブな攻撃者がいてMACがない場合に何が起こるかを示しています。 SSL has MACであるため、プロセスのチェックが遅すぎただけです。修正はalwaysパディングが適切かどうかに関係なく、MACをチェックし、同じエラーコードで不正なパディングと不正なMACを報告します(MACをチェックする必要がありますその場合、パディングが間違っていると、サーバーが少し速く応答し、タイミングを通じて情報の一部がリークする可能性があります)。その修正がないと、サーバーは、明確なエラーメッセージであったり、応答時のわずかな遅延(またはその欠如)であっても、その動作を通じて一部の情報をリークします。これは、試行ごとに1ビットです。それでも、パスワード回復攻撃を仕掛けるだけで十分です。

その攻撃は2002年に公開されました。しかし2010年には、 ASPが暗号化されたCookieを処理する方法 に同じバグがまだ存在し、アクティブな攻撃者が保護されたセッションを時間。攻撃は2002年に実用的であることが示されました。 2010年には、実際に現場で実践されているように示されました。

MACの欠如によって可能になった攻撃の完全なリストはありません。したがって、一般的な知恵は、専用の整合性チェックがない場合、アクティブな攻撃者に対する適切なセキュリティはなく、それがMACであるということです。一般的な間違いは、どのような状況でも、攻撃者は受動的でしかないと考えています。有線および無線通信は、低電力の悪者(たとえば、サイバーカフェで退屈している学生)によってさえ、日常的に活発な攻撃を受けています。

対称暗号化を行う場合、MACを追加する適切な方法は、 [〜#〜] gcm [〜#〜] または [〜#〜] eax [〜#〜] 。これらは、ブロック暗号(通常はAES)に依存するモードです。他にもそのようなモードがありますが、いくつかは特許を取得しています。これら2つはそうではないと考えられています。

(MACとは対照的に)署名は、特に機密性との関係において、完全に異なる問題です。

16
Thomas Pornin