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