郁 晨, 陳立全,2, 陸天宇
1. 東南大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院, 南京 211100
2. 網(wǎng)絡(luò)通信與安全紫金山實(shí)驗(yàn)室, 南京 211111
目前, 物聯(lián)網(wǎng)飛速發(fā)展, 大量的物聯(lián)網(wǎng)設(shè)備投入使用, 物聯(lián)網(wǎng)終端設(shè)備所承擔(dān)的工作變得更廣泛、更多樣、更敏感, 服務(wù)商通過這些設(shè)備收集用戶的敏感數(shù)據(jù)并分析完成相應(yīng)的任務(wù). 與此同時(shí), 不法分子也在試圖收集這些敏感數(shù)據(jù)并將這些數(shù)據(jù)用于非法用途, 使得物聯(lián)網(wǎng)系統(tǒng)面臨嚴(yán)峻的安全性考驗(yàn). 機(jī)器對(duì)機(jī)器(Machine to Machine, M2M) 通信是物聯(lián)網(wǎng)通信業(yè)務(wù)的一個(gè)重要分支, 是物聯(lián)網(wǎng)中的普遍應(yīng)用形式[1,2].由于M2M 系統(tǒng)的廣泛分布和應(yīng)用, M2M 設(shè)備本身和M2M 網(wǎng)絡(luò)中的安全問題會(huì)尤為明顯, 因此建立有效的M2M 安全體系十分重要[3]. 考慮到M2M 設(shè)備的計(jì)算能力和M2M 系統(tǒng)的安全性需求, 本文引入可信計(jì)算來建立M2M 通信中的安全接入機(jī)制[4].
Privacy CA[5]和直接匿名認(rèn)證(Direct Anonymous Attestation, DAA) 是可信計(jì)算體系中常用的匿名認(rèn)證協(xié)議. Privacy CA 協(xié)議中, 平臺(tái)的匿名性需要由可信的證書頒發(fā)中心保障, 同時(shí)由于認(rèn)證遠(yuǎn)程服務(wù)器機(jī)制的缺失, 假冒的遠(yuǎn)程服務(wù)器可以對(duì)M2M 設(shè)備進(jìn)行類似于偽基站的攻擊, 所以使用Privacy CA作為M2M 通信系統(tǒng)中的認(rèn)證協(xié)議是不合適的. DAA 協(xié)議中證書的頒發(fā)方不需要每次認(rèn)證過程都參與,優(yōu)化了Privacy CA 的協(xié)議的不足之處和效率短板. 中國(guó)工程院院士鄔江興于2013 年提出的擬態(tài)防御技術(shù)[6]借鑒了生物自我免疫系統(tǒng)的工作機(jī)理, 具有內(nèi)生安全效應(yīng), 增強(qiáng)了系統(tǒng)的不可預(yù)測(cè)性, 從而建立內(nèi)生的防御體系, 具有高可靠性、高可信性和高可用性的特點(diǎn)[7].
本文將擬態(tài)防御思想與DAA 協(xié)議相結(jié)合, 提出了Mimic-DAA (M-DAA) 方案, 進(jìn)而提出M2M 擬態(tài)防御系統(tǒng), 將M2M 網(wǎng)絡(luò)安全的不確定安全威脅問題歸結(jié)于魯棒控制理論和技術(shù)能解決的問題, 從而在技術(shù)架構(gòu)層面保證了M2M 設(shè)備的安全接入. 基于擬態(tài)防御原理的M2M 網(wǎng)絡(luò)匿名接入方案應(yīng)用場(chǎng)景如圖1 所示.

圖1 M2M 設(shè)備通信場(chǎng)景Figure 1 M2M device communication scenarios
2004 年, 可信計(jì)算組織(Trusted Computing Group, TCG) 提出了直接匿名認(rèn)證協(xié)議DAA[8]來對(duì)可信平臺(tái)模塊(Trusted Platform Module, TPM) 身份的合法性進(jìn)行驗(yàn)證. DAA 協(xié)議中有四個(gè)協(xié)議實(shí)體,分別是證書的頒發(fā)方Issuer、可信平臺(tái)模塊TPM、TPM 所在的主機(jī)Host 和簽名的認(rèn)證方Verifier.其中TPM 和Host 構(gòu)成了平臺(tái)Platform, 也是協(xié)議的簽名方Signer. 在協(xié)議實(shí)體之間主要運(yùn)行了五個(gè)協(xié)議[9],包括系統(tǒng)參數(shù)初始化的Setup、平臺(tái)申請(qǐng)證書的Join、平臺(tái)生成簽名的Sign、簽名檢測(cè)的Verify 以及簽名關(guān)聯(lián)性檢測(cè)的Link. DAA 協(xié)議是一個(gè)三方相互認(rèn)證的過程, 任何一方不合法都能被識(shí)別并且造成協(xié)議運(yùn)行過程的終止[10]. Join 階段是平臺(tái)和Issuer 互相認(rèn)證的過程, 平臺(tái)向Issuer 發(fā)送秘密值的零知識(shí)證明, Issuer 接收后確認(rèn)是否為合法平臺(tái)發(fā)送的消息, 并向合法的平臺(tái)頒發(fā)由其秘密值產(chǎn)生的DAA 證書.Host 確認(rèn)收到的消息是否為由合法的Issuer 生成的證書, 如果證書合法則保存. Sign 和Verify 階段是對(duì)簽名方的身份認(rèn)證, 簽名方對(duì)證書進(jìn)行盲化處理并結(jié)合自身的秘密值完成對(duì)消息m的簽名, 驗(yàn)證方依次驗(yàn)證證書和簽名的合法性, 但在這個(gè)過程中不能獲得平臺(tái)的身份信息[11]. Link 協(xié)議中引入基名bsn 來提供用戶可控的關(guān)聯(lián)性, 當(dāng)某一個(gè)平臺(tái)使用相同的bsn 簽名時(shí), 可以推斷出這些簽名來自于同一個(gè)平臺(tái)[12].DAA 的運(yùn)行機(jī)制如圖2 所示.

