web-dev-qa-db-ja.com

OpenVPNでは、dh1024.pemファイルはCAに依存していますか?

質問にはすでに記載されているように、openvpnの./build-dhによって生成されたdh1024.pemファイルがca.(crt | key)ファイルに依存しているかどうかを知りたいのですが。

その理由は、すべてのキーを./clear-allする必要がありましたが、dh1024.pemファイルをエディターで開いたままにし、キーをクリアした後に再保存しました。次に、。/ build-ca、。/ build-key-server、。/ build-clientの作成を続けました。

さらに言えば、dh * .pemファイルはサーバーキーなどに依存しているのでしょうか。それとも、依存関係のない十分に計算されたデータのチャンクを含む単なるファイルですか?

敬具。

6
Daniel F

そのファイルは、証明書や秘密鍵に依存していません。それも秘密ではありません。必ずしもお互いを信頼していない、またはお互いを知らないさまざまなサーバー間で共有することもできます。

dh1024.pemファイルにはDiffie-Hellmanパラメータが含まれています。 [〜#〜] dh [〜#〜] 鍵交換は、特定の有限グループで実行されるアルゴリズムです。つまり、素数を法とする整数p。 DHを成功させるには:

  • 既知のパラメータp(大きな素数)とg(2からp-2の範囲の従来の整数。 generator)。
  • パーティー[〜#〜] a [〜#〜]ランダムな秘密の値を生成a、計算ga mod p、それをパーティーに送信します[〜#〜] b [〜#〜]
  • パーティー[〜#〜] b [〜#〜]ランダムな秘密の値を生成b、計算gb mod p、それをパーティーに送信します[〜#〜] a [〜#〜]
  • パーティー[〜#〜] a [〜#〜]計算(gba mod p[〜#〜] b [〜#〜]から受け取った値を秘密の指数aに引き上げます)。
  • パーティー[〜#〜] b [〜#〜]計算(gab mod p[〜#〜] a [〜#〜]から受け取った値をその秘密の指数bに上げます)。

DHの魔法は、[〜#〜] a [〜#〜][〜#〜] b [〜#〜]の両方が同じ値になることです、その盗聴者はワイヤを介して送信された2つの値から再計算できません。

これらすべてにおいて、pおよびgの値は「パラメータ」であり、両方の当事者に知られている必要があります。しかし、彼らは秘密ではありません。次の条件が満たされる限り、セキュリティは確保されます。

  • pは十分な大きさです(少なくとも1024ビット。間違いなく、2048ビットの方が良いでしょう)。
  • p離散対数 を容易にする「特別な構造」を使用して生成されませんでした。
  • gはモジュロ整数のサブグループを生成しますpそのサイズは十分に大きい素数の倍数ですgモジュロpの順序は最小の整数r≥1で、gr mod p = 1; rの最大素数は、長さが少なくとも160ビット、好ましくは256ビット以上である必要があります。

全世界で同じパラメータを使用できます。しかし、多くの人は、自分のパラメーターが「調理」されていないことを確認するために、独自のパラメーターを生成することを好みます。これは何 build-dhします。結果のファイル(dh1024.pem)にはpおよびgが含まれますが、それ以外は含まれません。これらの値は秘密ではありません。それらは、外部要素、証明書、秘密鍵などには依存しません。

12
Tom Leek