IPsec(InternetProtocolSecurity)是为IP网络提供安全协议和服务的集合,是VPN(VirtualPrivateNetwork,一种常用于虚拟专用网络的技术。IP数据包在公共网络中传输,如Internet,可能面临被伪造、窃取或篡改的风险,因为IP报文本身没有集成任何安全特性。通信双方通过IPsec建立IPsec隧道,IP数据包通过IPsec隧道进行加密传输,有效保证了Internet等不安全网络环境下数据传输的安全性。
什么是IPsecVPN?
VPN(VirtualPrivateNetwork,虚拟专用网)是一种在公用网络上建立专用网络的技术。之所以称之为虚拟网络,主要是因为VPN的两个节点之间并没有像传统的特殊网络那样使用端到端的物理链接,而是构建在Internet等公共网络上的逻辑网络。用户数据通过逻辑链接传输。根据VPN协议,常见的VPN类型有:IPsec、SSL、GRE、PPTP和L2TP等。IPsec是一种通用性很强的VPN技术,适用于各种网络互访场景。IPsecVPN是指利用IPsec实现远程接入的VPN技术,通过在公共网络上建立两个或两个以上私有网络之间的IPsec隧道,并通过加密和验证算法确保VPN连接的安全。
IPsecVPN
IPsecVPN保护点对点之间的通信。通过IPsecVPN,可以在主机、主机、网络安全网关之间或网络安全网关之间建立安全隧道连接(如路由器、防火墙)。其协议主要工作在IP层,在IP层对数据包进行加密和验证。IPsecVPN与其它VPN技术相比,安全性更高,数据在IPsec隧道中被加密传输,但是相应的IPsecVPN在配置和组网部署上更加复杂。
IPsec是如何工作的?
IPsec的工作原理大致可分为四个阶段:识别"感兴趣流"。网络设备收到报文后,通常会将报文的五元组等信息与IPsec策略相匹配,判断报文是否要通过IPsec隧道传输。需要通过IPsec隧道传输的流量通常被称为"感兴趣流"。协商安全联盟(SecurityAssociation,以下简称SA)。SA是通信双方对某些协商要素的协议,如双方使用的安全协议、数据传输的包装方式、协议使用的加密验证算法、数据传输的密钥等。只有SA建立在通信双方之间,才能进行安全的数据传输。识别出感兴趣流后,本端网络设备会向对端网络设备发起SA协商。在这一阶段,通信双方之间通过IKE协议先协商建立IKESA(用于身份验证和密钥信息交换),然后在IKESA的基础上协商建立IPsecSA(用于数据安全传输)。数据传输。IPsecSA建立成功后,双方就可以通过IPsec隧道传输数据了。IPsec为了保证数据传输的安全性,在这一阶段需要通过AH或ESP协议对数据进行加密和验证。加密机制保证了数据的机密性,防止数据在传输过程中被窃取;验证机制保证了数据的真实性和可靠性,防止了数据在传输过程中被模仿和篡改。如图所示,IPsec发送方会使用加密算法和加密密钥对报文进行加密,即将原始数据"乔装打扮"封装起来。然后发送方和接收方分别通过相同的验证算法和验证密钥对加密后的报文进行处理得到完整性校验值ICV。如果两端计算的ICV相同则表示该报文在传输过程中没有被篡改,接收方对验证通过的报文进行解密处理;如果ICV不相同则直接丢弃报文。IPsec加密验证过程,隧道拆除。通常,通信双方之间的对话老化(连接断开)意味着通信双方的数据交换已经完成。因此,为了节省系统资源,当空闲时间达到一定值时,通信双方之间的隧道将自动删除。
IPsec的3个重要协议-IKE/AH/ESP
IKE(InternetKeyExchange,因特网密钥交换),IKE协议是一种基于UDP的应用层协议,它主要用于SA协商和密钥管理。IKE协议分IKEv1和IKEv2两个版本,IKEv2与IKEv1相比,修复了多处公认的密码学方面的安全漏洞,提高了安全性能,同时简化了安全联盟的协商过程,提高了协商效率。IKE协议属于一种混合型协议,它综合了ISAKMP(InternetSecurityAssociationandKeyManagementProtocol)、Oakley协议和SKEME协议这三个协议。其中,ISAKMP定义了IKESA的建立过程,Oakley和SKEME协议的核心是DH(Diffie-Hellman)算法,主要用于在Internet上安全地分发密钥、验证身份,以保证数据传输的安全性。IKESA和IPSecSA需要的加密密钥和验证密钥都是通过DH算法生成的,它还支持密钥动态刷新。
AH(AuthenticationHeader,认证头)
AH协议用来对IP报文进行数据源认证和完整性校验,即用来保证传输的IP报文的来源可信和数据不被篡改,但它并不提供加密功能。AH协议在每个数据包的标准IP报文头后面添加一个AH报文头,AH协议对报文的完整性校验的范围是整个IP报文。
ESP(EncapsulatingSecurityPayload,封装安全载荷)
ESP协议除了对IP报文进行数据源认证和完整性校验以外,还能对数据进行加密。ESP协议在每一个数据包的标准IP报头后方添加一个ESP报文头,并在数据包后方追加一个ESP尾(ESPTrailer和ESPAuthdata)。ESP协议在传输模式下的数据完整性校验范围不包括IP头,因此它不能保证IP报文头不被篡改。AH和ESP可以单独使用,也可以同时使用。AH和ESP同时使用时,报文会先进行ESP封装,再进行AH封装;IPsec解封装时,先进行AH解封装,再进行ESP解封装。
IPsec使用的端口
IPsec中IKE协议采用UDP500端口发起和响应协商,因此为了使IKE协商报文顺利通过网关设备,通常要在网关设备上配置安全策略放开UDP500端口。另外,在IPsecNAT穿越场景下,还需要放开UDP4500端口。而AH和ESP属于网络层协议,不涉及端口。为了使IPsec隧道能正常建立,通常还要在网关设备上配置安全策略放开AH(IP协议号是51)和ESP(IP协议号是50)服务。
IPsecVPN和SSLVPN对比
IPsec和SSL是部署VPN时最常用的两种技术,它们都有加密和验证机制保证用户远程接入的安全性。从以下几个方面对IPsecVPN和SSLVPN进行对比:OSI参考模型工作层级OSI定义了网络互连的七层框架:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。IPsec工作在网络层,它直接运行在IP(InternetProtocol,互联网协议)之上。在应用层中,SSL工作是一种应用层协议,它对HTTP流量进行加密,而不是对IP数据包进行直接加密。
IPsec和SSL的工作层级
IPsecVPN的配置部署通常适用于SitetoSite(网站到网站)的组网,要求网站分别部署VPN网关或远程用户安装专用VPN客户端,因此配置部署的复杂性和维护成本都比较高。但SSLVPN通常适用于ClientoSite(客户端到站点)的组网,只要求远程用户使用支持SSL的标准浏览器安装指定插件即可进行访问,通过数据中心部署VPN网关进行集中管理和维护,因此配置部署更简单,维护成本相对较低。
SSLVPN
安全性IPSec工作在网络层,对站点间传输的所有数据进行保护。IPSecVPN要求远程用户安装专用的VPN客户端或在网站上部署VPN网关设备,用户访问将受到用户认证规则、安全策略规则或内容安全过滤方面的检查,因此安全性较高。而SSLVPN不要求安装专用客户端或接入站点部署网关设备,更容易受到安全威胁的影响。访问控制IPsec工作在网络层,不能基于应用进行细粒度的访问控制。而且SSLVPN在精细化访问控制方面更加灵活,网络管理员可以根据不同的应用类型将网络资源划分为不同的资源类型,每一类资源的访问权限都不一样。