IPSEC通信协议
概述
IPsec(IP Security)是IETF制定的三层隧道加密协议,它为Internet上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证。特定的通信方之间在IP层通过加密与数据源认证等方式,可提供如下安全服务:
抗重放攻击,数据完整性,数据机密性,数据来源认证,支持密钥交换等
常被企业使用用于搭建site到site间 vpn,在野蛮模式下可实现单端固定IP进行通讯
SA安全联盟
SA是IPsec的基础,也是IPsec的本质,SA通常成对存在,至少需要;其内容包括安全参数索引,目的地址和安全协议号三部分,在IPSEC中一般搭建两个SA,分别是IKE SA和IPSEC SA
安全参数索引(SPI)
SPI是用于唯一标识SA的一个32比特数值,它在AH和ESP头中传输,在手工配置SA时,需要手工指定SPI的取值。使用IKE协商产生SA时,SPI将随机生成
目的地址
对端IP地址,也可以是名称,用于标识对端身份
安全协议号
用于标识封装的头部是AH还是ESP,通常51为AH,50为ESP
IKE
互联网交换密钥协议,由Internet安全关联和密钥管理协议(ISAKMP)和两种密钥协议OAKLEY与SKEME组成,其具有一套自保护机制,可以在不安全的网络上安全地认证身份、分发密钥、建立IPsec SA
在IPSEC中为其搭建SA,提供一个安全的传输环境来交换密钥和身份验证
匹配流量
指明想要连接的局域网以及能够接入的设备与用户,将想要实现连接的网段用ACL标识,只有匹配成功的流量才能进行IPSEC接入网络
DH
交换及密钥分发算法是一种公共密钥算法,通信双方在不传输密钥的情况下通过交换一些数据,计算出共享的密钥,这种算法基于数学的离散对数问题,简单来说就是一个函数其逆运算是极难被算出的
PFS
完善的前向安全性,为防止一个密钥被破解导致所有相关密钥被破解的情况,在第二阶段将密钥通过DH算法再进行一次密钥交换得到,这种算法使得密钥间不存在派生关系,保障IPSEC的安全性
工作模式
传输模式
此模式下,数据报文只有数据部分被拿来校验和加密,其IP头部不变且不受校验,这种模式通常被部署在主机到主机间或者主机到网关间
隧道模式
此模式下,数据报文会封装新的报文头部,其整个报文会被用于校验和加密,并且会封装新的源目地址,常见于两个出口设备间搭建
封装头部
AH
不支持加密,但认证整个数据包,包括原始IP头部
IP协议号为51,提供数据源认证、数据完整性校验和防报文重放功能,它能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据,AH的工作原理是在每一个数据包上添加一个身份验证报文头,此报文头插在标准IP包头后面,对数据提供完整性保护,可选择的认证算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等
ESP
支持加密,认证部分不包括原始IP报文头部
IP协议号为50,提供加密、数据源认证、数据完整性校验和防报文重放功能,ESP的工作原理是在每一个数据包的标准IP包头后面添加一个ESP报文头,并在数据包后面追加一个ESP,与AH协议不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性,常见的加密算法有DES、3DES、AES等,同时,作为可选项,用户可以选择MD5、SHA-1算法保证报文的完整性和真实性
对比总结
安全特性 | AH | ESP |
---|---|---|
IP协议号 | 51 | 50 |
数据完整性校验 | 支持(验证整个IP报文) | 支持(传输模式:不验证IP头;隧道模式:验证新IP头内的整个IP报文,包含旧IP头) |
数据源验证 | 支持 | 支持 |
数据加密 | 不支持 | 支持 |
当然将AH和ESP整合为AH-ESP其可实现传输模式下全报文认证以及数据加密
工作流程
IKE SA搭建
阶段一
通信各方彼此间建立了一个已通过身份认证和安全保护的通道,即建立一个ISAKMP SA,第一阶段有主模式(Main Mode)和野蛮模式(Aggressive Mode)两种IKE交换方法
主模式
主要进行SA交换,密钥交换和ID交换及验证三部分内容,对等体间发送信息进行协商
1.SA交换,确定相关参数是否一致,准备进行密钥交换,明文传输
2.密钥交换,用收到的SA进行DH算法,并告知对端密钥,明文传输
3.ID交换及验证,用交换得到的密钥对数据进行加密认证双方信息,传输于安全环境
野蛮模式
1.发起方发送包含安全提议、Diffie-Hellman公共值、随机数(NONCE)以及自身身份信息的消息给响应方,明文传输
2.响应方回复包含匹配的安全提议、Diffie-Hellman公共值、随机数以及自身身份信息的消息,并附带对发起方的身份验证信息(HASH值),明文传输
3.发起方发送确认消息,包含对响应方身份验证信息的HASH值,以完成身份验证,传输于安全环境
总结
主模式安全性高但速度慢,且对于无固定公网IP地址的用户来说比较难办,二野蛮模式虽然安全性不高但速度快且标识身份ID多样
阶段二
用在第一阶段建立的安全隧道为IPsec协商安全服务,即为IPsec协商具体的SA,建立用于最终的IP数据安全传输的IPsec SA
采用三条消息建立
IPSEC SA
用于维护IPSEC进程,IKE SA搭建完后,会把把建立的参数及生成的密钥交给IPsec,相当于IKE帮IPSEC算出安全参数,IPSEC直接套用并标识各个会话进程
IKE SA负责建立和维护IPSec SA的过程,包括身份验证和安全参数的协商,而IPSec SA则负责实际的数据传输安全,为每个连接提供特定的加密和完整性算法
问题
NAT-T(NAT穿越)
需求
由于其工作原理的问题IPSEC通常发生在NAT之后,当内网内多台设备与其他内网服务器进行通讯时,由于NAT的存在,其源IP被改动会导致IPSEC报文无法被正确识别而丢弃
已知IPSEC源目端口都是UDP500
我们来分析一下,此时我们有两个通讯进程,对此NAT可能把我们的源地址改为出口地址带上端口号,这时这个端口号就极可能不是我们的500,于是到了对端设备,一看源端口不是500,无法识别,丢弃数据包
基本原理
1.在IKE搭建阶段双方通过协商使用UDP 4500端口进行后续的通信
2.IPsec流量会被封装在UDP数据包中,源端口和目的端口分别为协商好的端口,即目的端口4500,源端口任意,然后通过NAT设备进行传输
3.对端在收到UDP数据包后,会解封装并还原出原始的IPsec流量,然后进行相应的处理
IKEv2
对IKEv1进行改造,具有更强的抗攻击能力和密钥交换能力,以及较少的报文交互数量,从而提高了安全性和效率
简化了安全联盟的协商过程,正常情况使用2次交换共4条消息就可以完成一个IKE SA和一对IPSec SA。如果要求建立的IPSec SA大于一对时,每一对SA只需额外增加1次交换(2条消息)
更安全,并且支持IKE SA的完整性算法
更灵活,支持EAP认证,可搭配802.1x(EAPOE)使用,支持在不同IP地址下重新连接和重新验证身份
总结
IPSEC通过协商SA实现一个安全通讯通道,并使用SA中的参数进行加解密实现安全跨公网隧道密文传输,原理简单易懂,操作简便的同时不缺安全性,可谓是一种性价比优秀的隧道技术
原文地址:https://blog.csdn.net/VVVVWeiYee/article/details/145210061
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!