IPSEC
IPSec,IP Security,是 IETF 制定的一系列协议,端到端的确保 IP 层通信安全的机制/框架,用于保证在 Internet 上传送数据的安全保密性能
因为 IPv4 缺乏对通信双方身份真实性的鉴别能力;缺乏对传输数据的完整性和机密性保护的机制;IP 层存在业务流被监听和捕获、重放、IP 地址欺骗、信息泄露和数据项篡改等攻击
Process:特定的通信方之间,在 IP 层通过加密与数据源验证来保证数据包在 Internet 上传输的机密性、完整性和真实性
私有性 / 机密性:IPSec 在传输数据包之前,将其加密以保证数据的私有性
完整性:IPSec 在目的地使用单向散列函数验证数据包的完整性
身份验证:单向散列函数、数字签名和公开密钥加密来判断一份数据是否源于正确的创建者
防重放:通过查阅序列号,目的地会拒绝老的或重复的数据包
加密算法
对称加密算法:加密密钥与解密密钥相同;由于对称加密的运算速度快,所以 IPSec 使用对称加密算法来加密数据;Example :DES,3DES,AES
非对称加密算法:加密密钥与解密密钥不同;由于非对称加密的运算速度慢,所以主要用来交换秘钥和身份认证;Example :RSA,DH
DH
Diffie-Hellman 密钥交换算法
1、主机1,产生一个很大的数 $a$ 一个素数 $p$ 和一个整数 $g$,计算得到 A=gamodp
公钥:A,私钥:a
2、发送 A,p,g 给主机2
3、主机2,产生一个很大的数 b,计算得到 B=gbmodp
公钥:B,私钥:b
4、发送 B 给主机1
5、 KB=Abmodp=gabmodp
6、 KA=Bamodp=gabmodp
End:得到共享密钥, Key=gabmodp
验证算法
HMAC
HMAC,Hash-based Message Authentication Code,一种基于Hash函数和密钥进行消息认证的方法,实现数据完整性验证与身份验证,Example :MD5,SHA
对加密后的数据进行哈希(通常加 salt),得到数字签名;然后将加密后的数据与数字签名一起发送过去,供接收方进行验证。
密钥交换
通过非对称加密算法加密对称加密算法的密钥完成密钥共享后再用对称加密算法加密实际要传输的数据,但是如何对抗中间人攻击呢?
中间人完全可以更改非对称加密算法的过程,非对称加密算法共享公钥的过程
1、预共享密钥,PSK,Pre-shared key,指通信双方在配置时手工输入相同的密钥
2、数字证书,CA,Certificate authority,其将身份标识与公钥绑定在一起,并由可信任的第三方权威机构用其私钥签名,这样就可验证证书自身的有效性
由于一个 CA 不能满足所有的需求,因此形成了一个类似于 DNS 的层次 CA 结构
IPSec 工作模式
传输模式
实现端到端的保护:封装简单,传输效率不高,只对有效载荷进行了保护,IP 头未被保护
Application:较适用于两台主机之间的数据保护
隧道模式
实现站点到站点保护:对整个报文进行了封装,IP 头被保护(实现了匿名)
Application:较适用于站点间建立安全 VPN 隧道,以保护多台主机
站点和站点之间(网关之上),一个站点的所有主机都指代同一个公网 IP 地址
对比
传输模式适用于两台主机之间的数据保护;隧道模式适宜于在站点间建立安全 VPN 隧道:保护多台主机
AH
AH 协议:Authentication Header,认证头协议,协议号:51
提的服务如下:数据完整性服务(哈希校验),数据源身份认证(共享秘钥),防止数据重