石樂(lè)義,單寶穎,魏東平
中國(guó)石油大學(xué)(華東)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 青島 266580
移動(dòng)自組網(wǎng),即移動(dòng)Ad Hoc 網(wǎng)絡(luò),也稱MANET(mobile Ad Hoc network),是一種不依賴固定基礎(chǔ)設(shè)施的分布式移動(dòng)網(wǎng)絡(luò)。節(jié)點(diǎn)可以隨意地加入或離開(kāi)網(wǎng)絡(luò),任何一個(gè)節(jié)點(diǎn)的故障都不會(huì)影響整個(gè)網(wǎng)絡(luò)的運(yùn)行,具有很強(qiáng)的抗毀性[1]。
MANET網(wǎng)絡(luò)結(jié)合了移動(dòng)通信和計(jì)算機(jī)網(wǎng)絡(luò):一方面,MANET 網(wǎng)絡(luò)的信息交換采用了分組交換機(jī)制;另一方面,用戶終端節(jié)點(diǎn)是可以自由移動(dòng)的并配置無(wú)線收發(fā)裝置的便攜式終端(比如筆記本、掌上電腦等)。MANET網(wǎng)絡(luò)中的用戶終端與普通網(wǎng)絡(luò)用戶終端的最大區(qū)別在于前者兼有主機(jī)和路由器功能。MANET 網(wǎng)絡(luò)最大的優(yōu)勢(shì)在于其可以在不能利用或不方便利用現(xiàn)有的網(wǎng)絡(luò)基礎(chǔ)設(shè)施(比如基站)的情況下提供一種通信支持方式,拓寬了移動(dòng)網(wǎng)絡(luò)的應(yīng)用范圍。MANET 網(wǎng)絡(luò)的自組織性提供了廉價(jià)且快速部署網(wǎng)絡(luò)的可能,此外,分布式結(jié)構(gòu)使得網(wǎng)絡(luò)的健壯性、抗毀性也很強(qiáng)。因此MANET網(wǎng)絡(luò)的應(yīng)用相當(dāng)廣泛,比如軍事戰(zhàn)場(chǎng)信息系統(tǒng)建設(shè)、民用緊急救助、傳感器網(wǎng)絡(luò)等眾多領(lǐng)域。但是MANET 網(wǎng)絡(luò)使用無(wú)線信道傳輸、拓?fù)浣Y(jié)構(gòu)動(dòng)態(tài)變化等使得其很容易受到諸如主動(dòng)入侵或是被動(dòng)入侵的攻擊,因此MANET網(wǎng)絡(luò)安全不可忽視[2-3]。
MANET網(wǎng)絡(luò)認(rèn)證體系是安全的第一道防線,也是MANET網(wǎng)絡(luò)安全路由、數(shù)據(jù)通信的基礎(chǔ)。移動(dòng)自組織網(wǎng)絡(luò)目前廣泛研究的安全認(rèn)證機(jī)制主要包括以下三類:
集中式認(rèn)證主要是把有線網(wǎng)絡(luò)中的公鑰基礎(chǔ)設(shè)施(public key infrastructure,PKI)機(jī)制應(yīng)用到MANET網(wǎng)絡(luò)中,其原理是在MANET網(wǎng)絡(luò)中的節(jié)點(diǎn)中選出一個(gè)節(jié)點(diǎn)充當(dāng)CA(certificate authority),負(fù)責(zé)證書(shū)的發(fā)放、更新、撤銷等管理工作[4]。但是這種方式使得CA承擔(dān)繁重的管理工作,存在單點(diǎn)故障的風(fēng)險(xiǎn),即一旦CA 被攻擊癱瘓,那么整個(gè)網(wǎng)絡(luò)將會(huì)受到嚴(yán)重影響。此外,MANET 網(wǎng)絡(luò)中的節(jié)點(diǎn)大多是移動(dòng)終端,其電量和存儲(chǔ)能力有限,因此很難找到一個(gè)節(jié)點(diǎn)來(lái)承擔(dān)集中式CA 的任務(wù)。從而,在MANET 網(wǎng)絡(luò)中采用集中式的認(rèn)證系統(tǒng)并不合適。
分布式認(rèn)證是由MANET 網(wǎng)絡(luò)內(nèi)多個(gè)節(jié)點(diǎn)相互協(xié)同作為一個(gè)認(rèn)證權(quán)威服務(wù)器,這樣CA的功能就被分配到了多個(gè)節(jié)點(diǎn)上,其基礎(chǔ)是秘密共享。文獻(xiàn)[5-6]提出了局部分布式方案,該方案利用了門限密碼機(jī)制(t,n),主要思想是將CA的簽名密鑰分成n份部分簽名密鑰并分發(fā)給指定的n個(gè)節(jié)點(diǎn),其中任意t個(gè)節(jié)點(diǎn)聯(lián)合起來(lái)才能合成一份有效的證書(shū)來(lái)執(zhí)行CA 功能,而少于t個(gè)節(jié)點(diǎn)則不能恢復(fù)出簽名密鑰,也就無(wú)法產(chǎn)生有效證書(shū),具有一定的容侵性。同時(shí),該方案改進(jìn)了集中式CA的不足,有效防止了單點(diǎn)故障。但是新節(jié)點(diǎn)的認(rèn)證需要與t個(gè)節(jié)點(diǎn)進(jìn)行通信,任意一個(gè)節(jié)點(diǎn)返回證書(shū)有誤都將無(wú)法合成有效證書(shū),因此增加了網(wǎng)絡(luò)開(kāi)銷。文獻(xiàn)[7-8]提出了全局分布式思想。在全局分布式認(rèn)證里,CA的簽名密鑰分給網(wǎng)絡(luò)中的所有節(jié)點(diǎn),所有節(jié)點(diǎn)共同承擔(dān)網(wǎng)絡(luò)的認(rèn)證服務(wù),安全認(rèn)證服務(wù)的可用性較高。但是所有節(jié)點(diǎn)都擁有私鑰份額,增加了私鑰暴露的風(fēng)險(xiǎn)。由于CA證書(shū)管理維護(hù)比較復(fù)雜,Khalili等人將基于身份的公鑰加密體制[9-11]應(yīng)用到了MANET 安全認(rèn)證中。該方案是以節(jié)點(diǎn)的唯一性身份(比如網(wǎng)卡物理地址、設(shè)備編號(hào)等)作為公鑰,因此這種機(jī)制不需要公鑰證書(shū)。但是,這種方案的私鑰是由私鑰生成器產(chǎn)生的,私鑰被其強(qiáng)制托管。文獻(xiàn)[12]使用基于ECC 的密碼系統(tǒng)提出了一種新的完全分布式的基于ID 的密鑰管理算法,消除了對(duì)密鑰生成中心和私鑰生成器的需求,從而解決了密鑰托管問(wèn)題。文獻(xiàn)[13]中Kumar 等人將輕量級(jí)加密協(xié)議和門限秘密共享相結(jié)合,實(shí)現(xiàn)了MANET分布式認(rèn)證。
自組織認(rèn)證方式的初始化及運(yùn)行(包括密鑰的管理及撤銷)全部由網(wǎng)內(nèi)的節(jié)點(diǎn)承擔(dān),在該認(rèn)證系統(tǒng)中,證書(shū)鏈相當(dāng)于CA 的角色。Hubaux 等人[14-15]設(shè)計(jì)了一種自組織認(rèn)證方案,各節(jié)點(diǎn)各自維護(hù)證書(shū)庫(kù),認(rèn)證雙方合并它們的證書(shū)庫(kù)并從中尋找證書(shū)鏈。該認(rèn)證方法依靠節(jié)點(diǎn)的近距離接觸來(lái)交換證書(shū)以此來(lái)合成證書(shū)庫(kù),而MANET 網(wǎng)絡(luò)中的節(jié)點(diǎn)分布網(wǎng)絡(luò)各處,并不能保證網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都會(huì)及時(shí)相遇,也就無(wú)法保證節(jié)點(diǎn)總能很快發(fā)現(xiàn)所需證書(shū)鏈。文獻(xiàn)[16]提出一種自組織按需式認(rèn)證方案,該方案不關(guān)心整個(gè)網(wǎng)絡(luò)的證書(shū)情況,只在需要的時(shí)候才主動(dòng)構(gòu)建證書(shū)鏈,避免了網(wǎng)絡(luò)中周期性廣播交換證書(shū)而造成網(wǎng)絡(luò)負(fù)載過(guò)重問(wèn)題。文獻(xiàn)[17]提出的自組織量子密鑰認(rèn)證技術(shù)為每個(gè)移動(dòng)節(jié)點(diǎn)生成自組織密鑰,找到傳輸數(shù)據(jù)的安全路徑并在目的節(jié)點(diǎn)利用自組織密鑰進(jìn)行節(jié)點(diǎn)驗(yàn)證,提高了MANET中的數(shù)據(jù)安全性。
共識(shí)機(jī)制是區(qū)塊鏈[18-19]的核心,保證去中心化網(wǎng)絡(luò)中數(shù)據(jù)的一致性,節(jié)點(diǎn)通過(guò)解決一個(gè)求解復(fù)雜但容易驗(yàn)證的數(shù)學(xué)難題來(lái)競(jìng)爭(zhēng)獲得區(qū)塊鏈的記賬權(quán),獲得區(qū)塊鏈記賬權(quán)的節(jié)點(diǎn)將獲得一定的比特幣獎(jiǎng)勵(lì)。本文在前人工作的基礎(chǔ)上,針對(duì)以上各種認(rèn)證方式下的問(wèn)題及共識(shí)機(jī)制的優(yōu)越性,提出了一種基于共識(shí)算法的CA選舉方法,并結(jié)合輕量級(jí)CA[20-21]思想,構(gòu)建一種適合移動(dòng)自組織網(wǎng)的認(rèn)證方法。該方法的優(yōu)勢(shì)在于通過(guò)共識(shí)算法周期性地選舉出當(dāng)前CA,全網(wǎng)快速達(dá)成共識(shí)后,即可確定CA,使得CA節(jié)點(diǎn)不可假冒。由于CA節(jié)點(diǎn)周期性地變換,其生存周期僅限于當(dāng)前周期內(nèi),使得攻擊者無(wú)法預(yù)測(cè)下一個(gè)周期CA是哪個(gè)節(jié)點(diǎn),既保留了集中式認(rèn)證快速方便地建立節(jié)點(diǎn)間信任關(guān)系的優(yōu)點(diǎn),又具有門限機(jī)制的容侵性,提高了系統(tǒng)的健壯性。
(1)輕量級(jí)CA 節(jié)點(diǎn):通過(guò)共識(shí)算法周期性選出并得到全網(wǎng)共識(shí)的節(jié)點(diǎn),在一個(gè)周期內(nèi)只有一個(gè)CA節(jié)點(diǎn)承擔(dān)CA功能,主要負(fù)責(zé)對(duì)普通用戶節(jié)點(diǎn)進(jìn)行身份認(rèn)證并為普通節(jié)點(diǎn)頒發(fā)輔公鑰。
(2)普通用戶節(jié)點(diǎn):MANET網(wǎng)內(nèi)除了CA節(jié)點(diǎn)的其他普通用戶節(jié)點(diǎn),用戶節(jié)點(diǎn)間有通信的需求。
系統(tǒng)進(jìn)行初始化。輕量級(jí)CA(lightweight certificate authority,LCA)執(zhí)行Gi算法,輸入系統(tǒng)參數(shù)集K,輸出LCA的公/私鑰對(duì)(PKLCA/SKLCA),其中PKLCA是LCA 的公鑰,SKLCA是LCA 的私鑰;用戶節(jié)點(diǎn)執(zhí)行Gi算法,輸入系統(tǒng)參數(shù)集K,輸出各個(gè)用戶節(jié)點(diǎn)的主公鑰/私鑰對(duì),其中是用戶節(jié)點(diǎn)Ni的主公鑰,是用戶節(jié)點(diǎn)Ni的私鑰。具體初始化過(guò)程詳見(jiàn)文獻(xiàn)[22]。
(1)CA選取過(guò)程
①所有節(jié)點(diǎn)不斷嘗試區(qū)塊頭中的隨機(jī)數(shù)(nonce),并對(duì)每次變更后的區(qū)塊頭做雙重哈希運(yùn)算,將結(jié)果值與當(dāng)前網(wǎng)絡(luò)的目標(biāo)值作對(duì)比,如果小于或等于目標(biāo)值,則解題成功。區(qū)塊頭中的字段包含版本號(hào)、上一個(gè)區(qū)塊頭的哈希值、時(shí)間戳、難度值、隨機(jī)數(shù)nonce、Merkle 樹(shù)根等。其中Merkle 樹(shù)被用來(lái)歸納一個(gè)區(qū)塊的所有交易認(rèn)證消息,同時(shí)生成整個(gè)交易認(rèn)證集合的數(shù)字指紋,且提供了一種校驗(yàn)區(qū)塊是否存在某交易認(rèn)證消息的高效途徑。生成一棵完整的Merkle 樹(shù)需要遞歸地對(duì)節(jié)點(diǎn)兩兩進(jìn)行哈希,并將新生成的哈希節(jié)點(diǎn)插入到Merkle 樹(shù)中,直到只剩一個(gè)哈希節(jié)點(diǎn),該節(jié)點(diǎn)就是Merkle樹(shù)根。
廣播消息:
Fig.1 Flow chart of CA selection圖1 CA選取流程圖
③全網(wǎng)節(jié)點(diǎn)驗(yàn)證該解是否滿足挖礦難度的條件,驗(yàn)證過(guò)程為:把隨機(jī)數(shù)nonce代入數(shù)學(xué)難題,如果與目標(biāo)值相符并且計(jì)算得到的與收到的相等,那么驗(yàn)證成功,全網(wǎng)節(jié)點(diǎn)則停止本次挖礦,把該區(qū)塊連接到上個(gè)區(qū)塊后面。然后繼續(xù)挖下一個(gè)區(qū)塊,此時(shí)全網(wǎng)節(jié)點(diǎn)達(dá)成共識(shí),即求得該解的節(jié)點(diǎn)擔(dān)任本周期內(nèi)的CA 節(jié)點(diǎn),執(zhí)行CA 功能;否則,丟棄該塊,繼續(xù)本次挖礦。圖1 給出了CA選取流程圖。
(2)向當(dāng)前CA申請(qǐng)輔公鑰
有通信需求的節(jié)點(diǎn)Ni用當(dāng)前CA 的公鑰加密申請(qǐng)消息來(lái)向當(dāng)前CA申請(qǐng)輔公鑰(),CA收到申請(qǐng)消息后,用自己的私鑰解密得到節(jié)點(diǎn)Ni的身份標(biāo)識(shí)和主公鑰,根據(jù)用戶查詢黑名單,如果節(jié)點(diǎn)不在黑名單內(nèi),則計(jì)算,若與收到的相等,則說(shuō)明消息是完整的。然后CA節(jié)點(diǎn)用自己的私鑰為節(jié)點(diǎn)的ID 和主公鑰簽名生成輔公鑰并返回給節(jié)點(diǎn)。
申請(qǐng)消息:
響應(yīng)消息:
(3)通信雙方獲取對(duì)方主公鑰
如果節(jié)點(diǎn)A和節(jié)點(diǎn)B要進(jìn)行通信,必須先驗(yàn)證對(duì)方的身份并獲得對(duì)方的主公鑰。
交換輔公鑰:
節(jié)點(diǎn)A和B交換輔公鑰,用當(dāng)前CA的公鑰解密后獲得對(duì)方的主公鑰,這同時(shí)也說(shuō)明了對(duì)方是經(jīng)當(dāng)前CA 簽名認(rèn)證的合法用戶節(jié)點(diǎn)。繼而雙方可以協(xié)商會(huì)話密鑰,使得消息經(jīng)過(guò)安全通道傳遞。
(4)CA進(jìn)行周期性輪轉(zhuǎn)
經(jīng)過(guò)特定時(shí)間后,當(dāng)網(wǎng)內(nèi)有節(jié)點(diǎn)再次計(jì)算出特定解時(shí),則繼續(xù)執(zhí)行步驟(1)。
圖2給出了本文方案的通信模型圖。
Fig.2 Communication model圖2 通信模型
(1)輕量級(jí)CA。本文方案中的CA 采用輕量級(jí)CA,CA用自己的私鑰對(duì)請(qǐng)求通信的節(jié)點(diǎn)的主公鑰和身份ID 進(jìn)行簽名,從而生成輔公鑰。這里的輔公鑰相當(dāng)于傳統(tǒng)CA 中的證書(shū),區(qū)別在于傳統(tǒng)CA 集中負(fù)責(zé)簽發(fā)、認(rèn)證、管理實(shí)體證書(shū),CA任務(wù)繁重。而輔公鑰是由每個(gè)用戶節(jié)點(diǎn)自己管理,使得CA達(dá)到輕量級(jí)。
(2)CA 節(jié)點(diǎn)是通過(guò)計(jì)算特定數(shù)學(xué)難題獲得特定解并得到全網(wǎng)節(jié)點(diǎn)確認(rèn)而快速達(dá)到共識(shí)的節(jié)點(diǎn),非對(duì)稱算法SHA256的性質(zhì)決定了求解的隨機(jī)性,從而使得CA角色輪換的隨機(jī)性,大大增加了攻擊者確定CA節(jié)點(diǎn)的難度,有效提高了網(wǎng)絡(luò)安全性。
(3)CA 節(jié)點(diǎn)根據(jù)難度值可以動(dòng)態(tài)調(diào)整計(jì)算結(jié)果周期,其執(zhí)行CA功能僅限當(dāng)前周期內(nèi)。下個(gè)周期當(dāng)網(wǎng)內(nèi)有節(jié)點(diǎn)再次計(jì)算出特定解,則CA節(jié)點(diǎn)進(jìn)行輪換。
難度值是每個(gè)節(jié)點(diǎn)在生成區(qū)塊時(shí)的重要指標(biāo),通過(guò)難度值的設(shè)計(jì),解決了節(jié)點(diǎn)在不同算力的條件下,基本上保持每10 min 生成一個(gè)新區(qū)塊。由于節(jié)點(diǎn)的算力是不同且不停變化的,因此難度值必須根據(jù)全網(wǎng)算力的變化進(jìn)行調(diào)整,并且難度值的調(diào)整是在每個(gè)完整節(jié)點(diǎn)中獨(dú)立自動(dòng)發(fā)生的。調(diào)整的方法是,每隔2 016 個(gè)區(qū)塊,所有節(jié)點(diǎn)都會(huì)按統(tǒng)一的公式自動(dòng)調(diào)整難度值。公式如下:
其中,期望時(shí)長(zhǎng)為20 160 min,即兩周,是按每10 min一個(gè)區(qū)塊的產(chǎn)生速率計(jì)算出的總時(shí)長(zhǎng)。
新難度值根據(jù)實(shí)際時(shí)長(zhǎng)與期望時(shí)長(zhǎng)的比值,進(jìn)行動(dòng)態(tài)調(diào)整(變難或者變易)。也就是說(shuō),如果區(qū)塊產(chǎn)生的速率比10 min 快,則難度值減小,難度增加,這樣會(huì)造成下一個(gè)區(qū)塊產(chǎn)生的速率下降;比10 min慢,則難度值增加,難度減小,這樣會(huì)造成下一個(gè)區(qū)塊產(chǎn)生的速率增加。這樣即可動(dòng)態(tài)地調(diào)整產(chǎn)生每個(gè)區(qū)塊的速率,從而使每個(gè)區(qū)塊的產(chǎn)生時(shí)間始終在10 min上下波動(dòng)。
(4)集中式認(rèn)證能夠方便快捷地建立節(jié)點(diǎn)間信任關(guān)系,但是系統(tǒng)載荷集中在CA 節(jié)點(diǎn)上,容易出現(xiàn)單點(diǎn)故障。采用門限機(jī)制的分布式認(rèn)證有效防止了單點(diǎn)故障,具有一定的容侵性,但是該認(rèn)證方法需要多個(gè)節(jié)點(diǎn)合作才能完成認(rèn)證,大大增加了網(wǎng)絡(luò)開(kāi)銷。自組織認(rèn)證也能防止單點(diǎn)失效,并且能夠自適應(yīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的變化,但是節(jié)點(diǎn)間的認(rèn)證需要將證書(shū)鏈上的所有證書(shū)都確認(rèn),使得計(jì)算代價(jià)高而且效率低。本文方案既保留了集中式認(rèn)證快速方便地建立節(jié)點(diǎn)間信任關(guān)系的優(yōu)點(diǎn),又具有門限機(jī)制的容侵性,并且具有自組織認(rèn)證的對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的自適應(yīng)性。
(1)DoS攻擊。由于MANET網(wǎng)絡(luò)中的節(jié)點(diǎn)都是資源受限的節(jié)點(diǎn),因此很容易遭受DoS 攻擊來(lái)耗盡節(jié)點(diǎn)的資源。本文方案中的CA 節(jié)點(diǎn)是通過(guò)計(jì)算特定數(shù)學(xué)難題獲得特定解并得到全網(wǎng)節(jié)點(diǎn)確認(rèn)而快速達(dá)到共識(shí)的節(jié)點(diǎn)。因此,求解的隨機(jī)性使得執(zhí)行CA功能的CA節(jié)點(diǎn)具有隨機(jī)性,并且求解的周期性使得CA 節(jié)點(diǎn)輪換的周期性。這些特點(diǎn)使得攻擊者無(wú)法預(yù)知下個(gè)周期哪個(gè)節(jié)點(diǎn)擔(dān)任CA 節(jié)點(diǎn),較好地對(duì)抗DoS攻擊。
(2)仿冒CA 節(jié)點(diǎn)攻擊。CA 節(jié)點(diǎn)是通過(guò)共識(shí)算法選舉產(chǎn)生的,而且經(jīng)過(guò)了全網(wǎng)的快速認(rèn)證。當(dāng)攻擊者聲稱自己是CA 節(jié)點(diǎn)時(shí),它會(huì)廣播該解(nonce)和CA身份消息至全網(wǎng),全網(wǎng)很容易驗(yàn)證該解是否是正確的解,如果驗(yàn)證不成功則丟棄該消息。因此只有計(jì)算出正確的解的節(jié)點(diǎn)全網(wǎng)節(jié)點(diǎn)才會(huì)認(rèn)為是CA 節(jié)點(diǎn),仿冒CA 節(jié)點(diǎn)幾乎不可能。
(3)仿冒普通節(jié)點(diǎn)攻擊。如果一個(gè)攻擊者想要與合法用戶進(jìn)行通信,那么攻擊者會(huì)想辦法獲得輔公鑰。有兩種途徑可以獲得輔公鑰。第一種:攻擊者可以偽造一個(gè)輔公鑰()并聲稱自己是合法用戶。但是該輔公鑰并沒(méi)有經(jīng)過(guò)CA的簽名,因此對(duì)方通信的合法用戶無(wú)法用CA 的公鑰解出攻擊者的ID(IDFaker)和主公鑰(),這樣合法用戶可以判斷該節(jié)點(diǎn)沒(méi)有經(jīng)過(guò)CA認(rèn)證,拒絕與之通信。第二種:攻擊者可以截獲一個(gè)合法用戶的輔公鑰(),并且仿冒其身份(IDAttacker),這種情況可以獲得對(duì)方的主公鑰,但是由于不知道被仿冒者的私鑰,因此即使獲得了對(duì)方的主公鑰也無(wú)法用私鑰解密對(duì)方發(fā)來(lái)的消息。因此,仿冒普通節(jié)點(diǎn)來(lái)進(jìn)行攻擊也是難以進(jìn)行的。
(4)重放攻擊。每次請(qǐng)求都需要加上時(shí)間戳Tstamp,然后把時(shí)間戳和其他參數(shù)一起進(jìn)行加密處理。接收者判斷請(qǐng)求時(shí)間與接受請(qǐng)求時(shí)間是否超過(guò)了時(shí)間窗(間隔),若是,則認(rèn)為是非法請(qǐng)求,有效防止了重放攻擊。
BAN 形式化邏輯,可以對(duì)認(rèn)證協(xié)議進(jìn)行形式化描述,并且可以根據(jù)假設(shè)對(duì)認(rèn)證協(xié)議進(jìn)行形式化分析。本章對(duì)基于共識(shí)機(jī)制的輕量級(jí)輪轉(zhuǎn)CA 認(rèn)證方案的安全性進(jìn)行形式化分析證明。
用戶節(jié)點(diǎn)用U來(lái)表示,CA節(jié)點(diǎn)的公鑰用PKCA表示,CA求解的隨機(jī)數(shù)用nonce來(lái)表示,由于nonce是由CA節(jié)點(diǎn)求出的,因此這里默認(rèn)CA節(jié)點(diǎn)相信自己求得的這個(gè)隨機(jī)數(shù)nonce。去掉本文方案中的無(wú)關(guān)部分并簡(jiǎn)化過(guò)程,用戶與CA節(jié)點(diǎn)間認(rèn)證的形式化分析如下。
(1)初始條件假設(shè)
②U?{nonce,PKCA}
③U|≡#(nonce)
④U|≡CA?nonce
(2)認(rèn)證目標(biāo)
U|≡nonce
(3)BAN邏輯推導(dǎo)
由初始假設(shè)①②根據(jù)消息含義規(guī)則可形式化推出:
由③根據(jù)消息新鮮性可形式化推出:
由式(1)和式(2)的結(jié)果根據(jù)臨時(shí)值校驗(yàn)規(guī)則可形式化推出:
由式(3)結(jié)果根據(jù)信仰規(guī)則可形式化推出:
由假設(shè)條件④和上步推導(dǎo)結(jié)果式(4)根據(jù)管轄規(guī)則可形式化推出:
由以上邏輯推理證明了目標(biāo)U|≡nonce,用戶最終信任了CA 求解的nonce值,從而信任了CA,達(dá)到了目標(biāo)。
CA和用戶節(jié)點(diǎn)認(rèn)證成功之后,用戶節(jié)點(diǎn)雙方必須獲取并相信對(duì)方的主公鑰才能實(shí)現(xiàn)安全通信。即,只要證得由CA 簽名的輔公鑰是可信的,那么就可以認(rèn)為用戶節(jié)點(diǎn)的主公鑰是可信的。這里的兩個(gè)用戶節(jié)點(diǎn)分別用A和B來(lái)表示。去掉本文方案中的無(wú)關(guān)部分并簡(jiǎn)化過(guò)程,以下是BAN邏輯證明過(guò)程。
(1)初始條件假設(shè)
(2)認(rèn)證目標(biāo)
(3)BAN邏輯推導(dǎo)
由初始條件①③根據(jù)消息含義規(guī)則可形式化推出:
由式(6)結(jié)果和假設(shè)條件⑦根據(jù)臨時(shí)值驗(yàn)證規(guī)則可形式化推出:
由式(7)結(jié)果和假設(shè)條件⑤根據(jù)管轄規(guī)則可形式化推出:
此時(shí)已證明用戶A相信用戶B的輔公鑰A|≡,同理證明
由初始條件②④根據(jù)消息含義規(guī)則得:
由式(9)結(jié)果和初始條件⑧根據(jù)臨時(shí)值驗(yàn)證規(guī)則得:
由式(10)結(jié)果和初始條件⑥根據(jù)管轄規(guī)則推出:
此時(shí)已證明用戶B相信用戶A的輔公鑰
通過(guò)以上BAN 邏輯形式化證明分析可知,本文方案實(shí)現(xiàn)了安全目標(biāo)。用戶與CA 節(jié)點(diǎn)之間以及用戶與用戶之間實(shí)現(xiàn)了安全的認(rèn)證。
不同于傳統(tǒng)網(wǎng)絡(luò),移動(dòng)自組網(wǎng)沒(méi)有基礎(chǔ)設(shè)施的支持,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)動(dòng)態(tài)變化,使得傳統(tǒng)的認(rèn)證方案不適用。鑒于此,本文提出了一種基于共識(shí)算法的輕量級(jí)輪轉(zhuǎn)CA 認(rèn)證方案,該方案結(jié)合了輕量級(jí)CA思想,并將區(qū)塊鏈技術(shù)中的共識(shí)機(jī)制思想引入到認(rèn)證過(guò)程中,全網(wǎng)節(jié)點(diǎn)通過(guò)競(jìng)爭(zhēng)計(jì)算得到符合目標(biāo)值的解來(lái)獲得CA權(quán)限,全網(wǎng)節(jié)點(diǎn)通過(guò)驗(yàn)證該解從而能夠快速達(dá)到共識(shí)。此外,共識(shí)算法求解的隨機(jī)性決定了CA 節(jié)點(diǎn)的隨機(jī)性,求解的周期性決定了CA 節(jié)點(diǎn)輪換的周期性,從而大大增加攻擊者確定CA的難度,有效保護(hù)了CA節(jié)點(diǎn)。
在此基礎(chǔ)上,對(duì)方案的結(jié)構(gòu)及安全性進(jìn)行了詳細(xì)分析,并且用BAN 邏輯形式化分析方法對(duì)方案安全性進(jìn)行了詳細(xì)證明。結(jié)果表明,本文方案可以提供良好的安全認(rèn)證特性,達(dá)到了安全目標(biāo),適用于資源受限的MANET網(wǎng)絡(luò)。