メインコンテンツまでスキップ

3.1 The IKE Header (IKE ヘッダ)

3.1 The IKE Header (IKE ヘッダ)

IKE メッセージは UDP ポート 500 および/または 4500 を用い, 1 UDP データグラムあたり 1 IKE メッセージとする. パケット先頭から UDP ヘッダまでの情報はほぼ無視されるが, IP アドレスと UDP ポートは反転して復路パケットに用いられる. UDP ポート 500 で送る場合, IKE メッセージは UDP ヘッダ直後から始まる. UDP ポート 4500 で送る場合, IKE メッセージの前に 4 オクテットのゼロが付加される. この 4 オクテットは IKE メッセージの一部ではなく, IKE が定義するいかなる長さフィールドやチェックサムにも含まれない. 各 IKE メッセージは IKE ヘッダで始まり, 本文書では HDR と記す. ヘッダの後には 1 つ以上の IKE ペイロードが続き, それぞれ直前のペイロードの Next Payload フィールドで識別される. ペイロードの順序は, IKE ヘッダの Next Payload を見て, 続いて各 IKE ペイロードの Next Payload を辿り, Next Payload がゼロになればそれ以上ないと判断する. タイプ "Encrypted" のペイロードが現れた場合は復号し, その内容を追加ペイロードとして解析する. Encrypted ペイロードはパケット内で最後でなければならない (MUST), かつ Encrypted ペイロードの内側に別の Encrypted ペイロードを含んではならない (MUST NOT).

ヘッダ内の responder SPI は IKE セキュリティアソシエーション (Security Association) インスタンスを識別する. したがって単一の IKE インスタンスで, 複数ピアとの複数セッションを多重化できる.

整数を表す複数オクテットフィールドはすべてビッグエンディアン (最上位バイトが先, ネットワークバイトオーダー) で並べる.

IKE ヘッダの形式は図 4 に示す.

                        1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IKE SA Initiator's SPI |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IKE SA Responder's SPI |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Payload | MjVer | MnVer | Exchange Type | Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 4: IKE Header Format
  • Initiator's SPI (8 オクテット) - 発起者が選ぶ値で, IKE SA を一意に識別する. ゼロであってはならない (MUST NOT).

  • Responder's SPI (8 オクテット) - 応答者が選ぶ値で, IKE SA を一意に識別する. IKE 初期交換 (cookie を含む再送を含む) の最初のメッセージではゼロでなければならない (MUST).

  • Next Payload (1 オクテット) - ヘッダ直後のペイロードのタイプを示す.

  • Major Version (4 ビット) - 使用中の IKE プロトコルのメジャーバージョン. 本バージョンの IKE 実装はメジャーを 2 に設定しなければならない (MUST). 以前の IKE/ISAKMP 実装は 1 に設定しなければならない (MUST). 本文書のバージョン 2 に基づく実装は, メジャーが 2 を超えるメッセージを INVALID_MAJOR_VERSION 通知で拒否または無視しなければならない (MUST). 第 2.5 節参照.

  • Minor Version (4 ビット) - マイナーバージョン. 本バージョンの実装は 0 に設定しなければならない (MUST). 受信メッセージのマイナーは無視しなければならない (MUST).

  • Exchange Type (1 オクテット) - 交換タイプ. 下表は RFC 4306 公開時点の値にすぎない. 最新値は [IKEV2IANA] を参照.

Exchange TypeValue
IKE_SA_INIT34
IKE_AUTH35
CREATE_CHILD_SA36
INFORMATIONAL37
  • Flags (1 オクテット) - オプションの有無をビットで示す.
        +-+-+-+-+-+-+-+-+
|X|X|R|V|I|X|X|X|
+-+-+-+-+-+-+-+-+

「セット」は 1, 「クリア」は 0. X ビットは送信時クリア (MUST), 受信時無視 (MUST).

  • R (Response) - 同一 Message ID を持つメッセージへの応答であることを示す. 要求ではクリア (MUST), 応答ではセット (MUST). 応答とマークされたメッセージに対して応答を生成してはならない (MUST NOT) (第 2.21.2 節の例外あり).

  • V (Version) - ヘッダのメジャーより高いメジャーを話せることを示す. IKEv2 実装は送信時クリア (MUST), 受信時無視 (MUST).

  • I (Initiator) - IKE SA の元発起者が送るメッセージではセット (MUST), 元応答者ではクリア (MUST). 受信者が SPI の 8 オクテットのどちら側が自ら生成したか判断するのに用いる. IKE SA の最後の再鍵の発起者が変わると更新される.

  • Message ID (4 オクテット, 符号なし) - 再送制御と要求/応答の対応に用いる. リプレイ攻撃防止のためプロトコル上必須. 第 2.1, 2.2 節参照.

  • Length (4 オクテット, 符号なし) - ヘッダとペイロードを含むメッセージ全体の長さ (オクテット).