于金剛,趙治剛
(中國(guó)科學(xué)院大學(xué),北京 100049)
在網(wǎng)絡(luò)通訊產(chǎn)品如網(wǎng)絡(luò)電話(huà)、實(shí)時(shí)消息系統(tǒng)等大力發(fā)展的今天,眾多相關(guān)開(kāi)源軟件的出現(xiàn)降低了實(shí)現(xiàn)該類(lèi)系統(tǒng)的困難,如實(shí)現(xiàn)了SIP協(xié)議的Linphone、PJSIP等;實(shí)現(xiàn)了MQTT協(xié)議的Mosquitto等.但此類(lèi)開(kāi)源軟件只提供了簡(jiǎn)單的本地信息加解密功能,無(wú)法完成會(huì)話(huà)中通信雙方身份的認(rèn)證和共享密鑰的生成與分發(fā),使得該類(lèi)開(kāi)源軟件不能更好地服務(wù)于安全性要求較高的領(lǐng)域.本文在深入分析著名的認(rèn)證協(xié)議Needham-Schroeder(NS)協(xié)議的基礎(chǔ)上,設(shè)計(jì)了一種優(yōu)化和改進(jìn)版的認(rèn)證協(xié)議[4,5],目的在于避免原始協(xié)議存在的各種缺陷,并在不增加信息交換次數(shù)的基礎(chǔ)上提供身份認(rèn)證和共享會(huì)話(huà)密鑰服務(wù).
為確保改進(jìn)版認(rèn)證協(xié)議的可靠性,必須對(duì)改進(jìn)協(xié)議進(jìn)行形式化分析驗(yàn)證.BAN邏輯是迄今使用最廣泛的認(rèn)證協(xié)議形式化分析方法[6].故本文通過(guò)BAN邏輯對(duì)改進(jìn)協(xié)議進(jìn)行形式化驗(yàn)證.在確保改進(jìn)版協(xié)議安全、可靠的基礎(chǔ)上,借助于硬件TF加密卡及其對(duì)應(yīng)的SDK工具包,實(shí)現(xiàn)了改進(jìn)版協(xié)議的身份認(rèn)證功能和共享密鑰分發(fā)功能.通過(guò)修改開(kāi)源軟件Mosquitto消息通信部分的源碼,在消息通信前后調(diào)用SDK提供的相關(guān)接口,對(duì)修改后的源碼重新編譯,從而在應(yīng)用中達(dá)到安全通信的目標(biāo).
R.M.Needham和M.D.Schoreder于1978年首次提出了利用加密技術(shù)設(shè)計(jì)認(rèn)證密鑰分配協(xié)議[3](簡(jiǎn)稱(chēng)NS協(xié)議),NS協(xié)議的運(yùn)行原理共5步如下:
1.A→S:A、B、NA
2.S→A:(NA、B、KAB、(KAB、A)KBS)KAS
3.A→B:(KAB、A)KBS
4.B→A:(NB)KAB
5.A→B:(NB-1)KAB
前3條消息是在密鑰分發(fā)中心S的幫助下,完成共享密鑰KAB的分配,后2條消息是為了確認(rèn)雙方已經(jīng)收到共享密鑰,并且可以進(jìn)行正常通信.但存在不能使B相信消息3的新鮮性的缺陷及消息4只攜帶接收方的隨機(jī)數(shù),無(wú)法使發(fā)送方A識(shí)別接收方的身份的不足.
以下描述了原生NS協(xié)議存在的a、b兩種缺陷以及在改進(jìn)協(xié)議中避免缺陷所采取的措施:
a.存在接收方無(wú)法識(shí)別重放消息的缺陷,攻擊如下:
1.A→S:A、B、NA
2.S→A:(NA、B、KAB、(KAB、A)KBS)KAS
為保證消息新鮮性和防止重放攻擊,本協(xié)議中采取的措施是:在圖1第2次交互中,由接收方B給密鑰分發(fā)中心發(fā)送隨機(jī)數(shù)NB,在第3次交互密鑰分發(fā)中心返回給B的消息中,解密出隨機(jī)數(shù)NB,保證該消息的新鮮性,從而避免重放舊消息.發(fā)送方A驗(yàn)證消息新鮮性的原理相同.相比于現(xiàn)有的防止重放攻擊的方案,本改進(jìn)版的認(rèn)證協(xié)議在沒(méi)有增加協(xié)議執(zhí)行步驟數(shù)的基礎(chǔ)上,確保了發(fā)送方A和接收方B都可以在保證消息新鮮性的同時(shí)避免攻擊者使用舊消息進(jìn)行重放攻擊.
b.存在接收方身份被冒充的缺陷,攻擊如下:
1.A→S:A、B、NA
2.S→A:(NA、B、KAB、(KAB、A)KBS)KAS
3.A→I(B):(KAB、A)KBS
4.I(B)→A:NI
其中消息1、2屬于原始NS協(xié)議的正常通信,消息3被身份冒充者I攔截,因?yàn)樵紖f(xié)議消息4中沒(méi)有發(fā)送方A的身份標(biāo)示,故I將一個(gè)與原始消息(NB)KAB格式相同的NI發(fā)給發(fā)送方A,發(fā)送方A對(duì)消息NI使用共享密鑰KAB解密,對(duì)所得結(jié)果進(jìn)行函數(shù)操作,使用共享密鑰KAB加密后發(fā)送給B,同時(shí)消息5也被I截獲,但是發(fā)送方A認(rèn)為接收方B已經(jīng)接收共享密鑰KAB并且能夠正常通話(huà).
為了避免身份冒充,本協(xié)議中使用的方式是:
在圖1的第3次交互中,在密鑰分發(fā)中心發(fā)送給發(fā)送方A的消息中,添加接收方的身份標(biāo)示B,保證本次會(huì)話(huà)的接收方為用戶(hù)B,由此當(dāng)接收方B轉(zhuǎn)發(fā)后,發(fā)送方A解密、驗(yàn)簽消息,可以對(duì)本次會(huì)話(huà)的接收方B進(jìn)行身份確認(rèn),從而避免了身份冒充.
改進(jìn)版的認(rèn)證協(xié)議采用非對(duì)稱(chēng)加密方式制定,主要完成身份認(rèn)證和獲取共享的共享密鑰兩項(xiàng)功能.在網(wǎng)絡(luò)通信中,首先要完成通信雙方的身份認(rèn)證,以及雙方各自對(duì)密鑰分發(fā)中心的身份認(rèn)證,才能進(jìn)一步進(jìn)行通話(huà);其次通過(guò)密鑰分發(fā)中心生成共享密鑰,保證一次一密,即保證每次通話(huà)的共享密鑰都是新的[9].
在原始NS協(xié)議的基礎(chǔ)上,改進(jìn)版的認(rèn)證協(xié)議增加接收方發(fā)送隨機(jī)數(shù)給密鑰分發(fā)中心的過(guò)程,并在密鑰分發(fā)中心生成的消息中添加發(fā)送方和接收方的隨機(jī)數(shù)及其對(duì)應(yīng)的身份標(biāo)示,達(dá)到確保消息新鮮性的同時(shí)完成對(duì)密鑰分發(fā)中心身份認(rèn)證的目的[8];將使用共享密鑰加密后的發(fā)送方的隨機(jī)數(shù)添加到接收方發(fā)送給發(fā)送方的消息中,以便使發(fā)送方在完成消息新鮮性驗(yàn)證的同時(shí),確保接收方已經(jīng)收到共享密鑰.
改進(jìn)版的認(rèn)證協(xié)議交互過(guò)程如圖1所示.
圖1 改進(jìn)的認(rèn)證協(xié)議運(yùn)行原理圖Fig.1 Improved protocol operation diagram
協(xié)議的運(yùn)行步驟描述如下:
1.A→B:A、B、((NA)KSA)KPS
2.B→S:A、B、(((NA)KSA)KPS、(NB)KSB)KPS
3.S→B:((((NA、B、KAB、NB)KSS)KPA,NB、A、KAB、NA)KSS)KPB
4.B→A:(((NA、B、KAB、NB)KSS)KPA,(NA)KAB
5.A→B:(NB-1)KAB
詳細(xì)描述如下:
步驟1.發(fā)送方A將其名稱(chēng)A、接收方名稱(chēng)B以及使用它的私鑰KSA簽名并使用密鑰分發(fā)中心S的公鑰KPS加密的隨機(jī)數(shù)NA發(fā)送給接收方B.
步驟2.接收方B將收到的消息,添加B的隨機(jī)數(shù)NB后,使用自身的私鑰KSB簽名NB并使用S的公鑰加密全部消息后,發(fā)送給S.
步驟3.S用自身私鑰和通信雙方各自公鑰解密消息,提取NA和NB,并生成共享密鑰KAB.用自身私鑰KSS對(duì)發(fā)送方A的隨機(jī)數(shù)NA,接收方名稱(chēng)B,共享密鑰KAB及接收方隨機(jī)數(shù)NB簽名并使用發(fā)送方A的公鑰KPA加密.之后用自身私鑰KSS對(duì)上一步的密文與接收方B的隨機(jī)數(shù)NB,發(fā)送方的名稱(chēng)A,共享密鑰KAB,發(fā)送方的隨機(jī)數(shù)NA整體簽名并使用接收方B的公鑰KPB加密,發(fā)送給B.
步驟4.B用自身私鑰和S公鑰解密消息,提取共享密鑰KAB以及NB,完成對(duì)消息新鮮性驗(yàn)證以及對(duì)S的身份驗(yàn)證及發(fā)送方的身份驗(yàn)證.使用共享密鑰KAB對(duì)提取的發(fā)送方A的隨機(jī)數(shù)NA加密,與S發(fā)送給A的消息一起發(fā)送給A.
步驟5.A首先用自身私鑰及S的公鑰解密S發(fā)送給其的消息,提取隨機(jī)數(shù)NA,完成對(duì)消息的新鮮性和S的身份認(rèn)證及對(duì)接收方B身份的確認(rèn).提取共享密鑰KAB,解密接收方B加密的隨機(jī)數(shù)NA,并驗(yàn)證B已經(jīng)接收到共享密鑰KAB.之后使用共享密鑰KAB加密隨機(jī)數(shù)NB-1(使用與B商定的函數(shù)對(duì)NB進(jìn)行操作),發(fā)送給B.B接收到消息后,使用共享密鑰KAB解密消息,使用與A商定的函數(shù)對(duì)信息進(jìn)行反操作,提取隨機(jī)數(shù)NB,驗(yàn)證A已經(jīng)收到共享密鑰KAB.
本文使用基于信念的模態(tài)邏輯BAN邏輯對(duì)改進(jìn)協(xié)議進(jìn)行形式化驗(yàn)證[2],以保證該認(rèn)證協(xié)議可以達(dá)到安全目標(biāo)(機(jī)密性、認(rèn)證性、不可否認(rèn)性、完整性)[7].其驗(yàn)證流程如圖2所示.
圖2 BAN邏輯驗(yàn)證流程圖Fig.2 Flow diagram of BAN logic
上圖對(duì)應(yīng)的驗(yàn)證步驟如下:
1.需要將待分析協(xié)議理想化建模,使用BAN邏輯可以識(shí)別的公式描述協(xié)議.
2.規(guī)定使協(xié)議安全運(yùn)行的初始假設(shè)集.
3.用BAN邏輯規(guī)則,通過(guò)理想化模型和假設(shè)集合進(jìn)行推理演算,得到協(xié)議運(yùn)行的結(jié)果集.
4.通過(guò)分析結(jié)果集來(lái)判定協(xié)議是否達(dá)到設(shè)計(jì)目標(biāo).
其中1、2對(duì)協(xié)議的分析非常重要,為了確保其正確性,在理想化建模和規(guī)定初始假設(shè)集時(shí),使用文獻(xiàn)[5]中提供的改進(jìn)方法,保證理想化建模過(guò)程和初始假設(shè)集合的規(guī)范性.本次驗(yàn)證過(guò)程用到的推理規(guī)則包括:消息含義規(guī)則、臨時(shí)值驗(yàn)證規(guī)則、管轄規(guī)則、消息新鮮性規(guī)則、信念規(guī)則.
去掉第一步發(fā)送的消息,因?yàn)槠渲皇怯山邮辗紹進(jìn)行轉(zhuǎn)發(fā),與分析論證無(wú)關(guān).得理想化模型如下:
(P1)B→S:((((NA)KSA)KPS,NB)KSB)KPS
(P2)S→B:
(P3)B→A:
假設(shè)1至5明顯成立,因?yàn)镵PS、KPB、KPA分別為公鑰,由不可偽造的證書(shū)對(duì)其進(jìn)行證明,故可信;KAB是由S生成的密鑰,所以S必定對(duì)其信任;6、7假設(shè),說(shuō)明A、B信任密鑰分發(fā)中心對(duì)共享密鑰KAB擁有管轄權(quán);8、9、10說(shuō)明A、B、S分別信任自己生成的隨機(jī)數(shù)是新鮮性;11、12說(shuō)明A、B分別信任S對(duì)新的共享密鑰有管轄權(quán).
利用初始假設(shè)和推理規(guī)則對(duì)協(xié)議進(jìn)行進(jìn)行形式化驗(yàn)證過(guò)程如下:
由理想模型(P1)S收到消息:
S?((((NA)KSA)KPS,NB)KSB)KPS
(1)
由初始假設(shè)3、4和消息含義規(guī)則有:
S|≡A|~NA
(2)
S|≡B|~NB
(3)
由理想模型(p2)B收到消息:
(4)
由初始假設(shè)2和消息含義規(guī)則有:
(5)
由初始假設(shè)9和式(5)以及消息新鮮性規(guī)則、臨時(shí)值驗(yàn)證規(guī)則、和信念規(guī)則有:
(6)
(7)
通過(guò)初始假設(shè)7和式(6),初始假設(shè)12和式(7)分別使用管轄規(guī)則得:
(8)
(9)
由理想模型(p3)A收到消息:
(10)
由初始假設(shè)1和式(10),使用消息含義規(guī)則有:
(11)
由初始假設(shè)1和式(11),使用新鮮性規(guī)則、臨時(shí)值驗(yàn)證規(guī)則及信念規(guī)則有:
(12)
(13)
由初始假設(shè)6、11和管轄規(guī)則有:
(14)
(15)
對(duì)于消息后半部分使用共享密鑰KAB加密的內(nèi)容,由式(10)、(14)及消息含義規(guī)則有:
(16)
由式(15),使用消息新鮮性規(guī)則、臨時(shí)值驗(yàn)證規(guī)則、信念規(guī)則有:
(17)
由理想模型(P4)B收到消息:
(18)
由式(8)及消息含義規(guī)則得:
(19)
由初始假設(shè)9或時(shí)(9)及式(19)和臨時(shí)值驗(yàn)證規(guī)則、消息新鮮性規(guī)則及信念邏輯規(guī)則有:
(20)
協(xié)議的最終推理結(jié)果集合為:
由以上推理過(guò)程和結(jié)果集合可知,通信雙方分別完成對(duì)對(duì)方身份的認(rèn)證,認(rèn)證過(guò)程中的消息是新鮮的;同時(shí)通信雙方都得到共享密鑰KAB并且驗(yàn)證對(duì)方也收到了該共享密鑰,同時(shí)認(rèn)證了該共享密鑰的新鮮性.故該改進(jìn)協(xié)議是安全、可靠的.
本文中改進(jìn)版協(xié)議的實(shí)現(xiàn),借助于硬件TF加密卡以及封裝了TF加密卡硬件接口的SDK工具包.該加密卡用硬件的方式實(shí)現(xiàn)了國(guó)標(biāo)非對(duì)稱(chēng)加密算法SM2和對(duì)稱(chēng)加密算法SM4及摘要生成算法SM3,并提供證書(shū)的存儲(chǔ)、密鑰的生成、驗(yàn)簽和加解密等功能.通過(guò)調(diào)用SDK接口,實(shí)現(xiàn)TF卡激活、安全登錄、證書(shū)上傳、身份認(rèn)證、獲取對(duì)端證書(shū)、獲取共享密鑰、通信內(nèi)容加解密等功能,SDK對(duì)上層應(yīng)用屏蔽了具體的實(shí)現(xiàn)細(xì)節(jié).
在TF加密卡基礎(chǔ)上的加密通信圖見(jiàn)圖3.
在加密通信前,通信雙方首先要初始化TF加密卡、在業(yè)務(wù)服務(wù)器和密鑰分發(fā)中心進(jìn)行注冊(cè)(或登錄)、將本端證書(shū)上傳至密鑰分發(fā)中心、獲取聯(lián)系人證書(shū)等操作.完成以上操作需要調(diào)用的接口及對(duì)應(yīng)接口說(shuō)明如下:
1.setPin(pin p):當(dāng)遇到更換TF卡、終端開(kāi)機(jī)、重啟的情況,需要調(diào)用該接口登陸TF加密卡,使用pin碼作為參數(shù),完成TF加密卡的初始化.
在TF卡完成初始化的過(guò)程中,SDK內(nèi)部進(jìn)了設(shè)備檢測(cè)、激活證書(shū)及私鑰、生成隨機(jī)數(shù)、獲取密鑰分發(fā)中心證書(shū)、向密鑰分發(fā)中心上傳本端證書(shū)的操作.
圖3 加密通信圖Fig.3 Encrypted communication diagram
2.loginEnc(sission,SecId,rand,ts,pubs,pric):通過(guò)調(diào)用該接口,可以對(duì)登錄信息使用客戶(hù)端私鑰簽名,使用密鑰分發(fā)中心公鑰加密生成密文,將密文經(jīng)由業(yè)務(wù)服務(wù)器轉(zhuǎn)發(fā)給密鑰分發(fā)中心,進(jìn)行登錄驗(yàn)證.rand為隨機(jī)數(shù),ts為時(shí)間戳,pubs為密鑰分發(fā)中心公鑰,pric為用戶(hù)私鑰.密鑰分發(fā)中心將驗(yàn)證結(jié)果簽名并加密后,同樣經(jīng)由業(yè)務(wù)服務(wù)器轉(zhuǎn)發(fā)給客戶(hù)端.服務(wù)平臺(tái)根據(jù)返回消息的明文部分,決定業(yè)務(wù)是否可用,從而完成業(yè)務(wù)號(hào)和唯一標(biāo)示的綁定,生成token.在登錄成功的同時(shí),會(huì)更新聯(lián)系人列表,并向密鑰分發(fā)中心獲取聯(lián)系人證書(shū)保存到TF加密卡中.
圖4 登錄界面Fig.4 Login interface
登錄界面及登錄成功后狀態(tài)見(jiàn)圖4.
在完成初始化并登陸操作后,發(fā)送方再與密鑰分發(fā)中心以及接收方進(jìn)行身份認(rèn)證、一次一密的加密通信.通過(guò)調(diào)用SDK的接口,將身份認(rèn)證的消息使用SM3算法取摘要后再使用SM2算法簽名并加密,通過(guò)與密鑰分發(fā)中心交互,進(jìn)行身份認(rèn)證,并得到一次一密的共享密鑰.使用該共享密鑰加密與聯(lián)系人之間的消息,雙方通過(guò)業(yè)務(wù)服務(wù)器進(jìn)行消息通信.
因?yàn)榧兾谋鞠⒑臀募?圖片、語(yǔ)音、視頻、文件)消息格式的不同,本文采用不同的解決方案,通過(guò)調(diào)用SDK不同的接口來(lái)實(shí)現(xiàn),同時(shí)需要業(yè)務(wù)服務(wù)器提供http服務(wù)器的功能,以便完成文件的上傳、下載.
為完成上述功能,需要調(diào)用的接口及接口解析如下:
1.sessionInit(session,SecId,SecId):發(fā)送方A調(diào)用該接口,通過(guò)業(yè)務(wù)服務(wù)器通知接收方B進(jìn)行會(huì)話(huà)初始化.
2.getKey(session,SecId,SecId,Ts):接收方B在收到業(yè)務(wù)服務(wù)器的通知后,調(diào)用該接口,完成與密鑰分發(fā)中心的通信,密鑰分發(fā)中心通過(guò)對(duì)消息進(jìn)行解密和驗(yàn)簽,通過(guò)本地SDK接口使得TF卡調(diào)用密鑰生成接口生成共享密鑰.使用密鑰分發(fā)中心的私鑰簽名及發(fā)送方A和接收方B的公鑰分別加密發(fā)送給各方的消息,返回給接收方B.接收方B收到消息后,使用公鑰解密私鑰驗(yàn)簽后,完成對(duì)消息新鮮性和密鑰分發(fā)中心身份的驗(yàn)證.
3.putKeyPack(session,ksdata):ksdata為接收方B調(diào)用getKey()接口后,返回給發(fā)送方A的部分及接收方B使用共享密鑰加密的發(fā)送方A的隨機(jī)數(shù).通過(guò)調(diào)用該接口,將該部分發(fā)送至發(fā)送方A.
4.getKeyPack(session,ksdata):發(fā)送方A通過(guò)調(diào)用該接口,對(duì)ksdata使用密鑰分發(fā)中心的公鑰解密和己方的私鑰驗(yàn)簽后,完成對(duì)消息新鮮性及密鑰分發(fā)中心身份的認(rèn)證并解密出共享密鑰;使用共享密鑰解密第二部分密文,完成對(duì)接收方B的身份認(rèn)證及確認(rèn)其收到共享密鑰.
5.putKeyRand(session,ksdata2):ksdata2為發(fā)送方A解密出的接收方B的隨機(jī)數(shù)并使用共享密鑰加密后的消息.
6.getKeyRand(session,ksdata2):接收方B收到消息后,調(diào)用該接口解密ksdata2,驗(yàn)證發(fā)送方A也收到共享密鑰.
至此,發(fā)送方A和接收方B通過(guò)調(diào)用SDK相關(guān)接口,完成了改進(jìn)版協(xié)議的所有交互過(guò)程,并同時(shí)完成了身份認(rèn)證、分別獲取到共享密鑰.雙方在收到共享密鑰的過(guò)程中,會(huì)將其存儲(chǔ)在TF加密卡中,只在本機(jī)內(nèi)存中存儲(chǔ)會(huì)話(huà)與密鑰的對(duì)應(yīng)關(guān)系,當(dāng)本次會(huì)話(huà)結(jié)束后,調(diào)用接口releaseKey(session)釋放與該會(huì)話(huà)相關(guān)的共享密鑰.
為了在實(shí)際應(yīng)用中使用該改進(jìn)版的認(rèn)證協(xié)議,本文通過(guò)修改mosquitto的源碼,在其消息發(fā)送部分,調(diào)用SDK提供的加解密接口(文本加密接口、文件加密接口),完成消息發(fā)送前的加密.對(duì)于文本消息直接將密文通過(guò)業(yè)務(wù)服務(wù)器發(fā)送給接收方;文件則由發(fā)送方將其加密后作為附件上傳到http服務(wù)器,使用服務(wù)器返回的文件標(biāo)示URI作為文本進(jìn)行交互.對(duì)于文本消息,消息接收方直接調(diào)用SDK的文本解密接口[10],可直接完成對(duì)文本消息的解密;對(duì)于文件信息,根據(jù)文件標(biāo)示URI先從http服務(wù)器將加密文件下載到本地,后調(diào)用文件解密接口解密.
圖5 本端證書(shū)Fig.5 Local certification
圖5展示了改進(jìn)版的認(rèn)證協(xié)議在即時(shí)消息通信中各個(gè)環(huán)節(jié)的使用效果:
TF加密卡初始化之后,本端證書(shū)信息:
在完成登錄過(guò)程后,通過(guò)調(diào)用SDK提供的認(rèn)證接口,完成在加密通信前的身份認(rèn)證和共享密鑰的獲取.
圖6為雙方本地獲取的共享密鑰信息(密文).
圖6 共享會(huì)話(huà)密鑰(16進(jìn)制)Fig.6 Shared session key (Hexadecimal)
使用共享密鑰進(jìn)行文本消息及文件信息的交互,交互過(guò)程中與業(yè)務(wù)服務(wù)器之間的信息都是密文形式:
圖7為消息交互界面.
圖7 消息交互圖Fig.7 Message interaction diagram
圖8為消息(abc)對(duì)應(yīng)密文.
圖8 消息abc對(duì)應(yīng)密文Fig.8 Cphertext of the message abc
圖9 文件發(fā)送前內(nèi)容Fig.9 Cntent of file before sending
使用共享密鑰對(duì)文件內(nèi)容進(jìn)行加密后,以附件形式通過(guò)http協(xié)議上傳到業(yè)務(wù)服務(wù)器,發(fā)送方將文件描述信息作為本文消息加密發(fā)送到接收方,收到文件描述信息解密后,從業(yè)務(wù)服務(wù)器下載密文文件到本地進(jìn)行解密:
圖9為發(fā)送前的文件內(nèi)容.
圖10 上傳到服務(wù)器的文件Fig.10 File uploaded to the server
圖10標(biāo)示業(yè)務(wù)服務(wù)器已經(jīng)接收到該文件(圖7中發(fā)送的文件名).
本文首先說(shuō)明制定改進(jìn)版認(rèn)證協(xié)議的目的,指出原始NS協(xié)議存在重放攻擊和身份冒充缺陷;而后說(shuō)明了改進(jìn)版認(rèn)證協(xié)議的原理,在不增加信息交互次數(shù)的基礎(chǔ)上,改進(jìn)版協(xié)議在使接收方B轉(zhuǎn)發(fā)發(fā)送方A加密消息的同時(shí),將自己的隨機(jī)數(shù)也加密發(fā)送給密鑰管理中心,目的在于防止重放攻擊;通過(guò)將接收方的名字添加到發(fā)送給A的消息中,防止接收方身份的冒充;以及通過(guò)共享密鑰KAB加密發(fā)送方隨機(jī)數(shù)NA來(lái)保證消息新鮮性的同時(shí)驗(yàn)證了接收方B已經(jīng)接收到共享密鑰KAB.通過(guò)采取以上措施,保證了本協(xié)議的可靠性.最后使用BAN邏輯對(duì)改進(jìn)后的協(xié)議進(jìn)行形式化驗(yàn)證,從理論上證明改進(jìn)協(xié)議完全符合安全協(xié)議的要求.在完成協(xié)議安全性論證后,借助于封裝了TF加密卡的SDK提供的接口,完成用戶(hù)登錄、證書(shū)獲取和上傳、身份認(rèn)證、共享密鑰獲取、文本加解密、文件加解密的功能.最后通過(guò)軟件實(shí)例,展示了該協(xié)議在正常商業(yè)軟件上的應(yīng)用過(guò)程.
[1] Lei Xin-feng,Song Shu-min,Liu Wei-bing,et al.A srvey on computationally sound formal analysis of cryptographic [J].Chinese Journal of Computers,2014,37(5):993-1016.
[2] Hu Xiao-hui,Chen Hui-li,Shi Guang-tian,et al.Formal modeling and verification of CTCS-4 security[J].Computer Engineering and Applications,2014,50(4):81-85.
[3] Liu S M,Ye J Y,Wang Y L.Improvement and security analysis on symmetric key authentication needham-schroeder[J].Applied Mechanics & Materials,2014,513-517:1289-1293.
[4] Lai Y,Chen Y,Zou Q,et al.Design and analysis on trusted network equipment access authentication[J].Simulation Modelling Practice & Theory,2015,51(51):157-169.
[5] Wang Zheng-cai,Xu Dao-yun,Wang Xiao-feng,et al.Reliability analysis and improvement of BAN logic[J].Computer Engineering,2012,38(17):110-115.
[6] Lu Si-qi,Cheng Qing-feng,Zhao Jin-hua.Comparison study of formal verification tools for security protocols[J].Journal of Cryptologic Research,2014,1(6):568-577.
[7] Xue Rui,Feng Deng-guo.A survey on formal analysis of security[J].Journal of Cryptologic Research,2014,1(5):504-512.
[8] Xue Rui,Lei Xin-feng.Present status and trends of researches on analyses of security[J].Bulletin of Chinese Academy of Sciences,2011,(3):287-296.
[9] Shi Guang-tian,Chen Hui-li.Formal analysis and verification of a new improved NSSK protocol [C].Proceedings of the 2014 International Conference on E-Commerce,E-Business and E-Service(EEE 2014),Information Engineering Research Institute,USA,2014:20-24.
[10] Needham R M,Schroeder M D.Using encryption for authentication in large networks of computers[J].Communications of the ACM,1978,21(12):993-999.
[11]Wang Kun,Zhou Qing-lei.RFID mutual authentication protocol of new internet of things[J].Journal of Chinese Computer Systems,2015,36(4):732-738.
[12]Cai Da-zhuang,Yang Hai-bo.Research on a secure communication model for IMS assess layer using two-stage DH algorithm[J].Journal of Chinese Computer Systems,2016,37(4):782-786.
[13]Shao Fei,Meng Bo.A Non-interactive deniable authentication protocol based on elliptic curve discrete logarithm problem[J].Journal of Chinese Computer Systems,2014,35(1):89-92.
附中文參考文獻(xiàn):
[1] 雷新鋒,宋書(shū)民,劉偉兵,等.計(jì)算可靠的密碼協(xié)議形式化分析綜述[J].計(jì)算機(jī)學(xué)報(bào),2014,37(5):993-1016.
[2] 胡曉輝,陳慧麗,石廣田,等.CTCT-4級(jí)安全通信協(xié)議的形式化建模與驗(yàn)證[J].計(jì)算機(jī)工程與應(yīng)用,2014,50(4):81-85.
[5] 王正才,許道云,王曉峰,等.BAN邏輯的可靠性分析與改進(jìn)[J].計(jì)算機(jī)工程,2012,38(17):110-115.
[6] 陸思奇,程慶豐,趙進(jìn)華.安全協(xié)議形式化分析工具比較研究[J].密碼學(xué)報(bào),2014,1(6):568-577.
[8] 薛 銳,雷新鋒.安全協(xié)議:信息安全保障的靈魂—安全協(xié)議分析研究現(xiàn)狀與發(fā)展趨勢(shì)[J].中國(guó)科學(xué)院院刊,2011,(3):287-296.
[11]王 坤,周清雷.新物聯(lián)網(wǎng)下的RFID雙向認(rèn)識(shí)協(xié)議[J].小型微型計(jì)算機(jī)系統(tǒng),2015,36(4):732-738.
[12]才大壯,楊海波.使用兩階段DH算法的IMS接入側(cè)安全通信模型研究[J].小型微型計(jì)算機(jī)系統(tǒng),2016,37(4):782-786.
[13]邵 飛,孟 博.一種基于橢圓曲線(xiàn)離散對(duì)數(shù)問(wèn)題的非交互式可否認(rèn)認(rèn)證協(xié)議[J].小型微型計(jì)算機(jī)系統(tǒng),2014,35(1):89-92.