?

自組網中基于離線證書的雙向認證協議

2023-10-12 07:22任塨曄
火控雷達技術 2023年3期
關鍵詞:狀態機私鑰公鑰

任塨曄

(西安電子工程研究所 西安 710100)

0 引言

移動自組織網絡(Mobile Ad hoc Networks)[1-3]是一種無需基礎設施的網絡。在自組網中,節點通過自組織方式組建并管理網絡,網內節點兼具主機和路由器的功能,并可自由移動。這種無需固定基礎設施的網絡形態在車載自組網、應急救災、傳感器網絡等領域有著廣泛的應用。

為保證自組網內節點間信息傳輸的安全性,新節點加入自組網時需進行身份認證。與具有基礎設施的有線網絡不同,自組網中缺乏固定的、可信的權威實體來鑒別新節點的身份。隨著各種形態的自組網的廣泛應用,針對自組網身份認證的研究成為熱點。文獻[4]將基于公鑰密碼體制的認證機制分為三類:集中式、分布式和自組織式。在集中式的認證機制中,證書中心(Certificate Authority,CA)負責證書的頒發、更新和撤銷,并且負責驗證新入網節點的身份。由于需要固定的CA,集中式的認證機制主要用于有線網絡。分布式認證機制采用門限密碼技術,用多個實體共同行使CA的功能。自組織式認證機制采用證書鏈代替CA的功能,基于認證雙方的證書庫實現認證功能。文獻[5]提出了一種自組織的公鑰管理方式,各節點可生成自己的公鑰和私鑰,無需CA實體。文獻[6]提出了一種分布式的認證方式,其中多個鄰居節點共同驗證新節點的身份,避免了單點失效的問題。文獻[7]設計了一種自組織網絡的節點認證和密鑰分發協議,通過引入可信管控平臺保障節點公鑰的有效性。文獻[8]提出了基于安全域的身份認證方法,采用實時協商隨機數和復雜函數計算相結合的方式完成自組網節點的身份驗證。文獻[9]提出了一種基于輕量級可移交CA的移動自組網認證體系,在不使用門限機制的情況下具備一定的容侵能力。文獻[10]提出了一種基于身份的匿名認證方案,能夠實現車輛與路邊單元以及車輛之間的身份認證。文獻[11]設計了一種基于Diffie-Hellman協議的隨機密鑰圖結構,在空間自組織網絡中實現了區域自治的身份認證。

在多數自組網認證協議的研究中,自組網內的某個節點或某些節點行使CA的功能。節點的移動和動態加入退出使得CA需頻繁在節點間轉移,從而增大了認證時延。此外,CA節點的自組織選舉也是需考慮的問題。由于自組網中沒有固定的節點執行CA的功能,攻擊者容易冒充CA破壞自組網認證體系。不同于一般的無線網絡,自組網通常由特定的組織機構管理,屬于同一組織的節點在特定場景下組建自組網。在上述場景中,同一組織的節點可離線從CA獲得證書,在進行身份驗證只需驗證證書的有效性和證書與身份的匹配。在線的身份認證無需CA參與。

基于對自組網認證協議的研究現狀分析和自組網的特性,本文提出一種自組網中基于離線證書的雙向認證協議。在該協議中,自組網內沒有節點執行CA的功能,證書頒發以離線方式執行。通過三個認證包的交互,認證雙方相互驗證對方證書并且基于對方提供的證書執行“挑戰/應答”方式的身份認證。 已被認證的節點自動形成一個可信集, 可信集內的任一節點都可代表該網絡與網外節點執行認證流程。新入網節點的公鑰通過安全方式在網內廣播,其他節點收到新入網節點的公鑰即可認為該節點已加入可信集,從而無需再與其執行認證流程。本文設計的自組網認證協議符合自組網無中心、扁平化的特性,可推廣到其他具有相似特性的網絡。

本文第1節介紹離線證書頒發機制;第2節詳述基于離線證書的雙向認證協議,并且給出了認證雙方的狀態機描述;第3節介紹基于可信集的分布式認證機制;第4節分析所提認證協議的安全性;第5節總結全文。

1 離線證書頒發機制

