新聞中心

EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > Key值更新隨機Hash鎖對RFID安全隱私的加強

Key值更新隨機Hash鎖對RFID安全隱私的加強

——
作者: 時間:2007-11-20 來源:半導(dǎo)體應(yīng)用 收藏

  ID是20世紀90年代興起的一項非接觸式的自動識別技術(shù),其無線通信方式和無可視性讀寫的要求,給我們帶來了極大方便,也帶來了很多安全隱私問題。針對ID 的安全隱私問題, 目前國內(nèi)外開展了很多加強ID安全隱私保護的研究,并提出了一系列的方法,如、隨機和Hash鏈,但這些方法存在安全性不高或效率低等缺陷。本文針對現(xiàn)有方法的不足,進一步對RFID的安全隱私保護展開研究。

  1 RFID技術(shù)及其安全隱私分析

  RFID系統(tǒng)主要由閱讀器、標簽及后端數(shù)據(jù)庫組成,如圖1所示。

  

RFID系統(tǒng)

  目前RFID技術(shù)已經(jīng)吸引了工業(yè)和學(xué)術(shù)界越來越多的關(guān)注,并已廣泛地應(yīng)用于供應(yīng)鏈管理、門禁控制、電子錢包[1]等各種場合。然而RFID技術(shù)屬于非接觸式自動識別技術(shù),其面臨的安全隱私威脅主要有:

  (1)非法讀取。商業(yè)競爭者可通過未授權(quán)的閱讀器快速讀取超市的商品標簽數(shù)據(jù),獲取重要的商業(yè)信息;

  (2)位置跟蹤。通過RFID標簽掃描,依據(jù)標簽的特定輸出可對消費者位置進行跟蹤定位;

  (3)竊聽。因RFID系統(tǒng)在前向信道的信號傳輸距離

  較遠,竊聽者可輕易竊取閱讀器發(fā)出的信號數(shù)據(jù);

  (4)拒絕服務(wù)。人為的信號干擾使得合法閱讀器不能正常閱讀標簽數(shù)據(jù);

  (5)偽裝哄騙。通過偽裝成合法標簽,哄騙閱讀器為其提供錯誤的數(shù)據(jù);

  (6)重放。根據(jù)竊聽到的閱讀器和標簽問的數(shù)據(jù)通信,重復(fù)之前的通信行為從而獲取數(shù)據(jù)信息。

  2 RFID安全隱私保護

  RFID的安全隱私問題阻礙了RFID技術(shù)的進一步推廣,引起了消費者的高度關(guān)注,加強對RFID 的安全隱私保護有著極其重要的意義。

  2.1前提與要求

  假定閱讀器與后臺數(shù)據(jù)庫的通信是在一條安全可靠的有連接信道上進行,但閱讀器與標簽之間的無線通信易被竊聽。要普及RFID技術(shù),必須保證RFID標簽的低成本實現(xiàn)。

  由于標準的安全機制要求的計算比較復(fù)雜,如SHA一1約需12K個門,這在低成本標簽上無法實現(xiàn),因此可采用低成本的單向Hash函數(shù)進行加密[2]。

  安全的RFID 系統(tǒng)應(yīng)能抵御各種攻擊,且考慮到較壞的情況,即使外人獲得了標簽內(nèi)部的秘密數(shù)據(jù),也應(yīng)保證其無法追蹤到跟標簽有關(guān)的歷史活動信息,即保證前向安全性。

  2,2典型方法

  典型的加強RFID安全隱私保護的訪問控制方法主要有、隨機Hash鎖和Hash鏈,它們都是基于單向Hash函數(shù)實現(xiàn)的。

  2.2.1 Hash鎖(Hash Lock)[2]

  采用Hash鎖方法控制標簽的讀取訪問,其工作機制如下:

  

