国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于CK01模型的物聯(lián)網(wǎng)節(jié)點密鑰交換和更新算法研究

2018-08-24 11:15歐志球王錚
現(xiàn)代計算機 2018年21期
關(guān)鍵詞:會話口令密鑰

歐志球,王錚

(浙江機電職業(yè)技術(shù)學(xué)院計算機工程學(xué)院,杭州310053)

0 引言

隨著物聯(lián)網(wǎng)的發(fā)展,安全高效的物聯(lián)網(wǎng)網(wǎng)絡(luò)設(shè)備管理成為研究熱點[1][11][14],當(dāng)前研究協(xié)議包括簡單網(wǎng)管協(xié)議(Simple Network Management Protocol,SNMP)、用戶終端廣域網(wǎng)管理協(xié)議TR069(Technical Report)和私有管理協(xié)議等[14]。文獻[11]提出一種基于SM4密碼算法的私有管理協(xié)議,可針對智能家居網(wǎng)絡(luò)的惡意攻擊、及時發(fā)現(xiàn)入侵并報警;文獻[14]提出一種基于TR069協(xié)議的無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)管理方案。與另外兩種協(xié)議相比,SNMP協(xié)議作為事實上的計算機網(wǎng)絡(luò)管理協(xié)議標(biāo)準(zhǔn),得到眾多廠家的支持和廣泛的應(yīng)用[11],開始廣泛應(yīng)用于物聯(lián)網(wǎng)的節(jié)點[1-2]。但SNMP的V1和V2C安全性考慮不多,引入安全模式的SNMPv3也存在安全隱患[8]。因此,實現(xiàn)基于SNMPv3的安全高效密鑰生成、交換與管理具有極強的現(xiàn)實意義和應(yīng)用價值。

目前國內(nèi)針對SNMPv3在物聯(lián)網(wǎng)領(lǐng)域的安全研究不多,文獻[8-9]提出了一些啟發(fā)式的密鑰交換算法,但缺乏形式化的安全證明以及密鑰更新處理;安全研究主要來自SNMP項目組,其在最新的RFC5590中擴充定義了三種安全模型的解決方案:基于原有RFC3414的用戶安全模型(User-based Security Model,USM)模型[2];基于傳輸層安全的 TSM(Transport Security Model)模型[3-6];基于原有USM模型,但引入其他安全協(xié)議增強其安全性。目前USM在SNMPv3中得到廣泛應(yīng)用,但該模型中密鑰生成與更新算法存在安全漏洞,同時沒有定義如何進行安全的密鑰交換。本文首先簡要說明SNMPv3的體系結(jié)構(gòu)和安全機制,并分析USM密鑰生成算法的在無線網(wǎng)絡(luò)管理中的漏洞,提出安全的密鑰交換方法并予以證明,最后提出相應(yīng)的方案設(shè)計和實現(xiàn)。

1 SNMPv3的體系結(jié)構(gòu)和安全機制

SNMPv3的體系結(jié)構(gòu)如圖1所示,它的安全性主要由USM和視圖訪問控制模型(View Access Control Model,VACM)提供[3],包括:

(1)密鑰產(chǎn)生、交換與更新。定義了密鑰的產(chǎn)生、本地化和更新的機制;

(2)認證。認證包括數(shù)據(jù)完整性和數(shù)據(jù)源認證。USM認證通過哈希消息驗證代碼(Hash Message Au-thentication Codes,HMAC)算法實現(xiàn),標(biāo)準(zhǔn)推薦使用MD5或SHA算法;

(3)加解密。對消息的內(nèi)容進行加密,避免泄漏。標(biāo)準(zhǔn)推薦使用DES算法;

(4)訪問控制。SNMPv3通過VACM實現(xiàn)對于具體用戶基于組(視圖)的訪問權(quán)限控制;

(5)實體間時間同步以及消息合時性檢查。標(biāo)準(zhǔn)通過消息頭中的engineBoot和engineTime實現(xiàn)實體間的時間同步與消息的合時性檢查,從而防止消息重發(fā)、復(fù)制和延遲。

圖1 SNMPv3的體系結(jié)構(gòu)

2 密鑰安全交換與更新算法設(shè)計

密鑰安全交換與管理SNMPv3協(xié)議的核心,包括密鑰生成、交換和更新等部分。

2.1 現(xiàn)有協(xié)議密鑰生成與交換

SNMPv3推薦的密鑰生成算法如圖2所示[3]。

圖2 標(biāo)準(zhǔn)定義的密鑰生成算法

該算法存在以下問題:

(1)USM密鑰來源于engineID和用戶口令。其中engineID在鏈路上采用明文傳輸,而用戶口令一般都比較簡單,容易被猜解,因此密鑰安全性存在漏洞;