圖2 DAA 協(xié)議運(yùn)行機(jī)制圖Figure 2 DAA protocol operation mechanism diagram
M-DAA 對(duì)原始的DAA 方案進(jìn)行了優(yōu)化, 引入了三方之間兩兩認(rèn)證的機(jī)制, 并在Verify 階段之后加入擬態(tài)防御機(jī)制. 改進(jìn)后的流程如圖3 所示. 在本文中使用的符號(hào)及其定義如表1 所示.

圖3 改進(jìn)后的DAA 協(xié)議運(yùn)行機(jī)制圖Figure 3 Improved DAA protocol operation mechanism diagram

表1 本文中的符號(hào)及其定義Table 1 Symbols and their definitions in this paper
TPM 模塊的初始化參數(shù)通過調(diào)用TPM 命令生成, 包括私鑰tsk∈Zq和公鑰tpk =tsk, 其中是固定的生成元, 并設(shè)計(jì)內(nèi)部輸出參數(shù); 選擇G1,G2,GT三個(gè)階為素?cái)?shù)的橢圓曲線有限循環(huán)群和證書頒發(fā)方Issuer 的私鑰, 生成Issuer 的公鑰對(duì)和后續(xù)協(xié)議需要用到的散列函數(shù). 初始化算法流程如下.
(3.1.1) 選擇G1,G2,GT三個(gè)階為素?cái)?shù)q的橢圓曲線有限循環(huán)群, 其中G1?=G2且不存在從G2到G1的有效同構(gòu),G1的生成元為g1,G2的生成元為g2, 存在一個(gè)雙線性映射e:G1×G2→GT, 公開參數(shù)(G1,G2,GT,q,g1,g2,e);
(3.1.2) 隨機(jī)生成證書頒發(fā)方Issuer 的私鑰isk:x,y ∈Zq, 計(jì)算對(duì)應(yīng)的公鑰對(duì)(X,Y):X=gx2,Y=gy2, 公開參數(shù)(X,Y);
(3.1.3) 調(diào)用域內(nèi)每個(gè)TPM 的TPM.Create() 的固定參數(shù)=g1, 公開TPM 的公鑰tpk, 生成各個(gè)子協(xié)議需要用到的散列函數(shù)H: (0,1)?→(0,1)l,HG1: (0,1)?→G1, 公開散列函數(shù)(H,HG1).
在M2M 設(shè)備中嵌入可信計(jì)算模塊作為DAA 協(xié)議中的TPM 實(shí)體,設(shè)備自身的主機(jī)系統(tǒng)對(duì)應(yīng)于DAA協(xié)議中的Host 實(shí)體, 在協(xié)議中平臺(tái)既可以作為簽名方, 又可以作為驗(yàn)證方. 在TPM, Host 和Issuer 三者之間運(yùn)行Join 協(xié)議[13], Host 作為中間載體完成Issuer 對(duì)平臺(tái)身份的認(rèn)證并接收Issuer 發(fā)送的DAA 證書, 其中平臺(tái)通過對(duì)自身秘密值gsk=tsk+hsk 進(jìn)行零知識(shí)證明來證實(shí)自身的合法身份, 同時(shí)Host 也可以驗(yàn)證證書的合法性. 協(xié)議流程如下:
(3.2.1) 接收到Join 的信息后, Issuer 隨機(jī)生成一個(gè)長(zhǎng)度為l的整數(shù)n傳遞給Host.
(3.2.3) Host 產(chǎn)生自己的私鑰hsk, 計(jì)算gpk = tpk′·hsk, 然后將(tpk,tpk′,gpk,πtpk) 信息發(fā)送給Issuer.
(3.2.4) Issuer 首先調(diào)用VerSPK(πtpk,tpk′,⊥,(‘‘join”,n),⊥) 檢驗(yàn)(3.2.2) 中簽名(tpk′,πtpk) 的合法性, 進(jìn)而驗(yàn)證平臺(tái)是否持有秘密值. 然后對(duì)gsk=tsk+hsk 作盲化簽名: 計(jì)算a ←y,c ←(a+gpk)x. 將cred←(a,c) 作為DAA 證書發(fā)送給Host.特別的, (3.2.4) 中調(diào)用 VerSPK 協(xié)議用來驗(yàn)證 (3.2.2) 中簽名 (tpk′,πtpk) 的合法性, 在 M-DAA 的 Join 和 Verify 階段使用該協(xié)議來驗(yàn)證 M2M 設(shè)備身份的合法性.VerSPK(π,y2,bsnE,bsnL,mt,mh) 協(xié)議步驟如下:
(1) 分析π中的信息(c′,np,s′,Q).
(2) 如果bsnE ?=⊥, 設(shè)置?g=HG1(bsnE), 否則設(shè)置?g=
(3) 設(shè)置U ←?gs′·Q?c′.
(4) 如果c′=H(np,H(mt,(mh,U,bsnL,y2))) 等式成立, 則輸出1, 驗(yàn)證通過; 否則輸出0,驗(yàn)證失敗.
(3.2.5) Host 驗(yàn)證證書的合法性, 通過批量證明的技術(shù)[14], 隨機(jī)選擇兩個(gè)小指數(shù)e1,e2←Zq, 驗(yàn)證等式e(e1·a,g2)·e(?e1·,Y)·e(e2·c,g2)·e(?e2·(a+gpk),X)=1 是否成立. 同時(shí)驗(yàn)證a ?=1G1. 若兩者都成立則證書合法, Host 保存DAA 證書cred′=(a,c,gpk,n).
Sign 協(xié)議運(yùn)行于TPM 和Host 之間, 持有合法證書的平臺(tái)對(duì)數(shù)據(jù)信息進(jìn)行簽名操作, 由可信的第三方服務(wù)器或其他可信平臺(tái)驗(yàn)證其身份. TPM 和Host 二者共同完成關(guān)于消息m的簽名, bsnL可以控制生成的簽名是否具有關(guān)聯(lián)性. 流程如下.
(3.3.1) Host 找到Join 協(xié)議的記錄(hsk,cred′). 隨機(jī)選擇一個(gè)r ←Zq, 對(duì)DAA 證書cred′=(a,c,gpk,n) 作盲化處理:a′←ar,←r,c′←cr, gpk′←gpkr.
(3.3.2) Host 和TPM 共同計(jì)算用于簽名關(guān)聯(lián)性檢測(cè)的nym 值和關(guān)于gsk 秘密值的零知識(shí)證明. 通過Prove 協(xié)議, 輸入?yún)?shù)(hsk,tpk′,(0||n),(1||n),m,(‘‘sign”,SRL)), 得到輸出(nym,π′cred).其中, 如果簽名不需要提供關(guān)聯(lián)性, 則第四個(gè)參數(shù)設(shè)置為⊥.
(3.3.3) Host 生成最終的簽名πcred←(a′,,c′,gpk′,nym,π′cred).
Verify 協(xié)議是環(huán)境中的協(xié)議實(shí)體對(duì)一個(gè)消息簽名對(duì)(m,πcred) 合法性的驗(yàn)證算法, 用來認(rèn)證平臺(tái)身份的合法性, 設(shè)備的每次消息傳遞都要經(jīng)過嚴(yán)格的簽名驗(yàn)證步驟. 流程如下.
(3.4.1) 驗(yàn)證方查詢被攻破的平臺(tái)的秘密值列表Roughlist, 該列表由平臺(tái)創(chuàng)立并保存在本地. 如果Host 誠(chéng)實(shí), TPM 的真實(shí)性可由秘密值是否被暴露, 也就是查詢表Roughlist 可知. 當(dāng)一個(gè)TPM 被攻破時(shí), 其秘密值gsk 被加入到假冒列表Roughlist 中, 通過此列表, Verify 協(xié)議可以運(yùn)行假冒檢測(cè)以拒絕被攻破的TPM 所簽署的簽名.?gsk∈Roughlist, 如果存在gpk′=gsk, 則檢測(cè)到假冒平臺(tái)攻擊, 放棄此次認(rèn)證. 否則進(jìn)入下一步驟.
(3.4.2) 驗(yàn)證方驗(yàn)證DAA 證書的合法性. 通過批量證明的技術(shù), 隨機(jī)選擇兩個(gè)小指數(shù)e1,e2←Zq, 驗(yàn)證等式e(e1·a′,g2)·e(?e1·′,Y)·e(e2·c′,g2)·e(?e2·(a′+gpk′),X)=1 是否成立. 如果不成立, 放棄此次認(rèn)證. 否則進(jìn)入下一步驟.
(3.4.3) 輸入?yún)?shù)(πcred,nym,(0||n),(1||n),m,(‘‘sign”,SRL)),驗(yàn)證方通過3.2 中提到的VerSPK 協(xié)議認(rèn)證簽名的合法性. 如果輸出為1, 則認(rèn)證通過. 否則認(rèn)證失敗.
因?yàn)镈AA 協(xié)議的核心在于保護(hù)平臺(tái)的匿名性和防止包含的協(xié)議方被假冒平臺(tái)欺騙, 所以現(xiàn)有的DAA 方案總是默認(rèn)Verifier 的身份是合法的, Verifier 無需自證身份. 被攻擊者控制的Verifier 可以不受限制的接收平臺(tái)的簽名信息, 然后返回驗(yàn)證通過的結(jié)果而不會(huì)引起平臺(tái)的懷疑. 但是在M2M 通信系統(tǒng)中, 用戶數(shù)據(jù)是攻擊者最關(guān)注的信息, 如果平臺(tái)的簽名沒有經(jīng)過驗(yàn)證后發(fā)布, 極有可能會(huì)被攻擊者獲得并進(jìn)行攻擊. 所以本文中在DAA 方案中添加擬態(tài)安全機(jī)制, 采取在一個(gè)域內(nèi)設(shè)置多個(gè)異構(gòu)執(zhí)行體[15]作為Verifier 的組成部分來對(duì)平臺(tái)進(jìn)行驗(yàn)證.
圖4 為擬態(tài)防御系統(tǒng)典型動(dòng)態(tài)異構(gòu)冗余架構(gòu)[16], 當(dāng)有消息輸入時(shí), 通過輸入代理傳輸?shù)疆悩?gòu)池中每個(gè)異構(gòu)執(zhí)行體, 所有異構(gòu)執(zhí)行體處理消息后將結(jié)果傳輸至多模裁決模塊, 若結(jié)果一致則輸出, 若不一致, 可以識(shí)別某個(gè)執(zhí)行體輸出消息異常, 進(jìn)而實(shí)現(xiàn)系統(tǒng)的安全防御. 流程如下.

