IPsec
1. IPsecとは何か
IPsec[アイピーセック]は「IPレイヤにおいて通信の保護というセキュリティサービスを提供する仕組み」です。パケット単位で認証や改ざん検知、秘匿などのサービスを提供するものであり、インターネットVPNの実現手段の一つとして広く利用されています。
IPsecはプロトコルであると書かれていることもありますが、Security Architecture for Internet Protocolのことであり、複数の構成要素から構成されるものであることを念頭に置いて本記事を読むほうがわかりやすいと思います。2章でIPsecを構成する主要な要素やキーワードについて概要を説明します。そして2章の最後でIPsecがそれらの要素をどのように組み合わせて通信を保護しているかの全体像をまとめます。3章から、構成要素およびその組み合わせ方についてより詳細に記載します。なんとなくわかれば良い方は2章までで十分です。
この記事を読むには、ネットワークの基礎的な知識、暗号化の基礎的な知識(暗号化、復号、ハッシュ、署名)を必要とします。
2. IPsecを構成する要素とキーワード
2.1 セキュリティアソシエーション
SA(Security Association)は、セキュアな通信を提供するために必要なパラメータが共有された関係のことです。パラメータとは、暗号方式や、暗号方式で用いる鍵などのことです。
SAという関係が成立しているということは、セキュアな通信の準備ができているということでもあります。そのため共有されたパラメータにより作成される「保護された仮想的なコネクション」のこともSAと呼びます。
「パラメータが共有された関係を結ぶこと」や「保護された仮想的なコネクションを作成すること」を「SAを確立する」と言います。IPsecのゴールはSAを確立して暗号化などのセキュリティサービスを提供することです。IPsecによるSAをIPsec SAと呼びます。IPsec SAは「IPsecのセキュリティサービスを提供する仮想的なコネクション」です。
2.2 セキュリティサービスの提供方法
IPsecでは、パケットをエンコード(符号化)することでセキュリティサービスを提供します。
このエンコード方法にはAHとESPという2つのプロトコルがあります。プロトコルによって提供されるサービスが異なります。主にAHは認証、ESPは暗号化を提供します。ただしESPは認証や完全性も提供できます。提供される具体的な機能は以下のとおりです。機能の詳細については3.3. IPsecが提供するセキュリティサービスを参照してください。
提供されるセキュリティサービス | AH | ESP |
---|---|---|
完全性(コネクションレス) | ○ | △ |
データ送信元の認証 | ○ | △ |
アンチリプレイ | △ | △ |
暗号化 | ✕ | ○ |
トラフィックフロー機密 | ✕ | ○ |
AHとESPはどちらか1つだけでも、組み合わせても使えます。認証も暗号化も提供できるESPが多く使われます。
2.3 セキュリティサービスの動作モード
セキュリティサービスにはトランスポートモードとトンネルモードという2つの動作モードがあります。動作モードによりセキュリティサービスの提供範囲が異なります。
- トランスポートモード
- IPパケットのデータ部に対して、セキュリティサービスを提供します。
- IPより上位のレイヤの保護を目的としています。
- セキュリティサービスを提供するための情報を付与します。
- トンネルモード
- IPパケットのヘッダ部を含む全体に対して、セキュリティサービスを提供します。
- パケットの完全な保護を目的としています。
- セキュリティサービスを提供するための情報を付与します。
- パケットのヘッダ部を保護するために、新しいIPヘッダを付与します。
各モードの重要な違いはIPヘッダに対してセキュリティサービスが提供されるかどうかです。端末-端末間でセキュリティサービスを享受するにはトランスポートモードが、端末-拠点間や拠点-拠点間でセキュリティサービスを享受するにはトンネルモードが使用されます。
2.4 セキュリティサービスの開始と維持
セキュリティサービスを開始するときには、セキュリティサービスが使用するパラメータをネゴシエーションし、合意することで、IPsec SAを確立します。このネゴシエーションはIKEという鍵管理のプロトコルに従って行われます。
また、ネゴシエーションが完了した後も、セキュリティサービスを維持するために鍵の更新などが行われます。ここでもIKEが使われます。
2.5 IPsecの流れ
ここまででIPsecを説明するための最低限の構成要素を説明しました。それでは、これらを組み合わせて、IPsecアーキテクチャが、セキュリティサービスを提供する様子を見てみましょう。
IKEという鍵管理プロトコルで、パラメータのネゴシエーション(交渉)を行います。パラメータには、エンコード方式はなにか、動作モードはなにかという情報が含まれます。
ネゴシエーションが終了すると、AH/ESPの準備が整います。つまり、IPsec SAができあがります。
このときにIPsec SAの他に、IKEによるSAも確立されます。IKE SAやISAKMP SAなどと呼ばれ、IPsec SAとは区別されます。詳細は3.2 IKEを参照してください。
下の図はESP トンネルモードで合意した場合です。秘密情報はESPがエンコードのときに使用するパラメータです。
ここで通信が発生すると、ネゴシエーションで決定したESPトンネルモードの方式に従ってパケットがエンコードされてから送信されます。
受信した側ではESPトンネルモードの方式に従ってパケードをデコードし検証します。
ESPでは通信は暗号化されているので、エンコードされたパケットを第三者が入手しても通信内容は分かりません。
3 IPsecの技術詳細
本章ではIPsecの技術要素についてより詳細に記載します。
3.1. DH鍵交換
DH鍵交換(Diffie-Hellman鍵交換)は、盗聴の可能性がある通信路を使って鍵を共有する方式です。IKEの中で使われています。
3.1.1. 一方向性関数
DH鍵交換は一方向性関数を使って鍵を共有します。一方向性関数とは、簡単に計算できる関数(計算)があり、その逆をする関数(逆関数)は簡単に計算できないという対称性を持った関数のことです。代表的な一方向性関数に素因数分解があります。コンピュータにとって素数の積を計算することは非常に簡単ですが、素数の積を素数に分解することは効率的な計算方法がなく時間がかかるとされています。
DH鍵交換でよく使われる一方向性関数は、「ある値のべき乗の計算結果を求めるのは簡単だが、計算結果からある値を何乗したものかを計算するのは難しい」というものです。なお、modは余り(剰余、モジュロ)という意味で、g^x \bmod pはg^xをpで割ったときの余りという意味です。
仮に、定数g, pが3, 7であったとします。つまりf(x)=3^x \bmod 7です。ここでx=5のときのf(x)を計算してみます。
f(5)=3^5 \bmod 7 =243 \bmod 7 = ( 7*34 + 5 ) \bmod 7 = 53^5も、それを7で割ったときの余りもコンピュータで簡単に計算できます。
逆にf(x)=5であることが分かったときに、xの値を求めることを考えます。すなわち、
5=3^x \bmod 7を解くということです。この例では数字が小さいので総当りで解くことができますが、数字を大きくすると効率的に解く方法がなく、時間がかかるとされています。
3.1.2 DH鍵交換の仕組み
具体的にDH鍵交換の仕組みを見てみます。説明していない用語もありますがそれにはとらわれず、通信路を通った情報はなにかに着目してください。DH鍵交換の前提として通信路は盗聴の可能性があります。通信路を通った情報は、一般に公開されている情報であるとみなします。
クライアント | 通信路 | サーバ |
---|---|---|
素数pを作成し、その原始元gを選ぶ | ||
2以上p以下の整数sを選ぶ | ||
A=g^s \bmod pを計算する | ||
←p, g, A | p, g, Aを送る | |
2以上p以下の整数cを選ぶ | ||
B=g^c \bmod pを計算する | ||
Bを送る | B→ | |
X=A^c \bmod pを計算する | Y=B^s \bmod pを計算する |
最後にお互いで計算しているXとYはX=Y=g^{sc} \bmod pが成り立ち、これが共有された鍵となります。
最初にサーバ側はp, g, sを作成しました。このうち、sは指数計算を行い、結果としてAを得ました。一方向性関数ですからAからsを計算することは困難です。サーバはp, g, Aを通信路におくりました。p, g, Aは誰でも見られる状態となりました。
次にクライアント側はcを作成し、指数計算を行い、結果としてBを得ました。これもBからcを計算することは困難です。クライアントはBの値を通信路に送りました。Bも誰でも見られる状態となりました。
以上からp, g, A, Bが公開された情報であり、sはサーバだけが、cはクライアントだけが知っている情報です。最終的な結果であるg^{cs} \bmod pは、p, g, s, cがわかれば計算できますが、クライアントもサーバも盗聴者もp, g, s, cを集めることはできません。しかし、g^{cs} \bmod p = A^c \bmod p = B^s \bmod pとなるので、A, c, pかB, s, pを集めても計算できます。A, B, pは公開されているので、cかsを知っているクライアントとサーバだけがg^{cs} \bmod pを計算できるのです。
DH鍵交換の計算例
実際に数字を使って計算してみます。
- 素数pとして11を選びます。11の原始元はいくつかありますが、2を選びます。
- p=11、g=2
- 2以上p以下の整数として5を選びます。
- s=5
- Aを計算します。
- A= g^s \bmod p = 2^5 \bmod 11 = 32 \bmod 11
- 32÷11=2 余り 10 なので A=10
- (p, g, A)として(11, 2, 10)を送ります。
- 2以上p以下の整数として9を選びます。
- c=9
- Bを計算します。
- B = g^c \bmod p = 2^9 \bmod 11 = 512 \bmod 11
- 512÷11=46 余り 6 なので B=6
- Bとして6を送ります
- X、Yを計算します。鍵は10となりました。
- X=A^c \bmod p=10^9 \bmod 11=1000000000 \bmod 11 =10
- 1000000000÷11=90909090 余り 10
- Y=B^s \bmod p=6^5 \bmod 11=7776 \bmod 11=10
- 7776÷11=706 余り 10
- X=A^c \bmod p=10^9 \bmod 11=1000000000 \bmod 11 =10
3.1.3 DHグループ
DH鍵交換の説明では、サーバがpとgを生成していましたが、IPsecでは予め用意されたpとgを使用します。このpとgはインターネットに公開されています。また、本記事で紹介した離散対数以外のアルゴリズムを使用することもあります。IPsecでは使用する一方向性関数とパラメータの組み合わせをDHグループで指定します。たとえば、DHグループ14はアルゴリズムはMODP(本記事に記載したアルゴリズム)であり、pは16進数表記で
FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1
29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD
EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245
E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED
EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE45B3D
C2007CB8 A163BF05 98DA4836 1C55D39A 69163FA8 FD24CF5F
83655D23 DCA3AD96 1C62F356 208552BB 9ED52907 7096966D
670C354E 4ABC9804 F1746C08 CA18217C 32905E46 2E36CE3B
E39E772C 180E8603 9B2783A2 EC07A28F B5C55DF0 6F4C52C9
DE2BCBF6 95581718 3995497C EA956AE5 15D22618 98FA0510
15728E5A 8AACAA68 FFFFFFFF FFFFFFFF (2048bit)
であり、gは2です。DHグループ19では、アルゴリズムが楕円曲線暗号になり、パラメータもpとgではなく、p、a、b、gx、gy、nに変わります。
3.2 IKE
3.2.1 フェーズ
IKEには2つのフェーズがあります。最初にIKEフェーズ1を実行します。IKEフェーズ1ではDH鍵交換を使って共通鍵を共有します。IKEフェーズ1でもSAが確立され、IKE SA[アイケーイー・エスエー](ISAKMP SA[アイサキャンプ・エスエー])と呼びます。次にIKEフェーズ2を実行します。IKEフェーズ2ではIPsecのパラメータをネゴシエーションします。ネゴシエーション通信はIKE SAを通して暗号化します。IKEフェーズ2が完了すると、IPsecのパラメータが共有が終わり、IPsec SAができます。IPsec SAを通る通信はAHやESPによりエンコードされ、セキュリティサービスを受けられます。
- IKE フェーズ1 ゴール:IKE SAの確立
- IKEが使用するプロトコルをネゴシエーションします。
- DH鍵交換を使って共通鍵を共有します。
- 通信相手を認証します。
- IKE フェーズ2 ゴール:IPsec SAの確立
- IKEフェーズ1で共有した共通鍵を使用して、IPsecで使う鍵やパラメータをネゴシエーションします。
3.2.2 メッセージ交換モード
IKEにはMain、Aggressive、New Group、Quickの4つのメッセージ交換モードがあります。MainとAggressiveはIKEフェーズ1で使用するモードであり、どちらかを選択します。QuickがIKEフェーズ2で使用するものです。New GroupはIKEフェーズ1と2の間で使用されるオプションです。
New Groupモードがフェーズに属さないことに、なぜそうなっているか不思議に感じるかもしれません。これは、IKEもOAKLEY、SKEME、ISAKMPという3つの技術の組み合わせであり、フェーズはISAKMP、モードはOAKLEYが定義しているためです。ちなみにIKE SAをISAKMP SAとよぶのも同じ理由です。
3.2.3 フェーズ1
IKEフェーズ1はIKE SAを確立するフェーズです。MainモードとAggressiveモードがあります。
Mainモードの場合は、以下の処理が行われます。
- IKEが使用するパラメータをネゴシエーションします。
- 暗号化アルゴリズム
- ハッシュアルゴリズム
- 認証方法
- DHグループ
- 指定のDHグループを使ってDH鍵交換を行い、共通鍵を共有します。
- 指定の方法で通信相手を認証します。2で共有した共通鍵を使ってIDなどの認証情報を暗号化した状態で認証します。
Aggressiveモードの場合は、以下の処理が行われます。
- Mainモードでは3回に渡りやり取りした情報をほぼ一度に通信します。その中には認証情報も含まれ、一部は暗号化されずに送られます。
動的IPアドレスの使用
認証するときに、MainモードではIDが暗号化されますが、Aggressiveモードでは暗号化されずに送られます。セキュリティの観点ではMainモードのほうが優れていますが、復号しないとIDが分かりません。動的IPアドレスと事前共有鍵による認証の組み合わせは、これが制約となります。
Mainモード、フェーズ1の3.では「認証情報をDH鍵交換で得た共通鍵を使って暗号化する」となっていました。しかし認証方法で事前共有鍵を選択したときは、DH鍵交換で得た共通鍵をそのまま使うのではなく、事前共有鍵も混ぜて使います。つまりIDを復号するには事前共有鍵も必要です。相手のIDが分からないのに、事前共有鍵が分からないといけないのです。そこでIDとして相手のIPアドレスを使います。これまで通信しているのですから、相手のIPアドレスは分かっていますし、重複することもありません。
ただし、これは相手のIPアドレスと事前共有鍵の組み合わせが事前に把握できることが前提となります。IPアドレスが変動する場合ではこの手法は使えません。そのためMainモード+事前共有鍵の組み合わせでは動的IPアドレスを使用できません。一方でAggressiveモードではIDを暗号化しないで送りますので、動的IPアドレスでも問題なく利用できます。
この特徴から、Mainモードは固定IPアドレスどうし、Aggressiveモードは動的IPアドレスと固定IPアドレスの組み合わせのときに利用されることが多いです。
3.2.4. フェーズ2
IKEフェーズ2はIPsec SAを確立するフェーズです。Quickモードが使われます。
Quickモードでは以下の処理が行われます。
- IPsecが使用するパラメータをネゴシエーションします。
- セキュリティプロトコル(AH/ESP)
- セキュリティプロトコルで使用するアルゴリズム・パラメータ
- IPsecの動作モード(トンネル/トランスポート)
3.2.5. IKE SAとIPsec SA
SA(Security Association)は、セキュアな通信を提供するためのパラメータなどが共有された関係のことであり、保護された仮想的なコネクションとみなすことができるものでした。IKE SAとIPsec SAの2つのSAがありましたが、どちらも考え方は同じですが異なる点があります。たとえばIKE SAは双方向に通信できる仮想的なコネクションです。一方でIPsec SAは単方向の仮想的なコネクションです。双方向通信を実現するには2つのIPsec SAが必要になります。
また、1つのIPsec SAではAHかESPのどちらか1つのセキュリティサービスしか提供できません。AHとESPの両方のサービスを提供するには、AHを提供するIPsec SAとESPを提供するIPsec SAのように、2つ以上のIPsec SAを組み合わせます。
3.3. IPsecが提供するセキュリティサービス
IPsecのセキュリティサービスはAHかESPにより提供されます。提供する機能は5つあり、対応は下表の通りでした。ここでは各機能についてまとめます。
提供されるサービス | AH | ESP |
---|---|---|
完全性(コネクションレス) | ○ | △ |
データ送信元の認証 | ○ | △ |
アンチリプレイ | △ | △ |
暗号化 | ✕ | ○ |
トラフィックフロー機密 | ✕ | ○ |
3.3.1. コネクションレスな完全性
完全性はデータが欠けていたり、変更されていないことを保証する性質です。IPsecでは、パケットが改ざんされていないことを保証します。ただし、パケットの一部には通信途中に変わることが前提のフィールドがあります。たとえばTTLフィールドです。そのような可変のフィールドは完全性を保証されません。
IPsecの完全性保証はパケット単位で行われます。前後のパケットなしで完全性を保証するので、コネクションレスな完全性と呼んでいます。
3.3.2. データ送信元の認証
認証は対象が正当な相手であるか確認することです。IPsecでは、パケットがIPsec SAを確立した相手から届いたパケットであるかが確認できます。IPsec SAで共有している情報に含まれる共有鍵を使った署名やハッシュで実現しています。
3.3.3. アンチリプレイ
正当な通信を傍受して、そのコピーを送る攻撃をリプレイ攻撃と呼びます。もともとは正当な通信であるため、同じ通信をもう1回送ってきたように見えます。例えば商品を発注する通信を傍受して、それを繰り返し送ると商品を不当に発注できるかもしれません。
リプレイ攻撃はタイムスタンプや順序番号などを付加することで検知できます。リプレイ攻撃に対する耐性をアンチリプレイやリプレイ攻撃保護といいます。IPsecでは順序番号を使用しています。
3.3.4. 暗号化
暗号化は、データを他の人に分からなくすることです。機密化とも呼ばれます。暗号化アルゴリズムに従ってデータをエンコード(暗号化)すると、特定の人だけがデコード(復号)できるようになります。IPsec SAでは、SAを確立した相手だけが復号できます。パケットのうち、上位プロトコルの部分だけを暗号化することもできますし、パケット全体を暗号化することもできます。
3.3.5. トラフィックフロー機密
トラフィックフロー機密とは、通信内容だけでなく、通信元や通信先、通信時間、通信データ量、通信頻度などを含めて、第三者に知られないことを言います。一般にはダミーのデータを送ることで、これらの情報を隠します。IPsecではESPトンネルモードがこの機能を提供しますが、通信時間や頻度は隠すことができません。
3.4 Authentication Header
AH(Authentication Header)はIPsecで主に認証機能を提供するエンコード方法です。AHは以下の通りパケットをエンコードします。IPsecには2つのモードがあったことを思い出してください。
AHには以下の情報が含まれます。
- ネクストヘッダ
- AHの次のフィールドのプロトコル番号
- ペイロード長
- AHの長さ
- SPI(Security Parameter Index)
- SAを一意に識別する値
- シーケンス番号
- パケット送信ごとに1ずつ増加していくカウンタ
- アンチリプレイの機能を提供
- RFC1826ではシーケンス番号は存在せず、RFC2402から追加されたオプションである
- ICV(Integrity Check Value)
- パケットの情報を含み、完全性と認証の機能を提供する値
3.4.1. アルゴリズム
ICVの計算に使用するアルゴリズムはIPsecネゴシエーションで確定させます。つまりIPsec SAごとに決定されています。通常はMACが利用されます。
MAC(Message Authentication Code)はメッセージを認証するためのコードです。IPsecでは、パケットの対象データのハッシュ値を求め、IPsec SAで共有した共通鍵で暗号化します。
3.5 Encapsulating Security Payload
ESP(Encapsulationg Security Payload)は主に暗号化機能を提供するエンコード方法です。ESPは以下の通りパケットをエンコードします。IPsecには2つのモードがあったことを思い出してください。
ESPヘッダには以下の情報が含まれます。
- SPI(Security Parameter Index)
- SAを一意に識別する値
- シーケンス番号
- パケット送信ごとに1ずつ増加していくカウンタ
- アンチリプレイの機能を提供
ESPトレーラには以下の情報が含まれます。
- パディング
- 暗号化するビット数を暗号化アルゴリズムに合わせるためのダミーデータ
- ネクストヘッダ
- ESPフィールドの次のフィールドのプロトコル番号
- ICV(Integrity Check Value)
- パケットの情報を含み、完全性や認証の機能を提供する値
ペイロードには上位レイヤの情報を主に含みますが、場合によっては暗号化のための情報なども含まれます。そのような暗号化のための情報はペイロードではありますが、通常は暗号化されません。
またペイロードにトラフィックフロー気密化のためのパディングが含まれることもあります。ESPトレーラにあるパディングは主に暗号化のためのものであり、255バイトまでに制限されています。このパディングを使ってトラフィックのデータ量を隠すのは不十分であると考えられます。そこで任意の長さのダミーデータをペイロードに含めることができます。
3.5.1. アルゴリズム
ESPで暗号化とICVの計算に使用するアルゴリズムはIPsecネゴシエーションで確定させます。つまりIPsec SAごとに決定されています。ESPでは完全性は暗号化されたデータに対して行います。そのため暗号化が先に行われます。
ESPでは暗号化も完全性もオプションであって良いとされています。そのためNULLアルゴリズムという何もしないアルゴリズムを選択できます。そのため、暗号化アルゴリズムをNULL、ICV計算アルゴリズムをMACとすれば、暗号化なしで完全性を提供することもできます。
3.6. トラフィック処理モデル
IPsecではネットワーク機器がどのようにトラフィック処理するか、一般的な概念モデルを定めています。本記事では主要な用語について触れるのみとします。
3.6.1. SAD
ネットワーク機器では多数のSAが作成されます。確立したSAはSAD(Security Association Database)に格納されます。
3.6.2. SPD
ネットワーク機器は機器を通過するトラフィックの中から、IPsec SAを通す通信を選びます。これはセキュリティポリシーと呼ばれるルールに従って選ばれます。このセキュリティポリシーのデータベースをSPD(Security Policy Database)と呼びます。
3.7. 拡張機能
3.7.1. DPD
DPD(Dead Peer Detection)はIPsecトンネルの通信断を検知する仕組みです。DPDメッセージを定期的に送信しあいます。DPDメッセージが一定回数届かなかった場合は相手がダウンしたとみなします。
何らかの理由によりトンネルの断が発生することがあります。すると機器のSADにSAが残っている状態になります。この状態ではSAを再確立することはできません。SAのライフタイムがきれるまでSADにSAが残る状態は続きます。DPDがあるとすぐにダウンが検知され、SADからSAが取り除かれ、SAを再確立できるようになります。
通信品質があまり良くない環境では、ダウンしたとみなす回数を長めにするなどのパラメータの調整を行わないと、相手がダウンしていないときに誤検知することがあります。
3.7.2. NATトラバーサル
ICVにIPアドレスやポート番号の情報が含まれるため、NAT/NAPT環境下ではICVの検証に失敗します。NATトラバーサルはNAT/NAPTを使用している環境下でIPsecを実現する機能です。
NATトラバーサルの機能を有効にしておくと、IKEが自動でNAT/NAPTされているかを判断し、されていればNATトラバーサルを使用します。NATトラバーサルの考え方自体はシンプルで、AHやESPのパケットをUDPでカプセル化しています。
NATトラバーサルではNATしている機器のNATテーブルを維持するため、NATキープアライブを定期的に送信します。
4. IPsecの設定
実際にIPsecを使用するときには以下のパラメータを決めて、ネットワーク機器に設定することになります。これ以外にもネットワーク機器に応じて必要になる設定があります。
- 全体
- ピアアドレス
- 相手先のIPアドレス
- セキュリティポリシー
- どの通信にIPsecを適用するか
- ピアアドレス
- IKEフェーズ1
- 暗号化アルゴリズム
- ハッシュアルゴリズム
- 認証方法
- DHグループ
- IKEフェーズ2
- セキュリティプロトコル(AH/ESP)
- セキュリティプロトコルで使用するアルゴリズム
- IPsecの動作モード(トンネル/トランスポート)
5. IKEv2
追記予定
参考文書
本記事をまとめるにあたり参考にした文書やサイトの一覧を示します。
- RFC 4301: Security Architecture for the Internet Protocol
- RFC 2408: Internet Security Association and Key Management Protocol (ISAKMP)
- RFC 2409: The Internet Key Exchange (IKE)
- RFC 3526: More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)
- RFC 4302: IP Authentication Header
- RFC 4303: IP Encapsulating Security Payload (ESP)
- RFC 5114: Additional Diffie-Hellman Groups for Use with IETF Standards
- RFC 7296: Internet Key Exchange Protocol Version 2 (IKEv2)
- シスココミュニティ: 暗号マップベース IPsec VPN の基礎 - ネゴシエーションと設定
- Huawei Enterprise Support Community: what is ipsec vpn and how it works episode2 REPRINT
- 笠野英松: ネットワークスーパーテキスト(上)、ISBN4-7741-1814-1、技術評論社
- Charlie Scott, Paul Wolfe, Mike Erwin: VPN 第2版、ISBN4-900900-85-0、歌代和正・須田隆久 訳、オライリー・ジャパン
- https://milestone-of-se.nesuke.com/nw-basic/ipsec/ike-v1-v2-comparison/