編集
私はまだこれについてのアドバイスを望んでいます、私は自分の意図を明確にしようとしました...
モバイル通信フレームワークでデバイスのペアリングに出会ったとき、このトピックに関する多くの論文を研究し、ここで以前の質問からいくつかの情報を得ました. しかし、私はプロトコルソリューションを実装する準備ができていなかったので、派生物を発明しました.私は暗号オタクではないので、最終的なソリューションのセキュリティ警告については確信が持てません:
主な質問は
- コミット機能はSHA256で十分?
- コミット文字列に認証情報として共有シークレットを追加することは安全ですか?
- 1024 ビット グループ DH の全体的なセキュリティとは
- MITM 攻撃が成功する可能性は最大でも 2^-24 ビットであると想定しています (24 ビット チャレンジのため)。これはもっともらしいですか?
- 最も有望な攻撃は何ですか (私の麻痺した冷たい手からデバイスを引き裂く以外に)
これはアルゴリズムのスケッチです
- 初めてのペアリングでは、「ピア ツー ピア ワイヤレス ネットワークにおける鍵合意」(DH-SC) で提案されているソリューションが実装されます。私はそれを、以下から派生したコミットメントに基づいています。
- 通信エンティティ/ロールの修正「UUID」 (128 ビット、プロトコル開始時、コミット前に送信)
- 公開 DH キー (1024 ビットの Oakley グループに基づく 192 ビットの秘密キー)
- 24 ビットのランダム チャレンジ
- コミットは SHA256 を使用して計算されます
- c = sha256( UUID || DHパブ || チャル)
- 両当事者はこのコミットメントを交換し、上記の値のプレーンなコンテンツを開いて転送します。
アリス・ボブ ca = コミット() -------^ 年 cb = コミット() cb ^----------- 開いた ---^ DH pub a, chall a 開いた DH パブ b、チャル b ^---
- 手動認証用に 24 ビットのランダムがユーザーに表示されます。
DH セッション キー (128 バイト、上記を参照) が計算されます
ユーザーが永続的なペアリングを選択すると、セッション キーはリモート UUID と共に共有シークレットとして保存されます。
次にデバイスが接続すると、ランダム チャレンジの前に以前の DH セッション キーを追加でハッシュすることによってコミットが計算されます。開いたときに転送されないことを確認してください。
- c = sha256(UUID || DH pub || DH sess || Chall)
これで、ユーザーは、ローカル パーティが自分自身の保存済みの以前の DH セッション キーを使用して同じコミットメントを取得できる場合、認証に煩わされることはありません。接続が成功すると、新しい DH セッション キーが新しい共有シークレットになります。
これは私がこれまでに見つけたプロトコル (およびそのようなセキュリティ証明) に正確には適合しないため、ここで暗号化を有効にした人から意見を得ることに非常に興味があります. ところで。「EKE」プロトコルについて読みましたが、追加のセキュリティ レベルがどのようなものかわかりません。