圖4 擬態(tài)防御系統(tǒng)動(dòng)態(tài)冗余架構(gòu)圖Figure 4 Mimic defense system dynamic redundancy architecture diagram
(3.5.1) 輸入消息, 開始擬態(tài)防御機(jī)制, 對(duì)Host 產(chǎn)生的簽名進(jìn)行驗(yàn)證操作.
(3.5.2) 輸入代理, 傳入Verify 協(xié)議中所需要的參數(shù), 包括a′,′,c′, gpk′,e1,e2,g2, 公鑰對(duì)(X,Y),以及參數(shù)(πcred,nym,(0||n),(1||n),m,(‘‘sign”,SRL)), 并轉(zhuǎn)換成異構(gòu)執(zhí)行體能夠識(shí)別的編碼, 如某一異構(gòu)執(zhí)行體的編譯環(huán)境為C 語言, 則將這些參數(shù)轉(zhuǎn)換成該語言能夠識(shí)別的機(jī)器碼.因?yàn)楹罄m(xù)對(duì)于異構(gòu)執(zhí)行體的選擇是隨機(jī)的, 所以這些參數(shù)需要對(duì)所有的異構(gòu)執(zhí)行體可識(shí)別.
(3.5.3) 對(duì)異構(gòu)執(zhí)行體進(jìn)行分組, 隨機(jī)數(shù)模塊生成隨機(jī)數(shù)u作為每組異構(gòu)執(zhí)行體的個(gè)數(shù), 將所有異構(gòu)執(zhí)行體隨機(jī)分配進(jìn)個(gè)數(shù)為u的組內(nèi).
(3.5.4) 隨機(jī)數(shù)模塊產(chǎn)生若干個(gè)隨機(jī)數(shù)x1,x2,··· ,xm, 經(jīng)過加密后分發(fā)給每個(gè)異構(gòu)執(zhí)行體組, 每個(gè)異構(gòu)執(zhí)行體組再對(duì)加密后的隨機(jī)數(shù)進(jìn)行加密, 作為每個(gè)組的編號(hào). 如產(chǎn)生的隨機(jī)數(shù)為x1, 首先隨機(jī)數(shù)模塊用自己的密鑰對(duì)x1進(jìn)行加密得到E1(x1), 再由異構(gòu)執(zhí)行體組用自己的密鑰對(duì)其進(jìn)行加密得到E2(E1(x1)),上述過程在Verifier 內(nèi)部完成,不涉及到其他通信對(duì)象, 如圖5 所示.