(2)巨大的網(wǎng)絡(luò)規(guī)模,不同的設(shè)備如果都采用不同的口令,則口令的維護十分繁雜;這使得用戶傾向于使用同一個口令應(yīng)用于所有網(wǎng)絡(luò)節(jié)點,因此如果一個設(shè)備被破解,會波及到其他設(shè)備;

(3)算法沒有定義如何進行安全的口令或密鑰交換。

2.2 安全密鑰生成與交換理論證明

密鑰交換常用的算法是迪菲-赫爾曼密鑰交換算法(Diffie-Hellman,DH)算法,可以解決上面提到問題,但DH算法無法抵御中間人攻擊,因此引入形式化的安全模型CK01,在該模型下有如下定義和定理[10]:

定義1:認證鏈路模型(AM)下會話密鑰(SK)安全。如果對于允許詢問TestSession查詢的AM敵手A(不允許SessionExpiration查詢),協(xié)議P能滿足以下條件則稱其在AM下SK安全的密鑰協(xié)商協(xié)議:

(1)如果兩個未被攻陷的參與者完成了匹配會話,則它們輸出相同的會話密鑰;

(2)A區(qū)分P產(chǎn)生的會話密鑰和隨機數(shù)的概率不超過0.5+ε,其中ε為一個與安全參數(shù)k有關(guān)的可忽略函數(shù)。

定理1:如果判定性Diffie-Hellman(DDH)假設(shè)是困難的,則DH協(xié)議在AM中是會話密鑰安全的。

定理2:設(shè)P在AM中是SK安全密鑰交換協(xié)議,λ是一個消息傳輸認證器,則P'=Cλ(P)在非認證鏈路模型(UM)中是SK安全密鑰交換協(xié)議。

其中UM是非認證鏈路模型,即真實的網(wǎng)絡(luò)模型;AM是認證鏈路模型。

推論:如果DDH假設(shè)是困難的,通過采用基于公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)的證書管理機構(gòu)(Certificate Authority,CA)認證方式,可以使用DH協(xié)議實現(xiàn)SNMPv3在UM中的會話密鑰安全交換。

證明:根據(jù)定理1,因為DDH是困難的,所以P=DH在AM中是會話密鑰安全的;

設(shè)λ為基于PKI的CA認證方式消息傳輸認證器,則根據(jù)定理2,P'=Cλ(P)在UM中是SK安全的密鑰交換協(xié)議;

因此,可使用DH協(xié)議實現(xiàn)SNMPv3在UM中的會話密鑰安全交換。

2.3 新的安全密鑰生成與交換算法

根據(jù)推論以及文獻[10]的SIG-DH密鑰交換協(xié)議,設(shè)p,q為大素數(shù),q|p-1,g為階是素數(shù)q的數(shù)域G的一個生成元,代理實體A和管理實體M共享g和p,s是會話標(biāo)識。A和M各有一個用于簽名的證書CertA和CertB,Sig為簽名算法。流程如下:

(1)A發(fā)送申請密鑰消息(A,s,req,Sigi(A,s,req,M))給M;

(2)M收到消息(A,s,req,Sigi(A,s,req,M))后,驗證簽名以及包含簽名信息的消息的正確性,如果驗證通過,則任意選擇 xM∈,并發(fā)送消息(M,s,ym=gxM,Sigj(M,s,ym,A))給 A;

(3)A收到消息(M,s,ym=gxM,Sigj(M,s,ym,A))后,驗證簽名以及包含簽名信息的消息,如果驗證通過,任意選擇xA∈,發(fā)送消息(A,s,yA=gxA,Sigk(A,s,ym,yA,M))給M,計算會話標(biāo)識s的會話密鑰K=K=gxAxM,移除 x;

AMA

(4)M收到消息(A,s,yA=gxA,Sigk(A,s,ym,yA,M))后,驗證簽名以及包含簽名信息的消息,如果驗證通過,計算會話標(biāo)識s的會話密鑰K=KMA=gxMxA,移除xM。

綜上所述,新的密鑰生成與交換算法與其他算法安全性能比較如表1所示。

表1 密鑰交換生成算法安全性能比較

2.4 現(xiàn)有協(xié)議密鑰更新

圖3 標(biāo)準(zhǔn)定義的密鑰更新算法

SNMPv3推薦的密鑰更新算法如圖3所示[3]:該算法通過差量方式計算并更新新的Key,但如果原有Key已經(jīng)泄露,則新的Key將也被泄露。

2.5 新的密鑰更新算法

根據(jù)2.2的證明,可采用同樣基于PKI的CA認證方式,使用DH實現(xiàn)密鑰的在UM中安全更新。流程如下:

(1)M發(fā)送更新密鑰消息(M,s,req,Sigi(M,s,req,A))給A;