自組網中不存在固定的CA實體,節點證書的頒發和驗證無法以安全的方式在線執行。針對這一問題,本文設計了離線的證書頒發機制,每個節點保存自己的證書,在需要認證時通過交互證書實現雙向認證。

節點在啟用前向CA申請證書。節點向CA發送自己的身份信息和公鑰,CA向節點發送生成的證書。節點與CA之間的數據傳輸以有線、安全的方式進行。證書的結構包含三部分:身份信息、公鑰和數字簽名,分別記為Id、PK和DS。數字簽名由CA產生。CA首先基于哈希算法計算身份信息與公鑰兩部分的消息摘要,再用自己的私鑰加密生成數字簽名,該過程可記為DS=SKCA(Hash(Id+PK)),其中Hash(·)表示哈希算法,SKCA表示CA的私鑰,對應的公鑰記為PKCA,SKCA(·)表示私鑰加密過程。每個節點本地保存CA頒發的證書。CA的公鑰公開,所有節點可通過CA的公鑰驗證證書的有效性。證書的頒發是一次性的,節點的認證過程不再涉及CA,因此該過程被稱為離線證書頒發機制。

2 基于離線證書的雙向認證協議

2.1 概述

網內節點和網外節點通過三個認證包的交互相互驗證對方的身份。網內節點作為認證的發起方,網外節點作為認證的響應方,它們之間的認證包的交互如圖1所示。該過程可分為四個步驟:

圖1 認證雙方的包交互流程

1)當認證發起方(以下用A表示)收到認證響應方(以下用B表示)的入網申請后,它向認證響應方發送認證包1。認證包1包含認證序號、A生成的挑戰序列tA和加密后的證書E(CA),其格式如圖2所示。認證序號用于區分不同的認證會話。為提升抵抗重放攻擊的能力,認證發起方在短時間內不能使用重復的挑戰序列。A采用對稱加密算法加密證書CA得到E(CA)。假設所有合法節點都維護相同的對稱密鑰庫,認證包1的包頭記錄加密證書所用的對稱密鑰索引,B可基于該索引得到解密密鑰。

圖2 認證包1的格式

2)B收到認證包1后,解密E(CA)獲得A的證書CA。B通過CA的公鑰驗證CA,并提取A的公鑰PKA。B生成另一挑戰序列tB,用PKA加密tB得到PKA(tB)。此外,B用自己的私鑰SKB加密tA得到SKB(tA)。B將PKA(tB)、SKB(tA)和加密后的證書E(CB)組成認證包2,并發送給A。認證包2的格式如圖3所示。

圖3 認證包2的格式

3)A收到認證包2后,解密獲得B的證書CB。A通過CA的公鑰驗證CB,并提取B的公鑰PKB。A用PKB解密SKB(tA),獲得dA=PKB(SKB(tA))。如果dA與tA相等,則表明B的公鑰與私鑰匹配,從而A能夠驗證B的合法身份。此外,A用自己的私鑰SKA解密PKA(tB),得到dB=SKA(PKA(tB))。A通過認證包3將dB發送給B,其格式如圖4所示。

圖4 認證包3的格式

4)B收到認證包3后,比較dB與tB。如果dB與tB相等,表明A的公鑰與私鑰匹配,從而B能夠驗證A的合法身份。至此,A和B相互驗證了對方的身份,即可相互通信。

認證發起方和認證響應方在認證過程中需維持各自的認證狀態機,從而決定在特定事件發生時執行的動作。以下分別描述認證雙方的狀態機。

2.2 認證發起方的認證狀態機

認證發起方A是已被認證的網內節點,它可能同時維持與多個網外節點的認證狀態。對于特定認證響應方B,A維持的認證狀態機如圖5所示。

圖5 認證發起方的認證狀態機

當A收到B的入網申請后,隨即建立對應的狀態機。當A發送認證包1后,啟動定時器TA2(表示A等待認證包2的定時器),等待接收認證包2。如果定時器歸零前未收到有效的認證包2并且嘗試次數未達到最大門限,則A重新發送認證包1,并且遞增認證序號。如果A收到的B發送的認證包2的序號與A本地保存的序號一致,則認為該認證包2有效,否則該認證包2無效。當A收到有效的認證包2時,執行如圖6所示的處理流程以驗證B的證書及身份。圖6中①、②、③三個步驟是驗證B的身份的關鍵步驟,下面分別討論。

