一种单/双向自适应的IPsec通信技术研究

2024-08-30 00:00:00郑仕龙陈益龙
互联网周刊 2024年13期

摘要:在互联网安全协议(internet protocol security,IPsec)应用中,通过互联网密钥交换(internet key exchange,IKE)协议可以在通信实体之间建立安全关联(security association,SA)。IKE协议是一个通用的密钥协商协议,在单向通信环境中,IKE协议无法完成双向交互,需要通过预置SA的方式实现安全通信。本文提出一种预置SA的方法,可以在通信环境变化的情况下,实现协商SA和预置SA的交替使用,从而达到单/双向自适应安全通信。

关键词:IPsec;IKE;协商SA;预置SA

引言

目前,在公共互联网上使用IPsec创建虚拟专用网(virtual private network,VPN)成为一项非常成熟的技术应用。IPsec为任意两个网络层实体之间的IP数据报提供了安全。

在IPsec协议体系中包括两个安全处理协议和一个密钥交换协商协议。其中,安全处理协议包括IP认证头(authentication header,AH)协议和IP封装安全性载荷协议(encapsulation security payload,ESP)。ESP协议可以提供数据私密性和完整性保护,将原始IP报文加密后作为负载携带在报文中。IKE协议是一个通用的密钥协商协议,用于执行两个网络实体之间进行相互身份验证、密钥协商等信息交换[1],实现源和目的实体之间创建并维护一个网络层的逻辑连接,即SA。

在实际通信过程中,会出现单/双向通信同时存在的应用场景。在单向通信时,IKE协议所需的双向交互条件便不再具备,无法完成密钥协商和对应SA的建立。因此,通过实现一种单/双向自适应的IPsec通信技术,可以解决该问题。

1. ESP协议概述

ESP是IPsec协议组中的主要协议之一,可以提供数据的机密性、完整性、抗重放等服务。RFC2406中详述了ESP。ESP通过加密有效载荷来提高数据机密性,具有传输和隧道两种封装模式[2]。在端对端的隧道通信中,通常采用隧道模式,此模式中,ESP需要对整个原始IP数据包进行加密,并对封装后的ESP报文进行认证。IP报文的隧道加密认证封装格式如图1所示[3]。

ESP包头中主要包含安全参数索引(security parameters index,SPI)、序列号(sequence number,SN)、初始化向量(initial vector,IV)以及其他一些必要参数等[4-6]。其中,SPI用于标识特定的一对通信实体之间的SA;SN是一个单增序列号,不允许重复,唯一地标识了每一个发送数据包,接收端通过校验序列号可以判断当前数据包是否已经被接收过,从而为当前SA提供抗重放保护。通信双方通过协商或预置的方式创建SA之后,通过ESP包头中携带的SPI、SN等信息完成对IP报文的封装/解封装、加/解密和认证等操作。

2. 双向通信模式中协商SA的实现

在双向通信模式中,通信双方通过协商过程建立SA。协商过程采用自定义改造的IKE协议实现,通过一个N次握手过程完成协商信息交换,包括协商请求、协商响应、协商确认等[7-8]。协商过程中会交换公钥、证书、验证码等信息,双方采用相同的算法得到共享的工作密钥,用于业务加解密。协商协议交互流程如图2所示。

协商完成后,加密通信双方均会生成与对端相关联的SA,其中包含SPI、SN等关键信息。SPI是在协商过程中产生,且通信双方保持收发一致,即发送方的外出SPI与接收方的进入SPI相同。SPI的值由加密双方在协商过程中随机产生,用于保证每次协商产生的SPI的随机性。同时,可以通过设置SPI的某些特定比特位为特殊值,使其与单向通信模式中预置SA相区别。协商SA结构如图3所示。

在加密通信过程中,ESP报头中会包含SPI、SN等信息,由于ESP报头在认证范围之内,可以防止其中的字段被攻击者篡改。发送方通过业务匹配找到对应的SA,并将SA中的外出SPI携带在密报头中,完成对IP报文的加密、认证、封装后,发送给接收方;接收方收到密文包后,通过密报头中的进入SPI找到本地对应的SA,然后完成对密文包的解密、认证和解封装。收发双方的SA索引过程如图4所示。

此种应用中,通信双方通过协商交互实现加密通信,双方可以根据需求进行实时协商或周期协商,且每次协商产生的SA以及密钥等信息均不相同。因此,此应用在双向通信的环境中,具有更强的机密性和前向安全性,对用户数据的保障更可靠。

3. 单向通信模式中预置SA的实现

在单向通信模式中,由于通信环境不支持双向交互,因此,无法提前通过协商来建立SA。设备运行后,通信双方根据对端的设备地址(IP)和当前时间(T)预置得到相应的SA,通过此预置SA来建立双方的逻辑连接。其中,对端设备地址需要作为配置参数由用户下发,当前时间可直接取用设备的本地时间。收发双方根据约定好的SPI产生方式,由发送方在封装ESP报文时,生成当前SA对应的SPI值,接收方通过反向解析SPI值并映射得到本地SA,由此完成双方的加解密通信。预置SA结构如图5所示。