圖5 異構(gòu)執(zhí)行體分組方法圖Figure 5 Heterogeneous actuator grouping method diagram
(3.5.5) 在每次驗(yàn)證接入設(shè)備簽名的合法性時(shí), 隨機(jī)選擇一個(gè)或多個(gè)異構(gòu)執(zhí)行體組對(duì)簽名進(jìn)行Verify 協(xié)議中的步驟, 判定設(shè)備的簽名是否合法. 由于每個(gè)異構(gòu)執(zhí)行體組的編號(hào)都是加密后的E2(E1(xm)), 身份信息對(duì)于選擇方來說都是未知的, 所以在選擇異構(gòu)執(zhí)行體組時(shí)只能隨機(jī)進(jìn)行選擇.
(3.5.6) 被選中的若干異構(gòu)執(zhí)行體執(zhí)行Verify 協(xié)議, 對(duì)輸入的參數(shù)進(jìn)行判斷, 驗(yàn)證簽名是否合法, 此處采用消息代理方法, 如果驗(yàn)證通過則輸出1, 反之則為0.
(3.5.7) 將異構(gòu)執(zhí)行體的輸出結(jié)果發(fā)送至裁決模塊, 若干異構(gòu)執(zhí)行體輸出結(jié)果一致則裁決模塊輸出相應(yīng)裁決結(jié)果, 反之, 則判定系統(tǒng)遭到攻擊. 裁決模塊工作時(shí)若異構(gòu)執(zhí)行體的輸出結(jié)果不一致,也可以及時(shí)判斷出異構(gòu)執(zhí)行體受到攻擊, 進(jìn)而可以及時(shí)的修護(hù)系統(tǒng)進(jìn)行工作.
對(duì)M-DAA 的安全性分析主要通過隨機(jī)預(yù)言機(jī)模型來驗(yàn)證. 同時(shí), 由于證明安全性需要形式化的安全分析[17], 所以在隨機(jī)預(yù)言機(jī)模型下引入規(guī)約論斷的證明方法, 將攻破協(xié)議的難度總結(jié)到無法反向推導(dǎo)的數(shù)學(xué)問題上, 通過結(jié)合這兩個(gè)方法得到的復(fù)合模型才能給出足夠的安全性證明.
在結(jié)合了隨機(jī)預(yù)言機(jī)和規(guī)約論斷的復(fù)合模型中, 首先給出協(xié)議的形式化模型, 并假設(shè)一個(gè)攻擊者可以以一定的概率攻破該模型; 然后構(gòu)建一個(gè)模擬器Simulator(下文中簡(jiǎn)稱為S),S 可以模擬攻擊者的所有攻擊行為并生成一個(gè)理想系統(tǒng), 此理想系統(tǒng)對(duì)于攻擊者來說與現(xiàn)實(shí)系統(tǒng)具有高度的一致性; 最后假設(shè)攻擊者可以劫持協(xié)議中的實(shí)體, 并對(duì)協(xié)議過程進(jìn)行破壞, 那么這個(gè)破壞過程的難度就歸結(jié)到解決復(fù)雜的不可逆數(shù)學(xué)難題上. 對(duì)于這些數(shù)學(xué)難題, 至今沒有快速的解決方案, 那么需要證明的協(xié)議在現(xiàn)有條件下就是安全的.下面將提出該復(fù)合模型的詳細(xì)流程.
在理想系統(tǒng)模型中, 除了M-DAA 中的協(xié)議實(shí)體與攻擊者A 之外還添加了一個(gè)可信的第三方T, T中存放著與系統(tǒng)中實(shí)體交互的理想函數(shù), 用于實(shí)現(xiàn)理想系統(tǒng)中M-DAA 協(xié)議的每一個(gè)步驟. 對(duì)于攻擊者A來說, T 是不可見的, 而理想系統(tǒng)與現(xiàn)實(shí)系統(tǒng)由模擬器S 互聯(lián), S 在現(xiàn)實(shí)系統(tǒng)中與攻擊者A 交互, 所以A無法區(qū)分所處的系統(tǒng). 同時(shí)S 在理想系統(tǒng)中能夠模擬A 的攻擊行為, 從而得知被攻破的實(shí)體, 使得現(xiàn)實(shí)系統(tǒng)和理想系統(tǒng)的運(yùn)行過程不可區(qū)別.
理想系統(tǒng)中的可信第三方T 參與了M-DAA 協(xié)議的全部過程. 在Join 協(xié)議中T 先查詢Roughlist列表確認(rèn)平臺(tái)是否被攻破, 并將結(jié)果告訴Issuer, 由Issuer 決定是否頒發(fā)證書, 若Issuer 許可, 則T 將平臺(tái)信息保存到Members 列表中, 并將結(jié)果告訴Host. 在Sign 協(xié)議中, Host 將收到的信息先發(fā)給T, 由查詢Members 列表中是否存在該平臺(tái)信息的記錄, 進(jìn)而判斷該TPM 是否為非法偽造的. 若Members 列表中存在該平臺(tái)信息的記錄, T 才會(huì)向Host 處獲得基名bsn 信息, 然后將根據(jù)bsn 生成的簽名存儲(chǔ)到Signatures 列表中. 在Verify 協(xié)議中, Verifier 將收到的簽名先發(fā)送給T, 由T 查詢Signatures 列表中是否存在該簽名, 并查詢對(duì)應(yīng)的gsk 是否存在于Roughlist 列表中.
接下來在理想系統(tǒng)中構(gòu)建模擬器S 來模擬A 的攻擊行為. 在Join 協(xié)議中S 扮演Host 的角色得到DAA 證書并發(fā)送給A,在Sign 協(xié)議中S 模擬TPM 收到A 的假冒簽名申請(qǐng)并將簽名發(fā)送給A,在Verify協(xié)議中S 模擬Verifier 對(duì)A 的簽名進(jìn)行驗(yàn)證. 如果S 在與A 進(jìn)行交互的同時(shí)模擬成功, 使得現(xiàn)實(shí)系統(tǒng)與理想系統(tǒng)變得不可區(qū)分, 所以只要證明S 模擬失敗的概率是極低的, 那么協(xié)議就是安全的. 對(duì)于S 模擬失敗的情況需要運(yùn)行隨機(jī)預(yù)言機(jī)模型中的規(guī)約論斷進(jìn)行分析.
對(duì)M-DAA 方案安全性分析主要從抗惡意TPM 欺騙攻擊、防止平臺(tái)簽名偽造、保護(hù)平臺(tái)匿名性和系統(tǒng)內(nèi)生安全性四個(gè)方面開展.
4.1.1 抗惡意TPM 欺騙攻擊
M-DAA 方案在Join 協(xié)議和Verify 中均對(duì)TPM 的合法性進(jìn)行了驗(yàn)證, 目的是抗惡意TPM 的欺騙攻擊. 在不考慮散列函數(shù)被攻破的可能性時(shí), 協(xié)議中所有的散列函數(shù)都可以作為隨機(jī)預(yù)言機(jī). 在這一前提下, Join 協(xié)議中攻擊者A 如果不知道TPM 的秘密值gsk, 也沒有與模擬器S 進(jìn)行交互, 是無法獨(dú)自完成平臺(tái)的零知識(shí)證明的. 同時(shí), A 也無法在沒有Issuer 參與的情況下獨(dú)自生成DAA 證書, 即使解決了攻破LRSW 假設(shè)的數(shù)學(xué)難題產(chǎn)生了DAA 證書, 偽造的DAA 證書也無法在Verify 階段通過Members 列表查詢到, 從而導(dǎo)致模擬失敗, S 不能完全模擬攻擊者A. S 模擬失敗的情況可以歸結(jié)為L(zhǎng)RSW 假設(shè)的解決,這種概率是可以忽略不計(jì)的, 所以證明了M-DAA 方案可以抗惡意TPM 欺騙攻擊.
4.1.2 防止平臺(tái)簽名偽造
如果攻擊者A 在沒有TPM 的秘密值gsk 的情況下偽造出合法的簽名, 說明A 能夠破解離散對(duì)數(shù)算法. 在隨機(jī)預(yù)言機(jī)模型中, Sign 協(xié)議中S 選擇不同的r ←Zq, 可以生成兩個(gè)不同的合法簽名, 其中只有部分信息不一樣, 攻擊者A 與S 交互后可以通過求解離散對(duì)數(shù)反推出gpk, 但是求解過程十分困難, 這種概率可以忽略不計(jì), 所以模擬結(jié)果失敗的概率也很低. 另外, Sign 協(xié)議中, S 不僅確認(rèn)DAA 證書的合法性,也會(huì)驗(yàn)證A 偽造的簽名的合法性. S 也會(huì)將偽造的簽名中的部分有效信息與通過驗(yàn)證的合法TPM 生成的簽名進(jìn)行對(duì)比, 如果這一簽名不是由合法的TPM 參與生成的, 模擬也會(huì)失敗, 但是由擁有合法證書卻沒有合法TPM 參與是不可能的. 總之, 攻擊者A 不能憑空產(chǎn)生一個(gè)由(m,bsn) 生成的正確簽名, 所有非法TPM 生成的簽名都不能經(jīng)過Verifier 的驗(yàn)證, 所以簽名具有不可偽造性.
4.1.3 保護(hù)平臺(tái)匿名性
只有誠(chéng)實(shí)TPM 和誠(chéng)實(shí)Host 構(gòu)成的誠(chéng)實(shí)平臺(tái)才能保證匿名性. 一方面, Sign 過程中每次都會(huì)用新的隨機(jī)秘密值gsk 來產(chǎn)生新的基名bsn 對(duì)應(yīng)的簽名, 所以每次產(chǎn)生的簽名與之前的平臺(tái)之間是相互獨(dú)立的,無法分辨由不同的基名bsn 產(chǎn)生的簽名從分布上的對(duì)應(yīng)性, 從而能夠保證平臺(tái)的匿名性. 另一方面, 因?yàn)槠脚_(tái)對(duì)證書進(jìn)行了盲化, 只有得到原始證書, Issuer 才能查詢平臺(tái)的身份, 所以即使攻擊者A 與S 交互并同時(shí)劫持了Issuer 和Verifier, 由用CL 簽名方法盲化后的證書反推導(dǎo)原始證書在數(shù)學(xué)上也是無法實(shí)現(xiàn)的,從而模擬失敗的概率幾乎可以忽略不計(jì), 攻擊者A 無法得到平臺(tái)的真實(shí)身份.
4.1.4 系統(tǒng)內(nèi)生安全性
本方案中采取的擬態(tài)防御機(jī)制將主動(dòng)防御的思想轉(zhuǎn)變?yōu)橐环N體系化的防御機(jī)制, 在異構(gòu)冗余執(zhí)行體池中進(jìn)行動(dòng)態(tài)調(diào)度, 利用不同的調(diào)度策略使得目標(biāo)對(duì)象的組成部分和構(gòu)成方式不斷發(fā)生變化, 加大了系統(tǒng)的時(shí)間復(fù)雜度和空間復(fù)雜度. 所以攻擊者每次面臨的都是全新的系統(tǒng)結(jié)構(gòu), 需要更大的資源來對(duì)整個(gè)系統(tǒng)進(jìn)行攻擊. 在M-DAA 方案中由于隨機(jī)數(shù)發(fā)生器的存在, 每次調(diào)度的異構(gòu)執(zhí)行體的數(shù)量和對(duì)象變得不可預(yù)測(cè).從主動(dòng)防御的角度來看, 由行為來推測(cè)系統(tǒng)內(nèi)部構(gòu)成的難度由一次調(diào)度的異構(gòu)執(zhí)行體與上一次的差異性決定. 在M-DAA 中, 每次調(diào)度的異構(gòu)執(zhí)行體組與上一次的異構(gòu)執(zhí)行體組之間的關(guān)聯(lián)性也無法被得知, 所以雖然無法滿足每次調(diào)度對(duì)象之間的最大差異性, 但是每次調(diào)度的異構(gòu)體組之間的關(guān)聯(lián)性無法被得知, 所以兩次調(diào)度之間的差異性也變得更加隨機(jī), 反而增大了攻擊難度. 在隨機(jī)預(yù)言機(jī)模型下攻擊者A 劫持任意數(shù)量的異構(gòu)執(zhí)行體都是會(huì)被系統(tǒng)發(fā)現(xiàn)的, 這是將攻擊的難度歸結(jié)為對(duì)隨機(jī)分布的對(duì)應(yīng)性上, 從數(shù)學(xué)角度是無法進(jìn)行預(yù)測(cè)的, 從而模擬失敗的概率幾乎不存在.
綜上所述, 在隨機(jī)預(yù)言機(jī)與規(guī)約論斷的復(fù)合模型下, 當(dāng)攻擊者能夠?qū)σ陨纤膫€(gè)方面進(jìn)行有效的攻擊時(shí),模擬器都會(huì)輸出模擬失敗的結(jié)果, 但是每次失敗的前提都是攻擊者能夠破解數(shù)學(xué)邏輯上的難題. 經(jīng)過長(zhǎng)時(shí)間以來的驗(yàn)證, 這些數(shù)學(xué)難題要么就是不可解決, 要么就是求解所需要的時(shí)間和物理成本極大, 所以模擬器模擬成功是必然的. 模擬器在理想環(huán)境中模擬成功會(huì)使攻擊者無法區(qū)分現(xiàn)實(shí)系統(tǒng)與理想系統(tǒng)的區(qū)別, 從而能證明M-DAA 在隨機(jī)預(yù)言機(jī)模型和規(guī)約論斷下是安全的.
4.2.1 對(duì)DAA 方案的優(yōu)化
在認(rèn)證協(xié)議的執(zhí)行過程中, 主要的計(jì)算量都集中在指數(shù)運(yùn)算和雙線性映射這兩個(gè)環(huán)節(jié), 所以在對(duì)效率進(jìn)行分析時(shí), 應(yīng)當(dāng)通過參與到協(xié)議中各個(gè)實(shí)體進(jìn)行這兩種運(yùn)算所需要的計(jì)算量來衡量. 通過與文獻(xiàn)中已提出的方案進(jìn)行比較來分析M-DAA 方案的效率, 如表2、表3 所示, 表中均只包含進(jìn)行M-DAA 中的各個(gè)協(xié)議所需要的計(jì)算量.

