需求:IPSec在VPN对等体设备实现的安全特性,如数据的机密性,完整性,验证等。
效果:对公网上传输的数据进行加密,即使黑客通过某种窃听工具截获到数据,也无法了解数据信息的含义;也可以实现数据传输双方的身份验证,避免黑客伪装成网络中的合法用户攻击网络资源。
理论: VPN概述
VPN起源是为了解决明文数据在网络上传输带来的安全隐患而兴起的。TCP/IP协议簇中的很多协议都采用明文传输,如telnet,ftp,ftfp等。
VPN可以对公网上传输的数据进行加密,即使黑客通过某种窃听工具截获数据,也无法了解数据信息的含义,也可以实现数据传输双方的身份验证,避免黑客伪装成网络中的合法用户攻击网络资源。
VPN就是在两个网络实体之间建立的一种受保护的连接,两个实体可以通过点到点的链路直接相连。
受保护可以理解为加密技术防止数据被窃听,数据完整性验证防止数据被破坏,篡改,通过认证机制实现通信方身份确认,防止通信数据被截获和回放。
VPN技术定义了何种流量需要被保护,数据保护的机制,数据的封装过程。
VPN的模式与类型
VPN的连接模式(两种模式实际上定义了两台实体设备之间传输数据时所采用的不同的封装过程)
传输模式:在整个VPN的传输过程中,ip包头没有封装,就是从源端到目的端数据始终使用原有的ip地址进行通信。而传输的时机数据载荷被封装在VPN报文。对于VPN传输而言,VPN的报文封装过程就是数据的加密过程。
隧道模式:VPN设备将整个三层数据报文封装在VPN数据内,再为封装后的数据报文添加新的ip包头,新ip包头封装的VPN设备的ip地址信息,所以被截获数据后,无法了解实际载荷数据的内容,也无法知道时机通信双方的地址,多用于总公司和分公司跨广域网的通信。
VPN的类型
站点到站点VPN:通过隧道模式在VPN网关之间保护两个或更多的站点之间的流量,站点间的流量通常是指局域网之间的通信流量,L2L VPn多用于总公司与分公司之间在internet上传输重要数据。VPN网关中间的网络是透明的,总公司的终端设备通过VPN连接访问分公司的网络资源,数据包封装的ip地址都是公司内网地址。
远程访问VPN:通常用于单用户设备与VPN网关之间的通信连接,更适用于隧道模式。一般单一用户更容易成为黑客攻击的对象。实现隧道模式的通信,需要给远程客户端分配两个ip地址:一个是它自己的NIC地址,另一个是内网地址。远程客户端在VPN建立过程中同时充当VPN网关和终端用户。
VPN技术
加密算法就是将数据转换成另外一种形式的过程。利用算法可以实现数据加密,数据完整性验证,身份验证等。
对称加密算法
使用同一密钥。
发送方和接收方共享密钥
发送方的VPN网关通过加密函数将明文加密为密文数据
接受方的VPN网关通过解密函数将数据还原为明文数据
DES算法:IBM的研发产品,密钥长度为64位,8位用于奇偶校验,实际有效长度为56位
3DES算法:NIST在1999年研发的3DES,3DES使用了三个阶段的DES,同时使用三个不同的56位密钥。
AES算法:支持128,196,256为密钥长度,有效的密钥长度可达上千位。AES算法采用了更为高效的编写方法,对CPU的占有率较少。
非对称加密算法:使用公钥和是要两个不同的密钥进行加密和解密。用一个密钥加密的数据仅能被另一个密钥解密,且不能从一个密钥推导出另一个密钥。
通信双方交换公钥
发送方的VPN网关通过公钥将明文数据加密成为密文数据
接收方的VPN网关通过自己的私钥解密数据。整个过程私钥没有在网络中传输。
非对称加密的计算效率要比对称加密算法低得多。
DH算法:RSA(使用三位科学家名字的首字母命名),DSA(数字签名算法),DH。DH一般被用于实现IPSec中的internet密钥交换(IKE)协议。
原理:通信双方交换公钥后,会用自己的密钥和对方的公钥通过DH算法计算出一个共享密钥,然后双方会使用这个共享密钥加密传输数据。DH算法支持可变密钥长度,CIsco的路由器只支持DH组1,2,5.DH组1的有效密钥长度为768,DH组2的有效密钥长度为1024,DH组5的有效密钥长度为1536。
密钥交换:带外共享(磁盘,U盘)带内共享(Telnet.SSH等连接方式通过网络传输密钥) 解决这个问题:可以通过非对称加密算法(DH算法)加密对此称加密算法的密钥,再用对称加密算法加密实际传输的数据。
HAMC(散列消息验证码)实现验证功能
VPN领域,对数据进行来源和完整性验证通常是借助散列算法实现的,HMAC功能专门用来处理数据即数据包相关的验证。它使用了一个共享的对称密钥来产生固定的输出结果--数字签名。HMAC属于单向散列算法的一个字节。
原理
双方共享执行hash算法密钥
路由器a的用户数据与共享密钥通过hash算法得到数字签名
路由器a将数字签名和用户数据一同传送给路由器b
路由器b执行相同的算法过程得到数字签名
路由器b对比数字签名是否一致
MD5和SHA
SHA(安全散列算法)是有NIST开发,一般称为SHA-啊,可以产生160位的签名。
IPSec VPN
对等体建立IPSec VPN连接步骤:
流量触发IPSec:一旦有VPN流量经过VPN网关连接过程就开始建立。
建立管理连接:ISAKM/IKE阶段1构建一个安全的管理连接,只是一个准备工作,不被用来传输实际的数据。明确设备是如何实现验证,使用什么加密及认证算法,使用那种DH组等
建立数据连接:ISAKM/IKE阶段2就是用来完成,数据连接用于传输真正的用户数据
ISAKMP/IKE阶段1
定义了消息的格式和密钥交换协议的机制,以及构建连接的协商过程。IKE是一个混合型协议,定义了密钥的产生,共享和管理。IKE使用UDP端口500.
ISAKEMP/IKE阶段1的交换过程有两个模式:主动模式和积极模式。积极模式比主模式快,但是相对不安全。
VPN的类型是站点还是远程访问,都需要完成三个任务;
协商采用何种方式建立管理连接
通过DH算法共享密钥信息
对等体彼此身份验证
这三个任务通过六个数据报文完成,前两个数据包用于协商对等体间的管理连接使用何种安全策略;中间两个数据包通过DH算法产生并交换加密算法和HMAC功能所需的密钥;最后两个数据包使用预共享密钥等方式执行对等体间的身份验证。前四个报文为明文传输,从第五个报文开始为密文传输,前四个数据包通过各种算法最终产生的密钥用于第五,第六个数据包即后续数据的加密。
交换ISAKM/IKE传输集:传输集就是一组用来保护管理连接的安全措施。主要包括:
加密算法:DES,3DES,AES
HMAC功能:MD5或SHA-1
设备验证类型:预共享密钥
Diffic-Hellman密钥组:Cisco支持1.2.5.7
管理连接的生存周期
设备可能不止一个传输集,如果设备发起连接,将传输集列表发送到远端对等体设备并进行依次对比,直到匹配。如果对比所有传输集后没有发现匹配的传输集,管理连接将无法建立,IPSec连接失败。两端设备都只有一个传输集,且一端配置DES加密算法,另一端配置了3DES加密算法,就会,也会导致IPSec建立失败;只有两端配置相同的加密算法,才建立。
通过DH算法实现密钥交换:协商管理连接的按,而共享密钥的产生与交换就要通过Diffic-Hellman来实现。DH算法属于非对称加密算法,因此他将产生公钥/私钥对的组合,且彼此共享公钥。VPN对等体用对方的公钥和自己的私钥通过一种功能运算常说一个安全的共享密钥。
实现设备间的身份验证:最常用的方法就是预共享密钥,对等体间通过带外方式共享密钥,并存储在设备的本地。设备验证的构成可以通过加密算法或HMAC功能两种方法实现,而加密算法很少用于身份验证,多数情况会通过HMAC功能实现。
Cisco路由器设备IPSec VPN管理连接建立构成的配置
配置安全策略(ISAKMP/IKE策略包含策略的序列号,加密算法,散列算法,验证方法,DH组,生存周期)
crypto isakmp policy priority
crypto isakmp policy命令用于建立ISAKMP/IKE的管理连接策略,每个策略对应一个序列号(1~10000),序列号越低,优先级越高。
encryption { des | 3des | aes}
encryption命令用于指定管理连接建立的最后两个数据报文采用何种加密算法
hash {sha | md5}
hash命令指定了验证过程采用HAMC的功能
authentication {pre-share | rsa-encr | rsa-sig}
authentication命令指定了设备身份验证的方式。
group {1 | 2 | 5}
gourp命令用于指定DH密钥组,默认使用DH1,组号越大,算法越安全,占用设备资源也多
lifetime seconds
lifetime命令指定管理连接的生存周期,默认为86400s
show crypto isakmp policy
查看安全策略配置
配置预共享密钥
crypto isakmp key {0 | 6} keystring address peer-address {subnet_mask}
0表示密钥为密文,6表示密钥被加密
keystring表示密钥的具体内容
perr-address表示对端与之共享密钥的对等体设备地址
subnet_mask为可选迷恋,默认使用255.255.255.255做掩码
可以通过show crypto isakemp key命令查看,通过show run查看的密钥配置中仍然显示明文密码。
增加安全性,增加一个选项来加密密钥,但要求设备的ios镜像必须支持AES加密
key config-key password-encrypt
密钥至少为八个字母长度