基于Hash 函數(shù)的RFID 安全認(rèn)證協(xié)議研究
射頻識(shí)別(RFID)技術(shù)是一種利用電磁發(fā)射或電磁耦合實(shí)現(xiàn)無(wú)接觸信息傳遞,進(jìn)而自動(dòng)識(shí)別和獲取目標(biāo)對(duì)象信息數(shù)據(jù)的技術(shù)。作為一種穩(wěn)定、可靠、快速采集數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行加工的新興技術(shù),RFID得到了廣泛應(yīng)用并突顯其強(qiáng)大的實(shí)用價(jià)值。但RFID技術(shù)在安全隱私問(wèn)題上面臨著諸多挑戰(zhàn)。為此,本文在已有的RFID協(xié)議基礎(chǔ)上,通過(guò)分析其執(zhí)行過(guò)程及優(yōu)缺點(diǎn),提出一種新的基于Hash的RFID雙向認(rèn)證協(xié)議,并進(jìn)行了安全性分析和比較。
RFID簡(jiǎn)介
1.1RFID系統(tǒng)基本構(gòu)成
(1)電子標(biāo)簽:由芯片和無(wú)線通信天線兩個(gè)主要部分組成,在電子標(biāo)簽中可以通過(guò)存儲(chǔ)一些需要被識(shí)別的物品相關(guān)信息來(lái)分類(lèi)、標(biāo)識(shí)物品。
(2)閱讀器:RFID閱讀器包含邏輯控制單元、射頻接口和無(wú)。線通信天線3個(gè)部分,主要處理與電子標(biāo)簽之間的通信,實(shí)現(xiàn)數(shù)據(jù)的讀寫(xiě)。閱讀器既是標(biāo)簽的匯聚部分,也是應(yīng)用系統(tǒng)的下一級(jí)。
(3)應(yīng)用系統(tǒng):對(duì)讀寫(xiě)器轉(zhuǎn)發(fā)的所有電子標(biāo)簽信息進(jìn)行集中統(tǒng)計(jì)和分析,并通過(guò)安全信道反饋給讀寫(xiě)器。RFID系統(tǒng)基本構(gòu)成如圖1所示。
1.2RFID安全性分析
RFID技術(shù)在方便人們生活的同時(shí)也帶來(lái)諸多安全隱患,其中,RFID系統(tǒng)對(duì)應(yīng)用的完全開(kāi)放是造成系統(tǒng)出現(xiàn)安全隱私問(wèn)題的根本原因。
RFID可能受到的安全威脅有2類(lèi):
①物理環(huán)境威脅,如設(shè)備妨礙、電磁磁擾等;
②人員對(duì)系統(tǒng)的攻擊,主要有重放攻擊、假冒攻擊、竊聽(tīng)攻擊、位置跟蹤等。
主動(dòng)攻擊與被動(dòng)攻擊如圖2所示。
RFID相關(guān)安全認(rèn)證協(xié)議
2.1 Hash-Lock協(xié)議
Hash-Lock協(xié)議是Sarma等提出的一種安全協(xié)議。標(biāo)簽存儲(chǔ)唯一標(biāo)識(shí)ID及metaID,初始狀態(tài)為鎖定狀態(tài)。后端數(shù)據(jù)庫(kù)存儲(chǔ)所有的標(biāo)簽密鑰key、ID和metaID。
Hash-Lock協(xié)議執(zhí)行過(guò)程如下:
① 讀寫(xiě)器向標(biāo)簽發(fā)出認(rèn)證請(qǐng)求;
② 標(biāo)簽回答metaID并通過(guò)讀寫(xiě)器將認(rèn)證請(qǐng)求響應(yīng)消息metaID轉(zhuǎn)發(fā)給后端數(shù)據(jù)庫(kù);
③ 后端數(shù)據(jù)庫(kù)接收消息并檢索系統(tǒng)文檔,如果閱讀器發(fā)送過(guò)來(lái)的metaID與數(shù)據(jù)庫(kù)系統(tǒng)中保存的metaID值相同,就返回讀寫(xiě)器該匹配項(xiàng)的key和ID;否則,返回給讀寫(xiě)器認(rèn)證失敗信息;
④ 讀寫(xiě)器接收消息并返回給標(biāo)簽密鑰;
⑤ 標(biāo)簽接收密鑰信息并利用散列函數(shù)驗(yàn)證H(key)與metaID是否相等。如果相等,標(biāo)簽返回給讀寫(xiě)器唯一標(biāo)識(shí);否則,驗(yàn)證失??;
⑥ 讀寫(xiě)器判斷兩份ID數(shù)據(jù)是否相同。如果相同,則認(rèn)證成功;否則,認(rèn)證失敗。
2.2隨機(jī)化Hash-Lock協(xié)議
隨機(jī)化Hash-Lock協(xié)議是Weis等提出的一種安全協(xié)議。標(biāo)簽保存ID并嵌入隨機(jī)數(shù)產(chǎn)生器,初始狀態(tài)為鎖定狀態(tài)。后端數(shù)據(jù)庫(kù)存儲(chǔ)全部標(biāo)簽ID。
隨機(jī)化Hash-Lock協(xié)議認(rèn)證過(guò)程如下:
① 讀寫(xiě)器向標(biāo)簽發(fā)出認(rèn)證請(qǐng)求;
② 標(biāo)簽接收認(rèn)證消息并生成一個(gè)R,通過(guò)讀寫(xiě)器將H(IDk||R)數(shù)據(jù)值連同R一同轉(zhuǎn)發(fā)給后端數(shù)據(jù)庫(kù),其中R是隨機(jī)數(shù);
③ 后端數(shù)據(jù)庫(kù)接收請(qǐng)求信息并檢索系統(tǒng)文檔,然后返回給讀寫(xiě)器全部ID;
④ 讀寫(xiě)器檢查是否有某個(gè)IDj(1≤j≤n),使得H(IDj||R)=H(IDk||R)成立。如果有,則認(rèn)證通過(guò),并將IDj發(fā)送給標(biāo)簽;
⑤ 標(biāo)簽接收數(shù)據(jù)消息并判斷IDj和IDk是否相等。如果相等,則認(rèn)證通過(guò),否則認(rèn)證失敗。
2.3Hash鏈協(xié)議
在Hash鏈協(xié)議中,標(biāo)簽存有ID和秘密值S,初始狀態(tài)為鎖定狀態(tài)。系統(tǒng)全部標(biāo)簽數(shù)值對(duì)(ID,S)保存在后端數(shù)據(jù)庫(kù)。
Hash鏈協(xié)議的執(zhí)行過(guò)程如下:
① 讀寫(xiě)器向標(biāo)簽發(fā)出認(rèn)證請(qǐng)求;
② 標(biāo)簽接收請(qǐng)求命令并通過(guò)散列函數(shù)計(jì)算G(S),然后標(biāo)簽將計(jì)算結(jié)果通過(guò)讀寫(xiě)器響應(yīng)給后端數(shù)據(jù)庫(kù)并使用哈希函數(shù)H更替標(biāo)簽的秘密值;
③ 后端數(shù)據(jù)庫(kù)接收消息并檢索系統(tǒng)文檔。計(jì)算G(H(S))并和讀寫(xiě)器的相應(yīng)數(shù)據(jù)比較,如果相等,則認(rèn)證成功;否則,認(rèn)證失敗。
2.4協(xié)議優(yōu)缺點(diǎn)
Hash鎖協(xié)議使用標(biāo)簽metaID代替真實(shí)的ID,標(biāo)簽對(duì)讀寫(xiě)器進(jìn)行認(rèn)證后再將其ID通過(guò)非安全信道發(fā)送給讀寫(xiě)器。但每次傳送的metaID也屬于常量值,RFID系統(tǒng)很容易受到非法用戶(hù)的假冒攻擊和重傳攻擊。隨機(jī)化Hash-Lock協(xié)議和Hash鎖協(xié)議一樣,標(biāo)簽ID仍以明文形式在非安全信道傳送,不能應(yīng)對(duì)非法用戶(hù)的重傳攻擊。而且每次標(biāo)簽執(zhí)行認(rèn)證請(qǐng)求過(guò)程中,讀寫(xiě)器與后端數(shù)據(jù)庫(kù)之間的安全信道需要傳送全部標(biāo)簽的ID,具有很大的信息交互量。
Hash鏈協(xié)議中,標(biāo)簽成為一個(gè)具有自主更新ID能力的主動(dòng)式標(biāo)簽。此外,每一次認(rèn)證過(guò)程中,后端數(shù)據(jù)庫(kù)都需要針對(duì)標(biāo)簽使用2個(gè)不同的散列函數(shù)G和H進(jìn)行j次散列運(yùn)算.隨著標(biāo)簽數(shù)量規(guī)模的擴(kuò)大,計(jì)算負(fù)荷也隨之加大。
RFID安全認(rèn)證協(xié)議設(shè)計(jì)
通過(guò)分析上述幾種安全協(xié)議的原理和執(zhí)行流程,發(fā)現(xiàn)這些協(xié)議都存在種種安全隱患。本文提出了一種改進(jìn)的安全協(xié)議,實(shí)現(xiàn)閱讀器-電子標(biāo)簽的雙重認(rèn)證,基本達(dá)到認(rèn)證協(xié)議的安全目標(biāo)。
3.1設(shè)計(jì)原理
標(biāo)簽存有ID和秘密值S,系統(tǒng)全部標(biāo)簽數(shù)值對(duì)(ID,S)存儲(chǔ)在后端數(shù)據(jù)庫(kù),并且后端數(shù)據(jù)庫(kù)和標(biāo)簽都嵌入了隨機(jī)數(shù)產(chǎn)生器.協(xié)議流程如圖3所示。
3.2安全協(xié)議設(shè)計(jì)
安全協(xié)議設(shè)計(jì)步驟如下:
① 后端數(shù)據(jù)庫(kù)產(chǎn)生一個(gè)隨機(jī)數(shù)RDB并通過(guò)讀寫(xiě)器將數(shù)值結(jié)果連同Query一同發(fā)送給標(biāo)簽;
② 標(biāo)簽根據(jù)自身ID、讀寫(xiě)器認(rèn)證請(qǐng)求的相關(guān)隨機(jī)數(shù)RDB、后端數(shù)據(jù)庫(kù)和標(biāo)簽的秘密數(shù)值S與散列函數(shù)計(jì)算出ST,其中ST=H(ID||RDB||S),然后標(biāo)簽產(chǎn)生一個(gè)新的隨機(jī)數(shù)RT,通過(guò)讀寫(xiě)器將新的隨機(jī)數(shù)連同ST一起發(fā)送給后端數(shù)據(jù)庫(kù);
③ 后端數(shù)據(jù)庫(kù)接收消息并檢索系統(tǒng)中的文檔數(shù)據(jù)是否有某個(gè)IDj(1≤j≤n),使得H(IDj||RDB||S)=H(ID||RDB||S)成立;如果沒(méi)有,則認(rèn)證失?。蝗绻?,則后端數(shù)據(jù)庫(kù)根據(jù)IDj、標(biāo)簽響應(yīng)的相關(guān)隨機(jī)數(shù)RT、后端數(shù)據(jù)庫(kù)和標(biāo)簽的秘密數(shù)值S與散列函數(shù)計(jì)算出SDB,其中SDB=H(IDj||RT||S)。通過(guò)讀寫(xiě)器將結(jié)果數(shù)值轉(zhuǎn)發(fā)給標(biāo)簽;
④ 標(biāo)簽計(jì)算ST=H(ID||RT||S),并比較是否與接收到的H(IDj||RT||S)相同;若相同,則認(rèn)證通過(guò);若不同,則認(rèn)證失敗;
⑤ 系統(tǒng)分別使用SDB和ST更替后端數(shù)據(jù)庫(kù)和標(biāo)簽的秘密數(shù)值S。
3.3協(xié)議安全性分析
(1) 雙向認(rèn)證。在后端數(shù)據(jù)庫(kù)通過(guò)散列函數(shù)檢驗(yàn)H(IDj||RDB||S)和H(ID||RDB||S)是否相等,以及在標(biāo)簽中通過(guò)散列函數(shù)計(jì)算并比較H(ID||RT||S)和H(IDj||RT||S)是否相等,實(shí)現(xiàn)RFID系統(tǒng)合法身份的雙向認(rèn)證。
(2) 向前安全。由于隨機(jī)數(shù)R、共享數(shù)值S的可變性以及Hash的單向性,即使非法用戶(hù)獲取了H(ID||RDB||S)也查不出標(biāo)簽之前的運(yùn)作數(shù)據(jù)。
(3) 防位置跟蹤。由于保存在后端數(shù)據(jù)庫(kù)中的RDB和數(shù)值S是變化的,因此每次讀寫(xiě)器請(qǐng)求認(rèn)證后的反饋消息H(ID||RDB||S)也不相同,有效阻止了攻擊者的位置跟蹤。
(4) 防重傳攻擊。由于共享數(shù)值S的可變性,非法用戶(hù)不能再次模擬出讀寫(xiě)器響應(yīng)給標(biāo)簽的數(shù)值H(IDj||RT||S),有效防止了重傳攻擊。
(5) 防竊聽(tīng)。標(biāo)簽ID在非安全信道傳播時(shí)經(jīng)過(guò)Hash的加密處理,所以非法用戶(hù)無(wú)法竊聽(tīng)標(biāo)簽的真實(shí)ID。
(6) 防假冒攻擊。假如非法用戶(hù)將非法標(biāo)簽偽裝成合法標(biāo)簽,并使用非法算法返回給讀寫(xiě)器認(rèn)證,由于后端數(shù)據(jù)庫(kù)產(chǎn)生的隨機(jī)數(shù)RDB和共享秘密值S是變化的,合法標(biāo)簽響應(yīng)的H(ID‖RDB‖S)值與偽裝標(biāo)簽響應(yīng)的數(shù)值完全不同,因此標(biāo)簽無(wú)法通過(guò)讀寫(xiě)器認(rèn)證。
(7) 運(yùn)算負(fù)載小,效率高。假設(shè)RFID有N個(gè)標(biāo)簽。每次認(rèn)證,在后端數(shù)據(jù)庫(kù)中本文協(xié)議需要進(jìn)行N次值對(duì)照和N+1個(gè)Hash函數(shù),而Hash鏈方法則需進(jìn)行N次記錄搜索、N次值比較和2N個(gè)Hash函數(shù)計(jì)算,所以當(dāng)N很大時(shí),本方法運(yùn)算負(fù)載小、效率高。
基于Hash的RFID協(xié)議安全性比較如表1所示。表中以“×”表示不符合安全,以“√”表示符合安全。