跳转至

IKE


IKE(internet key exchange)用来建立SA隧道。
IKE主要有IKEv1(IKEv1.0)和IKEv2(IKEv2.0)两个版本。
IKEv1.1与IKEv1类似。

IKEv1

IKEv1分两个阶段协商,简称为IKE-阶段1IKE-阶段2.
下面介绍IKEv1.0的协商流程

阶段1

建立ISAMKP管道,为阶段2做准备。

协商模式

第一阶段有两种协商模式可选,主要模式侵略模式

主要模式


主模式一共使用6条消息完成协商。过程如下:

  • 1.协商算法
    • 哈希算法:使用那种哈希算法,md5或者sha.
    • 认证:每个通信实体需要证明自己得身份。通过预共享密钥或者数字证书。
    • DH(diffie Hellman)group: 决定将要交换得密钥得长度。
    • 生命周期:阶段1建立得管道存在时间,一般为1天。
    • 加密算法:DES,3DES,AES.
  • 2.DH key交换

    完成参数交换后,两个实体将会交换随机数,得到以一共随机数。

  • 3.认证

    使用预共享密钥或者x590证书认证。

消息流程
  • 第一条消息

    主要给出版本信息,工作模式,以及需要协商得参数。

  • 第二条消息

    根据消息一协商

  • 第三条消息

    DH密钥交换。

  • 第四条消息

    提供自己得DH nonces.

    此时双方可以计算DH参数。

  • 第五六条消息

    最后两条消息主要是做认证使用,
    因为消息已经加密,无法看到明文。


侵略模式

使用3条消息.主要是在前两条消息,增加了DH交换需要得参数。

  • 第一条消息

    消息1带了需要协商得参数,并且带了DH nonces和标识。

  • 第二条消息

    认证时使用得hash参数也带上了。

  • 第三条消息

    初始方发送自己得认证hash值,完成身份认证。

IKE阶段2

在阶段1协商的隧道上建立数据报文加密隧道。

协商参数

  • IPsec protocol:AH or ESP?
  • 封装模式:传输模式或隧道模式
  • 加密算法:DES,3DES,AES
  • 认证:MD5,SHA
  • 存活期:管道2得存活时间,当超时后,需要重新刷新密钥相关参数。
  • (可选)DH 交换:用于PFS(Perfect Forward Secrecy)。
  • PFS 是可选得,强制实体在IKE 阶段2使用DH 密钥交换产生新的共享密钥。

阶段二的只有一种协商模式,即快速模式


IKEv2

IKE phase1得交互叫做IKE_SA_INIT交换,
IKE phase2 的交互叫做IKE_AUTH交换。

IKEv2改进

在RFC4306附录中,提出了一下问题:

--更少的RDC:IKE之前的实现已经使用至少3个RFC文档。IKV2将整合这些,并加上NAT穿越和防火墙穿越。

--标准流动性支持:在IKEv2中有一个标准扩展,名为MOBIKE。它用来支持流动性和多宿主用户。

--NAT穿越:IKE和ESP封装后,使用UDP,端口4500,完成NAT穿越和防火墙穿越。

--SCTP支持:在VoIP中使用sctp协议

--简单消息交互:IKEv2使用4条消息交互,IKEv1使用8条消息交互。每个都有优缺点。

--更少的加密机制:

--可靠性和状态管理:

--拒绝访问式攻击恢复:

--内置keepalive机制

协议扩展:

--IKE会话恢复:恢复一个失败的IKE/IPsec ‘会话,不需要再重新协商。

--IKE重定向:可以再多个IKE终端间实现负载均衡。

--IPsec流量可见:只认证不加密ESP,便于中间设备分析流量

--EAP相互认证:使用现代的基于密码的认证方法。

--冲突奔溃检测:当对端奔溃后,在最短时间内能检测到。

--高可用性:在集群间实现IKE/IPsec-level同步,减少failover事件后的连接下降的可能性。

参考

RFC 2408 - Internet Security Association and Key Management Protocol (ISAKMP)
RFC 2409 - The Internet Key Exchange (IKE)
RFC 3947 - Negotiation of NAT-Traversal in the IKE
RFC 4109 - Algorithms for Internet Key Exchange version 1 (IKEv1)
RFC 4301 - Security Architecture for the Internet Protocol RFC 4306 - Internet Key Exchange (IKEv2) Protocol
RFC 5996 - Internet Key Exchange Protocol Version 2 (IKEv2)
RFC 7296 - Internet Key Exchange Protocol Version 2 (IKEv2)