IPSec安全概述
一、IPSec工作原理
1.加密算法——机密性
VPN加密技术:
(1)对称密钥算法
加密方与解密方采用相同的密钥
用于加密用户数据
对称密钥算法
DES 56-bit keys
3DES 168-bit keys
AES 128、192、256 bit keys
(2)非对称密钥算法
加密方通过对端的公钥加密数据
解密方通过自己的私钥解密数据
用于密钥交换和数字签名
非对称密钥算法
RSA 512、768、1024、2048 bit keys
DH 768、1024、1536 bit keys
2.HASH/散列算法——完整性检查
散列函数:
(1)MD5算法
长度:128bit
(2)SHA-1/-2/-3算法
长度:160bit 256 512
3.身份认证-----防中间人身份欺骗
身份认证包括两个方面:
设备身份认证: Pre-Shared Keys (预共享key认证)、 RSA签名认证
用户身份认证 :短信 、 usb-key 、 用户名和密码等
二、封装安全协议
IPSec协议使用下面两种协议对IP报文进行保护
1.AH协议(Authentication Header,协议号51):
可以同时提供数据完整性确认、数据来源确认、防重放等安全特性;AH常用摘要算法HMAC-MD5和HMAC-SHA1实现该特性。
2.ESP协议(Encapsulating Security Payload,协议号50)
可以同时提供数据完整性确认、数据加密、防重放等安全特性;ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用HMAC-MD5或HMAC-SHA1来实现数据完整性。
3.IPSec协议使用AH或ESP对报文进行保护时,会存在两种模式:
传输模式(Transport Mode)
隧道模式(Tunnel Mode)
四种模式:
传输模式的AH(51):
功能:完整性校验,身份认证,防重放攻击
发送方处理:
计算hash值:网络层+AH头+传输层+应用层+完整性校验密钥—>HASH1
将HASH值放入AH头部:网络层+AH头(HSAH1)+传输层+应用层
接收方处理:
计算hash值:网络层+AH头+传输层+应用层+完整性校验密钥—>HASH2
对比HSAH1和HASH2
隧道模式的AH(51):
功能:完整性校验,身份认证,防重放攻击
发送方处理:
计算hash值:新网络层+AH头+原网络层+传输层+应用层+完整性校验密钥—>HASH1
将HASH值放入AH头部:新网络层+AH头(HSAH1)+原网络层+传输层+应用层
接收方处理:
计算hash值:新网络层+AH头+原网络层+传输层+应用层+完整性校验密钥—>HASH2
对比HSAH1和HASH2
传输模式的ESP(50):
功能:完整性校验,身份认证,防重放攻击,数据加密
发送方处理:
数据加密:(传输层+应用层)+ESP尾部+数据加密密钥—>加密数据
数据校验:(ESP头部+加密数据)+完整性校验密钥—>HASH1
将HASH值放入AH头部:网络层+ESP头部+加密数据+ESP认证(HSAH1)
接收方处理:
接收的数据:网络层+ESP头部+加密数据+ESP认证(HSAH1)
计算HASH值:(ESP头部+加密数据)+完整性校验密钥—>HASH2
对比HASH1和HASH2
如果一样就接受并解密,不一样就丢弃
不能放在内网:因为传输层有校验和,校验和中包含伪首部,所以IP地址不能经过NAT转换,所以VPN设备不能放在内网,只能放在边界。
隧道模式的ESP(50):
功能:完整性校验,身份认证,防重放攻击,数据加密
发送方处理:
数据加密:(原网络层头部+传输层+应用层)+ESP尾部+数据加密密钥—>加密数据
数据校验:(ESP头部+加密数据)+完整性校验密钥—>HASH1
将HASH值放入AH头部:新网络层+ESP头部+加密数据+ESP认证(HSAH1)
接收方处理:
接收的数据:新网络层+ESP头部+加密数据+ESP认证(HSAH1)
计算HASH值:(ESP头部+加密数据)+完整性校验密钥—>HASH2
对比HASH1和HASH2
如果一样就接受并解密,不一样就丢弃