kk Blog —— 通用基础

date [-d @int|str] [+%s|"+%F %T"]

IKE SA和IPSec SA的区别

https://blog.csdn.net/jiangwlee/article/details/7395903

刚接触IPSec的时候,一直很奇怪,为什么要做两阶段的协商?先协商出来一个IKE SA,然后再IKE SA的基础上协商出来一个IPSec SA。直接一步到位协商出IPSec SA不是很好吗?但是在实际应用中,直接协商IPSec SA就显得不是那么有效率了。打个比方,某公司A有个子公司B,为了方便子公司B的员工访问总公司A的内部数据,在双方的安全网关上部署VPN,使用IPSec进行数据加密。如果双方都使用IKEv1,而且只有一个协商阶段,直接协商出IPSec SA,那么每一次协商可能都需要6个Main Mode消息和3个Quick Mode消息。这样会产生大量的协商消息,降低了网络的利用率。而如果采用两阶段协商,只需要在网关间协商出一个IKE SA,然后用这个SA来为应用数据流协商IPSec SA,那么每个IPSec SA只需要一个Quick Mode即可。所以,两阶段的好处在于,可以通过第一阶段协商出IKE SA用作IPSec SA协商的载体,从而减少IPSec SA协商的开销。

那么IKE SA和IPSec SA的区别在哪儿呢?从定义上来看,IKE SA负责IPSec SA的建立和维护,起控制作用;IPSec SA负责具体的数据流加密。比如一个HTTP请求,可能最终需要用到IPSec SA定义的ESP协议和相关ESP加密算法。

IKE SA和IPSec SA协商的内容也是不一样的,如下:

1. IKEv1的IKE SA协商内容

参考:http://www.iana.org/assignments/ipsec-registry

  1. 加密算法

  2. 哈希算法

  3. 认证方法 - 如证书认证、Pre-shared Key

  4. PRF算法 - 用来产生加解密密钥

  5. DH算法和参数

  6. Key长度 - 某些算法,如AES-CBC的key长度是可变的,可以通过Attribute来协商Key长度

  7. SA的生存时间

2. IKEv2的IKE SA协商内容

参考:http://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xml

  1. 加密算法

  2. PRF算法

  3. Integrity算法

  4. DH算法

  5. ESN - Extended Sequence Numbers

3. IPSec SA的协商内容

参考:http://www.iana.org/assignments/isakmp-registry

  1. ESP加密算法或AH完整性算法

  2. 加密模式

  3. 认证算法

  4. SA生存时间

  5. 压缩算法

  6. DH算法和参数

  7. 加密密钥长度

  8. 认证密钥长度

以上均有部分内容是可选的,不是所有的参数都必须协商。上面的三个链接里都详细描述了IANA对每个阶段SA协商用到的参数,比如算法的编号等等。