目录
2.2 Encapsulating Security Payload(ESP)
1. IPsec概述
IPsec(Internet Protocol Security)是网络安全协议,运行在OSI模型的第三层(Internet Protocol,IP层),在VPN(virtual private networks)应用很广泛。
IPsec出现的原因是普通的IP层的报文并没有加密,存在安全上的隐患,所以在上世纪90年代提出了IPsec协议。
IPsec在IP层对报文提供安全服务。IPsec协议本身定义了如何在IP数据包中增加字段来保证IP包的完整性、 私有性和真实性,以及如何加密数据包。使用IPsec,数据就可以安全地在公网上传输,图 1是IPsec的一个使用场景:
![图 1 IPsec使用场景](https://i-blog.csdnimg.cn/blog_migrate/a655166665670aac1d8bedb8f94c4613.jpeg)
IPsec协议及组件功能如图 2所示:
![](https://i-blog.csdnimg.cn/blog_migrate/487d1840fce26ffdbd3ba35146bd3051.jpeg)
IPsec提供如下安全服务:
1. 数据机密性(Confidentiality):IPsec发送方在通过网络传输包前对包进行加密。
2. 数据完整性(Data Integrity):IPsec接收方对发送方发送来的包进行认证,以确保数据在传输过程中没有被篡改。
3. 数据来源认证(Data Authentication):IPsec在接收端可以认证发送IPsec报文的发送端是否合法。
4. 防重放(Anti-Replay):IPsec接收方可检测并拒绝接收过时或重复的报文。
IPsec发包流程如图 3 所示:
![](https://i-blog.csdnimg.cn/blog_migrate/09ad30062bc379b517a71598c62d660c.jpeg)
IPsec收包流程如图 4 所示:
![](https://i-blog.csdnimg.cn/blog_migrate/42a587d528af71fc932eeeb8831a4d1e.jpeg)
2. 安全体系
IPsec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。
IPsec的安全体系由验证头协议(Authentication Header ,AH)、安全封装协议(Encapsulating Security Payload ,ESP)及安全联盟(Security association,SA)三部分组成。
2.1 Authentication Header(AH)
AH(Authentication Header)是认证头协议(IP协议号为51),主要提供的功能有数据源验证、数据完整性校验和防报文重放功能,可选择的散列算法有MD5(Message Digest ),SHA1(Secure Hash Algorithm)等。AH插到标准IP包头后面,它保证数据包的完整性和真实性,防止黑客截断数据包或向网络中插入伪造的数据包。AH采用了hash算法来对数据包进行保护。AH没有对用户数据进行加密。
AH的报文头格式如图 5 所示:
![](https://i-blog.csdnimg.cn/blog_migrate/b3141901ea97a7ef72737bfefb8eb213.png)
图 5 AH格式
![](https://i-blog.csdnimg.cn/blog_migrate/2412004ff8bad86e807e88aa3cfd42a5.jpeg)
其中,SPI(Secure Parameter Index,安全参数索引),是用于唯一标识SA的一个32比特数值。
当使用AH时,IP地址不能被NAT修改,否则hash值无效,进而不能满足数据来源确认的特性。
2.2 Encapsulating Security Payload(ESP)
ESP(