跳到主要内容

3.16. Extensible Authentication Protocol (EAP) Payload (可扩展认证协议载荷)

3.16. Extensible Authentication Protocol (EAP) Payload (可扩展认证协议载荷)

Extensible Authentication Protocol (可扩展认证协议, EAP) payload 在本文件中记为 EAP, 允许使用 RFC 3748 [EAP] 所定义协议及其后续扩展对 IKE SA 进行认证. 使用 EAP 时需要选择合适的 EAP 方法. 已定义多种方法, 规定该协议与各类认证机制的配合使用. EAP 方法类型列于 [EAP-IANA]. 此处简要归纳 EAP 格式以便理解.

                    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 ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

图 24: EAP payload 格式

EAP payload 的载荷类型为四十八 (48).

                    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...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

图 25: EAP 消息格式

  • Code (1 个八位组) - 指示本消息为 Request (1), Response (2), Success (3) 或 Failure (4).

  • Identifier (1 个八位组) - 在 PPP 中用于区分重放消息与重复消息. 由于在 IKE 中 EAP 运行在可靠协议之上, 此处 Identifier 不起作用. 在响应消息中, 本八位组必须与对应请求中的标识符一致.

  • Length (2 个八位组, 无符号整数) - EAP 消息长度. 必须比封装载荷的 Payload Length 小四.

  • Type (1 个八位组) - 仅当 Code 为 Request (1) 或 Response (2) 时存在. 对于其他 Code, EAP 消息长度必须为四个八位组, 且不得出现 Type 与 Type_Data 字段. 在 Request (1) 中, Type 指示所请求的数据. 在 Response (2) 中, Type 必须为 Nak 或与所请求数据类型一致. 注意, 由于 IKE 在 IKE_AUTH 交换的第一条消息中传递发起方身份指示, 响应方不应发送 EAP Identity 请求 (类型 1). 不过, 若发起方收到此类请求, 可以予以响应.

  • Type_Data (可变长度) - 随 Request 的 Type 及相应 Response 而变化. EAP 方法的文档见 [EAP].

注意, 由于 IKE 在 IKE_AUTH 交换的第一条消息中传递发起方身份指示, 响应方不应发送 EAP Identity 请求. 不过, 若发起方收到此类请求, 可以予以响应.