Upload
hasegawacom
View
275
Download
1
Embed Size (px)
DESCRIPTION
IPsec/RFC 5996 Internet Key Exchange Protocol Version 2 (IKEv2)
Citation preview
RFC 5996Internet Key Exchange Protocol Version 2 (IKEv2)
by 長谷川
もくじ• IPsec の概要• Introduction(Section 1)– 用語、 Exchange の概要
• Exchanges and Payloads(Appendix C)• IKE Protocol Details and Variations(Section 2)– 細かいところ
• RFC 4306( 旧 IKEv2 の RFC) との差分• Header and Payload Formats(Section 3)
• まとめやすさ重視で RFC と順番を変えている。
IPsec の概要( 1/7 )• 関連する RFC が多い
カテゴリ RFC タイトル
アーキテクチャ RFC 4301 Security Architecture for the Internet Protocol
IKE プロトコル RFC 5996 ( 新 IKEv2) Internet Key Exchange Protocol Version 2 (IKEv2)
RFC 4306 ( 旧 IKEv2) Internet Key Exchange (IKEv2) Protocol
RFC 2409 (IKEv1) The Internet Key Exchange (IKE)
IKE 関連 RFC 3526 More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)
RFC 4307 Cryptographic Algorithms for Use in the Internet Key Exchange Version 2 (IKEv2)
セキュリティプロトコル RFC 4302 IP Authentication Header(AH)
RFC 4303 IP Encapsulating Security Payload (ESP)
セキュリティプロトコル関連
RFC 4305 など
大量にある
IPsec の概要( 2/7 )• IPsec と IKEv2 は独立したもの。※IKEv2 がなくても手動で鍵管理ができれば IPsec できる。
• IPsec– AH/ESP による IP パケットの暗号化、認証
• IKEv2– 暗号化鍵の管理• パケットの暗号化、完全性保証• パケットの認証、通信相手の認証• 秘密鍵の共有
IPsec の概要( 3/7 )• IPsec の動作(トンネルモードの例)
送信 PC 受信 PC
ローカル IP リモート IP プロトコル
動作(PROTECT/BYPASS/DISCARD)
セキュリティプロトコル
モード
送信 PC 受信 PC ANY PROTECT(IPsec 適用 ) ESP トンネル192.168.1.1 10.0.0.10 ANY BYOASS(IPsec 非適用 ) - -
Selector
RT#1 の SPD(Security Policy Database)
①RT#1 は SPD の Selector を検索し、 IPsec 適用 / 非適用 / 破棄を判断する。
RT#1 RT#2IP パケッ
ト
処理
暗号化(SPI=1)
IPsec の概要( 4/7 )• IPsec の動作(トンネルモードの例)
送信 PC 受信 PC
SPI ローカル IP リモート IP プロトコル
セキュリティプロトコル
暗号化アルゴリズム
鍵
1 送信 PC 受信 PC ANY ESP 3DES 2938417
Selector
RT#1 の SAD(Security Association Database)
②RT#1 は Selector で SAD を検索し、 IPsec に適用するパラメータを判断する。③RT#1 は SAD のパラメータに従ってパケットを暗号化し、送信する。
RT#1 RT#2IP パケット
パラメータ
IP パケット
IPsec の概要( 5/7 )• IPsec の動作(トンネルモードの例)
送信 PC 受信 PC
SPI ローカル IP リモート IP プロトコル
セキュリティプロトコル
暗号化アルゴリズム
鍵
1 受信 PC 送信 PC ANY ESP 3DES 2938417
Selector
RT#2 の SAD(Security Association Database)
④RT#2 は SPI で SAD を検索し、 IPsec に適用するパラメータを判断する。⑤RT#2 は SAD のパラメータに従ってパケットを復号する。
RT#1 RT#2
パラメータ
IP パケット
暗号化(SPI=1)
IP パケット
IPsec の概要( 6/7 )• IPsec の動作(トンネルモードの例)
送信 PC 受信 PC
ローカル IP リモート IP プロトコル
動作(PROTECT/BYPASS/DISCARD)
セキュリティプロトコル
モード
送信 PC 受信 PC ANY PROTECT(IPsec 適用 ) ESP トンネル192.168.1.1 10.0.0.10 ANY BYOASS(IPsec 非適用 ) - -
Selector
RT#2 の SPD(Security Policy Database)
⑥RT#2 は SPD の Selector を検索し、転送 / 破棄を判断する。
RT#1 RT#2IP パケッ
ト
処理
IPsec の概要( 7/7 )• 以上の手順中での IKEv2 の役割– SPD 、 SAD 作成のための情報のやりとり– SAD の鍵管理
Introduction ( 1/11 )• 用語
• Exchange の種類と用途
用語 意味Child SA IKE SA で設定される ESP/AH のための SA 。Exchange Response/Request のペア。すべての IKE 通信は Exchange であ
る。
Exchange 用途IKE_SA_INIT IKE SA パラメータのネゴシエーション。 IKE の最初の
exchange 。IKE_AUTH 認証。 Child SA の確立。CREATE_CHILD_SA Child SA の追加。 Rekey 。INFORMATIONAL housekeeping 。 SA の削除。エラー通知。
Introduction ( 2/11 )• シーケンス上の略称表記 Payload
AUTH AuthenticationCERT/CERTREQ Certificate/Certificate RequestCP ConfigurationD DeleteEAP Extensible AuthenticationHDR IKE headerIDi/IDr Initiator’s Identification/Responder’s IdentificationKE Key ExchangeNi/Nr NonceN NotifySA Security AsscociationSK Encrypted and AuthenticationTSi/TSr Initiator’s Traffic Selector/Responder’s Traffic SelectorV Vendor ID
Introduction ( 3/11 )• Initial Exchanges ( 1/3 )
– IKE の開始時に実行される exchange
Initiator Responder
HDR SAi1 KEi Ni
【 HDR 】 SPI 、バージョンなど 【 SAi1 】サポートする暗号化アルゴリズム【 KEi 】 Initiator の Diffie-Hellman 値
HDR SAr1 KEr Nr [CERTREQ]option
①Initiator が IKE を開始する。
②Responder は SAi1 から暗号化アルゴリズムを決定し、 SAr1 に設定する。IKE_SA_INIT Response
③Initiator 、 Responder は KEi/KEr/Ni/Nr から IKE SA 、 Child SA の Key を算出する。以降のメッセージは暗号化 / 完全性保証される。
IKE_SA_INIT Request
Introduction ( 4/11 )• Initial Exchanges ( 2/3 )
– IKE の開始時に実行される exchange
Initiator Responder
HDR IDi [CERT]option
SK暗号化→
[CERTREQ]option
[IDr]option AUTH SAi2 TSi TSr
【 SAi2 】 Child SA 用の SA 【 IDr 】 Responder の ID を指定する場合に使用。
④ID と認証データ (AUTH) を送信する。
⑤Responder は ID の通知と認証をする。IKE_AUTH Response
⑥Child SA の作成完了。
IKE_AUTH Request
HDR IDr [CERT]option
SK暗号化→
[IDr]option AUTH SAr2 TSi TSr
【 SAi2 】 Child SA 用の SA 【 IDr 】 Responder の ID を指定する場合に使用。
Introduction ( 5/11 )• Initial Exchanges ( 3/3 )– 最小で 4 メッセージ (2 exchange) で完了する。– IKE_AUTH で Child SA 作成が失敗した場合でも IKE SA
を維持してよい。– IKE_AUTH で通知される Notify Message 。詳細は後述。
• NO_PROPOSAL_CHOSEN• TS_UNACCEPTABLE• SINGLE_PAIR_REQUIRED• INTERNAL_ADDRESS_FAILURE• FAILED_CP_REQUIRED
Introduction ( 6/11 )• CREATE_CHILD_SA Exchange– 2 つの役割
• 新しい Child SA の作成• IKE SA/Child SA の rekey(*1)
– IKEv1 の Phase 2 exchange に相当– IKE SA の確立後、どちらから開始してもよい– 実装は CREATE_CHILD_SA Request を拒否してよい
*1 :古い SA を削除し、代わりに新しい SA を生成すること
Introduction ( 7/11 )• Creating New Child SA(CREATE_CHILD_SA Exchange)
– 新しい Child SA を作成する。
Initiator Responder
SA は複数要求することが可能。
①Initiator が exchange を開始する。開始した方がInitiator 。
②Responder は応答する。 KEi が含まれていた場合 KEr を送信。CREATE_CHILD_SA Response
Child SA 作成に失敗した場合でも IKE SA は削除しないこと。
CREATE_CHILD_SA Request
HDR SA NiSK暗号化→ TSi TSr
[KEi]option
HDR SA NrSK暗号化→ TSi TSr
[KEr]option
③Child SA の作成完了。
Introduction ( 8/11 )• Rekeying IKE SA(CREATE_CHILD_SA Exchange)
– IKE SA を rekey する。
Initiator Responder
HDR SA NiSK暗号化→ KEi
Responder は IKE SA Rekey 用の CREATE_CHILD_SA request を受信した IKE SA で新規に CREATE_CHILD_SA exchange を開始しないこと。
①Initiator が rekey を開始する。開始した方がInitiator 。
②Responder は応答する。
CREATE_CHILD_SA Response
③IKE SA の rekey 完了。
CREATE_CHILD_SA Request
HDR SA NrSK暗号化→ KEr
新しい Initiator の IKE SA SPI はSA の SPI filed に設定する。
Introduction ( 9/11 )• Rekeying Child SA(CREATE_CHILD_SA Exchange)
– Child SA を rekey する。
Initiator Responder
HDR N(REKEY_SA)SK暗号化→ SA Ni
[KEi]option
TSi TSr
Rekey される SA は Notification payload の SPI filed で識別する。
①Initiator が rekey を開始する。開始した方がInitiator 。
②Responder は応答する。 KEi が含まれていた場合 KEr を送信。CREATE_CHILD_SA Response
③Child SA の rekey 完了。
CREATE_CHILD_SA Request
HDR SA NrSK暗号化→
[KEr]option
TSi TSr
【 SAi2 】 Child SA 用の SA 【 IDr 】 Responder の ID を指定する場合に使用。
Introduction ( 10/11 )• INFORMATIONAL Exchange
– 役割• エラー、状態の通知• housekeeping ( payload を含まない Request/Response で実現)
– 0 以上の Notification/Delete/Configuration payload を含む– 応答がない場合、再送する
HDR [N]option
SK暗号化→
[D]option
[CP]option
処理内容は payload によって決まる。
①Initiator が送信。開始した方が Initiator 。
②Responder が応答。INFORMATIONAL Response
INFORMATIONAL Request
Initiator Responder
HDR [N]option
SK暗号化→
[D]option
[CP]option
Introduction ( 11/11 )• Deleting SA(INFORMATIONAL Exchange)
– Child SA を削除する場合、双方の SA を同一の exchange で削除すること。
– INFORMATIONAL exchange ( Delete payload で削除 SPI を指定)で削除する。
( exchange= 双方向のメッセージのやりとりで削除される)
– IKE SA を削除する場合、その IKE SA でネゴシエーションされたChild SA も同時に削除すること。
– Half-close connection 、送受信不可能になった場合でも上記の方法で SA を削除すること。
Exchanges and Payloads ( 1/10 )• IKEv2 exchange の payload 確認用。• Vendor ID ( V ) payload はすべてのメッ
セージの任意の場所に含まれてよい。• 以降の exchange では最適な場所に記載さ
れている。• [X] は payload X が option であることを示す。
Exchanges and Payloads ( 2/10 )• IKE_SA_INIT Exchange ( Request/Response )
[N(COOKIE)],SA, KE, Ni, [N(NAT_DETECTION_SOURCE_IP)+, N(NAT_DETECTION_DESTINATION_IP)], [V+][N+]
Request
SA, KE, Nr,[N(NAT_DETECTION_SOURCE_IP),N(NAT_DETECTION_DESTINATION_IP)],[[N(HTTP_CERT_LOOKUP_SUPPORTED)], CERTREQ+],[V+][N+]
Response( cookie なし)
N(COOKIE),[V+][N+]
Response( cookie あり)
N(INVALID_KE_PAYLOAD),[V+][N+]
異なるDiffie-Hellman group の要求
Exchanges and Payloads ( 3/10 )• IKE_AUTH Exchange without EAP ( Request )
IDi, [CERT+],[N(INITIAL_CONTACT)],[[N(HTTP_CERT_LOOKUP_SUPPORTED)], CERTREQ+],[IDr],AUTH,[CP(CFG_REQUEST)],[N(IPCOMP_SUPPORTED)+],[N(USE_TRANSPORT_MODE)],[N(ESP_TFC_PADDING_NOT_SUPPORTED)],[N(NON_FIRST_FRAGMENTS_ALSO)],SA, TSi, TSr,[V+][N+]
Request
Exchanges and Payloads ( 4/10 )• IKE_AUTH Exchange without EAP ( Response )
IDr, [CERT+],AUTH,[CP(CFG_REPLY)],[N(IPCOMP_SUPPORTED)],[N(USE_TRANSPORT_MODE)],[N(ESP_TFC_PADDING_NOT_SUPPORTED)],[N(NON_FIRST_FRAGMENTS_ALSO)],SA, TSi, TSr,[N(ADDITIONAL_TS_POSSIBLE)],[V+][N+]
Response
Child SA 作成に失敗
IDr, [CERT+],AUTH,N(error),[V+][N+]
Exchanges and Payloads ( 5/10 )• IKE_AUTH Exchange with EAP ( Request/Response )
IDi,[N(INITIAL_CONTACT)],[[N(HTTP_CERT_LOOKUP_SUPPORTED)], CERTREQ+],[IDr],[CP(CFG_REQUEST)],[N(IPCOMP_SUPPORTED)+],[N(USE_TRANSPORT_MODE)],[N(ESP_TFC_PADDING_NOT_SUPPORTED)],[N(NON_FIRST_FRAGMENTS_ALSO)],SA, TSi, TSr,[V+][N+]
Request
IDr, [CERT+], AUTH,EAP,[V+][N+]
最初の Response
Exchanges and Payloads ( 6/10 )• IKE_AUTH Exchange with EAP ( Request/Response )
EAPRequest
AUTH
最後の Response
EAPResponse
… 1 ~ N 回繰り返し
最後のRequest
AUTH,[CP(CFG_REPLY)],[N(IPCOMP_SUPPORTED)],[N(USE_TRANSPORT_MODE)],[N(ESP_TFC_PADDING_NOT_SUPPORTED)],[N(NON_FIRST_FRAGMENTS_ALSO)],SA, TSi, TSr,[N(ADDITIONAL_TS_POSSIBLE)],[V+][N+]
Exchanges and Payloads ( 7/10 )• CREATE_CHILD_SA Exchange for Creating or Rekeying Child
SAs ( Request )[N(REKEY_SA)],[CP(CFG_REQUEST)],[N(IPCOMP_SUPPORTED)+],[N(USE_TRANSPORT_MODE)],[N(ESP_TFC_PADDING_NOT_SUPPORTED)],[N(NON_FIRST_FRAGMENTS_ALSO)],SA, Ni, [KEi], TSi, TSr[V+][N+]
Request
Exchanges and Payloads ( 8/10 )• CREATE_CHILD_SA Exchange for Creating or Rekeying Child
SAs ( Response )[CP(CFG_REPLY)],[N(IPCOMP_SUPPORTED)],[N(USE_TRANSPORT_MODE)],[N(ESP_TFC_PADDING_NOT_SUPPORTED)],[N(NON_FIRST_FRAGMENTS_ALSO)],SA, Nr, [KEr], TSi, TSr,[N(ADDITIONAL_TS_POSSIBLE)][V+][N+]
Response
N(error)エラー
N(INVALID_KE_PAYLOAD),[V+][N+]
異なるDiffie-Hellman group の要求
Exchanges and Payloads ( 9/10 )• CREATE_CHILD_SA Exchange for Rekeying the IKE
SA ( Request/Response )SA, Ni, KEi[V+][N+]
ResponseSA, Nr, KEr[V+][N+]
Request
Exchanges and Payloads ( 10/10 )• INFORMATIONAL Exchange ( Request/Response )
[N+],[D+],[CP(CFG_REQUEST)]
Response [N+],[D+],[CP(CFG_REPLY)]
Request
IKE Protocol Details and Variations ( 1/10 )
Retransmission• IKE は UDP なので再送は IKE で保証する。• IKE メッセージ (request/response) は initiator が再送を担
う。• 再送 response はもとのメッセージと同一であること。
(IP/UDP レベルでは異なってよい )• IKE_SA_INIT request 受信時の振る舞い– 既存の IKE SA :無視– 新規の IKE SA :新規の IKE_SA_INIT response を返す。
上記で既存 / 新規のパケット、パケットのハッシュ、 Niで判別する。( NAT 配下で SPI が重複する可能性があるため)。
IKE Protocol Details and Variations ( 2/10 )Version Number• 本ドキュメントの IKEv2 は major=2 、 minor=0 。
– 互換性を維持できない場合は major をインクリメントする。– 互換性を維持できる場合は minor をインクリメントする。
• major=n,m をサポートする場合、 n ~ m をサポートすること。
• Peer間で共通で最大の major にネゴシエーションすること。
• Payload type の処理確認のために critical flag が使用される。– Request の critical flag が set (※ Response の critical
flag は set しないこと)• Payload type が認識できない場
合、 UNSUPPORTED_CRITICAL_PAYLOAD notify を通知する。• Payload type が未サポートの場合、無視する。
IKE Protocol Details and Variations ( 3/10 )
Cookie• Responder は COOKIE Notification による COOKIE 認証が可能。
– COOKIE Notification は 1 ~ 64オクテット– Cookie = <VersionIDofSecret> | Hash(Ni | IPi | SPIi | <secret>) <secret> : Responder が生成する乱数。 <VersionIDofSecret> : <secret> が変更される毎に変更される数。
• Initiator は Responder から通知された COOKIE Notification をそのまま返す。
HDR(A, 0), SAi1, KEi, Ni
HDR(A, 0) N(COOKIE), SAi1, KEi, Ni
HDR(A, 0) N(COOKIE)
HDR(A, B), SAr1, KEr, Nr, [CERTREQ]
HDR(A,B), SK { IDi, [CERT,] [CERTREQ.] [IDr,] AUTH, SAi2, TSi, TSr}
HDR(A,B), SK { IDr, [CERT,] AUTH, SAr2, TSi, TSr}
HDR(X, Y)X:Initiator の SPIY:Responder の SPI
IKE Protocol Details and Variations ( 4/10 )
Nonce• 暗号化機能への入力に使用する乱数。• 下記のメッセージに含まれる。– IKE_SA_INIT Request/Response– CREATE_CHILD_SA Request/Response• 新たな Child SA 用の Key 算出、 Diffie-Hellman Key
から安全な乱数の生成のため。• 128bit 以上であること。• さらに、ネゴシエーションされた PRF の半分以上である
こと。– 初回の Nonce は PRF ネゴシエーション前なので、サ
ポートする PRF に対して十分な長さのものを設定する。
IKE Protocol Details and Variations ( 5/10 )
Keying Material の生成( PRF )• IKE には 4 つの Cryptographic algorithm がある
– Encryption algorithm– Integrity Protection algorithm– Diffie-Hellman group– Pseudorandom Function(PRF)
• PRF はすべての Cryptographic algorithm の key 生成に使用する。
• prf+ ( PRF stream )は下記のように定義される。prf+ (K, S)= T1 | T2 | T3 | ...
T1 = prf (K, S | 0x01)T2 = prf (K, T1 | S | 0x02) 、、、最大 T255 まで。“prf+” を pseudorandom function と定義する。“|” を連結と定義する。
IKE Protocol Details and Variations ( 6/10 )
IKE SA Keying Material の生成• 下記のように双方向の key が生成される。 SKEYSEED = prf(Ni | Nr, g^ir) ※ g^ir は Diffie-Hellman 共有鍵{SK_d | SK_ai | SK_ar | SK_ei | SK_er | SK_pi | SK_pr} = prf + (SKEYSEED, Ni | Nr | SPIi | SPI r)
Key PayloadSK_d Child SA の key 生成に使用する key 。SK_ai/SK_ar Encrypted payload の完全性保護用の
key 。SK_ei/SK_er Encrypted payload の暗号化用の key 。SK_pi/SK_pr Authentication payload 生成用の key 。
IKE Protocol Details and Variations ( 7/10 )EAP• IKE_AUTH Exchange で Responder が Initiator を認証する。• Initiator は最初の IKE_AUTH exchange から AUTH payload を除外すること
で EAP 要求を示す。• 10 以上の IKE_AUTH exchange が必要。• AAA 認証に使用される ID と ID payload の ID は異なってもよい。
HDR, SAi1, KEi, Ni
HDR, SK{ IDi, SAi2, TSi , TSr }
HDR, SK { EAP}
HDR, SAr1, KEr, Nr
HDR, SK{ IDr, AUTH, EAP }
HDR, SK { EAP(Success)}
HDR, SK { AUTH}
HDR, SK { AUTH, SAr2, TSi, TSr}
IKE Protocol Details and Variations ( 8/10 )
Child SA Keying Material の生成• Child SA の Keying Material 生成式。必要な鍵長分 prf+ を繰り
返す。 KEYMAT = prf+(SK_d, Ni | Nr)
• CREATE_CHILD SA exchange で Diffie-Hellman exchange 有りの場合
KEYMAT = prf+(SK_d, g^ir(new) | Ni | Nr) ※g^ir(new) は新しい Diffie-Hellman 共有秘密鍵
• ESP で暗号化鍵、完全性保証鍵が必要な場合はその順番でkey を算出すること。
IKE Protocol Details and Variations ( 9/10 )
IKE SA の Rekey• CREATE_CHILD_SA exchange は IKE SA の Rekey に使用される。• 新しい SPI は SA Payload の SPI field に含まれる。• 新しい SKEYSEED は下記のように計算される。 SKEYSEED = prf+(SK_d(old), g^ir(new) | Ni | Nr) ※ g^ir(new) は新しい Diffie-Hellman 共有秘密鍵• 必ず新しい Diffie-Hellman 共有秘密鍵が使用される。• 新しい IKE SA は message counter が 0 に設定されること。
IKE Protocol Details and Variations ( 10/10 )
Requesting an Internal Address• CP Payload でアドレスを割り当ててよい。
• CP(CFG_REQUEST) は一つ以上の INTERNAL_ADDRESS attributeを含むこと。
• CP(CFG_REPLY) は CP(CFG_REQUEST) に依らず、何を返してもよい。ただし、 CP(CFG_REQUEST) が無い場合は送信しないこと。
• Responder が CP(CFG_REQUEST) に応答を返せない場合、 FAILED_CP_REQUIRED を通知すること。
HDR, SK {IDi, [CERT], [CERTREQ], [IDr], AUHT, CP(CFG_REQUEST), SAi2, TSi, TSr}
HDR, SK {IDr, [CERT], AUHT, CP(CFG_REPLY), SAr2, TSi, TSr}
RFC 4306( 旧 IKEv2 の RFC) との差分• 実装に大きな影響を与える変更なし。• バージョン番号は変更なし
– major 2 、 minor 0• 要求事項の明確化( SHOULD 、 MUST )• AH/ESP の説明の削除。• INTERNAL_ADDRESS_EXPIRY 、 INTERNAL_IP6_NBNS attribute の削除。本仕様に準拠する場合はこれらの attribute が指定されても無視すること。• “Payload を右から読む”の記述削除。実装上は読む方向に依存しないこ
と。• IKE SA の rekey に KEi payload が必須になった。• Child SA の rekey では Traffic Selector と algorithm が異ならないこと。• Exchange の競合処理の明確化。
Header and Payload Formats ( 1/35 )• IKE メッセージは UDP Port 500/4500 を使用– UDP 500 Port• UDPヘッダの直後が IKE メッセージ
– UDP 4500 Port• UDPヘッダの後、 4オクテットの 0 の後に IKE
メッセージ ※ 4オクテットの 0 は IKE メッセージではない。 length 、 checksum の計算には含まれない。
Header and Payload Formats ( 2/35 )• IKEv2 の Payload と Payload Type
Payload 略記 Payload Type
No Next Payload - 0Security Association SA 33Key Exchange KE 34Identification Initiator / Responder IDi / IDr 35 / 36Certificate CERT 37Certificate Request CERTREQ 38Authentication AUTH 39Nonce Ni / Nr 40Notify N 41Delete D 42Vendor ID V 43Traffic Selector Initiator/ Responder TSi / TSr 44 / 45Encrypted SK 46Configuration C 47Extensible Authentication Protocol ( EAP )
EAP 48
Header and Payload Formats ( 3/35 )• IKE Header :フォーマット
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 |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Header and Payload Formats ( 4/35 )• IKE Header :フィールドField Length 説明IKE SA Initiator's SPI 8 octets Initiator が選択した IKE SA の識別子。 0 以外の値。IKE SA Responder's SPI
8 octets Responder が選択した IKE SA の識別子。 IKE Initial Exchange の最初のメッセージでは 0 であること。
Next Payload 1 octet Header の直後の Payload Type 。MjVer 4 bits IKE のメジャーバージョン。 RFC5996 は
2 。 ISAKAMP は 1 。 2 より大きい場合はN(INVALID_MAJOR_VERSION) で、メッセージを拒否すること。
MnVer 4 bits IKE のマイナーバージョン。 RFC5996 は 0 。受信側では無視すること。
Exchange Type 1 octet Exchange の Type 。次スライド参照。Flags 1 octet ビットフィールドで表されるオプション。次スライ
ド参照。Message ID 4 octets 0 から始まり、 Request毎に 1増える。 Response で
は Request と同じ値を設定する。双方向で別の Message ID をもつ。
Length 4 octets IKE Header + Payload のオクテット長。
Header and Payload Formats ( 5/35 )• IKE Header : Exchange Type 、 FlagExchange Type Value
IKE_SA_INIT 34IKE_AUTH 35CREATE_CHILD_SA 36INFORMATIONAL 37
Flag 意味X 送信時に Cleared 、受信時は無視する。
R ( Response ) 同じ Message ID の Resnponse である。Requset で Cleared 、 Response で Set する。
V ( Version ) 送信者が MjVer より高い MjVer を使用できることを示す。IKEv2 では送信時に Cleared 、受信時は無視する。
I ( Initiator ) IKE SA の Initiator が Set し、 Responder は Cleared する。IKE SA を Rekey した場合は Rekey を開始した方が Initiator になる。受信側が I/R どちらの SPI を使用するか判別するのに使用する。
X X R V I X X X Set : 1Cleared : 0
Header and Payload Formats ( 6/35 )• Generic Payload Header :フォーマット IKE Payload は Generic Payload Header で始まる。
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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Next Payload |C| RESERVED | Payload Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Header and Payload Formats ( 7/35 )• Generic Payload Header :フィールドField Length 説明Next Payload 1 octets 次の Payload Type 。この Payload が最後の場合は
0 。
C ( Critical ) 1 bit 前の Next Payload filed に対応していない場合 1 を設定する。 IKEv2 に準拠する場合は常に 0 を設定すること。
RESERVED 7 bits 0 を設定し、無視すること。Payload Length 2 octets Generic Payload Header + Payload のオクテット長。
Header and Payload Formats ( 8/35 )• Security Association Payload :フォーマッ
ト SA のネゴシエーションに使用される。 3階層で SA を表現する。 Proposal – Transform - AttributeSA Payload
| +--- Proposal #1 ( Proto ID = ESP(3), SPI size = 4, | | 7 transforms, SPI = 0x052357bb ) | | | +-- Transform ENCR ( Name = ENCR_AES_CBC ) | +-- Attribute ( Key Length = 128 )| | +--- Proposal #2 ( Proto ID = ESP(3), SPI size = 4, | 4 transforms, SPI = 0x35a1d6f2 ) | +-- Transform ENCR ( Name = AES-GCM with a 8 octet ICV ) | +-- Attribute ( Key Length = 128 ) | +-- Transform ESN ( Name = ESNs ) +-- Transform ESN ( Name = No ESNs )
Header and Payload Formats ( 9/35 )• Security Association Payload :フォーマッ
ト 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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Next Payload |C| RESERVED | Payload Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |~ <Proposals> ~| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Proposal:可変長。 1以上の Proposalを含む。
Header and Payload Formats ( 10/35 )• Security Association Payload : Proposal Substructureフォーマット
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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| 0 (last) or 2 | RESERVED | Proposal Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Proposal Num | Protocol ID | SPI Size |Num Transforms|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+~ SPI (variable) ~+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |~ <Transforms> ~| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Header and Payload Formats ( 11/35 )• Security Association Payload : Proposal Substructureフィールド
Field Length 説明
0 ( last ) or 2( more )
1 octet 最後の Proposal であるかを示す。
RESERVED 1 octet 0 を設定し、無視すること。Proposal Length 2 octets Transform 、 Attribute を含む Proposal のオクテット
長。Proposal Num 1 octet 最初の Proposal は 1 。以降インクリメントされる。Protocol ID 1 octet 1 : IKE SA 。 2 : AH 。 3 : ESP 。SPI Size 1 octet 8 : IKE 。 4 : ESP/AH 。 Initial IKE SA Exchange では
0 。Num Transforms 1 octet Proposal に含まれる Transform の数。SPI variable 送信側の SPI 。
SPI Size が 0 の場合、この field は含めないこと。<Transforms> variable 1 つ以上の Transform Substructure 。
Header and Payload Formats ( 12/35 )• Security Association Payload : Transform Substructureフォーマット
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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| 0 (last) or 3 | RESERVED | Transform Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Transform Type | RESERVED | Transform ID |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |~ Transform Attributes ~| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Header and Payload Formats ( 13/35 )• Security Association Payload : Transform Substructureフィールド( 1/3 )Field Length 説明
0 (last) or 3 ( more )
1 octet 最後の Proposal であるかを示す。
RESERVED 1 octet 0 を設定し、無視すること。Transform Length 2 octets Attribute を含む Transform Substructure のオクテット
長。Transform Type 1 octet プロトコルの種別。オプション。Transform ID 1 octet Transform Type の識別子。Transform Attributes 1 octet 8 : IKE 。 4 : ESP/AH 。 Initial IKE SA Exchange では
0 。
説明 Trans. Type プロトコル
Encryption Algorithm ( ENCR ) 1 IKE 、 ESP
Pseudorandom Function ( PRF ) 2 IKE
Integrity Algorithm ( INTEG ) 3 IKE 、 AH 、 ESP ( option )
Diffie-Hellman group ( D-H ) 4 IKE 、 AH ( option )、 ESP( option )
Extended Sequence Numbers ( ESN ) 5 AH 、 ESP
Header and Payload Formats ( 14/35 )• Security Association Payload : Transform Substructureフィールド( 1/3 ) Transform Type 1 ( Encryption Algorithm )
Name Number Defined In---------------------------------------------------ENCR_DES_IV64 1 (UNSPECIFIED)ENCR_DES 2 (RFC2405), [DES]ENCR_3DES 3 (RFC2451)ENCR_RC5 4 (RFC2451)ENCR_IDEA 5 (RFC2451), [IDEA]ENCR_CAST 6 (RFC2451)ENCR_BLOWFISH 7 (RFC2451)ENCR_3IDEA 8 (UNSPECIFIED)ENCR_DES_IV32 9 (UNSPECIFIED)ENCR_NULL 11 (RFC2410)ENCR_AES_CBC 12 (RFC3602)ENCR_AES_CTR 13 (RFC3686)
Header and Payload Formats ( 15/35 )• Security Association Payload : Transform Substructureフィールド( 1/3 ) Transform Type 2 ( Pseudorandom function )
Transform Type 3 ( Integrity Algorithm )
Name Number Defined In------------------------------------------------------PRF_HMAC_MD5 1 (RFC2104), [MD5]PRF_HMAC_SHA1 2 (RFC2104), [SHA]PRF_HMAC_TIGER 3 (UNSPECIFIED)
Name Number Defined In----------------------------------------NONE 0AUTH_HMAC_MD5_96 1 (RFC2403)AUTH_HMAC_SHA1_96 2 (RFC2404)AUTH_DES_MAC 3 (UNSPECIFIED)AUTH_KPDK_MD5 4 (UNSPECIFIED)AUTH_AES_XCBC_96 5 (RFC3566)
Header and Payload Formats ( 16/35 )• Security Association Payload : Transform Substructureフィールド( 1/3 ) Transform Type 4 ( Diffie-Hellman group )
Transform Type 5 ( Extended Sequence Numbers )
Name Number Defined In----------------------------------------NONE 0768-bit MODP 1 Appendix B1024-bit MODP 2 Appendix B1536-bit MODP 5 [ADDGROUP]2048-bit MODP 14 [ADDGROUP]3072-bit MODP 15 [ADDGROUP]4096-bit MODP 16 [ADDGROUP]6144-bit MODP 17 [ADDGROUP]8192-bit MODP 18 [ADDGROUP]
Name Number--------------------------------------------No Extended Sequence Numbers 0Extended Sequence Numbers 1
Header and Payload Formats ( 17/35 )• Security Association Payload : Attributeフォーマット 設定可能な Attribute は Transform によって異なる。 1 つの Attribute のみが規定される。 Key Length Attribute :特定の Encryption Transform のキー長を規定する。 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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|A| Attribute Type | AF=0 Attribute Length ||F| | AF=1 Attribute Value |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| AF=0 Attribute Value || AF=1 Not Transmitted |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Header and Payload Formats ( 18/35 )• Security Association Payload : Data Attributesフィールド
Field Length 説明Attribute Format ( AF )
1 bit Attribute が Type/Length/Value(TLV) か Type/Value(TV)かを示す。 0 : TLV 。 1 : TV 。
Attribute Type 15 bits Attribute の Type 。※Value 0 ~ 13 、 15 ~ 17 は IKEv1 で使用されるので使用しないこと。
Attribute Value variable AF=1 : 2 octets 。 AF=0 : Attribute Length のオクテット長。
Transform Type 1 octet プロトコルの種別。オプション。Transform ID 1 octet Transform Type の識別子。Transform Attributes 1 octet 8 : IKE 。 4 : ESP/AH 。 Initial IKE SA Exchange では
0 。
Attribute Type Value Attribute Format
Key Length (in bits) 14 TV
Header and Payload Formats ( 19/35 )• Key Exchange Payload Diffie-Hellman 鍵交換用のデータの交換に使用する。 Diffie-Hellman 鍵交換については次スライド参照。
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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Next Payload |C| RESERVED | Payload Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Diffie-Hellman Group Num | RESERVED |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |~ Key Exchange Data ~| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Diffie-Hellman Group Num:次スライドの pを決定するパラメータ。Key Exchange Data:次スライドの g。
Header and Payload Formats ( 20/35 )• Diffie-Hellman 鍵交換 安全に秘密鍵を共有する方法。
Initiator Responder
a :秘密鍵p :素数g : p の原始根
p 、 g
b :秘密鍵
b :秘密鍵p 、 g
AA : g^a mod p
B B : g^b mod p
s : B^a mod ps :秘密鍵
s : A^b mod ps :秘密鍵
Header and Payload Formats ( 21/35 )• Identification Payload :フォーマット
ID の確認に使用する。 ID に IP アドレスを使用する場合、 TS と一致する必要はない。 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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Next Payload |C| RESERVED | Payload Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| ID Type | RESERVED |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |~ Identification Data ~| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Header and Payload Formats ( 22/35 )• Identification Payload :フィールドField Length 説明ID Type 1 octet ID の Type 。下記参照。RESERVED 3 octet 0 を設定し、無視すること。Identification Data variable ID Type の値。
ID Type Value 説明ID_IPV4_ADDR 1 IPv4 アドレス。 4オクテット。ID_FQDN 2 FQDN 。 NULL 、 CR などで終端しないこと。ID_RFC822_ADDR 3 RFC822 の email address 。 NULL 、 CR などで終端しないこと。
realm を含む NAI を ID に使用する場合にも使用される。ID_IPV6_ADDR 5 IPv6 アドレス。 16オクテット。ID_DER_ASN1_DN 9 X.500 の ANS.1 。ID_DER_ASN1_GN 10 X.509 の ANS.1 。ID_KEY_ID 11 ベンダー固有で規定するバイト列。 realm を含まない NAI
を ID に使用する場合にも使用される。
Header and Payload Formats ( 23/35 )• Certificate Payload :フォーマット 証明書を送信する。 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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Next Payload |C| RESERVED | Payload Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Cert Encoding | |+-+-+-+-+-+-+-+-+ |~ Certificate Data ~| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Header and Payload Formats ( 24/35 )• Certificate Payload :フィールドField Length 説明Certificate Encoding 1 octet Certificate Data filed に含まれる証明書の種別。Certificate Data variable Certificate Encoding field で指定されたデータ。
Certificate Encoding Value
PKCS #7 wrapped X.509 certificate 1PGP Certificate 2DNS Signed Key 3X.509 Certificate - Signature 4Kerberos Token 6Certificate Revocation List (CRL) 7Authority Revocation List (ARL) 8SPKI Certificate 9X.509 Certificate – Attribute 10Raw RSA Key 11Hash and URL of X.509 certificate 12Hash and URL of X.509 bundle 13
Header and Payload Formats ( 25/35 )• Certificate Request Payload :フォーマット 証明書を要求する。
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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Next Payload |C| RESERVED | Payload Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Cert Encoding | |+-+-+-+-+-+-+-+-+ |~ Certification Authority ~| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Header and Payload Formats ( 26/35 )• Nonce Payload :フォーマット
IKE SA の Key の計算に使用するランダムな値。 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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Next Payload |C| RESERVED | Payload Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |~ Nonce Data ~| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Nonce Data:送信側によって生成されたランダムな値。 16~ 256オクテットであること。
Header and Payload Formats ( 27/35 )• Delete Payload :フォーマット 送信者が SAD から削除する SPI を通知する。 同じプロトコル( IKE/ESP/AH )の SPI ならば 1 Delete Payload に複数含んでよい。 1 INFORMATIONAL Exchange に複数 Delete Payload が含まれてもよい。
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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Next Payload |C| RESERVED | Payload Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Protocol ID | SPI Size | Num of SPIs |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |~ Security Parameter Index(es) (SPI) ~| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Header and Payload Formats ( 28/35 )• Delete Payload :フィールド
Field Length 説明Protocol ID 1 octet 1 : IKE SA 。 2 : AH 。 3 : ESP 。SPI Size 1 octet 0 : IKE 。 4 : AH/ESP 。Num of SPIs 2 octets Delete Payload に含まれる SPI の数。SPI variable 削除する SA の ID
Header and Payload Formats ( 29/35 )• Vendor ID Payload :フォーマット
ベンダー定義の定数が含まれる。 デバッグ、プロトコル拡張に使用される。 任意の Exchange に任意の数の Vendor ID Payload を含めてよい。 未知の Vendor ID Payload は無視すること。 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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Next Payload |C| RESERVED | Payload Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |~ Vendor ID (VID) ~| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Header and Payload Formats ( 30/35 )• Configuration Payload :フォーマット 設定情報の交換に使用する。 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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Next Payload |C| RESERVED | Payload Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| CFG Type | RESERVED |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |~ Configuration Attributes ~| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Configuration Attribute 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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|R| Attribute Type | Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |~ Value ~| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Header and Payload Formats ( 31/35 )• Configuration Payload :フィールドField Length 説明CFG Type 1 octet Exchange のタイプ。
CFG_REQUEST : 1 、 CFG_REPLY : 2 、 CFG_SET :3 、 CFG_ACK : 4
Configuration Attributes
variable 設定情報を示す Type Length Value構造体。
Header and Payload Formats ( 32/35 )• Configuration Attribute :フィールドField Length 説明Attribute Type 15 bits Configuration Attribute の type 。Length 2 octets Configuration Attribute のオクテット長。Value variable Configuration Attribute 。 Attribute Type Value Multi-Valued Length ------------------------------------------------------------ INTERNAL_IP4_ADDRESS 1 YES* 0 or 4 octets INTERNAL_IP4_NETMASK 2 NO 0 or 4 octets INTERNAL_IP4_DNS 3 YES 0 or 4 octets INTERNAL_IP4_NBNS 4 YES 0 or 4 octets INTERNAL_IP4_DHCP 6 YES 0 or 4 octets APPLICATION_VERSION 7 NO 0 or more INTERNAL_IP6_ADDRESS 8 YES* 0 or 17 octets INTERNAL_IP6_DNS 10 YES 0 or 16 octets INTERNAL_IP6_DHCP 12 YES 0 or 16 octets INTERNAL_IP4_SUBNET 13 YES 0 or 8 octets SUPPORTED_ATTRIBUTES 14 NO Multiple of 2 INTERNAL_IP6_SUBNET 15 YES 17 octets
Header and Payload Formats ( 33/35 )• Configuration Payload : IPv6 設定の例
IPv6 アドレス、 IPv6DNS アドレスを要求。
CP(CFG_REQUEST) = INTERNAL_IP6_ADDRESS() INTERNAL_IP6_DNS() TSi = (0, 0-65535, :: - FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF) TSr = (0, 0-65535, :: - FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF)
IPv6 アドレス、 IPv6DNS アドレスを応答。TSi を範囲指定。
CP(CFG_REPLY) = INTERNAL_IP6_ADDRESS(2001:DB8:0:1:2:3:4:5/64) INTERNAL_IP6_DNS(2001:DB8:99:88:77:66:55:44) TSi = (0, 0-65535, 2001:DB8:0:1:2:3:4:5 - 2001:DB8:0:1:2:3:4:5) TSr = (0, 0-65535, :: - FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF)
Header and Payload Formats ( 34/35 )• EAP Payload :フォーマット EAP 認証で使用する Payload 。 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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Next Payload |C| RESERVED | Payload Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |~ EAP Message ~| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
EAP Message フォーマット 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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Code | Identifier | Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Type | Type_Data...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Header and Payload Formats ( 35/35 )• EAP Payload :フィールド
Field Length 説明Code 1 octet Request (1), Response (2), Success (3), Failure (4) を示す。Identifier 1 octet メッセージの ID 。再送の識別に使用される。Length 2 octets EAP Message の length 。Type 1 octet Request(1) / Response(2) で存在する。
Request(1) :要求するデータ。 Response(2) 要求されたデータ or NAK 。
Type_Data variable Request(1) / Response(2) で存在する。EAP Method によって異なる。