表3 Sign/Verify 階段各方計(jì)算量比較Table 3 Comparison of calculations between parties in Sign/Verify phase
其中P表示一個(gè)配對(duì)操作,G1表示在G1中的冪運(yùn)算,G21、G22表示多冪運(yùn)算, 以此類推. 根據(jù)上表可以看出, 除了Host 以外, 其他協(xié)議方的計(jì)算量在所有方案對(duì)比中都是最優(yōu)的. 在Verifier 中,nG1是依次代入Roughlist 中已公開的假冒平臺(tái)gsk 的計(jì)算量, 1P4是驗(yàn)證證書合法性的計(jì)算量, 1G21則是利用零知識(shí)技術(shù)驗(yàn)證平臺(tái)身份的計(jì)算量, M-DAA 的Verifier 計(jì)算量上的系數(shù)i是每次選擇的異構(gòu)執(zhí)行體個(gè)數(shù).DAA 協(xié)議運(yùn)行效率的核心在于TPM, 因?yàn)槠溆邢薜挠?jì)算能力, 所以有關(guān)效率的優(yōu)化方案都以降低TPM計(jì)算量為主要任務(wù). 本方案中實(shí)際上增加了Verifier 的計(jì)算量, 但是由于擬態(tài)機(jī)制的存在, 每次認(rèn)證過程中Verifier 的計(jì)算量都不同, 行為變得難以預(yù)測(cè).
4.2.2 擬態(tài)防御部分的優(yōu)化
擬態(tài)防御技術(shù)的思想是通過一種通用的廣義魯棒性控制結(jié)構(gòu)以及其他配套機(jī)制為軟硬件提供一種集“高可靠、高可信、高可用” 于一體的魯棒性服務(wù). 一方面, 在DAA 協(xié)議中引入擬態(tài)防御模塊, 是以犧牲部分計(jì)算效率為代價(jià), 但是對(duì)于M2M 通信網(wǎng)絡(luò)來說, 只有TPM 模塊存在算力小的問題, 因此在一個(gè)域內(nèi)設(shè)置多個(gè)異構(gòu)執(zhí)行體來構(gòu)成Verifier 對(duì)TPM 的計(jì)算量要求沒有變化, 現(xiàn)在的大型服務(wù)器中設(shè)置能夠滿足多個(gè)異構(gòu)執(zhí)行體所需要的算力. 在一次完整的協(xié)議過程中, 只有Verifier 中的異構(gòu)執(zhí)行體進(jìn)行了反復(fù)計(jì)算和判斷, 對(duì)于整個(gè)M2M 網(wǎng)絡(luò)來說是在效率上的提升. 另一方面, 在引入擬態(tài)防御機(jī)制時(shí), 對(duì)異構(gòu)執(zhí)行體進(jìn)行分組操作, 使得隨機(jī)數(shù)模塊不需要產(chǎn)生過多的隨機(jī)數(shù), 節(jié)省了資源占用, 提高了運(yùn)算效率. 并且每次的分組后組內(nèi)異構(gòu)執(zhí)行體的個(gè)數(shù)和成員都不同, 防止了異構(gòu)執(zhí)行體之前的行為被記錄, 提高了系統(tǒng)的安全性.
本文提出了一種基于擬態(tài)防御原理的M2M 網(wǎng)絡(luò)匿名認(rèn)證方法, 應(yīng)用于M2M 通信系統(tǒng)內(nèi)設(shè)備與設(shè)備之間數(shù)據(jù)通信的場(chǎng)景中. 首先對(duì)現(xiàn)有的DAA 方案進(jìn)行優(yōu)化, Verifier 驗(yàn)證平臺(tái)盲化處理后DAA 證書的簽名和平臺(tái)的合法性. 同時(shí)因?yàn)閂erifier 的身份總是默認(rèn)合法, 為了防止M2M 設(shè)備接入時(shí)被劫持, 在Verifier 方加入擬態(tài)防御機(jī)制, 使用多個(gè)動(dòng)態(tài)冗余的異構(gòu)執(zhí)行體來構(gòu)成驗(yàn)證方, 可以有效地抵御非法第三方的攻擊. 裁決模塊工作時(shí)若異構(gòu)執(zhí)行體的輸出結(jié)果不一致, 也可以及時(shí)判斷出異構(gòu)執(zhí)行體是否受到攻擊,并及時(shí)采取有效的防御措施. 本文提出的方案中對(duì)擬態(tài)防御機(jī)制的算力要求較高, 所以后續(xù)的工作應(yīng)繼續(xù)對(duì)擬態(tài)裁決的算法進(jìn)行優(yōu)化, 節(jié)約資源, 擴(kuò)大同時(shí)接入設(shè)備的能力.