單向Hash函數(shù)

  鎖定標簽:對于唯一標志號為ID的標簽,首先閱讀器隨機產(chǎn)生該標簽的,計算metaID=Hash(),將metaID發(fā)送給標簽;標簽將metaID存儲下來,進入鎖定狀態(tài)。閱讀器將(metaID,,ID)存儲到后臺數(shù)據(jù)庫中,并以metaID 為索引。

  解鎖標簽:閱讀器詢問標簽時,標簽回答metaID;閱讀器查詢后臺數(shù)據(jù)庫,找到對應(yīng)的(metaID,Key,ID)記錄,然后將該Key值發(fā)送給標簽;標簽收到Key值后,計算Hash(Key)值,并與自身存儲的metaID值比較,若Hash(Key)=metaID,標簽將其ID發(fā)送給閱讀器,這時標簽進入已解鎖狀態(tài),并為附近的閱讀器開放所有的功能,如圖2所示。

  方法的優(yōu)點:解密單向Hash函數(shù)是較困難的,因此該方法可以阻止未授權(quán)的閱讀器讀取標簽信息數(shù)據(jù),在一定程度上為標簽提供隱私保護;該方法只需在標簽上實現(xiàn)一個Hash函數(shù)的計算,以及增加存儲metaID值,因此在低成本的標簽上容易實現(xiàn)。

  方法的缺陷:由于每次詢問時標簽回答的數(shù)據(jù)是特定的,因此其不能防止位置跟蹤攻擊;閱讀器和標簽問傳輸?shù)臄?shù)據(jù)未經(jīng)加密,竊聽者可以輕易地獲得標簽Key和ID值。

  2.2.2隨機Hash鎖(Random Hash Lock)

  為了解決Hash鎖中位置跟蹤的問題,將Hash鎖方法加以改進,采用隨機Hash鎖方法。首先介紹字符串連接符號“ ,如標簽ID和隨機數(shù)R的連接即表示為“IDIIR”。該方法中數(shù)據(jù)庫存儲各個標簽的ID值,設(shè)為IDl、ID2⋯IDk⋯ID 。

  鎖定標簽:通過向未鎖定的標簽發(fā)送簡單的鎖定指令,即可鎖定該標簽。

  

隨機Hash鎖

  解鎖標簽:閱讀器向標簽ID發(fā)出詢問,標簽產(chǎn)生一隨機數(shù)R,計算Hash(IDIIR),并將(R,Hash(IDIIR))數(shù)據(jù)對傳送給閱讀器;閱讀器收到數(shù)據(jù)對后,從后臺數(shù)據(jù)庫中取到所有的標簽ID值,分別計算各個Hash(IDIIR)值,并與收到的Hash(IDIIR)比較,若Hash(IDk『JR)=Hash(ID『JR),則向標簽發(fā)送IDk;若標簽接收到的IDk=ID,此時標簽即被解鎖,如圖3所示。

  在該方法中,標簽每次回答是隨機的,因此可以防止依據(jù)特定輸出而進行的位置跟蹤攻擊。但是,該方法也有一定的缺陷:(1)閱讀器需要搜索所有標簽ID,并為每一個標簽計算Hash(IDkIIR),因此標簽數(shù)目很多時,系統(tǒng)延時會很長,效率并不高;(2)隨機Hash鎖不具備前向安全性,若敵人獲得了標簽ID值,則可根據(jù)R值計算出Hash(IDIIR)值,因此可追蹤到標簽歷史位置信息。

  2.2.3 Hash鏈(Hash Chain)[4]

  NTT實驗室提出了一個Hash鏈方法,其保證了前向安全性,工作機制如下:鎖定標簽:對于標簽ID,閱讀器隨機選取一個數(shù)Sl發(fā)送給標簽,并將(ID,S )存儲到后臺數(shù)據(jù)庫中,標簽存儲接收

  

 Hash鏈

  到Sl后,進入鎖定狀態(tài)。

  解鎖標簽:在第i次事務(wù)交換中,閱讀器向標簽發(fā)出詢問消息,標簽回答ai=G(S。),并更新Si+l=H(s。),其中G和H為單向Hash函數(shù),如圖4所示。

  閱讀器接收到ai后,搜索數(shù)據(jù)庫中所有的(ID,S1)數(shù)據(jù)對,并為每個標簽計算

  ai =G(H (s1)),比較ai*是否等于ai,若相等,則返回相應(yīng)ID。

  方法優(yōu)點:具有不可分辨性,因為G是單向Hash函數(shù),外人獲得a。值不能推算出S。值,當外人觀察標簽輸出時,G輸出的是隨機數(shù),所以不能將a。和a。+l聯(lián)系起來;具有前向安全性,因為H是單向Hash函數(shù),即使竊取了Si+1值,也無法推算出S 值,所以無法獲得標簽歷史活動信息。

  方法缺點:需要為每一個標簽計算ai*:G(H (s1)),假設(shè)數(shù)據(jù)庫中存儲的標簽個數(shù)為N,則需進行N個記錄搜索,2N個Hash函數(shù)計算,N次比較,計算和比較量較大,不適合標簽數(shù)目較多的情況。

  3 Key值更新隨機Hash鎖

  鑒于上述幾種安全隱私保護方法存在的缺陷,并結(jié)合幾種方法的思想,本文提出了一種“Key值更新隨機Hash鎖”方法,實現(xiàn)了安全高效的讀取訪問控制。

  3.1工作原理

  數(shù)據(jù)庫記錄主要包括4列:H(Key),ID,Key,Pointer,主鍵為H(Key)。其中ID為標簽唯一標志號,Key是閱讀器為每個標簽選取的隨機關(guān)鍵字,H(Key)是Key的單向Hash函數(shù)H計算值,Pointer是數(shù)據(jù)記錄關(guān)聯(lián)指針,主要用來保證數(shù)據(jù)的一致性[5]。

  下面詳細闡述該方法的基本工作原理:

  (1)鎖定標簽

  對于標簽ID,首先閱讀器隨機選取一個數(shù)作為該標簽的Key,將Key值發(fā)送給該標簽,并建立標簽在數(shù)據(jù)庫中的初始記錄(H(Key),ID,Key,0)),標簽將接收到的Key值存儲下來后,進入鎖定狀態(tài)。

  (2)解鎖標簽

  1)數(shù)據(jù)庫首先產(chǎn)生一個隨機數(shù)R,傳送給閱讀器,然后閱讀器將詢問消息Query和R都發(fā)送給標簽;

  2)標簽根據(jù)接收到的R和自身Key值,計算H(Key)和H(KeylIR)的值,然后將(H(Key),H(KeylIR))數(shù)據(jù)對發(fā)送給閱讀器,接著自行計算H(IDIIR)和Key =S(key),但此時Key值并不更新。

  3)閱讀器查找數(shù)據(jù)庫中的記錄, 若找到記錄i:

  (H(Keyi),IDk,Key。,Pointeri),其中H(Key。):H(Key),則數(shù)據(jù)庫計算H(KeyjIIR),并比較H(Key ItR)與接收到的H(KeyIIR)值是否相等。若不相等,則忽略此消息,表明標簽是非法標簽,在此閱讀器完成對標簽的合法性驗證;若相等則繼續(xù)下一步;

  4)數(shù)據(jù)庫計算H(IDkIIR)的值,并將IDk和H(IDkIIR)的值都傳送給閱讀器。然后閱讀器將H(IDkIIR)發(fā)送給標簽;

  5)數(shù)據(jù)庫計算Key*i=S(key。)和H(Key* )的值。若Pointeri:O, 則在數(shù)據(jù)庫中添加新的記錄J:(H(Key*i),IDbKey i,i),并將記錄i修改成(H(Key。),IDbKeyij); 若Pointer !=O, 則找到第Pointer。條記錄, 將其修改成(H(Key i),IDk,Key i,i);

  6)在標簽接收到H(IDkIIR)后,比較其與標簽在第2步中計算的H(IDIIR)是否相等,若相等,則將自身的Key值更新為Key ,標簽進入解鎖狀態(tài),對閱讀器開放其所有功能;若不相等,表明閱讀器是非法閱讀器,標簽保持沉默,在此標簽完成對閱讀器的驗證。如圖5所示。

  

