Internet密钥交换协议(IKE)
这部分描述ike,因特网密钥交换协议,及其使用的参数。
加密和认证数据比较直接,唯一需要的是加密和认证算法,及其使用的密钥。因特网密钥交换协议(ike),用作分配这些对话用密钥的一种方法,而且在vpn端点间,规定了如何保护数据的方法。
ike主要有三项任务:
1 为端点间的认证提供方法
2 建立新的ipsec连接(创建一对sa)
3 管理现有连接
ike跟踪连接的方法是给每个连接分配一组安全联盟(sa)。sa描述与特殊连接相关的所有参数,包括使用的ipsec协议(esp/ah/二者兼有),加密/解密和认证/确认传输数据使用的对话密钥。sa本身是单向的,每个连接需要一个以上的sa。大多数情况下,只使用esp或ah,每个连接要创建2个sa,一个描述入站数据流,另一个描述出站数据流。同时使用esp和ah的情况中就要创建4个sa。
ike 协商
协商对话参数过程中包含许多阶段和模式。下面对其进行具体描述。
事件流程如下描述:
ike阶段1
·协商应该如何保护ike
ike阶段2
1 协商应该如何保护ipsec
2 源自阶段1的密钥交换生成一些新的加密信息,以提供vpn数据流加密和认证中使用的对话密钥。
ike和ipsec连接都有使用期限的限制,使用时间(秒)和数据大小(kb)来描述。使用期限用于防止连接建立的时间过长,从密码学的角度看,这是有必要的。
ipsec的使用期限一般要比ike的使用期限短。这样通过进行阶段2协商时,对ipsec连接再次加密。不必进行另外的阶段1协商直至到ike使用期限。
ike 协议
ike提议是如何保护数据的建议。发起ipsec连接的vpn网关,作为发起者会发出提议列表,提议表建议了不同的护连接的方法。
协商连接可以是通过vpn来保护数据流的ipsec连接,或是ike连接,保护ike协商本身。
响应的vpn网关,在接收到此提议表后,就会根据自己的安全策略选择最适合的提议,并根据已选择的提议做出响应。
如果没有找到可接受的提议,就会做出没有可接受提议的响应,并可能提供原因。
提议包括需要的全部参数,如加密和认证数据使用的算法,以及ike参数中描述的其他参数。
ike 阶段1 - ike安全协商
一个ike协商可分两个阶段。第一阶段(阶段1),通过确认远端网关是否具有匹配的pre-shared密钥,来进行2个vpn网关或vpn客户端的相互认证。
可是,因为我们不希望以明文方式公布太多的协商信息,所以我们还是要保护其余的ike协商信息。可以用前面描述的方法做到这一点,即通过发起者向响应者发送提议列表来完成。一旦这个工作完成,响应者选择并接受其中的一个提议后,将尝试着认证vpn的另一端,以确保它就是要认可的一端,并校验远端网关正是所期望的。
通过pre-shared密钥、证书或公开密钥加密能够完成认证。pre-shared密钥是目前最常见的认证方法。阿姆瑞特防火墙vpn模式支持pre-shared密钥和证书两种方式。
ike 阶段2 - ipsec安全协商
另一个协商是在阶段2进行的,详细说明了ipsec的连接参数。
在阶段2,我们将从阶段1的diffie-hellman密钥交换中摘取新的密钥信息,并将其作为保护vpn数据流的会话密钥。
如果使用pfs(完善的转发机密),每个阶段2协商中,会进行新的diffie-hellman交换。虽然这种操作比较慢,但可确保密钥不依赖于以前用过的任何密钥,不从同样的初始密钥材料中摘取密钥。这就保证了在不太安全的事件中,危及了某些密钥安全时,而不衍生出并发的密钥。
一旦完成阶段2协商,就会建立vpn连接,以备使用。
ike 参数
在协商过程中要使用许多参数。
下面对建立vpn连接需要的配置参数加以小结。我们强烈建议了解这些参数的作用后,再试着配置vpn端点,因为两个端点能够同意所有这些参数是非常重要的。
当安装2个阿姆瑞特防火墙作为vpn端点时,就可以减少在两个相同对话框中进行对比的过程。可是,使用不同供应商的设备时,就不是很容易了。
下面是对涉及ike协商的参数小结,后面是对这些参数的具体描述。
端点身份(endpoint identification)
本地和远端网络/主机(local and remote networks/hosts)
通道/传输模式(tunnel/transport mode)
远端网关(remote gateway)
主/挑战模式(main/aggressive mode)
ipsec协议(esp/ah/二者兼有)(ipsec protocol (esp/ah/both))
ike加密(ike encryption)
ike认证(ike authentication)
ike dh组(ike dh group)
ike使用期限(ike lifetime)
pfs打开/关闭/身份(pfs on/off/identities)
ipsec dh组(ipsec dh group)
ipsec加密(ipsec encryption)
ipsec认证(ipsec authentication)
ipsec使用期限(ipsec lifetime)
端点身份(endpoint identification)
这是表示vpn网关身份的一组数据。确切地说,它取决于使用的认证方法。使用pre-shared密钥时,它可以是一组16进制串或某种其他数据,用于识别vpn网关。为了使vpn网关可以通过相互的认证,远端网关必须拥有相同的pre-shared密钥。
用pre-shared密钥的认证是基于diffie-hellman算法。
本地和远端网络/主机(local and remote networks/hosts)
子网或主机间的ip数据流是受到vpn的保护的。
在lan到lan连接里,这里表示各自lan的网络地址。
如果使用漫游客户,远端网络可以设为0.0.0.0/0,这意味着漫游客户可从任何地方接入本网络。
通道/传输模式(tunnel/transport mode)
ipsec可以使用2种模式:通道或传输模式
通道模式表明数据流经过通道到达远端网关,远端网关将对数据进行解密/认证,把数据从通道中提取出来,并发往最终目的地。这样,偷听者只能看到加密数据流从vpn的一端发往另一端。在传输模式里,数据流无法通过通道传输,因此不适用于vpn通道。它可以用于保证vpn客户端到安全网关连接的安全,如ipsec保护的远程配置。
大多数配置中都设置为“通道”。
远端网关(remote gateway)
远端网关就是远端安全网关,它负责进行解密/认证,并把数据发往目的地。也可以把该字段设成“none”(无),迫使阿姆瑞特vpn把远端地址看作远端网关。这种做法在漫游访问方式里尤其有用,因为事先不知道远端vpn客户的ip地址。把它设置为none,只要认证正确,ip地址符合上面讨论的远端网络地址,就允许来自任何ip地址的任何人打开vpn连接。
传输模式不适用远程网关。
主/挑战模式(main/aggressive mode)
ike协商有2种操作模式:主模式和挑战模式。
二者的不同之处在于,挑战模式可以用更少的包发送更多信息,这样做的优点是快速建立连接,而代价是以清晰的方式发送安全网关的身份。
使用挑战模式时,有的配置参数如diffie-hellman和pfs不能进行协商,因此两端拥有兼容的配置是至关重要的。
ipsec协议(ipsec protocols)
ipsec协议描述了如何处理数据的方法。其中可以选择的2种协议是ah(认证头,authentication header)和esp(封装安全有效载荷,encapsulating security payload)。
esp具有加密,认证或二者兼有的功能。但是,我们不建议仅使用加密功能,因为它会大大降低安全性。
关于esp更多信息,请参看esp (encapsulating security payload)。
ah只有认证作用。与esp的认证之间的不同之处仅仅在于,ah可以认证部分外发的ip头,如源和目的地址,保证包确实来自ip包声明的来源。
关于ah更多信息,请参看认证头(authentication header)。
ike加密(ike encryption)
这里指定ike协商使用的加密算法,如算法种类和使用的密钥长度。
阿姆瑞特vpn支持的算法是:
1 aes
2 blowfish
3 twofish
4 cast128
5 3des
6 des
des只在与其他老的vpn设备共同操作时使用。应尽可能地避免使用des,因为des是一种老算法,我们认为其不是很安全。
ike认证(ike authentication)
这里指定ike协商使用的认证算法。
阿姆瑞特vpn支持的算法是:
1 sha1
2 md5
ike dh (diffie-hellman) 组
这里指定ike交换密钥时使用的diffie-hellman组。
阿姆瑞特vpn支持的diffie-hellman组有:
1 dh group 1 (768-bit)
2 dh group 2 (1024-bit)
3 dh group 5 (1536-bit)
密钥交换的安全性随着dh组的扩大而增加,但交换的时间也增加了。
ike使用期限(ike lifetime)
ike连接的使用期限。
使用期限以时间(秒)和数据量(kb)计算。超过其中任何一个期限时,就会进行新的阶段1交换。如果上一个ike连接中没有发送数据,就不建立新连接,直到有人希望再次使用vpn连接。
pfs
当pfs无效时,ike协商阶段1的密钥交换过程中会创建一个初始密钥材料。在ike协商阶段2中,从初始密钥材料提取加密和认证密钥。使用pfs(完善转发机密)时,总能够根据重读的密钥创建全新材料。如果有一个密钥符合,就不会用该信息衍生其他密钥。
pfs的使用有2种方式:第一种是密钥pfs,可在每个阶段2协商中交换新密钥。另一种是身份pfs,在此可以保护身份,方法是每完成一个阶段2的协商就删除阶段1的sa,保证使用相同的密钥对一个阶段2的协商进行加密。
通常不需要pfs,因为危及加密或认证密钥安全性的可能性微乎其微。
ipsec dh 组
这是与ike十分相似的diffie-hellman组。但是,diffie-hellman组仅用于pfs。
ipsec 加密
这里的加密算法用于保护数据流的传输。
使用ah或使用不加密的esp时,就不需要ipsec加密。
阿姆瑞特vpn支持的算法有:
1 aes
2 lowfish
3 twofish
4 cast128
5 3des
6 des
ipsec认证(ipsec authentication)
这里的认证算法用于保护数据流的传输。
使用不经认证的esp(尽管建议不使用未经认证的esp)时不使用ipsec认证。
阿姆瑞特vpn支持的算法有:
1 sha1
2 md5
ipsec使用期限(ipsec lifetime)
vpn连接的使用期限,用时间(秒)和数据量(千字节)表示。只要超出其中任何一个值,就要重新创建用于加密和认证的密钥。如果最后一个密钥期没有使用vpn连接,那么就会终止连接并在需要连接时从头开始重新打开连接。