2 パーティの公開鍵暗号化は .net フレームワークで非常にうまくレイアウトされていますが、n パーティになることは私にとって大きな懸念事項です。たとえば、2 パーティの video-conf を保護します。コミュニケーションは非常に簡単です。
1) 各当事者は、セッション固有の RSA キー ペアを生成し、信頼できる機関 (つまり、信頼できるサーバー) によって署名された公開キーを取得します。2) 各関係者はこれを使用して鍵を交換しECDiffieHellmanCng
、これで接続は本物で安全になります (Vista/W7 を使用していると考えてください)。
鍵交換アルゴリズムは 2 つの公開鍵のみから共有秘密を導出するように設計されているため (特に .NET と BouncyCastle を使用)、この通信に 3 番目の参加者を追加しても機能しません。そこで問題は、信頼性が高く (つまり、中間者攻撃に耐性があり)、安全な (つまり、盗聴から安全な) n パーティの公開鍵暗号化スキーマをどのように実装するかということです。
編集: 現在のアイデアは以下のとおりです。NBusy.Communicatorライブラリの一部として最も人気のあるものを実装します。
- 一方のパーティがフェデレーション サーバーとして機能する、2 パーティの通信スキームを使用します。
- 二者通信を開始し、一方の当事者が第三者を認証し、秘密/対称キーを共有できるようにします。
- Multi-Party Key Agreement スキームを使用します。
Edit2:ここで説明したものと同様の「n-Party Diffie Hellman」アルゴリズムを使用しますが、いくつかの変更があります:http://www.codeproject.com/KB/cs/diffy_helman.aspx