對閱讀器的驗證

  3.2數(shù)值實驗

  設(shè)數(shù)據(jù)庫初始時存儲了兩個標簽,ID分別為1、2,隨機選擇的Key分別為5、12,數(shù)據(jù)庫初始化如表1所示。

  

數(shù)據(jù)庫初始化

  設(shè)閱讀器要詢問ID為1的標簽,首先閱讀器向標簽發(fā)送詢問消息和隨機數(shù)3,標簽向閱讀器回答數(shù)據(jù)(H(5),H(5II3)),接著自行計算自身的H(IDIIR)=H(1Il3)值和Key =s(5);閱讀器根據(jù)H(5)查找后臺數(shù)據(jù)庫,找到記錄1:(H(5),1,5,0),數(shù)據(jù)庫計算H(KeyllR)=H(5lI3),與接收到的H(5113)相等,至此驗證了標簽是合法的;接著數(shù)據(jù)庫計算H(IDIIR)=H(1 113),并將(1,H(1113))傳送給閱讀器,由此閱讀器知道了該標簽的ID為1,然后閱讀器將H(1113)發(fā)送給標簽; 數(shù)據(jù)庫計算Key*I=s(5), 由于PointerI=0,數(shù)據(jù)庫中新建一條記錄3:(H(s(5)),1,s(5),1),并將記錄1修改為(H(5),1,5,3)。標簽接收到數(shù)據(jù)H(1 113)后,比較發(fā)現(xiàn)其等于之前計算的H(IDIIR),于是將自身Key值更新為s(5)。此時數(shù)據(jù)庫中的數(shù)據(jù)記錄如表2所示。

  

