版权声明:如有需要,可供转载,但请注明出处:https://blog.csdn.net/City_of_skey/article/details/86618784

目录

1、ipsec协议简介

2、IPSec工作模式

2.1、传输模式

2.2、隧道模式

3、ipsec通信协议

3.1、AH

3.2 ESP

4、IPSec建立过程

4.1、安全联盟SA

4.2、IKE

4.2、SAD

4.3、SPD

4.4、IKE协商过程

5、IPSEC阶段建立

5.1、第一阶段

5.1.1、主模式

5.1.2、野蛮模式

5.2、第二阶段


1、ipsec协议简介

IPSec是在网络层构建的安全虚拟专有网络,通过在数据包中插入一些预定义的头部,实现对网络层以上的协议数据安全。不同于ssl应用层的加密。IPSec内核加密支持的库是xfrm。

ipsec安全体系

 

ipsec支持的协议主要有ESP、AH,通过IKE协商建立隧道对数据包进行加密。

ipsec协议族

从ipsec协议族图可以概况ipsec的整个过程。

ipsec数据流程图

当数据包到达网络层就会在SPD安全策略数据库中匹配,是否需要进行ipsec加密,如果需要就进行ipsec加密,如果不需要就走正常的数据包发送流程。

 

2、IPSec工作模式

2.1、传输模式

传输模式是两个主机之间建立IPSec虚拟安全通道,传输模式没有改变原IP,只是在原IP和数据之间插入了一个IPSec头部,然后对后面的数据部分进行加密。

传输模式

 

2.2、隧道模式

隧道模式是包原始的整个数据包封装加密保护,添加一个新的IP头部,IP信息也没有暴露,这样使数据传输更加安全。隧道模式一般用在站点和站点之间建立连接安全通道,两个站点下面的私有IP可以利用安全隧道通信。

隧道模式数据结构图

隧道模式比传输模式更加安全,因为两端的通信IP没有暴露。

隧道模式网络拓扑图

3、ipsec通信协议

IPsec通信协议由两个不同的协议组成,分为是AH(Authentication Header)和ESP(Encapsulated Security Payload),两个图通的协议负责不同的功能,AH协议的功能是”完整性验证”,ESP协议的功能时”完整性验证与加密”

3.1、AH

AH协议(Authentication Header,认证包头) AH提供的安全服务: (1)数据完整性:通过哈希(如MD5,SHA1)产生的校验来保证; (2)数据源认证:通过在计算机验证时加入一个共享秘钥来实现; (3)抗重放服务:AH报头中的序列号可以防止重放。 AH不提供任何保密性服务:它不加密所保护的数据包。 AH提供对数据包的保护时,它保护的是整个IP数据包(易变的字段除外,如IP头中的 TTL和TOS字段)

传输模式AH数据结构

3.2 ESP

ESP(Encapsulating Security Payload,封装安全有效载荷)提供加密和完整性验证两项功能。 ESP通常使用DES,3DES,AES等加密算法来实现数据加密,使用MD5或SHA1来实现 数据完整性验证。

传输模式ESP数据结构

ESP协议和AH协议比较:

ESP和AH比较
安全性AHESP
协议号5051
数据完整性校验支持支持(不验证IP头)
数据源验证支持支持
数据加解密不支持支持
抗重服务支持支持
NAT-T(nat穿透)不支持支持

4、IPSec建立过程

4.1、安全联盟SA

SA(Security Assocition)是通信对等体间对某些要素的约定,通信的双方符合SA约定的内容,就可建立SA。SA由三元组唯一标示,包括:安全参数索引,目的IP地址,安全协议号。

4.2、IKE

为了解决固定秘钥模式中VPN不安全的问题,就有了Ineternt Key Exchange(因特网秘钥交互协议)简称IKE,在IKE架构中只要设置加密算法和验证算法,IKE会定时生成加密秘钥,以上两部分加起来就是Security Assocition(安全联盟)简称SA。

IKE有三个协议组成:

ISAKMP:定义了信息交互的体系结构,也就是消息格式

SKEME:实现公钥加密认证机制

Oakey:实现两个Ipsec对等体间达成加密秘钥的基本模式机制

ISAKMP是基于UDP协议端口是500。

4.2、SAD

Security Assocition(安全联盟)SA:

