web-dev-qa-db-ja.com

認証済みDiffie Hellman鍵交換

教科書版のDiffie-Hellmanは中間者攻撃の影響を受けやすく、デジタル署名を使用すると、この攻撃の発生を防ぐことができるようです。

デジタル署名は、Diffie-Hellman鍵交換中に次の方法で実装できます。

  1. Aliceには、公開鍵と秘密鍵のペア(SKa、PKa)があります。
  2. Bobには、公開鍵と秘密鍵のペア(SKb、PKb)があります。
  3. アリスは秘密鍵を生成しますKaは秘密鍵SKaを使用して(g ^ Ka)に署名し、署名s(m)を生成します
  4. アリスはボブ公開鍵PKbを使用して、秘密鍵Kaを暗号化します。
  5. アリスは暗号化されたKaを介してs(m)をボブに送信します
  6. ボブは自分の秘密鍵SKbを使用して暗号化されたKaを復号化してCを取得し、アリス公開鍵PKaを使用してs(m)でDを取得します
  7. ボブは、C == D

これに関して3つの質問があります

  1. これは、デジタル署名を使用した認証済みのdiffie-hellman鍵交換が通常どのように行われるのですか?そうでない場合、それは通常どのように行われますか?
  2. 送信者の秘密鍵とそれに続く受信者の公開鍵を使用して鍵を暗号化し、それを相手?
  3. 認証済みDiffie-Hellman鍵交換の実装に欠陥はありますか?
2
Computernerd

あなたの説明は少し混乱しており、間違っているようです。特に、ここではアリスコンピューティングが見られますDiffie-Hellman halfgK次に送信に進みます...彼女のDiffie-Hellman秘密Kボブに。

プレーン Diffie-Hellman は次のように機能します。

  • アリスは彼女の秘密を(ランダムに)生成しますKそしてgを計算しますK
  • ボブは彼の秘密を(ランダムに)生成しますKBそしてgを計算しますKB
  • アリスはgを送るKボブに。
  • ボブはgを送信しますKBアリスへ。
  • アリスは(gKBK、彼女の秘密を使用してKおよびボブから送信された値。
  • ボブは(gKKB、彼の秘密を使用してKBおよびアリスが送信した値。

数学の魔法によって、アリスとボブは同じ値になります。これは、その後、彼らが互いに話す必要があるすべての暗号化に使用する共有秘密です。

authenticatedバリアントの場合、同じ計算が行われます。しかし、アリスとボブは デジタル署名 に使用できる非対称鍵ペアも所有しており、それらを使用します。アリスはボブに送信するものに署名し、ボブはその署名を検証します(アリスの公開鍵を使用)。同様に、ボブはアリスに送信するものに署名し、アリスはその署名を確認します(ボブの公開鍵を使用)。

アリスがKを送信してもまったく意味がないことに注意してください(彼は「DHシークレット」)ボブに任意の形式で。ボブもKを送信しませんBアリスへ。そしてどこにも暗号化はありません。暗号化(通常は「秘密鍵による暗号化」)の観点からデジタル署名を説明することを目的とした多くのチュートリアルに遭遇する場合があります。これらの説明は古い時代の名残であり(1970年代後半、実際には元のディスコ時代の)、実際、明らかに間違っており、非常に混乱しています。したがって、それらの用語で考えないでください。署名は署名であり、暗号化は暗号化です。


認証されたDHは、たとえば、「DHE」暗号スイートを使用して SSL/TLS で行われるものです。 [〜#〜] ssh [〜#〜] (バージョン2)でも同様です。

アリスとボブがDHシークレットを生成するため、このような「一時的な」Diffie-Hellman(「一時的な」)を使用する主な理由は2つありますおよびKB 急いで):

  • アリスとボブが所有する「永続的な」鍵のペアは、署名以外のものには適さない場合があります。 (再び)混乱の原因は、RSAと呼ばれるoneアルゴリズムがないことです。少なくとも2つあり、1つは暗号化用で、もう1つは署名用で、同じ種類の鍵ペアを使用できるようです。ただし、RSAキーペアを暗号化と署名の両方に使用できる場合でも、 正当な理由 を使用できない場合があります。他の署名アルゴリズム(ECDSAなど)もあり、そのキーは暗号化に(少なくとも簡単には)使用できません。

  • 短命なDHシークレットを使用すると、 Forward Secrecy が提供されます。つまり、アリスとボブの永久キーはどこかに保存する必要があります。後で盗まれる可能性があります。単純なRSAベースの鍵交換(DHなし、アリスはランダムセッションキーをボブの公開キーで暗号化し、ボブはそれを復号化する)により、不審なキー泥棒はそれを使用して過去のセッションを復号化できます。 DHと署名では、この問題は発生しません。アリスとボブの署名秘密鍵が後で明らかになったとしても、それらの過去の通信を解読することはできません。前方秘密の概念全体は、オンザフライで生成され、RAMのみに保持され、DH鍵交換の完了直後に破棄されるという「DHシークレット」という考えを中心に展開します。盗難の影響を受けません。

12
Thomas Pornin