(2)A收到消息(M,s,req,Sigj(M,s,req,A))后,驗證簽名以及包含簽名信息的消息,如果驗證通過,發(fā)送申請密鑰消息(A,s,req,Sigi(A,s,req,M))給M;

(3)后續(xù)流程與密鑰生成與交換算法流程(2)~(4)相同。

綜上所述,新的密鑰生成與交換算法與其他算法安全性能比較如表2所示。

表2 密鑰更新算法安全性能比較

3 實現(xiàn)和驗證

圖4為算法實驗與驗證環(huán)境,管理實體安裝和使用Apache 2.2 Web服務(wù)器、Tomcat7.0 Java Web容器,SNMP4J1.8和JDK1.6運行環(huán)境;代理實體應(yīng)安裝和使用SNMP-Agent2.0和JDK1.6運行環(huán)境,如圖4所示:

圖4 算法運行環(huán)境

該算法的實現(xiàn)包括:證書生成與部署、會話密鑰生成與交換、密鑰更新以及密鑰使用。核心的密鑰生成與交換實現(xiàn)如圖5所示,密鑰更新算法類似。核心偽代碼如下:

//生成yM

KeyPairGenerator keyGen=KeyPairGenerator.getInstance("DH");

keyGen.initialize(dhParamSpec);

privKeyPair=keyGen.generateKeyPair();

privAgreement=KeyAgreement.getInstance("DH");

privAgreement.init(privKeyPair.getPrivate());

byte[]pubPrivKeyEnc=privKeyPair.getPublic().getEncoded(); //生成 xA和yA

DHParameterSpecdhParamSpec= ((DHPublicKey)mgrPubKey).getParams();

KeyPairGenerator agtKpairGen= KeyPairGenerator.getInstance("DH");

agtKpairGen.initialize(dhParamSpec);

KeyPair agtKpair=agtKpairGen.generateKeyPair();

KeyAgreement agtKeyAgree=KeyAgreement.getInstance("DH");

agtKeyAgree.init(agtKpair.getPrivate());

agtKeyBuf=agtKpair.getPublic().getEncoded();

agtKeyAgree.doPhase(mgrPubKey,true);

agtPrivKey=agtKeyAgree.generateSecret(PRIV_ALGORITHM);

//生成管理端Key

X509EncodedKeySpec x509KeySpec=new X509EncodedKeySpec(agtKeyBuf);

PublicKey agtPubKey = mgtKeyFac.generatePublic(x509KeySpec);

privAgreement.doPhase(agtPubKey,true);

mgtPrivKey=privAgreement.generateSecret(algorithm);

管理者與代理兩端使用OpenSSL生成認證證書,在密鑰交換或更新完成后,在SNMP4J中,可以通過USM.addLocalizedUser()方法設(shè)置本地化的Key。

圖6為測試系統(tǒng)在密鑰交換過程中的數(shù)據(jù)包情況,從91~97完成會話協(xié)商,第98個包開始密鑰申請請求,到第107個包完成密鑰的交換。

表3為該算法在各個階段的時間開銷統(tǒng)計,在測試局域網(wǎng)中,實際網(wǎng)絡(luò)傳輸時間在毫秒內(nèi),因此表中后面兩項可以視為DH算法實質(zhì)計算所需時間。從表中數(shù)據(jù)分析,新的算法相比純粹的DH算法增加了~22%的時間開銷??紤]到密鑰的生成、交換與更新實質(zhì)不是頻繁操作,該性能開銷可以接受。而且在實際工作環(huán)境中,該部分開銷還可以通過拓展帶寬與提升機器硬件減少。

圖5 密鑰生成與交換實現(xiàn)

圖6 實際系統(tǒng)運行結(jié)果

表3 算法時間開銷(單位ms)

4 結(jié)語

對于大規(guī)模的物聯(lián)網(wǎng)無線網(wǎng)絡(luò),基于USM模型的SNMPv3標(biāo)準(zhǔn)安全性不能很好地滿足其安全性和易部署維護的要求,尤其是密鑰交換過程更為關(guān)鍵,采用CK01安全模型可以設(shè)計可信的密鑰交換協(xié)議解決上述問題。另外,新的SNMPv3協(xié)議引入了TSM安全模型,也可以從傳輸層控制的角度進一步增強SNMPv3 協(xié)議的安全性。

猜你喜歡
會話口令密鑰
幻中邂逅之金色密鑰
幻中邂逅之金色密鑰
密碼系統(tǒng)中密鑰的狀態(tài)與保護*
QQ和微信會話話輪及話輪轉(zhuǎn)換特點淺析
高矮胖瘦
口 令
Android密鑰庫簡析
好玩的“反口令”游戲
用繪畫導(dǎo)入英語教學(xué)
健身氣功·五禽戲教學(xué)口令