伍新華 唐翠婷
(武漢理工大學(xué)計(jì)算機(jī)學(xué)院 武漢 430063)
RFID技術(shù)是物聯(lián)網(wǎng)的核心技術(shù)之一,RFID系統(tǒng)由3個部分組成:RFID標(biāo)簽、RFID標(biāo)簽讀寫器和后臺數(shù)據(jù)庫.一般認(rèn)為,標(biāo)簽讀寫器至后臺數(shù)據(jù)庫的通信通道為安全信道,標(biāo)簽和標(biāo)簽讀寫器之間的通信通道為不安全信道.本文主要探討的是基于標(biāo)簽和標(biāo)簽讀寫器之間(為描述方便,稱其為無線數(shù)據(jù)采集區(qū)域)的不安全信道上的安全問題.無線數(shù)據(jù)采集區(qū)域主要涉及到非法訪問、跟蹤、竊聽、偽造、數(shù)據(jù)演繹、重放攻擊、DOS攻擊、標(biāo)簽失效[1]、物理攻擊等安全問題.
RFID系統(tǒng)安全問題的關(guān)鍵在于閱讀器與標(biāo)簽?zāi)軌蛳嗷フJ(rèn)證識別,且在通信過程中不會引起消息和個人隱私泄密等.因此,一種高效、安全的RFID認(rèn)證協(xié)議就顯得尤為重要.目前大多數(shù)協(xié)議重視對標(biāo)簽的安全認(rèn)證,而忽略了對閱讀器的安全識別,以致未授權(quán)閱讀器仍可通過安全認(rèn)證,導(dǎo)致標(biāo)簽信息的泄露;重視復(fù)雜的運(yùn)算算法來加大通信信息本身的可辨識度,試圖使攻擊者不能獲取真正有利信息,卻忽略了RFID系統(tǒng)本身資源的局限.
本文剖析了具有代表性的基于Hash函數(shù)的RFID安全協(xié)議,針對它們的缺陷,提出了改進(jìn)后的RFID安全協(xié)議——HASH-IMAP(improved mutual authentication protocol)協(xié)議.因?yàn)椴捎玫倪\(yùn)算大部分是基于通過性能分析和安全性對比,說明了該協(xié)議是高效和安全的.
針對RFID系統(tǒng)的無線數(shù)據(jù)采集區(qū)域的安全問題,研究者提出了許多安全認(rèn)證協(xié)議,例如Hash-Lock協(xié)議[2]、隨機(jī)Hash-Lock協(xié)議[3]和Hash-Chain協(xié)議[4]等.文獻(xiàn)[5]在對Hash-Lock,隨機(jī)Hash-Lock,Hash-Chain協(xié)議的分析基礎(chǔ)上,實(shí)現(xiàn)了數(shù)據(jù)庫與標(biāo)簽的安全認(rèn)證.閱讀器產(chǎn)生的隨機(jī)數(shù)R,不斷更新的S值,使得每次認(rèn)證過程中閱讀器與標(biāo)簽的通信信道上的消息不相同.加之每次認(rèn)證信息均經(jīng)過Hash運(yùn)算,使得消息內(nèi)容不易被破譯和演繹.但當(dāng)重放認(rèn)證請求時,標(biāo)簽給予同樣回應(yīng),攻擊者可對此標(biāo)簽進(jìn)行跟蹤定位.S的更新方法是:標(biāo)簽計(jì)算H(ID||S),并與所接收值進(jìn)行對比,相同則讓數(shù)據(jù)庫與標(biāo)簽同步更新S.此方法模糊不清,易給攻擊者可乘之機(jī).
文獻(xiàn)[6]中,若認(rèn)證成功,則數(shù)據(jù)庫增加一條記錄(H(H(Key)),IDk,H(Key),i),并將第i條記錄中Pointer指向該新增記錄編號,其中i為標(biāo)簽IDk的初始記錄標(biāo)號.下一次與標(biāo)簽IDk通信更新Key值時,則會覆蓋掉第i條記錄,以此類推.相對于文獻(xiàn)[5]中的密值更新模糊,文獻(xiàn)[6]將初始記錄中的Pointer指向成功認(rèn)證(標(biāo)簽Key值更新)后的另一條標(biāo)簽記錄,即一個標(biāo)簽對應(yīng)數(shù)據(jù)庫中兩條記錄(一份是當(dāng)前的認(rèn)證記錄,另一份是上一次的認(rèn)證記錄),成功解決了數(shù)據(jù)庫與標(biāo)簽的密值不同步而帶來的安全隱患.但是一個標(biāo)簽對應(yīng)數(shù)據(jù)庫中兩條記錄,占用較多資源,當(dāng)標(biāo)簽數(shù)量急劇增多時,數(shù)據(jù)庫的存儲空間也需急劇增大,且仍未解決重放攻擊問題.
文獻(xiàn)[7]設(shè)置2個k值:K存儲當(dāng)前k值,Klast存儲上一次成功認(rèn)證時的k值.用一個標(biāo)簽對應(yīng)數(shù)據(jù)庫中的一條記錄,來優(yōu)化一個標(biāo)簽對應(yīng)兩條記錄的存儲方案,同樣成功解決了標(biāo)簽與數(shù)據(jù)庫密值的更新同步的問題.閱讀器和標(biāo)簽均產(chǎn)生隨機(jī)數(shù),有效地解決了重放攻擊問題.
文獻(xiàn)[5-7]的協(xié)議均采用保持標(biāo)簽ID不變、更新密值的方式,在基于Hash函數(shù)的安全認(rèn)證協(xié)議上進(jìn)行了相關(guān)的改進(jìn).顯然,文獻(xiàn)[7]在以上三種方案中的安全性能是最好的.在犧牲部分計(jì)算和存儲開銷的代價下,它成功實(shí)現(xiàn)了標(biāo)簽與數(shù)據(jù)庫的雙向認(rèn)證.閱讀器和標(biāo)簽都產(chǎn)生隨機(jī)數(shù)有效解決了重放攻擊帶來的安全隱患;不斷更新密值可提高認(rèn)證協(xié)議的安全性.采用了存儲2個密值域的方式,不僅簡單地解決了數(shù)據(jù)庫存儲開銷問題,還能抵御攻擊者的惡意攻擊造成的密值不同步的隱患.但第三種方案還是存在一些不足:(1)非法訪問.合法但未授權(quán)的閱讀器仍可獲得標(biāo)簽的安全認(rèn)證;(2)DOS攻擊.為保證安全認(rèn)證犧牲了過多的計(jì)算開銷.每一次認(rèn)證過程中,數(shù)據(jù)庫最多要計(jì)算O(n)的Hash運(yùn)算,極大的加重了數(shù)據(jù)庫的運(yùn)算負(fù)擔(dān).攻擊者的持續(xù)攻擊有可能造成數(shù)據(jù)庫的不堪重負(fù);(3)標(biāo)簽失效.標(biāo)簽在每次認(rèn)證過程中,除需存儲自身產(chǎn)生的隨機(jī)數(shù)外,還要存儲閱讀器發(fā)送的隨機(jī)數(shù).攻擊者的持續(xù)攻擊有可能造成標(biāo)簽存儲資源的耗盡.
本文提出了一種閱讀器與標(biāo)簽雙向認(rèn)證的HASH-IMAP安全協(xié)議.該協(xié)議同樣是基于Hash函數(shù)的,且通過為閱讀器設(shè)置標(biāo)識來防止非法訪問,并在保證安全的前提下盡可能采用簡單的運(yùn)算來減少系統(tǒng)開銷,實(shí)現(xiàn)了閱讀器與標(biāo)簽的安全雙向認(rèn)證.
數(shù)據(jù)庫中的記錄主要包括4列:ID,keyold,keynew和ID′R.其中,ID為標(biāo)簽的惟一標(biāo)識符,ID′R為合法授權(quán)的閱讀器的唯一標(biāo)識符,keyold是上一次成功認(rèn)證的key值,初始值為0;keynew是本次認(rèn)證過程中生成的key值,初始值為數(shù)據(jù)庫與標(biāo)簽共享的隨機(jī)關(guān)鍵字.
HASH-IMAP安全協(xié)議執(zhí)行過程見圖1.
圖1 HASH-IMAP執(zhí)行過程
圖1中:(1)閱讀器產(chǎn)生隨機(jī)數(shù)R1,將發(fā)送請求Query與R1傳給標(biāo)簽;(2)標(biāo)簽生成隨機(jī)數(shù)R2并存儲,計(jì)算key⊕H(R1⊕R2),將結(jié)果連同R2一起發(fā)送給閱讀器;(3)閱讀器將接收到的R2,key⊕H(R1⊕R2)連同R1發(fā)送給數(shù)據(jù)庫;(4)數(shù)據(jù)庫首先計(jì)算H(R1⊕R2),與key⊕H(R1⊕R2)異或運(yùn)算后得到標(biāo)簽的key值,再與每條記錄中keynew進(jìn)行比較.若存在keynew=key,則驗(yàn)證了標(biāo)簽的合法性.然后計(jì)算key′=H(key||R2),更新keyold=keynew,keynew=key′.再分別計(jì)算H(key′⊕R2)和H(ID′R⊕R1),并將兩結(jié)果異或,即H(key′⊕R2)⊕H(ID′R⊕R1),將其傳給閱讀器,若不存在keynew=key,再驗(yàn)證是否存在keyold=key.若存在,則驗(yàn)證了標(biāo)簽的合法性,后續(xù)處理過程同上,若以上兩種情況均不存在,則說明此標(biāo)簽為非法標(biāo)簽,可不予處理;(5)閱讀器接收到數(shù)據(jù)庫傳過來的H(key′⊕R2)⊕H(ID′R⊕R1)后,根據(jù)自身IDR計(jì)算H(IDR⊕R1)與之異或,并將結(jié)果,即H(key′⊕R2)發(fā)送給標(biāo)簽;(6)標(biāo)簽計(jì)算H(H(key||R2)⊕R2),并與接收到閱讀器傳過來的H(key′⊕R2)比較.若相等,則驗(yàn)證了讀寫器的合法性,且將H(key||R2)賦給key;若不等,則說明此讀寫器為非法不授權(quán)讀寫器,可不予處理.
1)非法訪問 未授權(quán)的讀寫器不能通過協(xié)議認(rèn)證.因?yàn)橹挥泻戏ǖ拈喿x器的IDR等于數(shù)據(jù)庫中對應(yīng)標(biāo)簽記錄存儲的ID′R,繼而在步驟5中用自身IDR計(jì)算H(IDR⊕R1),再將得到的結(jié)果H(key′⊕R2)傳給標(biāo)簽.若為非法閱讀器,則無法計(jì)算H(IDR⊕R1),故步驟6中標(biāo)簽收到的結(jié)果肯定不能通過驗(yàn)證,標(biāo)簽不予反應(yīng);若為不授權(quán)閱讀器,因無法得知授權(quán)閱讀器ID′R,只能用自身ID″R計(jì)算H(ID″R⊕R1),再與H(key′⊕R2)異或,顯然不能得到結(jié)果H(key′⊕R2),故步驟6中標(biāo)簽收到的結(jié)果還是不能通過驗(yàn)證,標(biāo)簽不予反應(yīng).
2)跟蹤 閱讀器和標(biāo)簽均可產(chǎn)生隨機(jī)數(shù),故兩者之間每次通信的數(shù)據(jù)均不相同,攻擊者無法通過相同信息的反饋來達(dá)到定位跟蹤的目的.
3)竊聽 竊聽不能禁止,但閱讀器和標(biāo)簽之間的通信采用Hash函數(shù)與異或操作,可有效防止攻擊者通過竊聽到的數(shù)據(jù)來達(dá)到不可告人的目的.
4)偽造 偽造的標(biāo)簽不能通過數(shù)據(jù)庫后臺的驗(yàn)證,數(shù)據(jù)庫不予反應(yīng);同樣,偽造的閱讀器亦不能通過標(biāo)簽的驗(yàn)證,標(biāo)簽不予反應(yīng).
5)數(shù)據(jù)演譯 閱讀器和標(biāo)簽之間的通信采用Hash函數(shù)與異或操作,即使攻擊者利用某種手段獲得了某一個標(biāo)簽上的數(shù)據(jù),也很難推斷出通信的真實(shí)信息.
6)重放攻擊 閱讀器和標(biāo)簽均可產(chǎn)生隨機(jī)數(shù),攻擊者竊聽到數(shù)據(jù)后進(jìn)行重放攻擊并不能通過數(shù)據(jù)庫和標(biāo)簽的認(rèn)證.
對于標(biāo)簽來說:(1)假設(shè)攻擊者重放步驟1,但由于標(biāo)簽自身能產(chǎn)生隨機(jī)數(shù)R2,所以標(biāo)簽的反應(yīng)信息key⊕H(R1⊕R2)每次都不一樣,不能達(dá)到跟蹤定位的目的;(2)假設(shè)攻擊者重放或偽造步驟1后,重放步驟5,以造成上次認(rèn)證失敗的假象,但由于標(biāo)簽產(chǎn)生的隨機(jī)數(shù)R2貫穿整個協(xié)議過程,故攻擊者偽造的閱讀器不能通過標(biāo)簽驗(yàn)證.
對于閱讀器來說:顯然,攻擊者重放步驟2,閱讀器收到信息后傳至后臺數(shù)據(jù)庫.由于key⊕H(R1⊕R2)中的R1并非此次閱讀器產(chǎn)生的隨機(jī)數(shù),故數(shù)據(jù)庫經(jīng)過計(jì)算,并不能找到與之相符的數(shù)據(jù)記錄,偽造標(biāo)簽不能通過后臺驗(yàn)證.
7)DOS攻擊 假設(shè)共有n個標(biāo)簽信息.閱讀器在整個協(xié)議中有1次Hash運(yùn)算,2次異或運(yùn)算;數(shù)據(jù)庫在整個協(xié)議中,最多有2n次比較運(yùn)算,4次Hash運(yùn)算,5次異或運(yùn)算.
8)標(biāo)簽失效 標(biāo)簽在整個協(xié)議過程中需3次Hash運(yùn)算,一次異或運(yùn)算,且只需存儲其自身產(chǎn)生的隨機(jī)數(shù)R2,用于后期key值更新及閱讀器合法性驗(yàn)證.
9)物理攻擊 物理攻擊不可避免.
HASH-IMAP協(xié)議與以上3種協(xié)議的常駐變量存儲開銷對比如表1所列.其中,假設(shè)每個域的存儲長度均為L,X表示未涉及.
表1 協(xié)議存儲開銷對比
HASH-IMAP協(xié)議與以上三種協(xié)議的計(jì)算開銷對比如表2所列.其中,假設(shè)一次Hash運(yùn)算所需時間為1h,一次異或運(yùn)算所需時間為1XOR,X表示未涉及.
表2 協(xié)議計(jì)算開銷對比
HASH-IMAP協(xié)議與以上3種協(xié)議的安全性能對比如表3所列.其中,X表示未滿足,○表示滿足,-表示部分滿足.
通過對4種協(xié)議的存儲開銷、計(jì)算開銷和安全性能對比分析可知,HASH-IMAP協(xié)議的存儲開銷和計(jì)算開銷居中,安全性能最好.認(rèn)證協(xié)議最重要的是要保證認(rèn)證過程的認(rèn)證性、完整性、秘密性和不可抵賴性.在保證安全性的前提下,適當(dāng)犧牲部分計(jì)算開銷和存儲開銷是很有必要的.而HASH-IMAP協(xié)議在已有協(xié)議的優(yōu)點(diǎn)基礎(chǔ)上,有效抵御了各種攻擊手段,保證了認(rèn)證過程的安全持續(xù).
表3 協(xié)議安全性能對比
本文提出的安全認(rèn)證協(xié)議HASH-IMAP中,以Hash函數(shù)加密通信信息,讓數(shù)據(jù)庫采用異或運(yùn)算替代較復(fù)雜的Hash運(yùn)算,減少了其計(jì)算開銷,同時防止了非法不授權(quán)的閱讀器對標(biāo)簽的非法訪問,并及時釋放了標(biāo)簽中的過多冗余存儲信息,有效地完成了閱讀器和數(shù)據(jù)庫的雙向安全認(rèn)證過程.
[1]Han D G,Takagi T,Kim H W.New security problem in RFID systems tag killing[C]//ICCSC 2006,Springer-Verlag,LNCS,2006(3982):375-384.
[2]Sarma S,Weis S,Engels D.RFID systems and security and privacy implications[C]//Proc.of CHES'02.[S.1.]:Springer,2002:454-469.
[3]Weis S,Sarma S,Rivest R.Security and privacy aspects of low-cost radio frequency identification systems[C]//Proc.of Security in Pervasive Computing'04,2004:201-212.
[4]Ohkubo M,Suzuki K,Kinoshita S.Cryptographic approach to“privacy-friendly”tags[C]//Proc.of RFID Privacy Workshop,USA MIT,2003.
[5]張彩霞,程良倫.基于Hash的RFID安全協(xié)議的設(shè)計(jì)[J].包裝工程,2009,30(1):115-117.
[6]曾麗華,雄 璋,張 挺.Key值更新隨機(jī)Hash鎖對RFID安全隱私的加強(qiáng)[J].計(jì)算機(jī)工程,2007,33(3):151-153.
[7]杜志國,楊 波,歐陽國幀,陳 成.安全的RFID認(rèn)證協(xié)議研究設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(3):561-565.