在此种预置SA的建立过程中,SPI值的产生可采用如下方式:将SPI的所有比特位根据需要划分为不同的功能位,每个功能位的宽度随功能变化而进行调整,功能位中的每一个比特位可在SPI中随机选择(双方约定的方式)。同样,为了与协商SA相区别,还需设置某些特定比特位为特殊值。对于功能位的划分设置,包括且不限于当前时间、随机数等功能位。其中,当前时间可用于接收方进行SA索引,随机数可以增加SPI的随机性和不可辨别性。同时,当前时间的值也需要收发双方约定,可根据需要选择不同的时间精度和范围,如时、日、月、年等,“时间+随机数”的结合可以在约定范围内避免SPI的重复。预置SA中SPI产生方式如图6所示。

在业务通信发起后,发送方根据业务报文的五元组信息查找对应的预置SA。成功匹配到对应的SA后,根据此SA中的相关信息对业务IP报文进行加密认证。同时,按照前文描述的方法,采用“时间+随机数”的方法生成SPI,并使用本端设备IP作为封装源IP,再结合其他必要信息进行ESP报文的封装,完成以上的加密、封装、认证后发送给接收方。接收方收到ESP报文后,根据封装源IP和SPI中的当前时间进行SA索引,成功匹配到对应的预置SA后,完成报文的解密、解封装和认证。通信过程中的SA索引方式如图7所示。

此种应用中,发送方SA的建立和接收方SA的搜索均须依赖设备当前时间,收发双方可能会出现因时间不同步而导致SA不匹配的问题。因此,为提高时间容错性,双方可以根据实际应用情况扩展每个对端IP的SA条数,每1条对应一个时间段的SA,最少为当前时间段的1条。当发送端与接收端的时间差在扩展范围之内,接收端仍然可以找到对应的预置SA,如图8所示。

4. 单/双向自适应加密通信

在实际应用中,通信环境可能存在实时变化的可能。当通信环境具备双向通信条件时,需要加密设备采用协商的方式进行协议握手、密钥生成和完成加解密通信,以满足IP数据更强的机密性和前向安全性;当通信环境只具备单向通信条件时,需要加密设备具有提前预置密钥和隧道的功能,以满足IP数据的机密性的同时,也保证数据的可达性。因此,对业务数据的处理流程需要满足单双向自适应的条件。

在通信过程中,发送方会优先搜索与对端对应的协商SA,若搜索成功,则基于此SA继续进行业务加密发送;若搜索失败,则继续搜索预置SA,搜索成功后再进行业务加密发送。协商SA搜索失败时,发送方还会同时发起协商交互流程,以建立协商SA。若当前通信环境不支持双向通信,则协商会失败,业务会自动继续基于预置SA进行加密通信;若通信环境已经支持双向通信,则协商成功并建立SA,此时,业务数据将会基于协商SA进行加密通信。通过以上流程,收发双方便可达到一种单双向自适应的加密通信状态。单双向自适应处理流程如图9所示。

结语

在基于协商的双向网络层隧道加密技术的基础上,增加一种基于预置隧道的单向通信加密方式,并将两种方式在数据处理流程上进行融合,能347d7183ad89adac54a6583a091c22f661c4f07f3130655fbfb5955c5bfb1c15够降低用户对通信环境的依赖性,达到单双向自适应的同时,满足数据的机密性和可达性。

参考文献:

[1]曾鹤,王宇.隐藏IKE协商端口方法研究[J].信息与电脑(理论版),2022,34(21): 200-202.

[2]陈洋,陈浩,骆华杰,等.高隐蔽性IPSec协议研究[J].信息安全与通信保密,2020(11):111-117.

[3]刘振钧,李治辉,林山.基于FPGA的万兆网的IPSec ESP协议设计与实现[J].通信技术,2015,48(2)242-246.

[4]郑桦,刘清,邢航,等.在Linux下基于IPSec的VPN技术[J].信息技术,2003(12):34-37.

[5]刘银虎,缪炳祺.IPSec及其实现机制研究[J].微电子技术,2003(2):43-47.

[6]丛延奇,谢君,徐艳.IPSec的抗重放原理及其实现[J].湖南工程学院学报(自然科学版),2003(4):68-70.

[7]周益旻,刘方正,王勇.基于混合方法的IPSec VPN加密流量识别[J].计算机科学,2021,48(4):295-302.

[8]钱燕.基于Linux的IPSec VPN网关中IKE协议的设计[J].科学技术与工程,2006(1):67-70,79.

作者简介:郑仕龙,硕士研究生,工程师,研究方向:信息安全与通信技术;陈益龙,硕士研究生,工程师,研究方向:信息安全与通信技术。