このようなことは通信セキュリティの聖杯であり、それが行われたことを示唆するものを聞いたことがありません。
ただ疑問に思っています。多くの数学者やコンピューター科学者は、理論的な状況の証明に時間を費やしています。誰かが、開いた回線またはすでに危険にさらされている回線を介して鍵交換(または他の暗号化設定)を行う可能性を排除するための証明をしましたか?
明確に言うと、AとBは通信していますが、Cはリスニングする可能性があります(理想的には、Cはリアルタイムでリスニングせず、後でアクションのためにA&Bをログに記録するだけです)。 AとBが侵害された回線を介して情報を交換して、Cがすぐに解読できない新しい暗号化回線をセットアップすることは不可能ですか?
最終説明:暗号化の方法全体を回線を介して転送しないことで、公開鍵が技術的に問題を解決する可能性があることを理解しています。理論的なことだけでも、他に何かすることはありますか?これは、物事を直接解決するよりも抜け穴のように感じられます。
攻撃者が接続を受動的にリッスンしているだけの場合、 Diffie Hellman Key Exchange を実行して、通信ピアだけが知っている共通のキーを作成できます。
ただし、攻撃者が接続をリッスンするだけでなく、転送されたデータを積極的に変更できる場合、攻撃者は中間者攻撃を開始し、AとBの両方の予想される通信パートナーであると主張する可能性があります。暗号化された通信を開始する前にAがBをidentifyBでき、したがって、鍵がと交換されたことがわかっている場合にのみ防止されます期待されるパートナー。このため、回線が危険にさらされている場合でも、IDを確認する安全な方法が必要です。これは、公開鍵暗号化によって実行できます。ただし、もちろん、Bの予想されるアイデンティティについて何らかの事前知識が必要です。つまり、AはすでにBを知っている(直接信頼)か、Bを知っている誰かを知っている(信頼チェーン)かのいずれかです。
SSL/TLSおよび関連する [〜#〜] pki [〜#〜] を使用した、これらすべての実装が見つかります。これはブラウザのhttpsで使用され、トラストチェーンを構築するために必要なトラストアンカーは、オペレーティングシステムまたはブラウザのどちらかが知っている公開認証局です。詳細については、 SSL/TLSの仕組み を参照してください。
確かにこの問題の解決策があります! Diffie-Hellman Key Exchange protocol と呼ばれます。
ウィキペディアのリンクで良い説明を読むことができますが、基本的な考え方は、アリスとボブはそれぞれprivate keys
および対応するpublic keys
。 Diffie-Hellman数学の魔法から、
PublicKey_Alice + PrivateKey_Bob = SharedSecret
そして
PublicKey_Bob + PrivateKey_Alice = SharedSecret
両方の当事者がsame共有シークレットで終了します。したがって、A)安全でないネットワークを介して公開鍵のみが交換され、B)共有秘密をクラックするために、アリスの秘密鍵またはボブの秘密鍵のいずれかを知る必要があります。 (数学の詳細は簡単なGoogleで見つけることができるので、ここでは説明しません。)
はい、Diffie-Hellmanは、チャーリーがリッスンしている安全でないネットワーク上であっても、2つのパーティが共有対称暗号鍵を確立するための安全な方法と見なされています彼らが交換するすべてのもの。
過去のある時点で、信頼できるチェーンが確立され、第2者を認証できる場合にのみ可能です。 AneverがBを識別する方法(またはBを間接的に識別できる他の誰かを識別する方法)を知っている場合、それは常識である必要があります。 その後、定義により、Aは単に十分な情報を持っていません Bと他のエンティティCを区別します。
数学は魔法ではありません。誰かを直接的または間接的に特定する方法を知らなかった場合、数学は魔法のようにその情報を提供しません。
それが不可能であると証明されていないだけでなく、十分なレベルのセキュリティで実際に可能であるだけではありません。証明可能な安全な方法も存在します(可能な限り高い可能性を任意に選択できるという意味で「安全」)。
他の回答で述べたように、PKIとのDiffie-Helmann鍵交換は、盗聴できない(とにかく簡単ではない)共有鍵を確立するためのかなり安全な方法です。明らかに、自分の非常にプライベートなPKIを完全に制御しない限り、悪意のあるCAがこのシステムを破壊する可能性があります(現在はそうしています)。ただし、ほとんどの攻撃者に対して合理的に安全です。
PKIとは別に、たとえば強制レイテンシインターロックプロトコルやステーションツーステーションプロトコル、またはDH-EKE派生物(RFC5247で説明されているような)などのアプローチは、unbreakableではありませんが、 PKIがなくても、ほとんどのman in the middle攻撃をかなりの確率で成功裏に防ぐことができます。
攻撃者が正しく「推測」できる可能性が十分に低い場合、それは実際には「安全」として十分に合格する可能性があります。
Quantum key distribution はまだ一般向けではありませんが、すでに10年ほどは機能しています。 理論的にはありませんが、実際には
他のアプローチとは異なり、他の誰も知らない共有キーがあることが保証(または、誰かmightはあなたのキーを知っていますが、それは「保証された」と同じくらい良いです)。
これにより、DHを攻撃するために大規模な量子コンピューターが展開された後、しばらくして主流になる可能性があります(魔法の量子力を倒すために行う必要があるのは、キーの長さなので、それほど怖いわけではありません)。
私はこれを推理するために長い時間を費やしました。私は本当の解決策を見つけましたが、パッケージ化して製品にすることはできません。ご覧のとおり、パッシブリスナーは、十分なサイズのキーを持つDiffie-Hellmanによって完全に無効になります。しかし、その男がMITMに喜んでいる場合、それは横ばいになります。
トポロジーがわかっていれば、パケットが回線を切断する時間を知ることができ、ASIC DHのボードをゲートレベルまで作成して、潜在的なMITM攻撃者は、より高速なDHを作成することができず、タイミング測定に捕らわれずに飛行中のメッセージを処理することができません。その場合、それは安全であることがわかります。ただし、インターネットには固定トポロジがないため、これを行うことはできません。
SSHのように、リモート側にプログラムの実行を要求したり、セッションキーを環境に含めたりするなど、停止の問題が発生する可能性がありますが、これには同じ欠点があります。あなたがそれから製品を作ったら、それは落ちるでしょう。
Defcon 22が電話会社(SilentCircle)を盗聴なしで宣伝するPhil Zimmermanによる講演 https://www.youtube.com/watch?v=HuHm1vzzm1g
彼のアイデアは、セッションキーハッシュを口頭で比較することによって公開キーインフラストラクチャを取り除くことです。また、PKI失敗の興味深い例を示し、聴衆は私の意見では正確で関連性のある多くの質問をします。
中間者攻撃の場合、セッションキーのハッシュは通信しているユーザー間で異なり、ユーザーはすぐにそれを知っているため、この方法は改ざん防止であると彼は言います。彼は、キーを「セキュリティを行う」ことで回線を所有する人に委託するのではなく、メディア層を介して交換されていると述べています。