VPN的隧道协议主要有三种,PPTP,L2TP和IPSec,其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议;IPSec是第三层隧道协议,也是最常见的协议。

IPSec VPN基本概念

    IPSec是一个框架,它不是具体指某个协议,而是作为一个完整的vpn方案,由各种协议和其他功能组合而成。该框架涉及到的主要有加密算法、验证算法、封装协议、封装模式、密钥有效期等等。

    IPSecVPN建立的前提:要想在两个站点之间安全的传输IP数据流,它们之间必须要先进行协商,协商它们之间所采用的加密算法、封装技术以及密钥。分为两个阶段,第一个阶段是建立管理连接,第二个阶段是建立数据连接。

阶段一

    在两个对等体设备之间建立一个安全的管理连接,没有实际的数据通过这个连接。这个管理连接是用来保护第二阶段协商过程的。阶段一需要协商的内容:

1.双方使用什么加密算法进行加密(des、3des、aes)2.摘要(完整性)认证的方式(MD5、SHA)3.采用的密钥共享方式(预共享密钥,CA数字签名、公钥认证)4.使用的密钥强度DH组(越大加密强度越高)5.管理连接生存时间(默认一天,单位秒)6.协商模式(主模式或积极模式)

 

阶段二

    当对等体之间有了安全的管理连接之后,它们就可以接着协商用于构建安全数据连接的安全参数,这个协商过程是安全的,加密的。协商完成后,将在两个站点间形成安全的数据连接。阶段二需要协商的内容:​​​​​​​

1.传输模式(隧道模式还是传输模式)2.封装技术(ESP、AH)3.传输过程中数据的加密方式(des、3des、aes)4.传输过程中数据的认证方式(MD5、SHA)3.定义其他感兴趣的内容(定义需要使用IPSec的流量)

 加密和验证算法

加密算法

    一方传递消息之前,先使用加密算法和加密密钥;另一方收到消息后,使用相同的加密算法和加密密钥。对称加密算法,主要包括DES、3DES和AES。

图片

     验证算法

    一方传递消息之前,先使用验证算法和验证密钥对消息进行处理,得到签字画押的文书,即签名。然后将签名随消息一同发出去。另一方收到消息后,也使用相同的验证算法和验证密钥对消息进行处理,同样得到签名,然后比对两端的签名,如果相同则证明该消息没有被篡改。常用的验证算法有MD5和SHA系列。

图片

封装协议

     AH协议(AuthenticationHeader)​​​​​​​

1、AH是一种基于IP的传输层协议,协议号为51。2、只能支持认证 ,不支持加密 。3、对整个头部进行认证。

    其工作原理是在每一个数据包的标准IP报头后面添加一个AH报文头。AH对数据包和认证密钥进行Hash计算,接收方收到带有计算结果的数据包后,执行同样的Hash计算并与原计算结果比较,传输过程中对数据的任何更改将使计算结果无效,这样就提供了数据来源认证和数据完整性校验。AH协议的完整性验证范围为整个IP报文。

     ESP协议(EncapsulatingSecurity Payload)​​​​​​​

1、ESP也是基于IP的传输层协议,协议号是50。2、ESP支持加密和认证。3、ESP不对IP头的内容进行保护。

    其工作原理是在每一个数据包的标准IP报头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾(ESP Tail和ESP Auth data)。与AH不同的是,ESP将数据中的有效载荷进行加密后再封装到数据包中,以保证数据的机密性,但ESP没有对IP头的内容进行保护。

 

封装模式

    封装模式是指将AH或ESP相关的字段插入到原始IP报文中,以实现对报文的认证和加密,封装模式有传输模式和隧道模式两种。当安全协议同时采用AH和ESP时,AH和ESP协议必须采用相同的封装模式。

     传输模式

    在传输模式中,AH头或ESP头被插入到IP头与传输层协议头之间,保护TCP/UDP/ICMP负载。传输模式不改变报文头。AH协议的完整性验证范围为整个IP报文,ESP协议无法保证IP头的安全。

图片

     隧道模式

    在原IP头部之前插入ESP/AH头部,同时生成新的IP头部 。隧道模式使用新的报文头来封装消息,可以保护一个网络的消息,适用于两个网关之间通信,是比较常用的封装模式。

图片

可以发现传输模式和隧道模式的区别:

1、传输模式在AH、ESP处理前后IP头部保持不变,主要用于End-to-End的应用场景。

2、隧道模式则在AH、ESP处理之后再封装了一个外网IP头,主要用于Site-to-Site的应用场景。

IPSec检测机制

     Keepalive机制

    Keepalive机制通过IKE对等体周期性发送Hello消息来告诉对方自己处于活动状态。若在超时时间内没有收到Hello报文,则认为对端不可达。此时将删除该IKE SA及由它协商的IPSec SA。

    Keepalive机制默认关闭。配置相应参数后,keepalive机制生效。

     DPD机制

    DPD(Dead Peer Detection)机制不用周期性发送Hello消息,而是通过使用IPSec流量来最小化对等体状态检测所需消息报文的数量。若可以收到对端发来的流量,则认为对方处于活动状态;只有当一定时间间隔内没有收到对端发来的流量时,才会发送DPD报文探测对端的状态。若发送几次DPD报文后一直没有收到对端的回应,则认为对端不可达,此时将删除该IKE SA及由它协商的IPSec SA。

    实际应用中keepalive很少使用。主要原因是keepalive存在如下两个方面的缺陷:

    1、Keepalive机制周期性发送Hello报文将消耗大量的CPU资源,会限制可建立的IPSec会话的数量。

    2、Keepalive没有统一标准,各厂商的设备可能无法对接。

 

IPSec VPN应用场景及不足

     IPSec VPN的应用场景

1.Site-to-Site(站点到站点或者网关到网关):多个机构分布在互联网的不同的地方,各使用一个商务领航网关相互建立VPN隧道,企业内网(若干PC)之间的数据通过这些网关建立的IPSec隧道实现安全互联。

2.End-to-End(端到端或者PC到PC):两个PC之间的通信由两个PC之间的IPSec会话保护,而不是网关。

3.End-to-Site(端到站点或者PC到网关):两个PC之间的通信由网关和异地PC之间的IPSec进行保护。

图片

     IPSec VPN的不足

1. 组网不灵活。如果需要新增或调整用户的IPSec策略,需要调整原有IPSec配置,配置繁琐;

2. 需要安装客户端软件,导致兼容、部署、维护方面都比较麻烦;

3. IPSecVPN对用户的访问控制不够严格,只能进行网络层控制,无法细粒度的应用层资源的访问控制。

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