RFID的安全和隱私保護與成本之間是相互制約的。例如,根據(jù)自動識別(Auto-ID)中心的試驗數(shù)據(jù),在設計5美分標簽時,集成電路芯片的成本不應該超過2美分,這使集成電路門電路數(shù)量只能限制在7500~15000范圍內(nèi)。而一個96 bit的EPC芯片需要5000~10000的門電路,因此用于安全和隱私保護的門電路數(shù)量不能超過2500~5000,這樣的限制使得現(xiàn)有密碼技術難以應用。優(yōu)秀的RFID安全技術解決方案應該是平衡安全、隱私保護與成本的最佳方案。
現(xiàn)有的RFID系統(tǒng)安全技術可以分為兩大類:一類是通過物理方法阻止標簽與讀寫器之間通信;另一類是通過邏輯方法增加標簽安全機制。
1、物理方法
常用的RFID安全的物理方法有殺死(Kill)標簽、法拉第網(wǎng)罩(Faraday Cage)、主動干擾、阻止標簽等。
殺死(Kill)標簽的原理是使標簽喪失功能,從而阻止對標簽及其攜帶物的跟蹤。但是,Kill命令使標簽失去了它本身應有的優(yōu)點,如商品在賣出后,標簽上的信息將不再可用,但這樣不便于之后用戶對產(chǎn)品信息的進一步了解,以及相應的售后服務。另外,若Kill識別序列號(PIN)一旦泄漏,可能導致惡意者對商品的偷盜。
法拉第網(wǎng)罩(Faraday Cage)的原理是根據(jù)電磁場理論,由傳導材料構成的容器如法拉第網(wǎng)罩可以屏蔽無線電波,使得外部的無線電信號不能進入法拉第網(wǎng)罩,反之亦然。把標簽放進由傳導材料構成的容器可以阻止標簽被掃描,即被動標簽接收不到信號,不能獲得能量,而主動標簽發(fā)射的信號不能發(fā)出。因此,利用法拉第網(wǎng)罩可以阻止隱私侵犯者掃描標簽獲取信息。例如,當貨幣嵌入RFID標簽后,可利用法拉第網(wǎng)罩原理阻止隱私侵犯者掃描,避免他人知道你包里有多少錢。
主動干擾無線電信號是另一種屏蔽標簽的方法。標簽用戶可以通過一個設備主動廣播無線電信號用于阻止或破壞附近的讀寫器的操作。但這種方法可能導致非法干擾,使附近其他合法的RFID系統(tǒng)受到干擾,嚴重時可能阻斷附近其他無線系統(tǒng)。
阻止標簽的原理是通過采用一個特殊的阻止標簽干擾的防碰撞算法來實現(xiàn)的,讀寫器讀取命令每次總獲得相同的應答數(shù)據(jù),從而保護標簽。
2、邏輯方法
在RFID安全技術中,常用邏輯方法有哈希(Hash)鎖方案、隨機Hash鎖方案、Hash鏈方案、匿名ID方案及重加密方案等。
1.Hash鎖
Hash鎖是一種完善的抵制標簽未授權訪問的安全與隱私技術。整個方案只需要采用Hash散列函數(shù)給RFID標簽加鎖,因此成本很低。采用Hash鎖方法控制標簽讀取訪問,其工作機制如圖所示。
(1)鎖定標簽。對于唯一標識號為ID的標簽,首先讀寫器隨機產(chǎn)生該標簽的K,計算metaID = Hash(K),將metaID發(fā)送給標簽;然后由標簽將metaID存儲下來,進入鎖定狀態(tài);最后讀寫器將(metaID,K,ID)存儲到后臺數(shù)據(jù)庫中,并以metaID為索引。
(2)解鎖標簽,讀寫器詢問標簽時,標簽回答metaID;然后讀寫器查詢后臺數(shù)據(jù)庫,找到對應的(metaID,K,ID)記錄,再將K值發(fā)送給標簽;標簽收到K值后,計算Hash(K)值,并與自身存儲的metaID值比較,若Hash(K)=metaID,則標簽將其ID發(fā)送給閱讀器,這時標簽進入已解鎖狀態(tài),并為附近的讀寫器開放所有的功能。
該方法的缺點是:由于每次詢問時標簽回答的數(shù)據(jù)時特定的,所以它不能防止位置跟蹤攻擊;讀寫器和標簽間傳輸?shù)臄?shù)據(jù)未經(jīng)加密,竊聽者可以輕易地獲取標簽K和ID的值。
2. 隨機Hash鎖
作為Hash鎖的擴展,隨機Hash鎖解決了標簽位置隱私問題。采用隨機Hash鎖方案,讀寫器每次訪問標簽的輸出信息都不同。隨機Hash鎖原理是標簽包含Hash函數(shù)和隨機數(shù)發(fā)生器,后臺服務器數(shù)據(jù)庫存儲所有標簽ID。讀寫器請求訪問標簽,標簽接收到訪問請求后,由Hash函數(shù)計算標簽ID與隨機數(shù)r(由隨機數(shù)發(fā)生器生成)的Hash值。標簽再發(fā)送數(shù)據(jù)給請求的閱讀器,同時讀寫器發(fā)送給后臺服務器數(shù)據(jù)庫,后臺服務器數(shù)據(jù)庫窮舉搜索所有標簽ID和r的Hash值,判斷是否為對應標簽ID,標簽接收到讀寫器發(fā)送的ID后解鎖。
假設標簽ID和隨機數(shù)R的連接即可表示為“ID||R”,然后將數(shù)據(jù)庫中存儲的各個標簽的ID值設為ID1,ID2,IDk,…,IDn。
鎖定標簽:通過向未鎖定的標簽發(fā)送簡單的鎖定指令,即可鎖定該標簽。
解鎖標簽:讀寫器向標簽ID發(fā)出詢問,標簽產(chǎn)生一個隨機數(shù)R,計算Hash(ID||R),并將(R,Hash(ID||R))數(shù)據(jù)傳輸給讀寫器;讀寫器收到數(shù)據(jù)后,從后臺數(shù)據(jù)庫取得所有的標簽ID值,分別計算各個Hash(ID||R)值,并與收到的Hash(ID||R)比較,若Hash(IDk||R)=Hash(ID||R),則向標簽發(fā)送IDk;若標簽收到IDk=ID,此時標簽解鎖。
盡管Hash函數(shù)可以在低成本情況下完成,但要集成隨機數(shù)發(fā)生器到計算能力有限的低成本被動標簽上,卻是很困難的。隨機Hash鎖僅解決了標簽位置隱私問題,一旦標簽的秘密信息被截獲,隱私侵犯者可以獲得訪問控制權,通過信息回溯得到標簽歷史記錄,推斷標簽持有者隱私;而且后臺服務器數(shù)據(jù)庫的解碼操作通過窮舉搜索,需要對所有的標簽進行窮舉搜索和Hash函數(shù)計算,因此標簽數(shù)目很多時,系統(tǒng)延時會很長,效率并不高。
3.Hash鏈
Hash鏈作為Hash方法的一個擴展,為了解決可跟蹤性,標簽使用了一個Hash函數(shù)在每次讀寫器訪問后自動更新標識符的方案,實現(xiàn)前向安全性。
方案的原理是最初標簽在存儲器中
鎖定標簽:對于標簽ID,讀寫器隨機選取一個數(shù)S1發(fā)送給標簽,并將(ID,S1)存儲到后臺數(shù)據(jù)庫中,標簽存儲接收到S1后便進入鎖定狀態(tài)。
解鎖標簽:在第i次事務交換中,讀寫器向標簽發(fā)出詢問消息,標簽輸出ai=Gi,并更新Si+1=H(Si),其中G和H為單向Hash函數(shù)。讀寫器收到ai后,搜索數(shù)據(jù)庫中所有的(ID,S1)數(shù)據(jù)對,并為每個標簽遞歸計算ai=G(H(Si-1)),比較是否等于ai,若相等,則返回相應的ID。該方法使得隱私侵犯者無法獲得標簽活動的歷史信息,但不適合標簽數(shù)目較多的情況。
與之前的Hash方案相比,Hash鏈的主要優(yōu)點是提供了前向安全性。
然而,該方案每次識別時都需要進行窮舉搜索,比較后臺數(shù)據(jù)庫中的每個標簽,隨著標簽規(guī)模擴大,后端服務器的計算負擔將急劇增大。因此Hash鏈方案存在著所有標簽自動更新標識符方案的通用缺點,即難以大規(guī)模擴展;同時,因為需要窮舉搜索,所以存在拒絕服務攻擊的風險。
4. 匿名ID方案
匿名ID方案采用匿名ID,在消息傳輸過程中,隱私侵犯者即使截獲標簽信息也不能獲得標簽的真實ID。該方案通過第三方數(shù)據(jù)加密裝置,采用公鑰加密、私鑰加密或者添加隨機數(shù)生成匿名標簽ID。雖然標簽信息只需要采用隨機讀取存儲器(RAM)存儲,成本較低,但數(shù)據(jù)加密裝置與高級加密算法都將導致系統(tǒng)的成本增加。標簽ID加密以后仍具有固定輸出,因此,使得標簽的跟蹤成為可能,存在標簽位置隱私問題;并且,該方案的實施前提是讀寫器與后臺服務器的通信建立在可信任的通道上。
5. 重加密方案
重加密方案采用公鑰加密。標簽可以在用戶請求下通過第三方數(shù)據(jù)加密裝置定期對標簽數(shù)據(jù)進行重寫。因為采用公鑰加密,大量的計算負載將超出標簽的能力,所以這個過程通常由讀寫器來處理。該方案存在的最大缺陷是標簽的數(shù)據(jù)必須經(jīng)常重寫,否則,即使加密標簽ID固定的輸出也將導致標簽定位隱私泄漏。與匿名ID方案相似,標簽數(shù)據(jù)加密裝置與公鑰加密將導致系統(tǒng)成本的增加,使得大規(guī)模的應用受到限制,并且經(jīng)常地重復加密操作也給實際操作帶來困難。