數(shù)據(jù)庫中的數(shù)據(jù)記錄

  下一次再與標簽1通信時,數(shù)據(jù)庫根據(jù)標簽的H(Key)=H(s(5))查找到第3條記錄,該記錄的Pointer為1,則第2次更新Key值的記錄將會覆蓋第1條記錄。

  當標簽被詢問過一次之后,數(shù)據(jù)庫中始終保持了兩條與該標簽有關(guān)的數(shù)據(jù)記錄,這主要

  是為了保證數(shù)據(jù)的一致性。假設(shè)在這次通信中閱讀器發(fā)送的數(shù)據(jù)H(ll3)并未成功地被標簽接收到,則標簽1的Key值將不會更新,此時數(shù)據(jù)庫的第3條記錄是錯誤的。那么在下次與標簽1的通信中,查找到的仍是記錄1,數(shù)據(jù)庫根據(jù)記錄1的Pointer值為3,將修改第3條記錄,如此就保證了數(shù)據(jù)的一致性。

  3.3性能分析與方法特點

  (1)簡單實用。將隨機數(shù)產(chǎn)生器等復(fù)雜的計算移到了后臺數(shù)據(jù)庫中實現(xiàn),降低了標簽的復(fù)雜性,標簽只需要實現(xiàn)兩個Hash函數(shù)H和s,這在低成本的標簽上較易實現(xiàn)。

  (2)前向安全。因為標簽的Key值在每次事務(wù)交換后被單向Hash函數(shù)s更新,外人即使獲取了當前標簽Key*值,也無法推算出之前的Key值,所以無法獲得標簽相關(guān)的歷史活動信息。

  (3)機器運算負載小,效率高。在每次詢問過程中,設(shè)數(shù)據(jù)庫中存儲的標簽個數(shù)為N,本方法中后臺數(shù)據(jù)庫需執(zhí)行2N個記錄搜索(因每個標簽存在兩條記錄),進行3個Hash函數(shù)H(KeylIR)、S(Key)、H(IDIIR)計算和1次值比較,以及產(chǎn)生1個隨機數(shù)R。相比于Hash鏈方法需計算2N個Hash函數(shù)、N個記錄搜索和N個值比較,因為Hash函數(shù)的計算時延較長,資源消耗大,所以當N很大時,本方法系統(tǒng)的負載將要小得多,速度較快,延時較短,效率較高,但安全性更高。

  (4)適應(yīng)標簽數(shù)目較多的情況。隨著標簽數(shù)目的增加,計算機搜索與計算所需要的時間緩慢增加,可適應(yīng)標簽數(shù)目較多的情況。

  (5)實現(xiàn)了身份的雙向驗證。通過Hash(KeyllR)的計算比較,閱讀器實現(xiàn)了對標簽的驗證;通過Hash(IDIIR)的計算比較,標簽實現(xiàn)了對閱讀器的驗證。

  (6)有效實現(xiàn)安全隱私保護。

  1)防非法讀?。褐挥薪?jīng)過合法認證的閱讀器才可讀取標簽的數(shù)據(jù)信息;

  2)防位置跟蹤:由于隨機數(shù)R和標簽的Key值是更新變化的,因此每次回答的數(shù)據(jù)(H(Key),H(KeylIR))值也是不同的,可以防止外人根據(jù)特定輸出而進行的跟蹤定位;3)防竊聽:傳輸?shù)腎D值和Key都經(jīng)過了Hash函數(shù)加密,外人很難解密得出ID和Key的值,因此有效地防止了竊聽;

  4)防偽裝哄騙:由于外人無法獲知Key值,因此無法模擬合法標簽發(fā)送(H(Key),H(KeylIR))數(shù)據(jù),故有效地防止了偽裝哄騙攻擊;

  5)防重放:每次產(chǎn)生的R值是隨機的,外人即使竊聽了合法閱讀器前一次發(fā)送的H(ID IIR)數(shù)據(jù),也無法再次模擬出H(ID IIR)值,有效地防止了重放攻擊。

  4結(jié)束語

  “Key值更新隨機Hash鎖”方法具有成本低、負載小、效率高、安全性好等特點,且能保證前向安全性,基本上彌補了目前安全保護方法安全性不夠和效率低等缺陷,是一種較為實用的算法。但此方法還存在一些不足,如尚無法防止敵人根據(jù)流量分析(計算標簽的個數(shù))而進行的定位跟蹤,同時安全性提高也增加了標簽部分計算時延,這些尚需進一步研究改進。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