圖6 認證發起方收到認證包2時的處理流程圖

① A驗證B的證書的步驟如下。A首先應用相同的哈希算法計算得到B的證書中身份信息和公鑰兩部分的哈希值,記為H1=Hash(IdB+PKB)。A再用CA的公鑰解密B的證書中的數字簽名,得到H2=PKCA(DSB)。A比較H1和H2,如果H1與H2相等,則證書驗證成功。如果H1與H2不相等,則證書驗證失敗。這里A僅僅驗證了B的證書的有效性,并未驗證B的身份與B的證書是否匹配。

② A從B的證書中獲得B的公鑰PKB,執行公鑰解密流程dA=PKB(SKB(tA))。如果dA與tA相等,表明從B的證書中獲得的公鑰與加密tA所使用的私鑰匹配。由于A已驗證了B的證書,從而A可確定認證包2就是合法節點B發送的,A成功驗證了B的身份。如果dA與tA不相等,表明從B的證書中獲得的公鑰與加密tA所使用的私鑰不匹配,該認證包2可能是其他節點冒充B發送的,A無法驗證B的身份。

③ A用自己的私鑰SKA執行私鑰解密流程dB=SKA(PKA(tB))。A將dB發送給B,用于B驗證A的身份。

2.3 認證響應方的認證狀態機

認證響應方B是等待認證的網外節點。當它發送入網申請給網內節點A之后,即建立如圖7所示的認證狀態機。認證響應方至多只能維持一個認證狀態機。

圖7 認證響應方的認證狀態機

當B向A發送入網申請后,等待接收認證包1。當B收到A發送的認證包1時,執行如圖8所示的處理流程。如果B成功驗證了A的證書,B構造并發送認證包2給A,等待接收認證包3。B收到有效的認證包3時,比較dB與tB是否相等。如果相等,B成功驗證了A的身份。當B收到認證包3時,需確定該包是A發送的并且其中的序號與本地保存的序號一致。如果滿足上述條件,B判定該認證包3有效。

3 基于可信集的分布式認證機制

在自組網中,每個節點可能與多個網內節點通信。如果在通信前都執行雙向認證協議,則開銷過大,并且多跳傳輸也增加了信息被竊聽或被篡改的風險。為了降低認證開銷同時保證安全性,本文設計了一種基于可信集的分布式認證機制。已經相互認證的在網節點自動形成一個可信集,集合內節點在通信前無需再次執行認證過程,只需獲得對方的公鑰即可。

可信集是一個節點的集合,集合內的節點滿足三個條件:

1)節點的證書有效;

2)節點的公鑰與私鑰匹配;

3)節點處于在網狀態。

如第2節所述,對于參與認證的雙方節點,當它們的認證狀態機進入“認證成功”狀態時,即表示它們確認對方節點滿足上述三個條件。

基于可信集的定義,當兩個未入網的節點A和B執行雙向認證協議并且認證成功時,它們自動組成一個可信集。當B與另外的未入網節點C執行雙向認證協議并且認證成功時,C自動進入該可信集。雖然A和C并沒有執行認證流程,但是它們都屬于合法節點,因此不必再進行認證流程。隨著可信集內的節點與未入網節點的相互認證,可信集逐漸擴大,如圖9所示。

在基于可信集的分布式認證機制中,每個集合內節點可代表該集合與集合外節點相互認證,吸納新的節點入網。每當一個集合內節點完成對網外節點的身份認證時,它需將新入網節點的公鑰通過加密方式發送給集合內的其他節點。如圖9所示,A在完成對G的身份認證后將G的公鑰發送給可信集內的其他節點。公鑰的分發需滿足三個要求:機密性、完整性和可溯源性。當集合內其他節點通過安全方式收到G的公鑰后,可確認G已入網并且身份已被認證,它們即可與G進行通信。此外,A也向G發送它保存的集合內節點的公鑰。

4 安全性分析

