サーバーとクライアントの両方に秘密鍵Kがあると仮定します。MITM攻撃が保持できないように、また過去のセッションがまだ行われているある時点で鍵が公開された場合に、認証付きの鍵交換プロトコルを使用することは可能ですか。秘密?
Kの署名をサーバーに渡す通常のDiffie-Hellman鍵交換プロトコルを使用して試しましたが、すべてのバージョンで、MITMがクライアントとサーバーになりすましてすべてのセッションを監視できます...
はい、できます。これは Password Authenticated Key Exchange と呼ばれます。このようなプロトコルは、「非対称暗号」要素(Diffie-Hellmanなど)を再利用し、共有秘密と「スマートに」混合して、次のようにします。
3番目の条件は、低エントロピーの共有秘密を意味します。 「パスワード」は引き続き安全に使用できるため、この種のプロトコルの名前です。暗号化の概念は、1992年にBellovinとMerritによって「暗号化された鍵交換」(正式には、メッセージが共有秘密で対称的に暗号化されるDH鍵交換であるため、間違った秘密で復号化すると構文的に有効なDHが生成される)という名前で発明されました。メッセージ-実際の数学的要件は微妙です)。
SSL/TLSのコンテキストでは、標準のPAKEプロトコルが [〜#〜] srp [〜#〜] という名前で定義されています( Wikipediaページ も参照してください)。 )。 SRPは良いです。残念ながら、Webブラウザは(まだ)それをサポートしていないようです。