2.17. Generating Keying Material for Child SAs (Child SA の鍵材料生成)
2.17. Generating Keying Material for Child SAs (Child SA の鍵材料生成)
1 つの Child SA が IKE_AUTH 交換で作成され, 追加の Child SA は CREATE_CHILD_SA 交換で任意に作成できる. 鍵材料は次のとおり:
KEYMAT = prf+(SK_d, Ni | Nr)
最初の Child SA 作成要求なら Ni と Nr は IKE_SA_INIT の nonce, 後続なら CREATE_CHILD_SA の新しい Ni と Nr である.
オプションの Diffie-Hellman 交換を含む CREATE_CHILD_SA では:
KEYMAT = prf+(SK_d, g^ir (new) | Ni | Nr)
g^ir (new) は本 CREATE_CHILD_SA の一時 Diffie-Hellman 共有秘密 (ビッグエンディアンオクテット列, 必要なら上位ビットをゼロ埋めして法長にする).
1 回の CREATE_CHILD_SA 交渉で複数のセキュリティアソシエーションが生じ得る. ESP と AH の SA はペア (各方向 1 つ) なので 1 回の Child SA 交渉で 2 つできる. 将来の IPsec プロトコル (例 [ROHCV2] の ROHC_INTEG) を ESP/AH に加えまたは代替して交渉してもよい. いずれにせよ, 各 Child SA の鍵材料は拡張 KEYMAT から次の規則で取り出さなければならない:
-
イニシエータからレスポンダへの SA の鍵を先に取る.
-
複数 IPsec プロトコルが交渉された場合, 各 Child SA の鍵材料はカプセル化パケットでプロトコルヘッダが現れる順で取る.
-
複数鍵が必要なプロトコルでは, SA の鍵材料からの取り出し順はそのプロトコル仕様で述べる. ESP と AH では [IPSECARCH] が順序を定義する: 暗号鍵 (あれば) は先頭ビットから, 完全性鍵 (あれば) は残りから取る.
各暗号アルゴリズムはアルゴリズムまたは SA ペイロードで交渉された固定ビット数の鍵材料を取る (鍵長は 2.13 節, Key Length 属性は 3.3.5 節).