IKEv2
一,参数符号介绍
AUTH:认证载荷。
CERT:数字证书。
CERTREQ:数字证书请求。
HDR:ISAKMP头。
SAi1:发起方的安全联盟及ike提议的参数。
SAr1:响应方的安全联盟及ike提议的参数。
KEi:发起方的交换的密钥关键材料。
KEr:响应方的交换的密钥关键材料。
Ni:发起方的伪随机数。
Nr:响应方的伪随机数。
SK[ ] :载荷被加密且受到完整性保护。
IDi:发起方的设备识别号。
IDr:响应方的设备识别号。
TSi:发起方的Child SA选择器。
TSr:响应方的Child SA选择器。
[IDr]:期望的响应方的身份信息(可选)。
二,IKEv2协商流程
2.2 1~2报文
[CERTREQ]表示可选的证书请求载荷可以包括在内。
发起方 响应方
—————— ——————
HDR,SAi,KEi,Ni ==》
《== HDR,SAr1,KEr,Nr,[CERTREQ]
2.2.1第一个包
HDR包含安全参数索引(SPI)、版本号、还有各种各样的参数。SAi1载荷包含IKE提议的加密算法,完整性算法,伪随机数生成函数,DH组号。KE中包含了供各种计算的关键材料数据。Ni是发送方发送的伪随机数。
如图所示是,IKEv2协商发起方发起的第一个报文,ISAKMP包中的HDR,SA,KE,伪随机数。
查看SA项中的详细信息,我贴上了ike proposal的配置内容,相比思路清晰很多。
[FW1]ike proposal 1 [FW1-ike-proposal-1]dis this 2022-10-13 06:30:11.820 # ike proposal 1 encryption-algorithm aes-256 dh group14 authentication-algorithm sha2-256 authentication-method pre-share integrity-algorithm hmac-sha2-256 prf hmac-sha2-256 # return
2.2.2第二个包
HDR为ISAKMP头部包含了双方的SPI。响应方从发起方的安全联盟中选择一个加密套件,选择的内容在SAr1的载荷中表达了响应方的选择。KEr的负载中包含了供算法使用的关键材料的数据。并将自己生成的伪随机数包含在Nr的负载中。
在图中标出了第二个包中包含的内容,而证书请求是可选项不一定出现。SA中的内容则是第一个包中SA的内容。
2.3 3-4报文
发起方 响应方
—————— ——————
HDR,SK{IDi,[CERT, ] [CERTREQ, ] [IDr, ] ==》
AUTH,SAi2,TSi,TSr}
《== HDR,SK{IDr,[CERT,] AUTH,SAr2,TSi,TSr}
第三个报文包含HDR及ISAKMP头部。SK{}的意思是其中的载荷已经被保护。IDi是发起方生命他的设备识别身份号。它可以在CERT负载中发送它的证书,是可选的。AUTH的作用是以加密的方式证明他的身份,对前面的信息进行认证和IPSec SA的参数协商。IKEv2支持RSA签名认证,预共享密钥认证以及扩展认证方法EAP。发起者通过在消息3中省去认证载荷来表明需要使用EAP认证。IDr是表示发起者能够指定哪个响应方进行对应的对话,这个字段可以识别多个身份。SAi2是发起child sa中有效载荷及ipsec提议。最后一个四段TSi和TSr为Child SA流量的选择器,及感兴趣流的协商。
第四个报文包含HDR,自身的身份识别号IDr,及可选参数一个或多个证书[CERT]可选参数,AUTH验证其标识和第二个消息的完整性,SAr2是响应方Child SA的有效负载。TSi,TSr流量选择器及感兴趣流。