








摘要:在互聯網安全協議(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.
作者簡介:鄭仕龍,碩士研究生,工程師,研究方向:信息安全與通信技術;陳益龍,碩士研究生,工程師,研究方向:信息安全與通信技術。