質問

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

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

しかし、私は多くの開発者は、例えば、対称暗号化を使用することで何を参照してくださいAES。彼らは、データ「秘密」を作ることに加えて、暗号化はまた、1)メッセージの完全性及び2)信頼(ソースの認証)を提供すると仮定している。

私は右ここに固有の弱点があることを疑うにでしょうか?の対称キーが適切に管理されている場合は額面では、動作するようには思えません。そのキーを欠いている、私は確かに暗号化されたトークンを変更する方法を知っている、またはいくつかのトークンを傍受した後、暗号攻撃のいくつかの種類を起動しないでしょう。しかし、より洗練された攻撃者はここで何かを活用することができるだろう?

役に立ちましたか?

解決

それの一部が暗号化モードに依存します。あなたはECB(あなたのの恥!)を使用している場合、私はメッセージを変更すること、周りのブロックを入れ替えることができます。 StackOverflowのは、この非常にバグので当たりました。

レス脅かす - 任意の整合性をチェックせずに、私は周りのman-in-the-middle攻撃、およびスワップビットのすべてのソートを行うことができ、そして、あなたがそれを受け取ることになるし、それを解読しようとします。もちろん失敗するだろうが、試みは暴露のかもしれません。サイドチャネル攻撃「バーンスタイン(キャッシュおよびマイクロアーキテクチャの特性の組み合わせを利用)とOsvik、Shamir、およびTromer(キャッシュの衝突を利用)は、ランダムな多数の試験に基づいて統計データを得ることに依存している。」があります 1 の脚注物品は、暗号技術によるものです大きなIよりノート、彼はMACで攻撃面を減らす助言ます:

  あなたは確信していることを

を作ることができれば、攻撃者   誰があなたのMACへのアクセス権がありません   キーは、これまでに邪悪な入力を供給することはできません   コードのブロックは、しかし、あなたは   劇的に、彼のチャンスを減らします   すべてのバグを悪用することができるようになります。

他のヒント

うん。暗号化は、認証のみを提供していません。あなたが認証をしたいなら、あなたは、このような(あなたの要件に応じて)、HMACやデジタル署名などのメッセージ認証コードを使用する必要があります。

のメッセージは単に暗号化されますが、認証されない場合は可能な攻撃の非常に多数存在します。ここだけの非常に簡単な例です。メッセージは CBC を使用して暗号化されていることを前提としています。このモードは、二度同じメッセージを暗号化すると、同じ暗号文にはなりませんように、暗号文をランダム化するためにIVを使用しています。今、攻撃者がちょうどIVを変更しますが、あるとして暗号文の残りを離れた場合、復号時に何が起こるか見てください。のみ復号化されたメッセージの最初のブロックが変更されます。さらに正確にこれらのビットは、メッセージ内のIVの変化で変更しました。したがって、攻撃者は、受信者がメッセージを復号化したときに変更されます正確に何を知っています。その最初のブロックの場合 攻撃者は元のメッセージが送信されたとき、彼は簡単にちょうどビットを反転させることによって、他の時間にタイムスタンプを修正することができます。知っているタイムスタンプは、例えばでした。

これは少しトリッキーですが、メッセージの

他のブロックも、操作することができます。これはCBCだけの弱点ではないこと、また、注意してください。 OFB、CFBのような他のモードは似弱点を持っています。だから、一人で暗号化が認証を提供することを期待することは、

ちょうど非常に危険な仮定であります

対称暗号化のアプローチは、キーと同様に安全です。両方のシステムが鍵を与え、しっかりとキーを押したままにすることができれば、これは問題ありません。公開鍵暗号方式は、確かに、より自然なフィット感です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top