最近安全を復習しているときに、DH に関して 2 つの疑問が浮かびました:
- 非対称暗号アルゴリズムが身元認証付きの安全な鍵交換を実現できるのであれば、なぜ身元認証のない DH アルゴリズムが必要なのでしょうか?
- 非対称暗号アルゴリズムの体系における身元認証は実際には第三者 CA の権威性に依存しているのですが、DH の CA を構築することはできないのでしょうか?
この記事ではこの 2 つの疑問に答えます。
〇、DH アルゴリズムの概要#
安全なアルゴリズムについて理解している人は、DH アルゴリズムが非常に広く使用されている鍵交換アルゴリズムであり、TLS や IPsec などの交渉の第一段階でよく使われることを知っています。多くの人は、DH アルゴリズムが非対称暗号アルゴリズムに属すると誤解していますが、私たちは DH アルゴリズムには暗号化や復号化の機能がないため、非対称暗号アルゴリズムとは見なせないことを理解する必要があります。DH アルゴリズムは鍵の交渉にのみ使用されます。
一、DH アルゴリズムの原理#
まず、DH アルゴリズムの原理図を示します。Wikipedia のクラシックな図:
DH アルゴリズムの鍵交渉プロセスは以下の通りです:
- アリスは大きなランダム整数 $x$ を取り、ボブに送信します:$X = g^x \mod p$
- ボブは大きなランダム整数 $y$ を取り、アリスに送信します:$Y = g^y \mod p$
- アリスは $k=Y^x \mod p = (g^y \mod p)^x \mod p = g^{xy} \mod p$ を計算します
- アリスは $k'=X^y \mod p = (g^x \mod p)^y \mod p = g^{xy} \mod p$ を計算します
交渉プロセスでは、g、p は公開され、X、Y はネットワークで送信されます。x、y を計算するには、離散対数問題を計算する必要があります。
利点#
- 計算が簡単
- 動的で、鍵ペアを生成しやすく、毎回の交渉で再生成される
- 多者に拡張しやすい $g^{xyz} \mod p$
欠点#
- 身元認証の能力がないため、中間者攻撃の問題を解決できない
二、非対称暗号アルゴリズムとの比較#
非対称暗号アルゴリズムは公開鍵と秘密鍵のペアを使用し、公開鍵で暗号化し、秘密鍵で復号化します。DH と比較して、非対称暗号アルゴリズムの特徴は以下の通りです:
- 公開鍵と秘密鍵のペアは生成後に変更できない
- 身元認証に使用できる
- 身元認証体系を構築できる —— デジタル証明書体系
- 前方秘匿性(PFS)を持たない。秘密鍵が漏洩すると、過去のすべてのメッセージが復号される可能性がある
そのため、身元認証の属性を持ち、鍵交換(情報暗号化)、デジタル署名、身元認証に頻繁に使用されます。
なぜ DH が必要なのか#
問題に戻りましょう:
- 非対称暗号アルゴリズムが身元認証付きの安全な鍵交換を実現できるのであれば、なぜ身元認証のない DH アルゴリズムが必要なのでしょうか?
非対称暗号アルゴリズムの静的で前方秘匿性を持たない問題は非常に大きいです。これは、秘密鍵が漏洩すると、過去のすべてのメッセージが解読されることを意味します。一方、DH の動的な特徴はこれを補うことができ、DH アルゴリズムを使用して一定の時間ごとに再鍵を生成することで、通信の両者の共有鍵が定期的に変更されます。たとえ 1 つの鍵が解読されても、完全な通信データを得ることはできません。
しかし、DH には身元認証の能力がないため、中間者攻撃を防ぐためにデジタル証明書体系と組み合わせる必要があります。
- 非対称暗号アルゴリズム体系の身元認証は実際には第三者 CA の権威性に依存しているのですが、DH の CA を構築することはできないのでしょうか?
この問題は比較的答えやすいです。根本的な理由は、DH が身元認証機能を持たないことです。PKI 体系では、CA は秘密鍵を使用して証明書を発行し、ユーザーシステム / ブラウザには CA の公開鍵が保存されており、証明書の有効性を簡単に検証できます。この検証プロセスは非対称暗号アルゴリズムの身元認証属性に基づいて実現されており、DH では実現できません。
Done!
この記事は Mix Space によって xLog に同期更新されました
元のリンクは https://www.vikifish.com/posts/security/why-we-need-dh-group