刚接触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
a. 加密算法
b. 哈希算法
c. 认证方法 - 如证书认证、