摘要:針對TCP/IP協(xié)議缺乏內(nèi)生安全機制引起的網(wǎng)絡(luò)安全問題,以及IPSec等附加的安全增強技術(shù)存在效率低的問題,提出了一種基于報文哈希鏈的簽名認(rèn)證方法。該方法將所傳輸報文的哈希值通過迭代哈希形成一個關(guān)于報文序列的哈希鏈,通信雙方通過報文哈希鏈確保報文序列的完整性;在進(jìn)行報文簽名認(rèn)證時,通信雙方只需按一定間隔對數(shù)據(jù)報文進(jìn)行簽名認(rèn)證就能確保多個報文的完整性和不可抵賴性,并能顯著提高報文安全傳輸?shù)男?。通過實驗證明,在相同網(wǎng)絡(luò)環(huán)境以及通用軟件實現(xiàn)方式下,基于報文哈希鏈的簽名認(rèn)證方法的平均比特率比IPSec逐包簽名方法的平均比特率有顯著提高,且這種簽名認(rèn)證方法能有效防范中間人攻擊。
關(guān)鍵詞:網(wǎng)絡(luò)安全;報文哈希鏈;數(shù)字簽名;認(rèn)證;中間人攻擊
中圖分類號:TP309.2文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2022)04-038-1183-07
doi:10.19734/j.issn.1001-3695.2021.08.0381
Signature and authentication method based on message hash chain
Han Mingxuan,Jiang Wenbao,Guo Yangnan
(School of Information Management,Beijing Information Science amp; Technology University,Beijing 100192,China)
Abstract:Aiming at the network security problems caused by the lack of authentication mechanism in TCP/IP protocol and the low efficiency of additional security technologies such as IPSec,this paper proposed a signature and authentication method based on message hash chain.This method formed a message hash chain about the message sequence by means of iterative hash with the hash value of the transmitted message,and both sides of the communication ensured the integrity of the message sequence through the message hash chain.When carrying out data signature and authentication,both sides of the communication only needed to carry out signature and authentication according to a certain interval of data messages to ensure the integrity and non-repudiation of multiple messages and effectively improve the efficiency of message security transmission.Experiments show that the average bit rate of the message hash chain authentication method is significantly higher than that of packet by packet signature method of IPSec under the same network environment and the general software implementation mode.And this signature and authentication method can effectively defend against man-in-the-middle attacks.
Key words:network security;message hash chain;digital signature;authentication;man-in-the-middle attack
如今的互聯(lián)網(wǎng)通信過程中需要對報文進(jìn)行認(rèn)證以防止身份欺騙、地址偽造、路由劫持、拒絕服務(wù)等惡意網(wǎng)絡(luò)攻擊,其根源是在傳輸過程中缺少對報文的認(rèn)證。TCP/IP是現(xiàn)在廣泛使用的網(wǎng)絡(luò)傳輸協(xié)議,而其設(shè)計本身只注重報文傳輸?shù)倪B通性,并未考慮網(wǎng)絡(luò)傳輸過程中的安全性,缺乏對報文的認(rèn)證。為了應(yīng)對TCP/IP在安全性上的不足,通常利用IPSec(IP security)等附加的安全增強技術(shù)對報文進(jìn)行認(rèn)證以保證數(shù)據(jù)真實性,包括利用消息認(rèn)證碼MAC(message authentication code)和數(shù)字簽名等方法對傳輸?shù)膱笪倪M(jìn)行認(rèn)證以保證報文傳輸?shù)耐暾?、機密性和不可否認(rèn)性。IPSec通過隧道技術(shù)[1]對IP協(xié)議的每個分組進(jìn)行簽名和認(rèn)證以保證報文的安全性和可認(rèn)證性;消息認(rèn)證碼是密碼學(xué)中用來保證報文完整性的重要方法;數(shù)字簽名在實際應(yīng)用中被廣泛使用,主要因為其可以提供傳輸報文的完整性、真實性和不可否認(rèn)性。而這些方式都需要對每個報文逐一進(jìn)行認(rèn)證,成為約束報文傳輸速度的重要影響因素。區(qū)塊鏈作為一種提高數(shù)據(jù)安全性的技術(shù)應(yīng)用于應(yīng)用層上,其共識機制與加密算法能夠提高數(shù)據(jù)的隱私性和安全性,但不能提高數(shù)據(jù)在安全傳輸下的效率,且沒有對于網(wǎng)絡(luò)層的安全機制。
本文將聚集于在保障報文傳輸中數(shù)據(jù)完整性、真實性以及不可否認(rèn)性[2]的前提下,提出一種基于報文哈希鏈的簽名認(rèn)證方法。該方法在保證報文傳輸過程中完整性、真實性和不可否認(rèn)性的同時,通過形成一個報文序列的哈希鏈進(jìn)行報文的認(rèn)證,使報文安全傳輸達(dá)到更高的傳輸效率。通過與現(xiàn)有廣泛應(yīng)用的IPSec簽名認(rèn)證方法進(jìn)行對比,發(fā)現(xiàn)其在傳輸速度上比IPSec簽名認(rèn)證方法有顯著的提高。
1相關(guān)工作
1.1IPSec
IPSec協(xié)議工作在OSI模型(open system interconnection reference model)的網(wǎng)絡(luò)層,是IPv6網(wǎng)絡(luò)中必要的保護(hù)報文安全的協(xié)議[3],其可在通信雙方建立隧道保護(hù)網(wǎng)絡(luò)元素的安全[4]。IPSec協(xié)議通過在IP協(xié)議的分組前添加認(rèn)證頭(authentication header,AH)[5]和封裝安全載荷(encapsulating security payload,ESP)[6]實現(xiàn)對報文的認(rèn)證,保證報文傳輸過程的機密性、完整性,同時在其使用非對稱數(shù)字簽名算法時可以提供不可否認(rèn)性。盡管IPSec協(xié)議能夠提供報文在通信過程中的安全性,但其需要逐個對每個IP協(xié)議的分組進(jìn)行認(rèn)證、加密以及添加協(xié)議頭,造成傳輸效率被極大限制,不能廣泛應(yīng)用于大流量網(wǎng)絡(luò)中。
1.2區(qū)塊鏈技術(shù)
區(qū)塊鏈技術(shù)利用塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)存儲和驗證數(shù)據(jù)[7],在應(yīng)用層利用數(shù)據(jù)加密、共識機制等手段,在節(jié)點無須互相信任的分布式系統(tǒng)中實現(xiàn)基于去中心化信用的點對點交易,為中心化機構(gòu)提供低成本安全數(shù)據(jù)存儲的去中心化解決方案[8]。區(qū)塊鏈只有對應(yīng)用層進(jìn)行防護(hù),缺乏網(wǎng)絡(luò)層的安全機制和信任機制,其在網(wǎng)絡(luò)層還是無認(rèn)證的P2P傳輸。同時區(qū)塊鏈的效率問題是限制區(qū)塊鏈應(yīng)用的重要影響因素,對于金融系統(tǒng)中的高頻交易和大流量的網(wǎng)絡(luò)傳輸環(huán)境,其數(shù)據(jù)處理和認(rèn)證過程長,限制了區(qū)塊鏈在相關(guān)場景的應(yīng)用。
1.3哈希鏈
哈希鏈概念最早是由Lamport[9]提出,旨在解決密碼在傳輸過程中會被入侵者竊取、竄改的問題。通過哈希函數(shù)對密碼進(jìn)行多次迭代加密,具有良好的抗干擾性,且服務(wù)器端只需保存最后一次加密的密文即可驗證全部密文序列。
Wong等人[10]提出了星形和樹型哈希鏈,星形流式數(shù)據(jù)簽名方案可以對每個包單獨驗證,可容忍任何程度的丟包;樹型哈希鏈簽名方案優(yōu)勢在于通信負(fù)荷小于星形哈希鏈,但是存在發(fā)送方延遲,發(fā)送前要先收集一個塊的數(shù)據(jù)包,且每個包的有效載荷較少;Golle等人[11]提出了一種鏈?zhǔn)焦f湥哂懈咝阅?、有效載荷占比高的優(yōu)點,但若是鏈中含的包過多,會有斷鏈的風(fēng)險;柳春雷等人[12]提出了一種星—鏈形哈希鏈,基本思想是假設(shè)將一個長序列分成r個子序列,每個子序列內(nèi)仍使用哈希值前置的機制,對于每個子序列第一個包的哈希值不再將其附加到前面一個包上面,而是對r個子序列的第一個包進(jìn)行星式簽名,并在服務(wù)器端增加一個緩沖,使其專門存放n個包的哈希值及其簽名;Zhang等人[13]提出了一種蝶形哈希鏈,在有效載荷、包認(rèn)證概率上有一定優(yōu)勢,且能容忍數(shù)據(jù)包丟失,但是需要多次運行hash函數(shù),效率比其他結(jié)構(gòu)的哈希鏈低;Miller[14]提出了蝶形哈希鏈的一種改進(jìn)方式,在原有蝶形結(jié)構(gòu)的基礎(chǔ)上加強了安全性與包認(rèn)證概率,但是由于結(jié)構(gòu)上的冗雜導(dǎo)致運行效率進(jìn)一步下降;蔡滿春等人[15]提出了一種基于雙向認(rèn)證的哈希鏈簽名方案,通信兩端需要各生成兩個隨機數(shù),并對其進(jìn)行N次哈希函數(shù)計算生成哈希證書,可以代替非對稱密碼算法證書,但是哈希函數(shù)如果迭代次數(shù)過多會導(dǎo)致效率不高,而迭代次數(shù)少則失去安全性,且存儲空間消耗大;劉飛等人[16]提出了一種基于哈希鏈的認(rèn)證協(xié)議,將載荷的哈希值進(jìn)行多次哈希函數(shù)計算得到一條連續(xù)的哈希鏈,主要用于抵抗重放攻擊,但是依然需要對每個報文進(jìn)行簽名以保證報文的不可抵賴性;Huang等人[17]提出一種新的哈希鏈構(gòu)造方案,利用不同哈希函數(shù)多次迭代密鑰,而哈希函數(shù)的使用順序需要保密;文獻(xiàn)[18,19]分別提出了自更新哈希鏈和優(yōu)化的樹型哈希,都只是在原有結(jié)構(gòu)的基礎(chǔ)上對安全性以及丟包的容忍度進(jìn)行優(yōu)化,在整體運行效率上與原結(jié)構(gòu)差別不大甚至略有不足。
哈希鏈的概念最近也在物聯(lián)網(wǎng)、數(shù)據(jù)安全以及輕量級傳輸協(xié)議等應(yīng)用領(lǐng)域得到廣泛研究。Hakeem等人[20]在文獻(xiàn)[9]的基礎(chǔ)上提出了一種基于哈希鏈的密鑰生成和管理協(xié)議,主要利用哈希函數(shù)對生成的密鑰進(jìn)行多次迭代,解決遠(yuǎn)程廣域網(wǎng)的密鑰更新問題,能夠抵抗密鑰泄露攻擊以及重放攻擊;Huang等人[21]提出了基于哈希鏈的異地容災(zāi)數(shù)據(jù)可用性監(jiān)控方法,將哈希鏈應(yīng)用于分布式系統(tǒng)中,解決分布式系統(tǒng)中數(shù)據(jù)一致性問題;Kim等人[22]將哈希鏈與一次性密碼結(jié)合,提出一種應(yīng)用于軍用網(wǎng)絡(luò)的輕量級認(rèn)證方案,使傳輸內(nèi)容具有完整性并降低了傳輸?shù)木W(wǎng)絡(luò)事務(wù);Luo等人[23]利用哈希鏈對區(qū)塊鏈共識算法進(jìn)行改進(jìn),實現(xiàn)了對區(qū)塊的記錄和驗證。上述文獻(xiàn)都是對具體數(shù)據(jù)構(gòu)建多種形態(tài)的哈希鏈?zhǔn)浇Y(jié)構(gòu),而沒有將網(wǎng)絡(luò)層的通信報文序列作為哈希鏈的構(gòu)建對象;同時上述文獻(xiàn)都是為了加密數(shù)據(jù)以提高數(shù)據(jù)的安全性,防止數(shù)據(jù)內(nèi)容被破解和竄改,而沒有一種在保證數(shù)據(jù)安全的條件下提高報文傳輸效率的方法。
2簽名認(rèn)證基本流程
2.1符號說明
基于報文哈希鏈的簽名認(rèn)證方法所使用的符號、函數(shù)以及對應(yīng)參數(shù)如表1所示。
2.2簽名流程
基于報文哈希鏈的簽名方法的整體流程如圖1所示,通信雙方在協(xié)商好簽名間隔vSig后就開始進(jìn)行數(shù)據(jù)傳輸。通信雙方傳輸?shù)臄?shù)據(jù)包分為無簽名只包含報文哈希鏈節(jié)點的數(shù)據(jù)包以及包含簽名和報文哈希鏈節(jié)點的數(shù)據(jù)包。圖1所示流程中的發(fā)送端傳輸數(shù)據(jù)包與構(gòu)建報文哈希鏈節(jié)點的計算是同步的,即計算好每個報文分段mi(i∈{1,2,…,n})對應(yīng)的報文哈希鏈節(jié)點值HCi后,就將mi與HCi作為數(shù)據(jù)包內(nèi)容傳輸?shù)綄?yīng)的接收端。而為了報文哈希鏈的安全性考慮,會按照vSig有間隔地對數(shù)據(jù)分段進(jìn)行簽名,即需要對HCα+βvSig進(jìn)行簽名,其中α為第一個進(jìn)行簽名的報文哈希鏈序號,β∈{1,2,…,n}。攜帶簽名的數(shù)據(jù)包pi的數(shù)據(jù)構(gòu)成為pi=(mi,HCi,sHCi),不攜帶簽名的數(shù)據(jù)包pj的數(shù)據(jù)構(gòu)成為pj=(mj,HCj)。
2.3認(rèn)證流程
接收端通過報文哈希鏈對報文序列進(jìn)行認(rèn)證的流程如圖2所示。接收方首先要與發(fā)送方協(xié)商好簽名間隔vSig。接收方需要在收到數(shù)據(jù)包pk后對其進(jìn)行認(rèn)證,對于不攜帶簽名的數(shù)據(jù)包pk=(mk,HCk),若此時已經(jīng)達(dá)到簽名間隔,則報告錯誤;若沒達(dá)到簽名間隔,則根據(jù)報文mk構(gòu)建本端的報文哈希鏈HC′k,通過比對HCk與HC′k是否相等來認(rèn)證數(shù)據(jù)包的安全。對于攜帶簽名的數(shù)據(jù)包pk=(mk,HCk,sHCk),需要先驗證接收端構(gòu)建的報文哈希鏈HC′k是否滿足HCk=HC′k,若成立則還需要對簽名進(jìn)行認(rèn)證。接收端認(rèn)證流程的具體步驟如下:
a)接收端收到發(fā)送端向其發(fā)送的數(shù)據(jù)包pk,包括攜帶簽名和報文哈希鏈的數(shù)據(jù)包或只攜帶報文哈希鏈的數(shù)據(jù)包,假設(shè)發(fā)送端發(fā)送到接收端的報文序列按序到達(dá)。
b)接收端接收到數(shù)據(jù)包pk,根據(jù)報文mk計算得到此報文哈希鏈節(jié)點值HC′k=h(h(mk)),k=1,或HC′k=h(h(mk)‖HC′k-1),kgt;1。
c)通過比對數(shù)據(jù)包pk中收到的HCk和接收端構(gòu)建的HC′k是否一致的方式對報文mk進(jìn)行認(rèn)證,認(rèn)證不通過的報文將被丟棄并反饋錯誤。
d)對于攜帶簽名的數(shù)據(jù)包mk,利用對端公鑰public-key認(rèn)證此簽名。若ver(public-key,sHCk),即此數(shù)據(jù)包不能通過認(rèn)證,則丟棄數(shù)據(jù)包并反饋錯誤。
e)接收端接收能夠通過認(rèn)證的數(shù)據(jù)包。
3多種報文哈希鏈構(gòu)建方法
為了滿足多種應(yīng)用場景,設(shè)計了三種報文哈希鏈的構(gòu)建方法,包括報文哈希鏈的基本構(gòu)建方法、共享密鑰報文哈希鏈的構(gòu)建方法以及哈希加鹽報文哈希鏈的構(gòu)建方法。
3.1報文哈希鏈的基本構(gòu)建方法
設(shè)發(fā)送端向接收端發(fā)送的應(yīng)用層數(shù)據(jù)為m1,m2,…,mi。圖3所示為報文哈希鏈的基本構(gòu)建方法的示意圖,將每個報文mi利用哈希函數(shù)計算得到h(mi),再通過h(mi)計算得到對應(yīng)HCi。報文哈希鏈的基本構(gòu)造方法的具體步驟如下:
a)發(fā)送端確定需要發(fā)送到接收端的報文序列m1,m2,…,mi。
b)對每個報文mi,依次利用哈希函數(shù)計算h(mi)并放入報文哈希值隊列HQueue中。
c)將報文哈希值隊列的第一個元素h(m1)取出,設(shè)報文哈希鏈的第一個節(jié)點HC1=h(h(m1))。
d)依次將HQueue中剩余元素h(mi)(i∈{2,3,…,n})取出隊列,與報文哈希鏈的最后一個節(jié)點值HCi-1進(jìn)行拼接,利用哈希函數(shù)計算得到HCi=h(h(mi)‖HCi-1)。
e)當(dāng)HQueue中最后一個元素被取出隊列進(jìn)行計算,并使HQueue中沒有元素時,就計算得到了完整的報文哈希鏈,其節(jié)點值為
HCi=h(h(mi)‖HCi-1)i≥2
HC1i=1(1)
3.2共享密鑰報文哈希鏈構(gòu)建方法
3.2.1共享密鑰協(xié)商
共享密鑰認(rèn)證(shared key authentication)方案通過驗證通信對端是否掌握相同的密鑰確定對方身份是否合法。其最大的優(yōu)勢在于能防范第三方抵賴以及給家庭或小型網(wǎng)絡(luò)等負(fù)擔(dān)不起公鑰密碼體制的輕量級網(wǎng)絡(luò)一個解決方案,使網(wǎng)絡(luò)無須對每個數(shù)據(jù)進(jìn)行簽名和認(rèn)證。通信雙方通過協(xié)商共享密鑰參數(shù)以非直接傳遞共享密鑰的方式來防范中間人攻擊等網(wǎng)絡(luò)攻擊。共享密鑰報文哈希鏈構(gòu)建方法利用協(xié)商的共享密鑰參數(shù),通過密鑰導(dǎo)出函數(shù)計算得到共享密鑰。盡管共享密鑰方案比數(shù)字簽名方案在安全性上略顯不足,但其極大降低了驗證對端身份合法性的成本。共享密鑰報文哈希鏈構(gòu)建方法是指通信雙方在數(shù)據(jù)傳輸前,利用共享密鑰認(rèn)證方案協(xié)商一個共享密鑰,在報文隊列計算哈希隊列的過程中,將共享密鑰與報文一起通過哈希函數(shù)計算得到哈希值,基本過程如圖4所示。
3.2.2構(gòu)建共享密鑰報文哈希鏈的具體步驟
圖5為通信雙方構(gòu)建共享密鑰報文哈希鏈的整體結(jié)構(gòu)示意圖,具體的構(gòu)建步驟如下:
a)通信雙方協(xié)商彼此的共享密鑰,記共享密鑰為psk。
b)發(fā)送端確定需要發(fā)送到接收端的報文序列m1,m2,…,mi。
c)將每個數(shù)據(jù)mi與psk拼接,依次利用哈希函數(shù)計算h(mi‖psk)并放入報文哈希值隊列HQueue中。
d)將HQueue的第一個元素h(m1‖psk)取出,設(shè)報文哈希鏈的第一個節(jié)點HC1=h(h(m1‖psk))。
e)依次將HQueue中的元素h(mi‖psk)(i∈{2,3,…,n})取出隊列,與報文哈希鏈當(dāng)前最后一個節(jié)點值HCi-1進(jìn)行拼接,利用哈希函數(shù)計算得到HCi=h(h(mi‖psk)‖HCi-1)。
f)當(dāng)HQueue中最后一個元素被取出隊列進(jìn)行計算,并使HQueue中沒有元素時,就計算得到了完整的報文哈希鏈,其節(jié)點值為
HCi=h(h(mi‖psk)‖HCi-1)i≥2
HC1i=1(2)
3.3哈希加鹽報文哈希鏈構(gòu)建方法
3.3.1鹽值生成
哈希函數(shù)可以通過查表和彩虹表的方式破解哈希函數(shù)加密的內(nèi)容,其原理是若通過哈希函數(shù)計算前的內(nèi)容相同,則經(jīng)過哈希函數(shù)計算后的內(nèi)容也相同,而攻擊者可以通過查表法和彩虹表法破解加密內(nèi)容。利用哈希加鹽的方法能避免攻擊者通過上述方法破壞數(shù)據(jù)機密性。通信雙方需在構(gòu)建報文哈希鏈前協(xié)商一個隨機值,并將此隨機值作為鹽值,記為salt。例如,以發(fā)送或接收的某報文哈希值h(mλ)作為鹽值,則鹽值salt=h(mλ)。利用salt計算報文哈希鏈節(jié)點的過程如圖6所示。
3.3.2構(gòu)建哈希加鹽報文哈希鏈的具體步驟
圖7為通信雙方構(gòu)建哈希加鹽報文哈希鏈的整體結(jié)構(gòu)示意圖,具體的構(gòu)建步驟如下:
a)通信雙方在傳輸數(shù)據(jù)前協(xié)商一個雙方確定鹽值的規(guī)則,如將某一報文mλ的哈希值作為鹽值,則通信的鹽值salt=h(mλ)。
b)發(fā)送端確定需要發(fā)送到接收端的報文序列m1,m2,…,mi。
c)對每個報文mi,依次利用哈希函數(shù)計算h(mi)并放入報文哈希值隊列HQueue中。
d)將HQueue的第一個元素h(m1)取出,設(shè)報文哈希鏈的第一個節(jié)點HC1=h(h(m1)‖salt)。
e)依次將HQueue中的元素h(mi)(i∈{1,2,…,n})取出隊列,與報文哈希鏈的最后一個節(jié)點值HCi-1進(jìn)行拼接,利用哈希函數(shù)計算得到HCi=h(h(mi)‖HCi-1‖salt)。
f)當(dāng)HQueue中最后一個元素被取出隊列進(jìn)行計算,并使HQueue中沒有元素時,就計算得到了完整的報文哈希鏈,其節(jié)點值為
HCi=h(h(mi)‖HCi-1‖salt)i≥2
HC1i=1(3)
4安全性分析
定義1記報文哈希鏈驗證方案為三元組(HCV,SK,HS),滿足:a)HCV表示報文哈希鏈驗證算法,對于mi,mi+1,…,mi+k,igt;0,kgt;0且i,k∈,發(fā)送端能夠構(gòu)建報文哈希鏈節(jié)點值HCi,HCi+1,…,HCi+k,若接收端對此報文哈希鏈驗證成功,則必有HCV(mξ,HCξ,HC′ξ)=1,ξ∈[i,i+k];b)SK表示共享密鑰生成算法,生成共享密鑰psk;c)HS表示哈希鹽值生成算法,生成隨機鹽值salt。
定義2記安全數(shù)字簽名方案為(Gen,Sig,Ver),其中Gen表示非對稱密鑰生成算法,生成非對稱密鑰對(private-key,public-key);Sig表示簽名算法,對于報文哈希鏈節(jié)點值HCi計算簽名sig(private-key,HCi)=si;Ver表示簽名驗證算法,對于數(shù)字簽名si和由Gen生成的非對稱密鑰對(private-key,public-key),必有ver(public-key,si)=1。
4.1完整性和真實性
每個發(fā)送的報文mi包括sip(源ip地址)、dip(目的ip地址)、payload(數(shù)據(jù)載荷)以及other(其他信息),即
mi=(sipi‖dipi‖payloadi‖otheri)(4)
顯然由報文哈希鏈構(gòu)建公式可得
HCi=h(h(mi)‖HCi-1)=
h(h(sipi‖dipi‖payloadi‖otheri)‖HCi-1)=HC′i
若傳輸數(shù)據(jù)的完整性被破壞,即將mi轉(zhuǎn)變?yōu)閙′i,則說明傳輸過程中sipi轉(zhuǎn)變?yōu)閟ip′i,或dipi轉(zhuǎn)變?yōu)閐ip′i,或payloadi轉(zhuǎn)變?yōu)閜ayload′i,或otheri轉(zhuǎn)變?yōu)閛ther′i,由上式必有
HCi=h(h(mi)‖HCi-1)≠h(h(m′i)‖HCi-1)=h(h(m′i)‖HC′i-1)=HC′i
必然存在HC′i≠HCi使報文哈希鏈驗證不能成功。同理,在附加SK和HS安全手段的情況下同樣能夠保證數(shù)據(jù)的完整性和真實性,即
HCi=h(h(mi‖psk)‖HCi-1‖salt)≠h(h(m′i‖psk)‖
HCi-1‖salt)=h(h(m′i‖psk)‖HC′i-1‖salt)=HC′i
4.2不可抵賴性
存在發(fā)送端發(fā)送的報文序列mi,mi+1,…,mi+k,對mi對應(yīng)的報文哈希鏈節(jié)點值HCi進(jìn)行簽名得到si,并且接收端對簽名驗證和報文哈希鏈都驗證成功,即ver(public-key,si)=1且HCV(mi,HCi,HC′i)=1。假設(shè)在此鏈?zhǔn)胶灻校琺i+1,mi+2,…,mi+k-1不進(jìn)行簽名,下一次簽名的內(nèi)容為mi+k對應(yīng)的報文哈希鏈節(jié)點值HCi+k,si+k=sig(private-key,HCi+k)。若有ver(public-key,si+k)=1,由于是安全的數(shù)字簽名方案,則能夠保證mi+k的不可抵賴性,且同時能夠保證mi+1,mi+2,…,mi+k-1的不可抵賴性。
5實驗分析
5.1實驗環(huán)境
本文所設(shè)計的報文哈希鏈驗證代碼用C語言實現(xiàn),實驗代碼部署在多臺PC,并在真實網(wǎng)絡(luò)環(huán)境下進(jìn)行。其中包括模擬傳輸數(shù)據(jù)的發(fā)送端和接收端,以及模擬一個攻擊者試圖偽造利用安全數(shù)字簽名方案(Gen,Sig,Ver)進(jìn)行簽名的報文哈希鏈驗證方案(HCV,SK,HS)。PC的配置為:Intel CoreTM i7-10875H CPU@2.30 GHz以及16 GB RAM。
RSA簽名是現(xiàn)在廣泛使用的數(shù)字簽名算法,本文將與利用RSA數(shù)字簽名作為認(rèn)證手段的IPSec逐包簽名認(rèn)證方法和部分已有認(rèn)證方法進(jìn)行比特率對比。SHA-256是區(qū)塊鏈中使用的主要哈希函數(shù),本文所構(gòu)建的報文哈希鏈、對比文獻(xiàn)所用哈希函數(shù)以及RSA計算信息摘要所用哈希函數(shù)使用SHA-256。
5.2效率測試與分析
5.2.1性能分析
表2針對通信雙方分別利用報文哈希鏈簽名認(rèn)證方法、IPSec逐包簽名認(rèn)證方法以及已有的部分哈希鏈認(rèn)證方法作為報文認(rèn)證手段進(jìn)行效率分析和比較。假設(shè)進(jìn)行一次哈希函數(shù)的時間消耗為Thash,進(jìn)行一次簽名和驗證的時間消耗分別為Tsig和Tver,報文哈希鏈簽名認(rèn)證方法的簽名間隔為m,文獻(xiàn)[10]樹型哈希鏈高度為h,文獻(xiàn)[15]對每個隨機數(shù)進(jìn)行哈希函數(shù)的計算次數(shù)為t1,文獻(xiàn)[16]每個報文哈希函數(shù)迭代次數(shù)為t2,幾種認(rèn)證方法傳輸n個報文的時間消耗理論值如表2所示。
如表2所示,盡管本文的基本報文哈希鏈簽名認(rèn)證方法比IPSec逐包簽名認(rèn)證方法進(jìn)行哈希函數(shù)的計算次數(shù)多,但是簽名認(rèn)證的時間開銷明顯降低;文獻(xiàn)[10]方法在h=1時與IPSec逐包簽名認(rèn)證方法的時間開銷相同,雖然隨著h的增大能夠降低簽名和認(rèn)證過程的時間開銷,但通常情況下都有mgt;gt;2h-1,并且會增加哈希函數(shù)計算次數(shù),以及由于報文的長度限制導(dǎo)致樹型哈希鏈每高一層都會減小報文的有效載荷;文獻(xiàn)[15]的最大優(yōu)勢在于不存在簽名和認(rèn)證過程的時間開銷,但是其比無簽名的報文哈希鏈認(rèn)證方法的哈希函數(shù)計算開銷高約三倍;文獻(xiàn)[16]僅對每個報文進(jìn)行t2次哈希函數(shù)計算,而每個報文的哈希鏈之間不存在聯(lián)系,使每個報文的不可抵賴性只能通過簽名的方法,因此文獻(xiàn)[16]的時間開銷要大于報文哈希鏈簽名認(rèn)證方法和IPSec逐包簽名認(rèn)證方法。
5.2.2報文哈希鏈效率測試與對比
為評估報文哈希鏈傳輸?shù)乃俣?,本文采用比特率來衡量報文哈希鏈在一段時間內(nèi)多次傳輸?shù)钠骄鶖?shù)據(jù)量。
BR=ADT/TT(5)
其中:BR表示比特率;ADT表示平均傳輸數(shù)據(jù)量;TT表示傳輸時間。
本節(jié)將IPSec簽名認(rèn)證方法和可比性相對最高的文獻(xiàn)[12]方法作為對比。為測試報文哈希鏈簽名認(rèn)證方法、IPSec簽名認(rèn)證方法和文獻(xiàn)[10]方法的比特率對比,實驗通過測量1 s、2 s、5 s、10 s、30 s內(nèi)傳輸?shù)臄?shù)據(jù)量計算對應(yīng)時間內(nèi)的平均比特率。本文利用UDP協(xié)議進(jìn)行幾種簽名認(rèn)證方法的數(shù)據(jù)傳輸。在數(shù)據(jù)鏈路層由以太網(wǎng)的物理特性決定了數(shù)據(jù)幀的最大容量MTU(maximum transmission unit)為1500 B,在網(wǎng)絡(luò)層IP數(shù)據(jù)包的首部占用20 B,傳輸層UDP包的首部占用8 B,為了避免數(shù)據(jù)包分片重組,設(shè)置每個數(shù)據(jù)包的內(nèi)容MTU-IPH-UDPH=1 472 B,其中IPH為IP協(xié)議頭大小,UDPH為UDP協(xié)議頭大小。報文哈希鏈節(jié)點大小為64 B,RSA公鑰大小為2 048 bit=256 B,數(shù)字簽名大小為256 B,可得報文哈希鏈簽名認(rèn)證方法的每個數(shù)據(jù)包內(nèi)容為1 472-64=1 408 B,IPSec簽名認(rèn)證方法的每個數(shù)據(jù)包內(nèi)容為1 472-256=1 216 B;文獻(xiàn)[12]采用高度為8的樹型哈希鏈以達(dá)到相對較高的傳輸效率,每個數(shù)據(jù)包的內(nèi)容為1 472-128=1 344 B。
分別測量報文哈希鏈簽名認(rèn)證方法中三種報文哈希鏈構(gòu)建方法、IPSec簽名認(rèn)證方法和文獻(xiàn)[10]方法在1 s、2 s、5 s、10 s內(nèi)傳輸?shù)臄?shù)據(jù)包數(shù),測試結(jié)果如表3所示。其中每個方案在各時刻傳輸數(shù)據(jù)包的數(shù)量為100次測量得到的平均值。
由計算得到三種構(gòu)建方法下的報文哈希鏈簽名認(rèn)證方法、IPSec簽名認(rèn)證方法和文獻(xiàn)[10]方法在1 s、2 s、5 s、10 s以及30 s內(nèi)的比特率。比較結(jié)果如圖8所示,可以看出,每種方法在5 s后的比特率都達(dá)到穩(wěn)定,基本報文哈希鏈簽名認(rèn)證方法在2 s內(nèi)平均比IPSec逐包簽名認(rèn)證方法提高約48 Mbps;在5 s后比IPSec逐包簽名認(rèn)證方法比特率平均提高約120 Mbps,比文獻(xiàn)[10]比特率平均提高約40 Mbps;5~10 s內(nèi)的共享密鑰報文哈希鏈簽名認(rèn)證方法和哈希加鹽報文哈希鏈簽名認(rèn)證方法的平均比特率分別低于基本報文哈希鏈簽名認(rèn)證方法平均比特率約11 Mbps、12 Mbps;傳輸穩(wěn)定后的共享密鑰報文哈希鏈簽名認(rèn)證方法和哈希加鹽報文哈希鏈簽名認(rèn)證方法的平均比特率都與基本報文哈希鏈簽名認(rèn)證方法平均比特率處于同一水平。
5.2.3不同簽名間隔報文哈希鏈效率對比
為了在提高傳輸效率的同時確保數(shù)據(jù)的安全性,報文哈希鏈簽名認(rèn)證方法按一定策略對報文序列進(jìn)行簽名,本實驗對采用不同簽名間隔的報文哈希鏈簽名認(rèn)證方法與IPSec簽名認(rèn)證方法的平均比特率進(jìn)行比較。實驗設(shè)置不進(jìn)行簽名的報文哈希鏈、每隔10、100、1 000個數(shù)據(jù)包一次簽名的報文哈希鏈以及IPSec逐包簽名認(rèn)證方法的平均比特率進(jìn)行對比,測試結(jié)果如表4所示。
對測試所得各方案對應(yīng)時間內(nèi)傳輸數(shù)據(jù)量計算得出每個方案的平均比特率,圖9為各簽名間隔報文哈希鏈簽名認(rèn)證方法與IPSec簽名認(rèn)證方法的平均比特率對比,測試結(jié)果顯示傳輸穩(wěn)定后的無簽名報文哈希鏈、簽名間隔為10、100、1 000的報文哈希鏈簽名認(rèn)證方法比IPSec逐包簽名認(rèn)證方法的平均比特率分別提高約120 Mbps、33 Mbps、97 Mbps和117 Mbps。其中簽名間隔為1 000的報文哈希鏈簽名認(rèn)證方法的平均比特率略低于無簽名報文哈希鏈簽名認(rèn)證方法。
5.2.4安全性測試與分析
中間人攻擊是具有代表性的關(guān)于身份欺騙和地址偽造等網(wǎng)絡(luò)問題的攻擊手法,本實驗?zāi)M中間人攻擊環(huán)境,測試報文哈希鏈簽名認(rèn)證方法對于中間人攻擊的抵抗性。實驗設(shè)置一個節(jié)點為受害者、一個通信目標(biāo)主機和一個攻擊者,其網(wǎng)卡所處網(wǎng)段和IP地址如表5所示。其中攻擊者位于受害者與通信目標(biāo)主機間通信的必經(jīng)節(jié)點。攻擊者能夠截取并轉(zhuǎn)發(fā)受害者的數(shù)據(jù)包,并以隨機次序更改轉(zhuǎn)發(fā)到通信目標(biāo)主機的數(shù)據(jù)包內(nèi)容;同樣,通信目標(biāo)主機返回的數(shù)據(jù)包也被攻擊者截取和轉(zhuǎn)發(fā),并以隨機次序更改數(shù)據(jù)包內(nèi)容。圖10為中間人攻擊實驗的環(huán)境模擬圖。
實驗中受害者與通信目標(biāo)主機間報文哈希鏈構(gòu)建方法使用簽名間隔為100的基本報文哈希鏈、共享密鑰報文哈希鏈、哈希加鹽報文哈希鏈。攻擊者采用偽隨機數(shù)生成器在[1,1 000]內(nèi)選定竄改次序,竄改內(nèi)容包括竄改數(shù)據(jù)內(nèi)容和竄改報文哈希鏈內(nèi)容。
實驗記錄了攻擊者竄改數(shù)據(jù)包的次序和內(nèi)容,測試受害者和通信目標(biāo)主機利用報文哈希鏈驗證數(shù)據(jù)包安全性的準(zhǔn)確率。設(shè)數(shù)據(jù)包準(zhǔn)確率為pktac,pktac=0表示受害者和通信目標(biāo)主機未能發(fā)現(xiàn)數(shù)據(jù)被竄改,pktac=1表示能發(fā)現(xiàn)數(shù)據(jù)被竄改。設(shè)整體準(zhǔn)確率為overac,則overac的計算方法為
overac=∑ni=1pktaci/n(6)
實驗分別進(jìn)行了10次中間人攻擊測試,則10次測試結(jié)果如表6所示,其中竄改次序為攻擊者竄改受害者與通信目標(biāo)主機間通信的數(shù)據(jù)包次序,發(fā)現(xiàn)次序為受害者或通信目標(biāo)主機發(fā)現(xiàn)被竄改的數(shù)據(jù)包次序。由實驗結(jié)果可知,每個被攻擊者竄改的數(shù)據(jù)包都不能通過報文哈希鏈驗證,可以說明報文哈希鏈簽名認(rèn)證方法對中間人攻擊具有抵抗性。
6結(jié)束語
在數(shù)據(jù)傳輸過程中利用IPSec逐包簽名認(rèn)證等手段可以保證數(shù)據(jù)的真實性,可有效防御身份欺騙和地址偽造等攻擊手段,但是由于需要對每個傳輸?shù)臄?shù)據(jù)包進(jìn)行簽名和驗證,且簽名和驗證過程的開銷大,成為了影響傳輸效率的重要因素。本文提出了一種報文哈希鏈的簽名認(rèn)證方法,通過將傳輸?shù)膱笪男纬梢粭l報文序列的哈希鏈,提高了數(shù)據(jù)傳輸?shù)陌踩院托?。報文哈希鏈存在三種構(gòu)建方法,分別滿足不同的應(yīng)用場景。本文從簽名過程和認(rèn)證過程對報文哈希鏈簽名認(rèn)證方法進(jìn)行詳細(xì)闡述,并對其進(jìn)行安全性分析。最后通過測量固定時間內(nèi)傳輸數(shù)據(jù)量的大小,比較三種構(gòu)建方法下的報文哈希鏈簽名認(rèn)證方法、IPSec簽名認(rèn)證方法和已有的相關(guān)方法的比特率以及不同簽名間隔的報文哈希鏈簽名認(rèn)證方法與IPSec簽名認(rèn)證方法的比特率;通過模擬中間人攻擊測試基于報文哈希鏈簽名認(rèn)證方法驗證數(shù)據(jù)安全性的準(zhǔn)確率。實驗結(jié)果表明在相同的傳輸條件下,三種構(gòu)建方法下的報文哈希鏈簽名認(rèn)證方法的比特率相比IPSec簽名認(rèn)證方法和已有的相關(guān)方法的比特率有明顯提高,且簽名間隔越大則傳輸效率越高,同時基于報文哈希鏈的簽名認(rèn)證方法能夠及時認(rèn)證數(shù)據(jù)的安全性,能夠防范中間人攻擊。
未來的工作可以完善基于報文哈希鏈的簽名認(rèn)證方法的簽名和驗簽過程;解決簽名驗證不成功后如何定位錯誤報文的問題;完善報文哈希鏈驗證失敗后糾正錯誤與同步信息的過程;解決如何將此簽名認(rèn)證方法應(yīng)用于廣播等應(yīng)用領(lǐng)域。
參考文獻(xiàn):
[1]Frankel S.RFC 6071,IP security (IPSec) and Internet key exchange(IKE) document roadmap[S].2011.
[2]Atreya M.數(shù)字簽名[M].賀軍, 等譯.北京:清華大學(xué)出版社,2003.(Atreya M.Digital signature[M].He Jun,trans.Beijing:Tsinghua University Press,2003.)
[3]Arkko J,Devarapalli V,Dupont F.RFC 3776,Using IPsec to protect mobile IPv6 signaling between mobile nodes and home agents[S].2004.
[4]Liyanage M,Ahmed I,Ylianttila M,et al.Security for future software defined mobile networks[C]//Proc of the 9th International Confe-rence on Next Generation Mobile Applications,Services and Techno-logies.Piscataway,NJ:IEEE Press,2015:256-264.
[5]Atkinson R.RFC 1826,IP authentication header[S].1995.
[6]Kent S,Atkinson R.RFC 2406,IP encapsulating security payload(ESP)[S].1998.
[7]章峰,史博軒,蔣文保.區(qū)塊鏈關(guān)鍵技術(shù)及應(yīng)用研究綜述[J].網(wǎng)絡(luò)與信息安全學(xué)報,2018,4(4):22-29.(Zhang Feng,Shi Boxuan,Jiang Wenbao.Review of key technology and its application of blockchain[J].Chinese Journal of Network and Information Security,2018,4(4):22-29.)
[8]袁勇,王飛躍.區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望[J].自動化學(xué)報,2016,42(4):481-494.(Yuan Yong,Wang Feiyue.Blockchain:the state of the art and future trends[J].Acta Automatica Sinica,2016,42(4):481-494.)
[9]Lamport L.Password authentication with insecure communication[J].Communications of the ACM,1981,24(11):770-772.
[10]Wong C K,Lam S S.Digital signatures for flows and multicasts[J].IEEE/ACM Trans on Networking,1999,7(4):502-513.
[11]Golle P,Modadugu N.Authenticating streamed data in the presence of random packet loss[C]//Proc of Network and Distributed System Security Symposium.2001:13-22.
[12]柳春雷,謝冬青,秦大力.基于Hash鏈的流式數(shù)據(jù)簽名與驗證研究[J].計算機應(yīng)用研究,2005,22(4):69-71.(Liu Chunlei,Xie Dongqing,Qin Dali.Research on streamed data authentication and signature based on hash chains[J].Application Research of Compu-ters,2005,22(4):69-71.)
[13]Zhang Z,Sun Q,Wong W C.A proposal of butterfly-graph based stream authentication over lossy networks[C]//Proc of IEEE International Conference on Multimedia amp; Expo.Washington DC:IEEE Computer Society,2005.
[14]Miller D.A hash-chain based method for full or partial authentication of communication in a real-time wireless environment[D].Waterloo,Canada:University of Waterloo,2010.
[15]蔡滿春,趙海洋,郭代飛.移動環(huán)境下的一種基于雙向認(rèn)證的哈希鏈簽名方案[J].計算機應(yīng)用研究,2008,25(5):1532-1533,1588.(Cai Manchun,Zhao Haiyang,Guo Daifei.Mutual authentication-based hash chain signature scheme in mobile environment[J].Application Research of Computers,2008,25(5):1532-1533,1588.)
[16]劉飛,張仁斌,李鋼,等.基于哈希鏈與同步性機制的Modbus/TCP安全認(rèn)證協(xié)議[J].計算機應(yīng)用研究,2018,35(4):1169-1173,1186.(Liu Fei,Zhang Renbin,Li Gang,et al.Security authentication protocol of Modbus/TCP based on hash chain and synchronization mechanism[J].Application Research of Computer,2018,35(4):1169-1173,1186.)
[17]Huang Qinglong,Huang Haiping,Wang Wenming,et al.An authentication scheme based on novel construction of hash chains for smart mobile devices[J].Wireless Communications and Mobile Computing,2020,2020:articleID 8888679.
[18]張浩軍,祝躍飛.一種可自更新hash鏈機制[J].武漢大學(xué)學(xué)報:理學(xué)版,2006,52(5):596-599.(Zhang Haojun,Zhu Yuefei.A self-renewable hash chain scheme[J].Journal of Wuhan University:Natural Science Edition,2006,52(5):596-599.)
[19]李保紅,侯義斌,趙銀亮.一種優(yōu)化的多播報文認(rèn)證機制[J].計算機工程,2006,32(1):154-156.(Li Baohong,Hou Yibin,Zhao Yinliang.An optimized scheme for multicast packet authentication[J].Computer Engineering,2006,32(1):154-156.)
[20]Hakeem S A A,El-Kader S M A,Kim H W.A key management protocol based on the hash chain key generation for Securing LoRaWAN networks[J].Sensors,2021,21(17):5838.
[21]Huang Neng,Zhu Junxing,Guo Chaonian,et al.A novel hash chain-based data availability monitoring method for off-site disaster recovery architecture[J].Journal of Circuits,Systems and Computers,2021,DOI:10.1142/S0218126621502947.
[22]Kim D,Sang S,Kim H,et al.A study on the concept of using efficient lightweight hash chain to improve authentication in VMF military standard[J].Applied Sciences,2020,10(24):8999.
[23]Luo Gege,Shi Mingxian,Zhao Caidan,et al.Hash-chain-based cross-regional safety authentication for space-air-ground integrated VANETs[J].Applied Sciences,2020,10(12):4206.
收稿日期:2021-08-24;修回日期:2021-10-21基金項目:國家重點研發(fā)計劃資助項目(2018YFB1800100);科技創(chuàng)新服務(wù)能力建設(shè)—網(wǎng)絡(luò)空間安全學(xué)科創(chuàng)新平臺建設(shè)基金資助項目(77F1910917)
作者簡介:韓明軒(1997-),男,北京人,碩士,主要研究方向為網(wǎng)絡(luò)空間安全、可信網(wǎng)絡(luò);蔣文保(1969-),男(通信作者),湖南永州人,教授,博導(dǎo),博士,主要研究方向為可信網(wǎng)絡(luò)、信任管理、區(qū)塊鏈、網(wǎng)絡(luò)空間主權(quán)(jiangwenbao@tsinghua.org.cn);郭陽楠(1998-),男,山西晉城人,主要研究方向為可信網(wǎng)絡(luò)、區(qū)塊鏈.