1.IPSEC 提供了下列服务:
数据的机密性----------这是通过加密来防止数据遭受窃听攻击。
数据的完整性和验证--------通过HMAC功能来验证数据包没有被损坏,并通过一个有效地对等体收到。
抗回放检测--------这是通过在数据包中包括加密的序列号确保来自中间人攻击设备的抗回放攻击不能发生。
对等体验证--------这是为了在两个对等体之间传递之前。对方就是"他说它是"的设备。设备验证支持对称欲共享密钥、非对称欲共享密钥、以及数字证书。远程访问连接也支持使用XAUTH的用户认证。
2.IPSEC VPN的基本过程:
ISAKMP/IKE阶段1
1>一个VPN网关对等体发起了到另外一个远端的VPN网关对等体的会话。
2>ISAKMP/IKE阶段1开始,两个对等体协商如何保护管理连接。
3>DH用于在管理连接上对加密算法和HMAC功能安全地共享密钥。
4>在安全的管理连接上执行设备认证。
ISAKMP/IKE阶段2
5>对等体协商参数和密钥消息来保护数据连接(通过安全的管理连接来实现的,或者可选性的再次使用DH)
6>建立数据连接,VPN网关现在可以通过数据连接保护用户的流量。阶段2结束。
3.远程访问IPSEC VPN的基本过程
ISAKMP/IKE阶段1
1>远程访问客户发起到远程VPN网关的连接。
2>当用户和VPN网关协商如何保护管理连接时,IKE阶段1开始。
3>DH用于在管理连接上对加密算法和HMAC功能安全的共享密钥。
4>在安全的管理连接上实行设备认证。
ISAKMP/IKE阶段1.5
5>可选的,执行用户认证。这是通过XAUTH标准实现的。VPN网关要求用户输入用户名和口令。
6>可选的,IPSEC网关会把策略推送到客户方,厂商在实施的时候可能存在私有性,例如,一个非cisco客户可能不理解被一个cisco VPN网关推送的策略。在cisco实施中,客户可以推送一个内部的IP地址,一个域名、DNS和WINS服务器的地址、隧道分离的策略、防火墙的策略和其他的连接策略。
7>可选的,可以发生反向路由注入。这就是为什么客户可以可选的通过IPSEC的管理连接向VPN的网关注入路由选择信息,而VPN网关可以将这个路由选择信息注入到内部的的网络。
ISAKMP/IKE阶段2
8>阶段2开始:客户和VPN网关协商参数和密钥信息来保护数据连接。
9>数据连接建立,阶段2结束:VPN网关现在可以通过数据连接保护用户数据了。
10>最终与管理和数据连接相关的生存周期将会到期,这些连接将会重新构建。
4.加密算法
加密算法中包括对称加密和非对称加密。
对称加密的优点是加密速度快,加密后的数据少,缺点是密钥交换不安全。主要有DES、3DES、AES等
非对称加密的优点是密钥交换安全。既能用于既能用于加密,也能用于认证。缺点是加密缓慢,加密后数据较长。主要有RSA等。
5.数据包认证(HMAC功能+DH算出的密钥)
VPN主要启用散列消息验证码(HMAC)功能来实现数据包的认证和设备的认证(对数据包的完整性认证和源认证)。通常散列函数有一个缺点:如果一个窃听者可以截获被发送的数据,他可以很容易的产生关于这个数据的签名。HMAC通过一个共享密钥来产生数字签名从而克服了这个问题。只有知道密钥的另一方才能建立并检验发送的数据的签名。这里只能确定数据是完整的,没有确定源或目的就是想要建立连接的那位,因为虽然他们的密钥是相同的,但是这个密钥是通过DH方法交换来的,DH也不能确定对方是其应该交换密钥的一方。也就是说这里的源或者目的可能是攻击者。
HMAC的基本及制图如下:
HMAC的另一个问题就是当你的数据在两个设备之间发送的时候,你的签名可能被一个中间设备破坏。例如一个地址转换设备。或者需要更改QOS信息。解决方法就是:在使用HMAC功能计算数字签名的时候不要包括数据包中某些字段。这些字段包括IP数据包中下述字段:IP地址字段、存活时间字段、服务类型、TCP或者UDP端口号字段和可能的其他字段。
6.密钥交换(DH算法)
DH算法可以分为1、2、3、4、5、7、14、15等类型。Cisco路由器只是支持1、2、5三种。
DH算法可以是直线算法或椭圆曲线两种。
DH算法能够动态的、安全地、带内的方式来周期性的刷新密钥。将实际管理它们的时间缩小到一个很少的时间。
DH算法为数据加密和数据完整性认证(HMAC)提供密钥
DH密钥交换过程是在一个不安全的网络上进行的,公钥不能确定发送到了想要发送的对等体上。也就是说存在中间人攻击。所以还需要进行对等体的认证也就是设备认证。
7.设备认证和用户认证(这部分进行了源认证)
设备认证通常使用下面三种方法:
欲共享对称密钥(HMAC功能+配置的欲共享密钥)
欲共享非对称密钥
数字证书
远程访问VPN增加了一个额外的特性:将用户放入到组的能力,这个时候的欲共享密钥就是组欲共享密钥,对组进行认证,同一组的用户认证VPN网关使用相同的欲共享密钥,VPN网关使用与共享密钥认证一个组。但是如果VPN网关要认证一个用户,则要进行用户认证,也就是用户需要提供一个用户名和密码。这是在VPN1.5阶段XAUTH中进行的。