6

何年にもわたって、私はこのシナリオに何度も遭遇しました。あるアプリケーションから別のアプリケーションに送信したいユーザー関連のデータがたくさんあります。2 番目のアプリケーションは、この「トークン」を「信頼」し、その中のデータを使用することが期待されます。盗難/再利用攻撃を防ぐために、タイムスタンプがトークンに含まれています。なんらかの理由で (ここでは気にしないでください)、SAML のような業界標準ではなく、カスタム ソリューションが選択されました。

私には、データにデジタル署名することがあなたがここで望んでいるように思えます。データを秘密にする必要がある場合は、暗号化することもできます。

しかし、私がよく目にするのは、開発者が AES などの対称暗号化を使用するということです。彼らは、データを「秘密」にすることに加えて、暗号化は 1) メッセージの完全性と 2) 信頼 (ソースの認証) も提供すると想定しています。

ここに固有の弱点があると疑うのは正しいですか? 対称キーが適切に管理されていれば、額面どおりに機能しているように見えます。そのキーがなければ、暗号化されたトークンを変更する方法や、いくつかのトークンを傍受した後に何らかの暗号攻撃を開始する方法がまったくわかりません。しかし、より巧妙な攻撃者は、ここで何かを悪用できるのでしょうか?

4

3 に答える 3

6

その一部は暗号化モードに依存します。ECB を使用している場合 (恥を知れ! )、ブロックを交換してメッセージを変更することができます。 Stackoverflow はまさにこのバグに見舞われました

脅威が少ない - 完全性チェックなしで、中間者攻撃を実行し、あらゆる種類のビットを交換することができ、あなたはそれを受け取り、復号化を試みることができます. もちろん失敗するでしょうが、その試みは明らかになるかもしれません。「Bernstein (キャッシュとマイクロアーキテクチャの特性の組み合わせを悪用する) によるサイドチャネル攻撃と、Osvik、Shamir、および Tromer (キャッシュの衝突を悪用する) による多数のランダム テストに基づく統計データの取得に依存する」攻撃があります。1 脚注の記事は、私よりも著名な暗号学者によるもので、彼は MAC を使用して攻撃面を減らすことを勧めています。

ただし、MAC キーにアクセスできない攻撃者がコード ブロックに悪意のある入力を与えることができないことを確認できれば、攻撃者がバグを悪用できる可能性は劇的に減少します。

于 2009-07-06T17:22:11.230 に答える
2

うん。暗号化だけでは認証は提供されません。認証が必要な場合は、HMAC やデジタル署名などのメッセージ認証コードを使用する必要があります (要件によって異なります)。

メッセージが暗号化されているだけで認証されていない場合、非常に多くの攻撃が可能です。これは非常に単純な例です。メッセージがCBCを使用して暗号化されていると仮定します。. このモードでは、IV を使用して暗号文をランダム化するため、同じメッセージを 2 回暗号化しても同じ暗号文にはなりません。攻撃者が IV のみを変更し、暗号文の残りの部分をそのままにしておくと、復号化中に何が起こるかを見てみましょう。復号化されたメッセージの最初のブロックのみが変更されます。さらに、メッセージの IV 変更で変更された正確なビット。したがって、攻撃者は、受信者がメッセージを復号化したときに何が変わるかを正確に知っています。たとえば、最初のブロックがタイムスタンプであり、攻撃者が元のメッセージがいつ送信されたかを知っている場合、正しいビットを反転するだけで、タイムスタンプを他の時間に簡単に修正できます。

メッセージの他のブロックも操作できますが、これは少しトリッキーです。これは CBC の単なる弱点ではないことにも注意してください。OFB、CFB などの他のモードにも同様の弱点があります。したがって、暗号化だけで認証が提供されると期待することは、非常に危険な仮定に過ぎません。

于 2009-07-06T17:56:23.220 に答える
-5

対称暗号化アプローチは、鍵と同じくらい安全です。両方のシステムがキーを与えられ、キーを安全に保持できる場合、これは問題ありません。公開鍵暗号方式は、確かにより自然に適合します。

于 2009-07-06T17:20:24.743 に答える