📄 rfc2408.txt
字号:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 下一个载荷 ! 保留 ! 载荷长度 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 证书编码 ! !
+-+-+-+-+-+-+-+-+ !
~ 证书数据 ~
! !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
图10 证书载荷格式
* 保留(1个八位字节)――未用,置为0。
* 载荷长度(2个八位字节)――以八位字节为单位,当前在恶化的长度,包括普通的载荷头。
* 证书编码(1个八位字节)――此字段表示证书的类型,或包含在证书数据字段中与证书相关的信息。
证书类型 值
NONE 0
PKCS #7 wrapped X.509 certificate 1
PGP Certificate 2
DNS Signed Key 3
X.509 Certificate - Signature 4
X.509 Certificate - Key Exchange 5
Kerberos Tokens 6
Certificate Revocation List (CRL) 7
Authority Revocation List (ARL) 8
SPKI Certificate 9
X.509 Certificate - Attribute 10
RESERVED 11 - 255
* 证书数据(可变长度)――证书数据的实际编码。证书类型由证书编码字段来表示。
证书载荷的载荷类型是6。
3.10 证书请求载荷
证书请求载荷提供了一种经由ISAKMP请求证书的方法,它可以在任何消息中出现。当适当的目录服务(例如:安全DNS【DNSSEC】)对于分发的证书不可用时,证书请求载荷应包含在交换中。交换中的所有点都必须接受证书请求载荷。基于包含在载荷中的值,如果证书被支持,对于证书请求载荷的响应必须发送它们的证书。如果需要多个证书,应该传送多个证书请求载荷。图11表示了证书请求载荷的格式。
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 下一个载荷 ! 保留 ! 载荷长度 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 证书类型 ! !
+-+-+-+-+-+-+-+-+ !
~ 人证机构 ~
! !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
图11:证书请求载荷格式
证书载荷字段定义如下:
* 下一个载荷(1个八位字节)――消息中下一个载荷的载荷类型标识符。如果当前载荷处于消息的最后,此字段为0。
* 保留(1个八位字节)――未用,置为0。
* 载荷长度(2个八位字节)――以八位字节为单位,当前载荷的长度,包括普通的载荷头。
* 证书类型(1个八位字节)――包含所请求的证书类型的编码。可接受的值在3.9节中列出。
* 认证机构(可变长度)――包含所请求证书类型的可接受证书机构的编码。作为一个例子,对于X.509证书,此字段将包含此载荷的发送者所接受的X.509证书机构的发行者名字的高级名字编码。包含此信息,可以帮助应答作出,需要多少证书链来响应请求的决定。如果没有要求特定的证书机构,将不包含此字段。
3.11 哈希载荷
哈希载荷包含哈希函数所产生的数据(在SA建立交换期间所选择),基于消息和/或ISAKMP状态的部分信息。此载荷用来验证ISAKMP消息的完整性,或对协商实体进行鉴别。图12表示了哈希载荷的格式。
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 下一个载荷 ! 保留 ! 载荷长度 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! !
~ 哈希数据 ~
! !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
图12 哈希载荷格式
哈希载荷字段定义如下:
* 下一个载荷(1个八位字节)――消息中下一个载荷的载荷类型标识符。如果当前载荷处于消息的最后,此字段为0。
* 保留(1个八位字节)――未用,置为0。
* 载荷长度(2个八位字节)――以八位字节为单位,当前载荷的长度,包括普通的载荷头。
* 哈希数据(可变长度)――将哈希程序应用到ISAKMP消息和/或状态所得来的数据。
3.12 签名载荷
签名载荷包括由数字签名函数所产生的数据(在SA建立交换期间所选择),基于消息和/或ISAKMP状态的部分信息。此载荷用来认证ISAKMP消息的完整性,还可用作无否认服务。图13表示了签名载荷的格式。
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 下一个载荷 ! 保留 ! 载荷长度 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! !
~ 签名数据 ~
! !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
图13 签名载荷格式
签名载荷字段定义如下:
* 下一个载荷(1个八位字节)――消息中下一个载荷的载荷类型标识符。如果当前载荷处于消息的最后,此字段为0。
* 保留(2个八位字节)――以八位字节为单位,当前在恶化的长度,包括普通的载荷头。
* 签名数据(可变长度)――将数字签名函数用到ISAKMP消息和/或状态所得到的数据。
签名载荷的载荷类型为9。
3.13 Nonce载荷
Nonce载荷包含在交换期间用于保证存活,和防止重放攻击的随机数。图14表示了Nonce载荷的格式。如果nonce用于特殊的密钥交换,nonce载荷的使用将由密钥交换来指定。Nonce可作为传输密钥交换数据的一部分,或作为一个独立的载荷。然而,这是由密钥交换来定义,而不是ISAKMP。
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 下一个载荷 ! 保留 ! 载荷长度 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! !
~ Nonce 数据 ~
! !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
图14 :nonce载荷格式
nonce载荷定义如下:
* 下一个载荷(1个八位字节)――消息中下一个载荷的载荷类型的标识符。如果当前载荷处于消息的最后,此字段为0。
* 保留(1个八位字节)――未用,置为0。
* 载荷长度(2个八位字节)――以字节为单位,当前载荷的长度,包括普通载荷头。
O nonce数据(可变长度)――包含由传送实体所产生的随机数。
Nonce载荷的载荷类型为10。
3.14 通告载荷
通告载荷可以既包含ISAKMP,又包含DOI特定数据,用来传送信息数据,例如:ISAKMP同位体的错误条件。可以在单一的ISAKMP消息中发送多个通告载荷。图15表示了通告载荷的格式。
出现在,或关心阶段协商的通告,由在ISAKMP消息中发起者和应答cookie对来进行标识。协议标识符,在这种情况下,ISAKMP和SPI的值为0,因为是由ISAKMP头中的cookie对来标识ISAKMP SA。如果通告先于密钥信息的完整交换,那么,通告将不会受到保护。
出现在,或关心阶段2协商的通告,由在ISAKMP 头中
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -