工控物聯(lián)網(wǎng)認(rèn)證協(xié)議與密鑰協(xié)商算法研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
工控物聯(lián)網(wǎng)廣泛應(yīng)用于包括水文監(jiān)測(cè)、數(shù)字化油田、智能電網(wǎng)、環(huán)境監(jiān)控、礦井監(jiān)測(cè)、智能建筑、智能交通等在內(nèi)的眾多領(lǐng)域,使得工業(yè)自動(dòng)化控制進(jìn)入了一個(gè)嶄新的時(shí)代。但是,隨著物聯(lián)網(wǎng)在工業(yè)控制中的深入應(yīng)用,對(duì)工控終端設(shè)備的身份假冒、數(shù)據(jù)泄露、越權(quán)操作等信息安全問(wèn)題也接踵而至。為了保證工控物聯(lián)網(wǎng)環(huán)境的安全運(yùn)行,對(duì)終端設(shè)備的認(rèn)證及信息保護(hù)必不可少,這也成為工控物聯(lián)網(wǎng)發(fā)展中最重要的一環(huán)。
物聯(lián)網(wǎng)認(rèn)證是物聯(lián)網(wǎng)安全中的重要環(huán)節(jié),它是安全系統(tǒng)中的第一道屏障,在物聯(lián)網(wǎng)中有著十分重要的作用。物聯(lián)網(wǎng)認(rèn)證協(xié)議提供設(shè)備與設(shè)備、設(shè)備與服務(wù)器之間完善可靠的認(rèn)證方式,只有在認(rèn)證雙方認(rèn)證通過(guò)之后才可進(jìn)行數(shù)據(jù)傳輸?shù)炔僮鳌K械恼J(rèn)證機(jī)制或多或少都要使用密鑰,為了保證認(rèn)證過(guò)程中的信道安全,要對(duì)報(bào)文進(jìn)行加密,密鑰協(xié)商算法就可以很好地解決這個(gè)問(wèn)題。
低成本工控物聯(lián)網(wǎng)的終端具有資源有限、低能耗等特點(diǎn),因此本文采用輕量級(jí)的物聯(lián)網(wǎng)認(rèn)證協(xié)議?,F(xiàn)有的輕量級(jí)認(rèn)證協(xié)議包括Hash-Lock、隨機(jī)Hash-Lock和Hash鏈等協(xié)議。這些協(xié)議一方面存在著各種安全性的缺陷,易受多種方式的攻擊;另一方面,大多應(yīng)用于簡(jiǎn)單的RFID認(rèn)證,對(duì)工控物聯(lián)網(wǎng)復(fù)雜數(shù)據(jù)傳輸,能否滿(mǎn)足認(rèn)證需要也是個(gè)巨大挑戰(zhàn)。在現(xiàn)有的密鑰管理算法中,McCullagh-Barreto密鑰協(xié)商算法在算法安全性和運(yùn)行效率兩方面都符合要求,但該算法不能抵抗密鑰泄露偽裝攻擊,因此,本文在該算法的基礎(chǔ)上進(jìn)行了改進(jìn),使其具有抵抗密鑰泄露偽裝攻擊的能力,稱(chēng)為改進(jìn)的McCullagh-Barreto密鑰協(xié)商算法。
1基于工控物聯(lián)網(wǎng)的輕量級(jí)雙向認(rèn)證協(xié)議
為了解決現(xiàn)有認(rèn)證協(xié)議存在的安全隱私保護(hù)弱點(diǎn)和性能不高等問(wèn)題,本文提出基于工控物聯(lián)網(wǎng)的輕量級(jí)雙向認(rèn)證協(xié)議(Light-weightMutualAuthenticationProtocolBasedonloTofIndustrialControl)o
該協(xié)議所采用的前提如下:
每個(gè)終端具有一個(gè)獨(dú)特的啟動(dòng)器,產(chǎn)生和維護(hù)標(biāo)簽的安全參數(shù);
每個(gè)終端和服務(wù)器都具有一個(gè)偽隨機(jī)數(shù)位發(fā)生器;
節(jié)點(diǎn)能夠運(yùn)行Hash函數(shù)h和帶密鑰Hash函數(shù)f,且內(nèi)存記錄安全可靠;
服務(wù)器和服務(wù)器之間的信道是安全的;
服務(wù)器和終端之間的信道是不安全的,容易被竊聽(tīng)或篡改。
下面對(duì)協(xié)議中所用到的符號(hào)進(jìn)行定義:
N:系統(tǒng)中終端的數(shù)目;
T:第i個(gè)終端(1WiWN);
ID,:第i個(gè)終端的標(biāo)識(shí)符;
h:Hash函數(shù),力:{0,1}'—{0,1}‘;
Di:終端的秘密信息;
Hi:第i個(gè)終端標(biāo)識(shí)符的哈希值;
f:帶密鑰Hash函數(shù)』:{0,1}奴{0,1}—{0,1}';
l:終端標(biāo)識(shí)符的比特長(zhǎng)度;
Xnew:X更新后的值;
X0ld:X更新前的值;
r:l比特的隨機(jī)串;
©:異或操作符;
-:替換操作符;
<<:循環(huán)左移操作符;
>>:循環(huán)右移操作符;
eR:隨機(jī)選擇操作符。
基于工控物聯(lián)網(wǎng)的輕量級(jí)雙向認(rèn)證協(xié)議分為初始化和認(rèn)證兩個(gè)階段。
1.1初始化階段
在認(rèn)證過(guò)程運(yùn)行之前,初始化過(guò)程執(zhí)行系統(tǒng)初始化的步驟有兩步:第一步是在協(xié)議中為每個(gè)終端Ti分配一個(gè)長(zhǎng)度為l比特的標(biāo)識(shí)符ID,,然后將ID,存儲(chǔ)并鎖定在終端內(nèi)存中;第二步是計(jì)算Hi=h(ID),在數(shù)據(jù)庫(kù)中為每個(gè)終端T存儲(chǔ)一條記錄[(IDiHi)new,(IDiHi)old,Di],第1對(duì)值是為終端最新分配的id,和Hi,第2對(duì)是之前分配的值,Di是終端的詳細(xì)秘密信息。最初的(IDiHi)new是初始化分配的ID,和Hi,(IDi,Hi)old設(shè)置為空。
1.2認(rèn)證階段
圖1所示是協(xié)議認(rèn)證階段的流程圖。圖中,網(wǎng)關(guān)用于生成一個(gè)隨機(jī)比特串r1er{0,1}1,并發(fā)送給終端Ti。終端Ti收到
『1后,會(huì)生成一個(gè)隨機(jī)比特串rer{0,1}1作為會(huì)話(huà)的臨時(shí)私鑰,并計(jì)算Hi=Ml=ID,.5n,Ml瓦(r5矽,然后發(fā)送響
應(yīng)消息HMM給網(wǎng)關(guān)服務(wù)器,網(wǎng)關(guān)服務(wù)器傳遞消息H"W2,r\給服務(wù)器。服務(wù)器收到終端的響應(yīng)后,將進(jìn)行以下步驟:
服務(wù)器使用H檢索數(shù)據(jù)庫(kù),如果在數(shù)據(jù)庫(kù)中沒(méi)有找到H,就發(fā)送出錯(cuò)信息給網(wǎng)關(guān),并終止會(huì)話(huà);若找到Hi=H,new或Hi=Hiold,則計(jì)算r-肱5ID,new或r-肱5IDtola,然后計(jì)
?
算并判斷泌習(xí)Mr5矽。
若泌=5矽,則驗(yàn)證通過(guò),同時(shí)計(jì)算MlID,(r&Z/2),然后發(fā)送D,和M給網(wǎng)關(guān)。
更新數(shù)據(jù)庫(kù)中響應(yīng)終端的記錄,同時(shí)令I(lǐng)Diold—ID,,Hiold—H,,ID,*w-(ID》Z/4)5(H,》Z/4)5r,以,岫一力(1%,叫);否則發(fā)送出錯(cuò)信息給網(wǎng)關(guān)服務(wù)器,終止會(huì)話(huà)。
網(wǎng)關(guān)服務(wù)器獲取終端的秘密信息D,后,將傳遞認(rèn)證消息M給終端,然后由終端Ti計(jì)算并判斷ID,=M,53&Z/2)。如果不相等,終端就保持當(dāng)前存儲(chǔ)的ID,不變;若相等,則驗(yàn)證通過(guò),同時(shí)更新當(dāng)前存儲(chǔ)的ID,令:
ID,--(ID,-&14)5(Hi》1/4)5r5r
本文協(xié)議的安全性取決于ID,、『1和r2這3個(gè)參數(shù)的長(zhǎng)度規(guī)格。一般來(lái)說(shuō),通過(guò)增加和r2這3個(gè)參數(shù)的長(zhǎng)度,
,貌聯(lián)網(wǎng)集可靠傳輸ReliableTransmission
可明顯提高本文協(xié)議的安全性能,滿(mǎn)足終端更高的安全要求。2改進(jìn)的McCullagh-Barreto密鑰協(xié)商算法
McCullagh-Barreto算法是一個(gè)高效的認(rèn)證密鑰協(xié)商算法,可以應(yīng)用于工控物聯(lián)網(wǎng)環(huán)境,然而Xie[5]等人指出該算法不能抵抗密鑰泄露偽裝攻擊KCIA(KeyCompromiseImpersonationAttack),因此本文在該算法基礎(chǔ)上進(jìn)行了改進(jìn),使其具有抗密鑰泄露偽裝攻擊的能力,稱(chēng)為改進(jìn)的McCullagh-Barreto密鑰協(xié)商算法。
改進(jìn)的McCullagh-Barreto密鑰協(xié)商算法分為初始化、密鑰提取和密鑰協(xié)商三個(gè)階段。
2.1初始化
給定安全參數(shù)k,算法隨機(jī)選取s∈Zq*,P,Q∈G1,計(jì)算P0=sP。設(shè)置系統(tǒng)公開(kāi)參數(shù)為<G1,G2,e,q,P,Q,P0,H1,H2,H3>。其中,三個(gè)hash函數(shù)為H1:{0,1}*→Zq*,H2:{0,1}*→Zq*,H3:{0,1}*→{0,1}*。s為系統(tǒng)主密鑰,由密鑰生成中心KGC保管。
2.2密鑰提取
采用SakaiR和KasaharaM的密鑰構(gòu)造方法。KGC驗(yàn)證參與實(shí)體Pi在線(xiàn)公開(kāi)的身份標(biāo)識(shí)IDi,計(jì)算Pi的私鑰Si=(H1(IDi)+s)-1P。Pi的公鑰為Qi=(H1(IDi)+s)P=H1(IDi)P+P0。
2.3密鑰
協(xié)商兩個(gè)實(shí)體Alice和Bob通過(guò)以下步驟協(xié)商一個(gè)共同的會(huì)話(huà)密鑰。實(shí)體Alice的身份信息為IDA,其公私鑰對(duì)為(PA,SA);實(shí)體Bob的身份信息為IDB,其公私鑰對(duì)為(PB,SB)。Alice和Bob執(zhí)行如下的算法:
Step1:用戶(hù)Alice選擇一個(gè)臨時(shí)的密鑰x∈RZq*,計(jì)算TA=xQB并將TA發(fā)送給Bob。
Step2:用戶(hù)Bob選擇一個(gè)臨時(shí)的密鑰y∈RZq*,計(jì)算TB=xQA并將TB發(fā)送給Alice。
Step3:用戶(hù)Alice計(jì)算tA=H2(TA,IDA,IDB),tB=H2(TB,IDA,IDB),KAB=e(TB+tBPA,SA)(x+tA),然后計(jì)算出共享會(huì)話(huà)密鑰SKAB=H3(IDA,IDB,TA,TB,KAB)。
Step4:用戶(hù)Bob計(jì)算tA=H2(TA,IDA,IDB),tB=H2(TB,IDA,IDB),KBA=e(TA+tBPB,SB)(y+tB),然后計(jì)算出共享會(huì)話(huà)密鑰SKBA=H3(IDA,IDB,TA,TB,KBA)。
如果 Alice 和 Bob 誠(chéng)實(shí)地執(zhí)行算法,他們將協(xié)商得到一個(gè)共同的會(huì)話(huà)密鑰 :
原算法認(rèn)證過(guò)程中僅使用1個(gè)hash函數(shù)完成認(rèn)證雙方的會(huì)話(huà)密鑰交換,攻擊者很容易截獲一方的私鑰,進(jìn)行偽裝攻擊。改進(jìn)的算法則使用了3個(gè)hash函數(shù)完成會(huì)話(huà)密鑰交換,且加入了節(jié)點(diǎn)的身份信息,使得算法更加安全。
3結(jié)語(yǔ)
本文提出的認(rèn)證協(xié)議是輕量級(jí)協(xié)議,適用于低成本工控物聯(lián)網(wǎng)環(huán)境,但對(duì)于更加復(fù)雜且對(duì)安全要求很高的環(huán)境還有待完善。因此,研究的下一步將考慮在認(rèn)證協(xié)議中加入PKI證書(shū),使其適用于認(rèn)證更加嚴(yán)格的工控物聯(lián)網(wǎng)環(huán)境,同時(shí)密鑰協(xié)商算法也需要進(jìn)行相應(yīng)的改進(jìn)來(lái)適應(yīng)復(fù)雜環(huán)境下的工控物聯(lián)網(wǎng)。
20211019_616ec3030105d__工控物聯(lián)網(wǎng)認(rèn)證協(xié)議與密鑰協(xié)商算法研究