3.8. AUTH Payload
3.8. AUTH Payload
AUTH 负载包含用于验证 IKE SA 建立中身份的数据。
AUTH 负载格式如下:
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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Auth Method | RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Authentication Data ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 11: AUTH 负载格式
o Auth Method (1 字节) - 认证方法的类型。定义的值包括:
- 1 - RSA 数字签名
- 2 - 共享密钥消息完整性代码(PSK)
- 3 - DSS 数字签名(已弃用)
o RESERVED (3 字节) - 必须发送为 0,接收时必须忽略。
o Authentication Data (变长) - 认证数据,其格式和内容由 Auth Method 决定。
认证数据的计算方式如下:
对于 RSA 签名(方法 1):AUTH = prf( SK_pi,
对于共享密钥(方法 2):AUTH = prf( prf(Shared Secret, "Key Pad for IKEv2"),
对于 DSS 签名(方法 3):同 RSA 类似,使用 DSS 算法。
SignedOctets 由两部分组成:
- 用于创建 IKE SA 的 IKE_SA_INIT 消息(从 ISAKMP 头开始到包含发起方的 Nonce 的负载为止)。
- 一个伪随机函数应用于响应方的 nonce(包含发起方 SPI、响应方 SPI 和响应方 nonce 的连接)。
具体的 SignedOctets 构造见 RFC 5996 第 2.15 节。