自学内容网 自学内容网

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)!