IKEv2的认证数据生成过程

在IKEv2的第三个消息和第四个消息中,双方都会向对方发送一个AUTH Payload来证明自己的身份。这个过程是通过对各自发送的第一个消息进行签名来实现的。比如,如果一个Responder想证明自己的身份,那么,当它发送IKE_SA_INIT消息时,需要把这个消息完整的缓存下来。然后在发送IKE_SA_AUTH之前,将缓存的IKE_SA_INIT消息和Nonce_I,以及它自身的ID的MAC值连接到一起,再用PRF算法算出一个结果,便是AUTH值。


如下:

1. 计算自己的ID MAC

MACedIDForR =prf( SK_pr, IDType | RESERVED | RespIDData )

2.     计算AUTH值

AUTH_DATA = prf( SK_pr, RealMessage2 | NonceIData |MACedIDForR )

这里RealMessage2代表Responder发送的IKE_SA_INIT消息,因为它在所有的消息序列中是第二个消息,所以叫RealMessage2。NonceIData是Initiator发过来的Nonce值。

 

类似的,Initiator计算AUTH DATA过程如下:

3.     计算自己的ID MAC

MACedIDForI =prf( SK_pi, IDType | RESERVED | InitIDData )

4.     计算AUTH值

AUTH_DATA = prf( SK_pi, RealMessage1 | NonceRData |MACedIDForI )

这里RealMessage1代表Initiator发送的IKE_SA_INIT消息,NonceRData是Responder发过来的Nonce值。

 

但是如果双方选择的认证方式是共享密钥,那么计算AUTH DATA时会有一点区别:

  For the initiator:

     AUTH = prf( prf(Shared Secret, "Key Pad forIKEv2"),

                      <InitiatorSignedOctets>)

  For the responder:

     AUTH = prf( prf(Shared Secret, "Key Pad forIKEv2"),

                      <ResponderSignedOctets>)

 

在计算最终的AUTH DATA时,如果认证方式是Pre-shared key,那么prf算法的第一个参数将不再使用SK_pi/SK_pr,而是用prf( Shared Secret, “Key Pad for IKEv2” )作为prf的密钥。

 

最后一点是关于EAP的,如果双方协商使用EAP认证,那么EAP过程结束后,双方还会发送AUTH消息。如果使用的EAP方法是key-generation的,那么在计算AUTH DATA时必须用MSK (Master Shared Key) 来替换共享密钥。如果是non-key-generating方法,那么用SK_pi和SK_pr来替换共享密钥。
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值