VPN也就是虚拟专用网的简称,可以简单地理解为它是一种在不同网段间搭起一个私网的技术。VPN的目标就是让当前主机或当前网段内的主机可以和目标网段的主机进行通讯,就好像它们在同一网段内一样。
互联网安全协议(英语:Internet Protocol Security,缩写为IPsec),是一个协议包。它不是单个协议,而是由一些互相关联的,通过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议集合。它可以用在信息加密,密钥交换,信息安全等各个方面,VPN只是其中的一种应用方式。
IPsec VPN是指利用IPsec协议打造安全加密的专用通道(tunnel),来实现跨网安全通信的VPN技术。IPsec VPN可以打造站点到站点,端到端,或是端到站点的VPN,保证数据的安全传输,因此它的应用最为广泛。
IPsec能够起到的功能有:
为IPsec服务的总共有三个协议,分为两类:
IKE(Internet key Exchange)互联网密钥交换协议,它是针对密钥安全的,是用来保证密钥的安全传输、交换以及存储,主要是对密钥进行操作,并不对用户的实际数据进行操作。
这两个协议主要工作是如何保护数据安全,也就是如何加密数据,是直接对用户数据进行操作的。AH协议可以同时提供数据完整性确认、数据来源确认、防重放等安全特性,它常用摘要算法(单向Hash函数)MD5和SHA1实现该特性,实际应用中使用AH已经很少。相关工作主要是用ESP协议完成。ESP可以同时提供数据完整性确认、数据加密、防重放等安全特性,它通常使用DES、3DES、AES等加密算法实现数据加密,使用MD5或SHA1来实现数据完整性。
IPsec通常有一个发起方,一个响应方,需要IPSec进行保护的流量就称为兴趣流,具体认证过程是双方协商的。发起方和响应方协商的内容主要包括:双方身份的确认和密钥种子刷新周期、AH/ESP的组合方式及各自使用的算法,还包括兴趣流、封装模式等。发起方、响应方协商的结果就是SA。 IPsec的所有会话都是在通道中传输的,包括协商密钥,传递用户数据;这样的通道称为SA(Security Association),SA通常是包括密钥及密钥生存期、算法、封装模式、发起方、响应方地址、兴趣流等内容。SA有两个,分为IKE SA和IPsec SA,两个SA分别定义了如何保护密钥以及如何保护数据,其实这两个SA都是由IKE建立起来的,所以将IKE的整个运行过程分成了两个Phase(阶段),即:第一阶段和第二阶段。
IKE Phase One IKE Phase One的主要工作就是建立IKE SA(ISAKMP SA),IKE SA的服务对象并不是用户数据,而是密钥流量以及为IPsec SA阶段服务的IKE SA的协商阶段被称为main mode(主模式),但是IKE也是需要保护自己的流量安全的(这些流量并非用户流量),所以IKE SA之间也需要协商出一整套安全策略,否则后续的密钥和IPsec SA的建立就不能得到安全保证;IKE SA之间需要协商的套安全策略包括:
1、认证方式(Authentication,用于对合法对端的认证)
共总有Pre-Shared Keys (PSK),Public Key Infrastructure (PKI),RSA encrypted nonce三种,默认为PKI。
2、加密算法(Encryption)
总共有DES,3DES,AES 128,AES 192,AES 256,默认为DES。
3、Hash算法(HMAC,用于对秘钥和数据的认证)
总共有SHA-1,MD5,默认为SHA-1。
4、密钥算法
(Diffie-Hellman) Groups 1 (768 bit),Group 2(1024 bit),Group 5(1536 bit),默认为Groups 1 (768 bit)。
5、Lifetime 随用户定义,默认为86,400 seconds,但没有volume limit。 NAT穿越(NAT Traversal)默认为开启状态,无须手工配置。
IKE Phase Two IKE Phase Two的目的是要建立IPsec SA,由于IKE SA的服务对象并不是用户数据,而是密钥流量,以及为IPsec SA服务的,IKE SA是为IPsec SA做准备的,所以如果没有IKE SA,就不会有IPsec SA;IPsec SA是基于IKE SA来建立的,建立IPsec SA的过程称为 快速模式(quick mode)。IPsec SA才是真正为用户数据服务的,用户的所有流量都是在IPsec SA中传输的,用户流量靠IPsec SA来保护,IPsec SA同样也需要协商出一整套安全策略,其中包括:
1、加密算法(Encryption)
总共有DES,3DES,AES 128,AES 192,AES 256,默认为DES。
2、Hash算法(HMAC用于对数据的认证)
总共有SHA-1,MD5,默认为SHA-1。
3、Lifetime
随用户定义,默认为3600 seconds,即1小时;默认volume limit为4,608,000 Kbytes,即4.608 Gbyte。
认证(Authentication)
IKEV1会在VPN对等体之间采用认证机制(Authentication),认证可以有效确保会话是来自于真正的对等体而不是攻击者,因为如果最开始本身就是在和一个攻击者或黑客进行会话和协商,那么后面的所有工作都是白废,所以保证只和合法的对等体会话是非常重要的;IKEV1的认证方式有三种:
一、Pre-Shared Keys (PSK)
二、Public Key Infrastructure (PKI) using X.509 Digital Certificates
三、RSA encrypted nonce
其中Pre-Shared Keys (PSK)是最简单的,使用由管理员事先在双方定义好的密码,认证时,只有双方密码匹配之后,后续的工作才能继续;配置时通常可以包含IP地址,子网以及掩码,也可以指定为任意地址来代替固定地址,适用于IP地址不固定的环境。 PKI是使用第三方证书做认证,叫做Certificate Authority (CA),,里面包含名字、序列号,有效期以及其它可以用来确认身份的参数;证书也可以被取消。
密钥算法(Diffie-Hellman)
虽然IKE使用了认证来保证会话一定是来自合法的对等体,但是单靠认证也无法保证密钥的安全,因为数据还是有可能被第三者截获,所以IKE还必须有一套机制来保证密钥的安全,因为只要密钥泄露,就全玩完了。在密钥方面,IKE使用了称为Diffie-Hellman的算法在VPN对等体之间建立安全的密钥用来加密数据, Diffie-Hellman使用了极为复杂的数学算法,最后将在VPN对等体之间计算出只有它们自己才知道的密钥,即使他们的会话被第三者监控,也无法推算出密钥
IKEv2的具体认证过程是双方协商的。IKEv2简化了安全联盟的协商过程。IKEv2正常情况使用2次交换共4条消息就可以完成一个IKE SA和一对IPSec SA,如果要求建立的IPSec SA大于一对时,每一对SA只需额外增加1次交换,也就是2条消息就可以完成。IKEv2支持EAP身份认证。IKEv2可以借助认证服务器对远程接入的PC、手机等进行身份认证、分配私网IP地址。
发起方发送:本方DN,本方证书(如果用证书的话),本方信任的CA(可选),要求响应方提供的DN或CN(可选),认证数据(对 响应方在SA_INIT阶段发送的Nr以及目前为止交换的所有数据包的签名)
响应方发送:本方DN,本方证书,认证数据(对发起方在SA_INIT阶段发送的Ni以及目前为止交换的所有数据包的签名)
双方确认对方的认证数据有效后AUTH阶段完成
发起方发送:本方识别名,本方信任的CA,要求响应方提供的DN或CN
响应方发送:本方DN,本方证书,认证数据,EAP开始
发起方确认认证数据有效后开始EAP交互,直至响应方通知EAP成功
发起方发送:认证数据
响应方发送:认证数据
双方确认对方的认证数据有效后AUTH阶段完成