SA是通信对等体对某件事情的约定,通信双方符合约定就建立了SA。SA决定了数据包保护的IPsec协议、加密秘钥、认证秘钥、秘钥时间等。SA是单项的两台主机A、B之间用IPsec加密传输会建立两个SA,一条是A->B,还有一条是B->A。会建立一个SAD数据库,SAD数据库中有的参数:SPI值、目的IP、AH/ESP协议、认证算法、加密算法、传输模式。

SAD数据库
SPI目的IP协议AH认证算法AH加密秘钥工作模式
0x1000192.168.100.100AHhmac-sha11111Transport

如上SAD数据库定义了目的IP是192.168.100.100,SPI是0x1000的用AH协议封装认证算法是hmac-sh1,AH加密秘钥是1111、工作模式是传输模式来加密封装数据包。

4.3、SPD

SPD的内容是用来存放IPsec的规则,这些规则定义了哪些数据流需要使用IPsec。这个数据库的内容有目的端IP、来源端IP、目的端端口、来源端端口、协议AH/ESP

                                                                                          SPD数据库 

来源端IP目的端IP执行协议来源端口目的端端口工作模式
192.168.0.1192.168.2.1AHAny110Transport

如上表所示,源地址是192.168.0.1,源端口是任意,目的地址是192.168.2.1,目的端口是110的数据流用Transport模式AH协议封装加密。

4.4、IKE协商过程

IKE为IPsec协商建立密钥,供AH/ESP加密和验证使用。在IPsec通信双方之间,动态的建立安全联盟(SA),对SA进行管理和维护,IKE经过两个阶段为IPsec进行密钥协商并建立安全联盟

5、IPSEC阶段建立

5.1、第一阶段

第一阶段交换:通信各方彼此间建立了一个已通过身份验证和安全保护的通道,此阶段的交换建立了一个ISAKMP安全联盟,即ISAKMP SA,也可称为IKE SA。 第一阶段有两种协议模式:主模式协商、野蛮模式协商。

第一阶段流程图

 

5.1.1、主模式

主模式数据交互过程

消息1:

第一个消息由隧道的发起者发起,携带的参数如:机密机制-DES,散列机制-MD5-HAMC,Diffie-Hellman组-2(即DH-2),认证机制-预共享。 消息2:第二个消息是应答方对发送方信息的应答,当应答方查找SPD查找到发送方相关的策略后,将自己的信息同样发送给对端,当然,应答方在发送传输集时将会生成自己的cookie并添加到数据包中。

消息3:

当完成第一步骤双方的策略协商后,则开始第二步骤DH公共值互换,随数据发送的还包含辅助随机数,用户生成双方的加密秘钥。

消息4:

应答方同样将本端的DH公共值和Nonce随机数发送给对端,通过消息4传输。

消息5:

第五个消息由发起者向响应者发送,主要是为了验证对端就是自己想要与之通信的对端。这可以通过预共享、数字签名、加密临时值来实现。 双方交换DH公共值后,结合随机数生成一系列的加密密钥,用于双方加密、校验,同时生成了密钥后,将公共密钥和本端身份信息等进行hash,hash值传输给对端进行验证设备身份。

消息6:

由响应者向发起者发送,主要目的和第5条一样。 IKE阶段1有三次交换过程,一共6个消息交互,前4个明文,后2个密文

5.1.2、野蛮模式

野蛮模式同样包含三个步骤,但仅通过三个包进行传输,标示为aggressive 野蛮模式的三个包交换:

(1)第1个交互包发起方建议SA,发起DH交换

(2)第2个交互包接收方接收SA

(3)第3个交互包发起方认证接收方 野蛮模式前两个报文是明文,第三个报文是密文

野蛮模式交互过程

5.2、第二阶段

ISAKMP/IKE阶段2只有一种信息交换模式——快速模式,它定义了受保护数据连接是如何在两个IPSEC对等体之间构成的。 快速模式有两个主要的功能:

1.协商安全参数来保护数据连接。

2.周期性的对数据连接更新密钥信息。

第二阶段的效果为协商出IPSec 单向SA,为保护IPsec数据流而创建。第二阶段整个协商过程受第一阶段ISAKMP/IKE SA保护

消息1:

发起者会在第一个消息中发送 IPSEC SA的转换属性,包括HASH、IPSEC策略提议、Nonce的可选的DH以及身份ID

第二阶段

消息2 :

响应者向发送者发送的发送第二条消息,确认第一个跳信息的中的属性,同时也起到确认对端信息的作用

消息3 :

第三条消息,确认接收方的信息并证明发送方处于Active状态

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