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

2.17. 子 SA のための鍵素材の生成

2.17. 子 SA のための鍵素材の生成​

単一の Child SA は IKE_AUTH 交換によって作成され, 追加の Child SA はオプションとして CREATE_CHILD_SA 交換で作成できます。それらの鍵素材は次のように生成されます:

KEYMAT = prf+(SK_d, Ni | Nr)

ここで Ni および Nr は, この要求が作成される最初の Child SA である場合は IKE_SA_INIT 交換からのナンスであり, 後続の作成である場合は 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 交換からの共有秘密です (必要に応じて上位ビットにゼロをパディングして modulus の長さにする, ビッグエンディアン順のオクテット文字列として表現)。

単一の CHILD_SA ネゴシエーションは複数のセキュリティ・アソシエーションを結果として生じる可能性があります。ESP および AH の SA はペア (各方向に 1 つ) で存在するため, 1 回の Child SA ネゴシエーションでそれらに対して 2 つの SA が作成されます。さらに, Child SA ネゴシエーションは, ESP または AH に加えて, または代わりに, いくつかの将来の IPsec プロトコル (たとえば, [ROHCV2] で説明される ROHC_INTEG) を含むかもしれません。いずれの場合も, 各 Child SA の鍵素材は, 拡張された KEYMAT から以下の規則を使用して取得されなければなりません (MUST):

o イニシエータからレスポンダへデータを運ぶ SA のすべての鍵は, レスポンダからイニシエータへデータを運ぶ SA の鍵の前に取得されます。

o 複数の IPsec プロトコルがネゴシエートされた場合, 各 Child SA の鍵素材は, プロトコル・ヘッダがカプセル化パケットに現れる順序で取得されます。

o IPsec プロトコルが複数の鍵を必要とする場合, SA の鍵素材からそれらが取得される順序は, そのプロトコルの仕様で記述される必要があります。ESP および AH については, [IPSECARCH] が順序を定義しています。すなわち: 暗号鍵 (存在する場合) は最初のビットから取得されなければならず (MUST), 整合性鍵 (存在する場合) は残りのビットから取得されなければならない (MUST)。

各暗号アルゴリズムは, アルゴリズムの一部として指定される, または SA ペイロードでネゴシエートされる (鍵長の説明についてはセクション 2.13 参照, 鍵長変換属性の定義についてはセクション 3.3.5 参照) 固定数の鍵素材ビットを取得します。