陳 卓
(信陽(yáng)農(nóng)林學(xué)院,河南信陽(yáng),464000)
一種RFID系統(tǒng)的Tag-Reader雙向安全認(rèn)證協(xié)議
陳卓
(信陽(yáng)農(nóng)林學(xué)院,河南信陽(yáng),464000)
為了保證RFID系統(tǒng)的信息安全,本文在分析現(xiàn)有RFID認(rèn)證協(xié)議的基礎(chǔ)上,提出一種基于Grain-Mac流密碼加密算法的雙向安全認(rèn)證協(xié)議,采用流密碼和密鑰動(dòng)態(tài)更新的方法實(shí)現(xiàn)了標(biāo)簽與閱讀器的雙向認(rèn)證。仿真結(jié)果表明,該協(xié)議成本低、效率高、安全性好,且能夠有效抵抗拒絕服務(wù)攻擊,達(dá)到了預(yù)期的效果。
射頻識(shí)別;加密算法;認(rèn)證協(xié)議
隨著物聯(lián)網(wǎng)技術(shù)日趨成熟,射頻識(shí)別(Radio Frequency Identification,RFID)系統(tǒng)逐漸在零售、物流等領(lǐng)域得到廣泛應(yīng)用。人們享受其帶來(lái)的便捷,同時(shí)也逐漸意識(shí)到信息安全和隱私保護(hù)問(wèn)題。犯罪分子利用開(kāi)放型無(wú)線環(huán)境的漏洞進(jìn)行非法攻擊,會(huì)造成系統(tǒng)紊亂,甚至機(jī)密泄露。目前,依據(jù)RFID層次特點(diǎn)實(shí)施的針對(duì)性攻擊主要有兩種:Tag-Reader攻擊和后臺(tái)攻擊。
國(guó)內(nèi)外學(xué)者對(duì)Tag-Reader攻擊提出兩類(lèi)安全對(duì)策:一是物理機(jī)制,主要包括kill命令、主動(dòng)干擾、阻塞標(biāo)簽和靜電屏蔽等。其對(duì)象為計(jì)算能力弱的低成本標(biāo)簽,能一定程度上解決安全問(wèn)題,但標(biāo)簽利用率低,局限性大。其二是加密認(rèn)證機(jī)制,是采用密碼學(xué)技術(shù)來(lái)完善協(xié)議,綜合性能更為優(yōu)越,本文的研究對(duì)象為后者。
最早的Hash-Lock協(xié)議以metaID來(lái)代替真實(shí)的標(biāo)簽ID,能夠防止未經(jīng)授權(quán)者閱讀標(biāo)簽內(nèi)容。但metaID固定,并以明文形式發(fā)送,難以抵抗偽造攻擊和重放攻擊。隨機(jī)Hash-Lock協(xié)議在標(biāo)簽內(nèi)存儲(chǔ)標(biāo)簽ID與一個(gè)隨機(jī)數(shù)產(chǎn)生程序,達(dá)到一定的保密效果,但仍無(wú)法擺脫攻擊者的追蹤。Hash鏈協(xié)議與上述兩個(gè)協(xié)議不同,標(biāo)簽(tag)和閱讀器(reader)間有一個(gè)約定的初始密鑰,前向安全性良好。但要求tag具備讀寫(xiě)能力,增加了制造成本。文獻(xiàn)[2]提出一種分布式RFID詢(xún)問(wèn)—應(yīng)答協(xié)議,其reader和tag分別生成一個(gè)隨機(jī)數(shù),只有兩者都通過(guò)認(rèn)證才允許訪問(wèn)。安全漏洞較少,但運(yùn)算時(shí)間較長(zhǎng)。文獻(xiàn)[3]提出一種O-FRAP認(rèn)證協(xié)議,其密鑰在認(rèn)證后被更新,不易被跟蹤。但每次查詢(xún)都要利用記錄做計(jì)算和匹配,浪費(fèi)后臺(tái)服務(wù)器資源,容易遭受拒絕服務(wù)攻擊(DoS),引起系統(tǒng)崩潰。現(xiàn)階段還缺乏一種低成本、高效率與安全性兼具的協(xié)議,本文針對(duì)DoS的特點(diǎn),設(shè)計(jì)了一種基于Grain-Mac流密碼加密算法的雙向安全認(rèn)證協(xié)議。
2.1認(rèn)證流程
符號(hào)定義如下:R為閱讀器,T為RFID標(biāo)簽,S為服務(wù)器,rt、rs和rr分別是三者產(chǎn)生的隨機(jī)數(shù),D是S的數(shù)據(jù)庫(kù),PRNG()為偽隨機(jī)函數(shù),K()是加密函數(shù),D.query()和D.update()為數(shù)據(jù)庫(kù)查詢(xún)和更新命令,||為連接操作符。每個(gè)標(biāo)簽和服務(wù)器擁有兩個(gè)密鑰:公共密鑰kc,用于在查詢(xún)數(shù)據(jù)庫(kù)之前判斷標(biāo)簽和閱讀器的合法性,此密鑰為固定值。私有密鑰kt,在認(rèn)證過(guò)程中動(dòng)態(tài)更新,且每個(gè)標(biāo)簽的kt都具有唯一性。在標(biāo)簽、閱讀器和服務(wù)器上都有一個(gè)算法相同的密鑰流產(chǎn)生器,kc和kt只作為密鑰源,由產(chǎn)生器產(chǎn)生密鑰流,經(jīng)過(guò)異或運(yùn)算加密明文。D中為每個(gè)標(biāo)簽保存數(shù)組(Kc(ID),ID,kt),標(biāo)簽中存儲(chǔ)一組數(shù)據(jù)(ID,kt,kc),服務(wù)器存儲(chǔ)kc。認(rèn)證步驟如下:
(1)當(dāng)檢測(cè)到T進(jìn)入R通信范圍內(nèi),R會(huì)向T發(fā)送一個(gè)詢(xún)問(wèn)信號(hào)Query。
(2)收到信號(hào)的T產(chǎn)生一個(gè)與ID位數(shù)相同的隨機(jī)數(shù)rt,然后發(fā)送給R。
(3)R收到數(shù)據(jù)后,產(chǎn)生自己的隨機(jī)數(shù)rr,并與rt一起通過(guò)安全信道發(fā)送給S。
(4)S將兩者進(jìn)行連接:b=rr||rt,用公共密鑰kc對(duì)b進(jìn)行加密:c=Kc(b),然后把c傳回R。
(5)R把自己的rr與c一起發(fā)送給T。
(6)T將收到的rr’和rt連接,用公共密鑰kc加密得:c’=Kc(rr’||rt),然后判斷是否c’=c,若不相等則認(rèn)為R不合法。否則對(duì)ID用kc加密并與rt異或得:a= Kc(ID)⊕rt,目的是讓每次傳輸數(shù)據(jù)有所區(qū)別,防止被追蹤。然后將a與rr’||rt連接并用kc加密:m=Kc(a||rr’||rt),用私有密鑰kt加密rt:d=Kt(rt),再把這三個(gè)數(shù)據(jù)發(fā)給R,最后更新密鑰kt:kt’=PRNG(kt),表示用原先密鑰做種子隨機(jī)生成新密鑰。
(7)R將收到的a與rr||rt連接,用kc加密:m’= Kc(a||rr||rt),判斷是否m’=m,若不相等則認(rèn)為T(mén)不合法,停止認(rèn)證過(guò)程。否則將a、d發(fā)送給S。
(8)S將收到的a與rt異或得:n=a⊕rt,以n為索引在D中查找T的記錄:D.query(n),找到對(duì)應(yīng)的ID和密鑰kt:(ID,kt)。
①用密鑰kt加密rt:d’=Kt(rt)。判斷是否d’=d,若相等則認(rèn)為T(mén)合法,認(rèn)證通過(guò),然后執(zhí)行②,若不等則先執(zhí)行②,然后重新執(zhí)行①。防止因阻塞攻擊導(dǎo)致數(shù)據(jù)不同步。
②更新密鑰kt:kt’’=PRNG(kt)。
③用kt’’更新數(shù)據(jù)庫(kù)記錄:D.update(kt’’)。
④生成隨機(jī)數(shù)rs,用kt’’加密:h=Kt(rs),然后與rs一起發(fā)送給R。
(9)R把h和rs轉(zhuǎn)發(fā)給T。
(10)T收到后用更新后的密鑰kt’加密rs:h’=Kt(rs),比較h’和h,若相等則接受R與S合法通過(guò),整個(gè)認(rèn)證過(guò)程結(jié)束。
2.2安全性分析
(1)嗅探跟蹤。利用流密碼加密使密文之間相關(guān)度較低,保證了信息交換中數(shù)據(jù)的不可讀性,除非同時(shí)知曉kc與kt才能通過(guò)認(rèn)證。
(2)重放攻擊。信息流中的隨機(jī)數(shù)使每次傳輸數(shù)據(jù)有所變化,任何一步出錯(cuò)都會(huì)關(guān)閉通信,無(wú)法截取相同T信息進(jìn)行重放。
(3)前向安全。每次認(rèn)證都會(huì)更新密鑰,PRNG是單向偽隨機(jī)函數(shù),即使T中的本次kt泄露,也無(wú)法推算上一次的kt。
(4)數(shù)據(jù)一致性。D和T中并非存儲(chǔ)兩個(gè)密鑰,而是在S端重復(fù)使用PRNG函數(shù)更新kt進(jìn)行認(rèn)證,避免數(shù)據(jù)不同步。
(5)拒絕服務(wù)攻擊。S在發(fā)出查詢(xún)命令后用kc加密rr與rt,發(fā)送給T,T計(jì)算判別R和S的合法性。再用kc加密自己的a、rr與rt,發(fā)送給R,R判別T是否合法。若不合法則拒絕將數(shù)據(jù)發(fā)給S,防止偽造的標(biāo)簽頻繁查詢(xún)D而導(dǎo)致系統(tǒng)崩潰。
本文以客戶(hù)端—服務(wù)器模式設(shè)計(jì)程序,對(duì)幾種Tag-Reader安全協(xié)議的認(rèn)證過(guò)程進(jìn)行仿真實(shí)驗(yàn),軟件如下:VS2008,VC6.0,ACE通信軟件包,MSSQL Server2000,Mysql7.0。利用ACE連接模塊功能,增加攻擊程序模擬攻擊過(guò)程,結(jié)果存儲(chǔ)在數(shù)據(jù)庫(kù)中便于分析比較。另采用文獻(xiàn)[4]提出的Grain-Mac流密碼加密算法進(jìn)行加解密,加密速度快,硬件占用率低。因篇幅有限,不再給出具體程序。
從表1中可看出,相比于前三種Hash系列協(xié)議,分布式詢(xún)問(wèn)—應(yīng)答協(xié)議、O-FRAP協(xié)議和本文協(xié)議的攻擊成功率大幅度降低,一方面是針對(duì)普遍性攻擊,各協(xié)議性能的差異。另一方面由于加入了DoS,原本安全性較強(qiáng)的協(xié)議暴露出劣勢(shì),故從成本、效率和安全綜合考慮,本文的協(xié)議具有明顯的優(yōu)勢(shì)。
本文設(shè)計(jì)了一種基于Grain-Mac流密碼加密算法的雙向安全認(rèn)證協(xié)議,采用流密碼和密鑰動(dòng)態(tài)更新的方法實(shí)現(xiàn)標(biāo)簽與閱讀器的雙向認(rèn)證。仿真結(jié)果表明,該協(xié)議綜合性能良好且能夠有效抵抗拒絕服務(wù)攻擊,達(dá)到了預(yù)期的效果。
[1] 梁晨.基于物聯(lián)網(wǎng)的RFID安全認(rèn)證協(xié)議研究與設(shè)計(jì)[D].西安:西安電子科技大學(xué),2011:27-34.
[2] 張瑾瑾,張浩軍.一種改進(jìn)的RFID高效認(rèn)證協(xié)議[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(1):147-150.
[3] T r i V a n L e,M i k e B u r n m e s t e r,B r e n o d e Medeiros,Universally composable and forward secure RFID authentication and authenticated key exchange in:The Proceedings of the Second ACM Symposium on Information,Computer and Communications Security,2007:242-252.
[4] 李雪峰.基于RFID系統(tǒng)的認(rèn)證協(xié)議與加密算法的研究[D].上海:東華大學(xué),2008:52-69.
A mutual secure authentication protocol for Tag-Reader of RFID system
Chen Zhuo
(XinYang College Of Agriculture And Forestry,XinYang,464000)
In order to protect the information security of RFID system,this paper proposes a mutual secure authentication protocol based on Grain-Mac stream-cipher cryptographic algorithm by analyzing existing RFID authentication protocols.The mutual authentication between tags and readers is achieved through use of stream-cipher and dynamic key-updating methods.Simulation results show that,the new protocol has feature of low cost,high efficiency and good safety,also it can effectively resist denial-of-service attack,so as to achieve the desired effect.
RFID;cryptographic algorithm; authentication protocol

表1 攻擊實(shí)驗(yàn)數(shù)據(jù)