こんにちは!技術メディア「Tech-Frontier」の主筆ライターであり、日々パケットの行跡を追いかけているネットワークセキュリティスペシャリストの天野です。
突然ですが、みなさんは「インターネットという泥棒だらけの公道を、誰にも見られずに安全に荷物を運ぶにはどうすればいいか?」と考えたことはありますが?
その答えの一つがVPN(仮想専用線)です。そして、そのVPNが安全な通信路(トンネル)を作るために、裏側で必死に「合言葉(暗号鍵)」を相談し合っている超重要技術が、今回ご紹介する「Diffie-Hellman(ディフィー・ヘルマン、以下DH)グループ」です。
「DHグループ14とか19とか、数字がいっぱい並んでいて拒絶反応が……」という初心者の方も大丈夫です!今回は、小難しい数式や英語のヘッダーをできる限り取り除き、「郵便配達」や「絵の具の色混ぜ」に例えて、その仕組みと選び方を一歩ずつ丁寧に紐解いていきます。
現場で使えるルータの設定例も交えてお届けしますので、ぜひ最後まで一緒に駆け抜けていきましょう!
—
1. なぜVPNには「鍵の受け渡し」が必要なのか?
暗号通信の基本は、送信側がデータを「箱に入れて鍵をかけ」、受信側が「同じ鍵で開ける」という仕組み(共通鍵暗号)です。
ここで一つ、大きな問題が発生します。
「その鍵、どうやって相手に渡すの?」
インターネットという世界中の誰もが盗み見できるルートを使って、鍵をそのまま「はい、これ使ってね!」と送ってしまったら、途中で盗み聞きしている悪意ある第三者(クラッカー)にも鍵が丸見えになってしまいますよね。これでは、どれだけ頑丈な箱(暗号アルゴリズム)を使っていても意味がありません。
そこで登場するのが、1976年に考案された偉大な発明「Diffie-Hellman(DH)鍵交換」という魔法のような仕組みです。
—
2. 絵の具で理解する「DH鍵交換」の魔法
DH鍵交換のすごさは、「インターネット上で堂々とやり取りしているのに、盗聴者には絶対に同じ鍵が作れない」という点にあります。
これを、直感的に分かりやすい「絵の具の色混ぜ」で例えてみましょう。
通信をしたいAさんとBさんがいます。そして、通り道で手紙を盗み見ようと待ち構えている「盗聴者」がいます。
【色のブレンドによる鍵交換のイメージ】
[Aさん] [Bさん]
│ │
├─ (1) 共通のベース色「黄色」を決める ───────┤ (これは盗聴者に見えてもOK)
│ │
├─ (2) 自分だけの秘密の色「赤」を選ぶ ├─ (2) 自分だけの秘密の色「青」を選ぶ
│ │
├─ (3) 黄色+赤 =「オレンジ」を作る ├─ (3) 黄色+青 =「緑」を作る
│ │
├─ (4) 「オレンジ」をBさんに送る ───────→│
│←─────── (4) 「緑」をAさんに送る ────┤ (盗聴者はオレンジと緑を盗み見る)
│ │
├─ (5) 届いた「緑」に、自分の「赤」を混ぜる ├─ (5) 届いた「オレンジ」に、自分の「青」を混ぜる
│ (緑 + 赤 = 茶色) │ (オレンジ + 青 = 茶色)
▼ ▼
【完成!】 2人だけの秘密の共通色「茶色」ができた!
1. ベースになる公開の色を決めます:
まず、誰に見られてもいいベースの色(例:黄色)を決めます。これはインターネット上に公開されます。
2. 自分だけの「秘密の色」を選びます:
Aさんは赤、Bさんは青を自分だけの秘密の色として心に決めます。これは絶対に相手にも教えませんし、ネットワークにも流しません。
3. 色を混ぜて送ります:
- Aさんは、ベースの黄色に自分の赤を混ぜて「オレンジ」を作り、Bさんに送ります。
- Bさんは、ベースの黄色に自分の青を混ぜて「緑」を作り、Aさんに送ります。
4. 盗聴者には作れない「ブレンド色」が完成します:
- Aさんは、届いた「緑」に、自分の秘密の色「赤」を混ぜます。すると「茶色」になります。
- Bさんは、届いた「オレンジ」に、自分の秘密の色「青」を混ぜます。すると……なんとこちらも同じ「茶色」になります!
途中で盗聴していた人は、公開された「黄色」「オレンジ」「緑」の3つしか知ることができません。「オレンジから赤だけを分離する」ことや「緑から青だけを分離する」ことは、絵の具が混ざってしまっているため不可能です。
こうして、「ネットワーク上には一度も流れていない『茶色(共通鍵)』が、なぜかAさんとBさんの手元だけで完成する」のです。これがDH鍵交換の仕組みです。美しいと思いませんか?
—
3. 「DHグループ」とは、絵の具の「混ぜ方のルール」
実際のネットワークでは、絵の具の代わりに「巨大な数式」を使ってこの色混ぜを行います。
このとき、「どんな数式を使って、どのくらい複雑(強固)に混ぜ合わせるか?」という計算ルールの規格をパッケージ化したものが「DHグループ(Diffie-Hellman Group)」です。
当然、複雑な数式を使えば使うほど、スーパーコンピュータを使っても解読できないほど頑丈になりますが、その分ルータのCPUにも計算の負荷がかかります。
逆に、簡単すぎる数式(古いDHグループ)を使うと、現代の高性能なコンピュータであっという間に解読されてしまうため、「もう使っちゃダメ!」というルールが定められています。
—
4. 主要なDHグループを徹底比較!
実務でVPN(IPsecなど)を設定するとき、プロファイルの中に「DH Group」を選ぶ項目が必ず出てきます。
現在よく使われる、あるいは歴史的に知っておくべき代表的なグループを整理してみました。一歩ずつ見ていきましょう!
| DHグループ名 | 暗号の仕組み(数学的基礎) | 鍵の長さ(ビット数) | セキュリティ強度と現在の推奨度 |
| :— | :— | :— | :— |
| Group 2 | MODP(素数を使った計算) | 1024-bit | ❌ 使用禁止(脆弱。数時間で解読されるリスクあり) |
| Group 14 | MODP(素数を使った計算) | 2048-bit | ⚠️ 移行期 / 最低ライン(まだ動くが、徐々に引退気味) |
| Group 19 | ECP(楕円曲線を使った計算)| 256-bit | 超推奨・標準的(高速でセキュリティも非常に強い) |
| Group 20 | ECP(楕円曲線を使った計算)| 384-bit | 超推奨・高強度(政府機関レベルの強固さ) |
| Group 21 | ECP(楕円曲線を使った計算)| 521-bit | 🛡️ 最高峰(最強の守り。ただし一部未対応機器あり) |
MODPとECPってなに?
表の中に難しい言葉が出てきましたね。簡単に噛み砕いておきましょう。
- MODP(Modular Exponential:有限体(素数)ベース):
昔からある伝統的な数式です。頑丈にしようとすると、ビット数(桁数)を「2048」「4096」とどんどん巨大にする必要があり、計算が重くなってルータが息切れしてしまいます。
- ECP(Elliptic Curve Cryptography:楕円曲線ベース):
「楕円曲線」というスマートな数学のグラフ応用技術を使った、現代の主流です。「桁数はものすごく小さいのに、MODPの超巨大な桁数と同じかそれ以上の強さを持つ」という、魔法のようなスマートさを持っています。そのため、ルータの頭脳(CPU)にとても優しく、通信がサクサク進みます。
今、実務で選ぶべきはどれ?
結論から言うと、新規にVPNを構築するのであれば「Group 19」または「Group 20」を選んでおけば間違いありません。
「Group 14」はまだ多くの古い機器でサポートされているため、互換性を維持するために現場でよく使われていますが、計算負荷とセキュリティのバランスを考えると、現代の本命は楕円曲線(ECP)を採用したGroup 19になります。
—
5. 現場のパケットの挙動と「トラブルシューティング」
VPN(IPsec)が繋がるプロセスを「IKE(Internet Key Exchange)ネゴシエーション」と呼びます。
このとき、対向のルータ同士は以下のような会話をパケットで行っています。
1. ルータA:「私は Group 19 と Group 20 が使えます!そちらはどうですか?」
2. ルータB:「お、私も Group 19 が使えます!じゃあ Group 19 で鍵を作りましょう!」
もしここで、ルータAが Group 19 しか許可しておらず、ルータBが Group 14 しか許可していなかった場合、交渉は決裂し、VPNトンネルは絶対に繋がりません。
現場あるある:ログからトラブルを見抜く
VPNが繋がらない時、ルータのログ(Syslog)を覗くと、以下のようなエラーメッセージが静かに、しかし大量に出力されていることがあります。
IKE Phase 1 failure: No proposal chosen
Attributes-Not-Supported: DH Group
これはまさに、「お互いのDHグループの好みが合わなくて、交渉が決裂したよ!」とルータが泣いている証拠です。VPNが繋がらない時は、まず両拠点のDHグループの設定が美しく一致しているかを確認するのが、プロのトラブルシューティングの第一歩です。
—
6. 実務でそのまま使える!設定サンプル
それでは、主要なネットワーク機器である「Cisco IOS」と「FortiGate」を例に、安全な Group 19 (ECP 256) を使用したIPsec VPN(IKEv2)の設定例を見てみましょう。
1. Cisco IOS の設定例
Ciscoルータで、IKEv2(フェーズ1)の提案として DH Group 19 を指定するコマンドです。
! IKEv2の提案(Proposal)を作成します
crypto ikev2 proposal MY_SECURE_PROPOSAL
! 暗号化アルゴリズムに強固なAES-GCMを採用
encryption aes-gcm-256
! ★ここでDHグループを指定!Group 19(楕円曲線 256bit)を最優先にします
dh group 19
!
! IKEv2のポリシーを作成し、先ほどの提案を紐付けます
crypto ikev2 policy MY_SECURE_POLICY
match fvrf any
proposal MY_SECURE_PROPOSAL
2. FortiGate (FortiOS CLI) の設定例
Fortinet社のファイアウォール「FortiGate」のコマンドライン(CLI)での設定例です。
# IPsecのPhase1(IKE交渉)の設定を編集します
config vpn ipsec phase1-interface
edit "To_Branch_VPN"
set interface "wan1"
set ike-version 2
set proposal aes256-sha256
# ★ここでDHグループを指定します。19(Group 19)を設定!
set dhgrp 19
set remote-gw 203.0.113.1
set psksecret "YourSuperSecretPreSharedKey123!"
next
end
どちらの設定も、接続先の相手機器(対向機)側でも全く同じDHグループ「19」を指定することを絶対に忘れないでくださいね!
—
7. まとめ:一歩ずつゼロトラストな安全を手に入れよう
今回は、暗号通信の守護神である「Diffie-Hellman(DH)グループ」について解説しました。
- DH鍵交換は、誰でも見られるインターネット上で、安全に「秘密の色(共通鍵)」を混ぜ合わせる魔法の技術。
- DHグループは、その混ぜ方の複雑さ(暗号強度)を定義したメニュー表。
- 現代の標準は、軽くて超強力な楕円曲線を使った「Group 19」や「Group 20」。
- 繋がらないときは、両端の機器でDHグループの設定が一致しているかを真っ先に確認!
ゼロトラストやクラウドセキュリティが進む現代においても、この「鍵をどうやって安全に共有するか」という基礎理論はすべてのセキュリティの土台となっています。ここをしっかり理解しておくと、次世代の技術に出会ったときも「なるほど、あの仕組みの応用か!」と、パズルのピースがハマるように理解できるようになります。
一歩ずつ、焦らずに知識のネットワークを広げていきましょう。あなたのエンジニアライフを応援しています!
コメント