本文提出的雙向認證協議的安全性與所使用的公鑰加密算法、哈希算法和偽隨機數生成算法有關。本協議使用對稱加密算法加密證書,其目的是保護證書內的身份信息。由于雙向認證協議可驗證公鑰與私鑰的匹配性,即使證書以明文傳輸,仍可確保協議的安全性。本節在假設上述算法未被破解的前提下在以下三種場景中分析所提雙向認證協議的安全性。

4.1 認證發起方為非法節點

非法節點C冒充合法節點誘騙合法節點B入網。由于C是非法節點,它沒有有效的證書,或者它冒用合法節點A的證書來冒充A。下面分情況討論。

1)非法節點C沒有有效證書:按照第2節所述的協議流程,C需向B發送已加密的C的證書。由于C的證書未經過CA簽名,B驗證C的證書失敗,B的認證過程終止。

2)非法節點C冒用合法節點A的證書:C將A的證書發送給B,B成功驗證了A的證書,并用其中包含的A的公鑰PKA加密tB得到PKA(tB)。C收到B發送的認證包2后,需向B發送解密得到的dB。由于C不知道A的私鑰SKA,因此它無法還原正確的挑戰序列dB。C將錯誤的dB發送給B,B判定dB與tB不相等,B的認證過程終止。當然,C隨機生成的dB會以極小的概率等于tB。為降低這種可能性,挑戰序列的長度可適當增長。

4.2 認證響應方為非法節點

當非法節點C作為認證響應方試圖與合法節點A認證時,同樣存在兩種情況。

1)非法節點C沒有有效證書:當C收到A發送的認證包1后,需回復加密的證書。由于C的證書未經過CA簽名,A無法驗證C的證書,A的認證過程終止。

2)非法節點C冒用合法節點B的證書:C將B的證書發送給A,但是C不知道B的私鑰,它加密tA所使用的私鑰與B的證書中包含的公鑰不匹配。假設C用私鑰SKC加密tA得到SKC(tA)。A用B的公鑰PKB解密SKC(tA),得到的dA與tA不相等,A無法驗證C的身份,A的認證過程終止。

4.3 重放攻擊

非法節點C竊聽并保存合法節點A(作為認證發起方)和B(作為認證響應方)之間的認證包交互,它可發起兩種重放攻擊,如下所述。

1)非法節點作為認證發起方的重放攻擊

非法節點C將保存的認證包1發送給合法節點D。D構造并回復認證包2給C。D生成的挑戰序列tD幾乎不可能與C保存的認證包3中的挑戰序列dB(該挑戰序列由B生成和加密,并由A解密)相同。C將保存的認證包3發送給D,D檢驗其中的dB與tD不相等,D的認證過程終止。

2)非法節點作為認證響應方的重放攻擊

假設C冒充B向A發起入網申請。A向C發送認證包1,C以保存的認證包2回復。因為A與B認證時生成的tA和A與C認證時生成的tA幾乎不可能相等,C回復了錯誤的dA,A對C的認證過程終止。

5 結束語

針對傳統自組網認證協議依賴在線CA的問題,基于自組網無中心、扁平化的特性,本文提出了一種自組網中基于離線證書的雙向認證協議。在該協議中,沒有節點在線執行CA的功能,因此無需考慮CA的選舉和轉移的問題。安全性分析表明,該協議可實現網內節點和網外節點的雙向認證,可識別非法入侵和身份冒充,并可抵御重放攻擊。此外,基于可信集的分布式認證機制能夠降低自組網內的認證開銷。本文設計的基于離線證書的雙向認證協議對公鑰加密算法、哈希算法和偽隨機數生成算法無特別要求,可根據實際應用需求和設備特性選用合適的算法。

猜你喜歡
狀態機私鑰公鑰
清掃機器人避障系統區塊鏈私鑰分片存儲方法
比特幣的安全性到底有多高
基于改進ECC 算法的網絡信息私鑰變換優化方法
基于有限狀態機的交會對接飛行任務規劃方法
一種基于混沌的公鑰加密方案
一種基于虛擬私鑰的OpenSSL與CSP交互方案
HES:一種更小公鑰的同態加密算法
SM2橢圓曲線公鑰密碼算法綜述
基于格的公鑰加密與證書基加密
FPGA設計中狀態機安全性研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合