一、IPSEC简介
1、概念
IPSec(Internet Protocol Security)是IETF(Internet Engineering Task Force)制定的一组开放的网络安全协议。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合。
IPSec被设计为同时支持IPv4和IPv6网络。
IPSec主要通过加密与验证等方式,为IP数据包提供安全服务(解决IP层安全性问题)。
在网络层进行数据加密
2、IPSEC提供的服务
IPSec通过加密与验证等方式,从以下几个方面保障了用户业务数据在Internet中的安全传输:
- 数据来源验证:接收方验证发送方身份是否合法。
- 数据加密:发送方对数据进行加密,以密文的形式在Internet上传送,接收方对接收的加密数据进行解密后处理或直接转发。
- 数据完整性:接收方对接收的数据进行验证,以判定报文是否被篡改。
- 抗重放:接收方拒绝旧的或重复的数据包,防止恶意用户通过重复发送捕获到的数据包所进行的攻击。
校验发送者身份; 加密数据; 验证发送数据; 拒绝重复数据
3、IPSEC的组成
IPSec主要包括安全协议AH(Authentication Header)和ESP(Encapsulating Security Payload),密钥管理交换协议IKE(Internet Key Exchange)以及用于网络认证及加密的一些算法等。
二、IPSEC框架
IPSEC不只是一个协议。而是由多个协议组成的一个框架集合
1、加密
分为对称加密和非对称加密。
2、验证
验证算法,也叫HASH算法,散列函数。 》 **数字签名(比对数据指纹)》**验证数据的完整性
常见的验证算法:
1、MD5
消息摘要MD5(Message Digest 5),输入任意长度的消息,MD5产生128位的签名。
MD5比SHA更快,但是安全性稍差。
2、SHA1
安全散列算法SHA(Secure Hash Algorithm)是由NIST开发的。在1994年对原始的HMAC功能进行了修订,被称为SHA1。输入长度小于264bit的消息,SHA1产生160位的消息摘要。
SHA1比MD5要慢,但是更安全。因为它的签名比较长,具有更强大的防攻破功能,并可以更有效的发现共享的密钥。
3、SHA2
SHA2是SHA1的加强版本,SHA2算法相对于SHA1加密数据长度有所上升,安全性能要远远高于SHA1。SHA2算法包括SHA2-256、SHA2-384和SHA2-512,密钥长度分别为256位、384位和512位。
随着密钥长度的上升,认证算法安全强度更高,但计算速度越慢。一般情况下256位就可以充分满足安全需求。
3、封装协议
IPSec使用认证头AH(Authentication Header)和封装安全载ESP(Encapsulating Security Payload)两种安全协议来传输和封装数据,提供认证或加密等安全服务。
3.1 AH
AH是一种基于IP的传输层协议,协议号为51。
只能支持认证 ,不支持加密 。
对整个头部进行认证。
-
原理
在ip报头后面添加一个AH报文头。如图
AH对数据包和认证密钥进行Hash计算,接收方收到带有计算结果的数据包后,执行同样的Hash计算并与原计算结果比较,传输过程中对数据的任何更改将使计算结果无效,这样就提供了数据来源认证和数据完整性校验。
AH协议的完整性验证范围为整个IP报文。
3.2 ESP
ESP支持加密和认证。
ESP是一种基于IP的传输层协议,协议号为50。
- 原理
其工作原理是在每一个数据包的标准IP报头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾(ESP Tail和ESP Auth data)。
与AH不同的是,ESP将数据中的有效载荷进行加密后再封装到数据包中,以保证数据的机密性,但ESP没有对IP头的内容进行保护。
AH协议和ESP协议比较:
安全特性 | AH | ESP |
---|---|---|
协议号 | 51 | 50 |
数据完整性校验 | 支持(验证整个IP报文) | 支持(不验证IP头) |
数据源验证 | 支持 | 支持 |
数据加密 | 不支持 | 支持 |
防报文重放攻击 | 支持 | 支持 |
IPSec NAT-T(NAT穿越) | 不支持 | 支持 |
参考文档:
https://blog.csdn.net/qq_38265137/article/details/89423551
如果本篇博客有任何错误和建议,欢迎大佬们批评指正
我是知逆,我们下期见
Peace