RFID系統(tǒng)數(shù)據(jù)安全研究
1 引言
RFID(射頻識(shí)別) 是Radio Frequency Identification 的縮寫。它的應(yīng)用始于二戰(zhàn),長(zhǎng)久以來(lái)多用于軍事。與傳統(tǒng)的條形碼技術(shù)相比,它具有非接觸讀取、無(wú)需光學(xué)對(duì)準(zhǔn)、工作距離長(zhǎng)、適于惡劣環(huán)境、可識(shí)別運(yùn)動(dòng)目標(biāo)等明顯優(yōu)勢(shì),又得益于電子技術(shù)的發(fā)展,因此逐漸得到了廣泛的應(yīng)用。典型的應(yīng)用包括火車和貨運(yùn)集裝箱的識(shí)別、高速公路自動(dòng)收費(fèi)及交通管理、倉(cāng)儲(chǔ)管理、門禁系統(tǒng)、防盜與防偽等方面。
當(dāng)前的RFID 技術(shù)研究主要集中于天線設(shè)計(jì) 、安全與隱私防護(hù) 、標(biāo)簽的空間定位和防碰撞技術(shù)等方面。
本文研究了RFID系統(tǒng)前端數(shù)據(jù)采集和操作的信息安全問(wèn)題。本文其他部分內(nèi)容安排如下:第二部分對(duì)RFID系統(tǒng)數(shù)據(jù)數(shù)據(jù)安全的問(wèn)題進(jìn)行了分類描述,并說(shuō)明了保護(hù)RFID系統(tǒng)數(shù)據(jù)安全的意義。第三部分分別介紹了RFID系統(tǒng)數(shù)據(jù)安全的有代表性的幾種方案。第四部分對(duì)這些方案進(jìn)行了分析比較和總結(jié)。
2 RFID 數(shù)據(jù)安全問(wèn)題
RFID系統(tǒng)在進(jìn)行前端數(shù)據(jù)采集工作時(shí),標(biāo)簽和識(shí)讀器采用無(wú)線射頻信號(hào)進(jìn)行通信。這在給系統(tǒng)數(shù)據(jù)采集提供靈活性和方便的同時(shí)也使傳遞的信息暴露于大庭廣眾之下,這無(wú)疑是信息安全的重大威脅。隨著RFID 技術(shù)的快速推廣應(yīng)用,其數(shù)據(jù)安全問(wèn)題已經(jīng)成為一個(gè)廣為關(guān)注的問(wèn)題。
對(duì)于RFID系統(tǒng)前端數(shù)據(jù)采集部分而言,信息安全的威脅主要來(lái)自于對(duì)標(biāo)簽信息的非法讀取和改動(dòng)、對(duì)標(biāo)簽的非法跟蹤、有效身份的冒充和欺騙三個(gè)方面。
圖一為RFID 前端數(shù)據(jù)采集系統(tǒng)示意圖。識(shí)讀器和數(shù)據(jù)庫(kù)服務(wù)器之間用可信任的安全信道相連(如何保證這種信道的安全不是本文要討論的問(wèn)題) 。而識(shí)讀器和標(biāo)簽之間則是不安全不可信任的無(wú)線信道,存在被竊聽(tīng)、欺騙和跟蹤等危險(xiǎn)。本文將主要討論如何保證這一通信過(guò)程的數(shù)據(jù)安全。
對(duì)于RFID系統(tǒng)應(yīng)用的不同領(lǐng)域,數(shù)據(jù)安全防護(hù)的重點(diǎn)也不盡相同。在零售業(yè),商家需要防止有人非法改動(dòng)商品的價(jià)格。在物流領(lǐng)域,不僅要防止商業(yè)間諜竊取標(biāo)簽內(nèi)貨物的信息,也要防止他們通過(guò)跟蹤標(biāo)簽來(lái)跟蹤貨物的流向、通過(guò)對(duì)標(biāo)簽進(jìn)行計(jì)數(shù)來(lái)估計(jì)貨物的數(shù)量。在門禁和自動(dòng)收費(fèi)的應(yīng)用中要防止非法標(biāo)簽冒充合法標(biāo)簽來(lái)通過(guò)身份驗(yàn)證。
圖1 系統(tǒng)示意圖
3 主要解決方法
針對(duì)RFID系統(tǒng)數(shù)據(jù)安全的問(wèn)題,現(xiàn)在已經(jīng)提出各種途徑的解決方法,其中有代表性的方法有以下幾種:物理隔離、停止標(biāo)簽服務(wù)、讀取訪問(wèn)控制、雙標(biāo)簽聯(lián)合驗(yàn)證。下面將具體介紹和分析這幾種方法。
3. 1 物理隔離
這種方法主要思想是:在不希望標(biāo)簽被讀取的時(shí)候使用物理方法阻斷電磁波傳遞路徑。例如有人購(gòu)買了貼有RFID標(biāo)簽的商品,在回家的路上他可以使用一種特殊的可阻斷電磁波的包裝袋來(lái)保護(hù)他的個(gè)人隱私不被人知曉。信息安全廠商RSA 在這方面做了很多努力,他們已經(jīng)開(kāi)發(fā)出這種可以阻斷RFID 信號(hào)的包裝袋。另外,RSA 還在開(kāi)發(fā)一種沙粒大小的微型芯片來(lái)阻斷RFID標(biāo)簽與RFID 識(shí)讀器之間的通信。這種方法適用于零售小商品、醫(yī)藥、郵政包裹、檔案文件等需要RFID標(biāo)簽保密的場(chǎng)合。
3. 2 停止標(biāo)簽服務(wù)
停止標(biāo)簽服務(wù)就是在RFID標(biāo)簽的應(yīng)用周期完成之后,部分或者完全地停止標(biāo)簽的信息服務(wù),有人把這叫做“killtag”。這種方法主要是針對(duì)那種只存儲(chǔ)標(biāo)簽ID 的無(wú)源標(biāo)簽。這種標(biāo)簽的ID 號(hào)是唯一的,往往是由產(chǎn)品的分類號(hào)和一個(gè)局部唯一的序列號(hào)組成。舉個(gè)例子,我們可以在商品售出或貨物易手時(shí)去掉RFID標(biāo)簽的序列號(hào),只保留廠家和產(chǎn)品類型信息,或是干脆停止標(biāo)簽的工作。
3. 3 讀取訪問(wèn)控制
讀取訪問(wèn)控制(Read access control) 是利用hash 函數(shù)進(jìn)行加密和驗(yàn)證的方案。進(jìn)行讀取訪問(wèn)控制時(shí),RFID標(biāo)簽只響應(yīng)通過(guò)驗(yàn)證的識(shí)讀器。除RFID 識(shí)讀器和RFID標(biāo)簽以外,還需要數(shù)據(jù)庫(kù)服務(wù)器的支持。這是一種能夠提供較完整的數(shù)據(jù)安全保護(hù)的方案,也是近來(lái)研究比較多的方案。下面將介紹其典型的實(shí)現(xiàn)方法。
Hash 函數(shù)是一種單向函數(shù),它計(jì)算過(guò)程如下:輸入一個(gè)長(zhǎng)度不固定的字符串,返回一串定長(zhǎng)度的字符串,又稱hash值。單向hash 函數(shù)用于產(chǎn)生信息摘要。Hash 函數(shù)主要解決以下兩個(gè)問(wèn)題:在某一特定的時(shí)間內(nèi),無(wú)法查找經(jīng)hash 操作后生成特定hash 值的原報(bào)文;也無(wú)法查找兩個(gè)經(jīng)hash 操作后生成相同hash 值的不同報(bào)文。
初始化過(guò)程:方案對(duì)硬件的要求較高,標(biāo)簽的ROM存儲(chǔ)標(biāo)簽ID 的hash 函數(shù)值hash (TagID) 。RAM 存儲(chǔ)經(jīng)授權(quán)的有效識(shí)讀器的ReaderID。另外要求標(biāo)簽具有簡(jiǎn)單邏輯電路,可以做簡(jiǎn)單計(jì)算如計(jì)算hash 函數(shù)和產(chǎn)生隨機(jī)數(shù)。Reader 與Tag和數(shù)據(jù)庫(kù)服務(wù)器相聯(lián)系,并被分配ReaderID。后臺(tái)數(shù)據(jù)庫(kù)存儲(chǔ)TagID 和hash(TagID) 數(shù)據(jù)。
驗(yàn)證過(guò)程:識(shí)讀器首先發(fā)出請(qǐng)求,標(biāo)簽產(chǎn)生一個(gè)隨機(jī)數(shù)k作為回應(yīng)。服務(wù)器從識(shí)讀器得到k 值并計(jì)算k 和ReaderID相異或的值(本文中記為k ReaderID) ,然后對(duì)其進(jìn)行hash 運(yùn)算得到a (k) = hash(k ReaderID) 并通過(guò)識(shí)讀器將a (k) 發(fā)給標(biāo)簽。與此同時(shí),標(biāo)簽也用自己存儲(chǔ)的k 值和ReaderID 值按同樣的方法計(jì)算出a (k) ’。標(biāo)簽比較a (k) 和a (k) ’,相同則識(shí)讀器擁有正確的ReaderID ,驗(yàn)證通過(guò),否則標(biāo)簽沉默。
信息傳遞過(guò)程: 驗(yàn)證通過(guò)之后,標(biāo)簽會(huì)將其有效信息hash(TagID) 發(fā)給識(shí)讀器,數(shù)據(jù)庫(kù)服務(wù)器從識(shí)讀器處取得hash(TagID) 并在數(shù)據(jù)庫(kù)中查找出對(duì)應(yīng)的TagID 值,這就完成了信息傳送。過(guò)程如圖2 所示。
圖2 讀取訪問(wèn)控制的驗(yàn)證
更新ReaderID 過(guò)程:需要更新合法ReaderID 時(shí),用新的ReaderID 和原來(lái)的ReaderID 相異或,發(fā)給標(biāo)簽,標(biāo)簽可以使用原有的ReaderID 值算出新的ReaderID 值。
3. 4 雙標(biāo)簽聯(lián)合驗(yàn)證
雙標(biāo)簽聯(lián)合驗(yàn)證法是Ari Juels 等人提出的一種面向低端、無(wú)源、計(jì)算能力低的RFID標(biāo)簽的安全驗(yàn)證方法。這種機(jī)制將在RFID標(biāo)簽數(shù)據(jù)要隨貨物多次易手的較復(fù)雜的情況下保持物流鏈中RFID標(biāo)簽信息的完整性。
這種方法的主要思想是在兩個(gè)相對(duì)應(yīng)的RFID標(biāo)簽被識(shí)讀器同時(shí)讀到時(shí),使用讀取設(shè)備作為中介進(jìn)行互相驗(yàn)證。即使在識(shí)讀器不被信任的情況下,標(biāo)簽也能夠脫機(jī)進(jìn)行驗(yàn)證。此方法適合某些特殊的應(yīng)用如:藥品分發(fā)中保證藥品說(shuō)明書和藥瓶一同運(yùn)輸,保證某些飛機(jī)零件出廠時(shí)有安全閥。
驗(yàn)證過(guò)程如圖3 所示。它所使用的是一種消息驗(yàn)證碼(message authentication codes (MACs) ) 機(jī)制。標(biāo)簽由唯一的秘密的長(zhǎng)度為d 比特的密鑰來(lái)加密。另外每個(gè)標(biāo)簽都有一個(gè)計(jì)數(shù)器C ,初始值為0。密鑰集合由一個(gè)可信任的證明者V 保管。MACx[m]表示用密鑰x 對(duì)信息m 算出的MAC。fx[C]代表用密鑰x 對(duì)輸入c 進(jìn)行hash 運(yùn)算。在標(biāo)簽TA 和TB被同時(shí)掃描到時(shí),產(chǎn)生了一個(gè)聯(lián)合驗(yàn)證(yoking2proof) PAB 。閱讀器傳送“左驗(yàn)證”和“右驗(yàn)證”的信息。作為結(jié)果的驗(yàn)證PAB由V 使用它所知的密鑰來(lái)查證。
圖3 雙標(biāo)簽聯(lián)合驗(yàn)證
此方法的關(guān)鍵是兩個(gè)標(biāo)簽同時(shí)被讀到,但不一定是這些標(biāo)簽一定是被同一設(shè)備所讀取。入侵者要從遠(yuǎn)端滿足同時(shí)讀取的條件是非常困難的,這提高了它的安全性。
4 RFID 數(shù)據(jù)安全的比較及研究方向
物理隔離的方法簡(jiǎn)單、直接并且有效,適用于RFID 簡(jiǎn)單應(yīng)用場(chǎng)合。但是它的簡(jiǎn)單安全機(jī)制也限制了它的應(yīng)用范圍:首先,貼有RFID標(biāo)簽的物品必須適于裝在這種電磁隔離的包裝中。因此體積不能太大,而無(wú)線通訊設(shè)備也不適于這種電磁屏蔽的方法。其次,處于屏蔽隔離狀態(tài)中的RFID標(biāo)簽雖保護(hù)了其中的信息,但此時(shí)標(biāo)簽也不能提供服務(wù)。另外,無(wú)論是特殊的包裝或是阻隔電磁波的芯片都會(huì)增加RFID標(biāo)簽的成本,然而RFID標(biāo)簽的成本目前還需要進(jìn)一步降低才能真正廣泛地應(yīng)用。
停止標(biāo)簽服務(wù)的方法簡(jiǎn)單易行,但只提供最簡(jiǎn)單的信息保護(hù),能夠適用的范圍很小。如果只清除了標(biāo)簽序列號(hào),他人仍可以得到標(biāo)簽中的其他信息,也可以憑此對(duì)標(biāo)簽進(jìn)行跟蹤。如果完全停止了標(biāo)簽的工作,那么就無(wú)法對(duì)標(biāo)簽進(jìn)行進(jìn)一步的利用。從資源和效率的方面講,都是很不經(jīng)濟(jì)的。另外,消費(fèi)者并不容易檢測(cè)他所買的商品上的RFID標(biāo)簽是否得到了有效的停止,換句話說(shuō),只要商家愿意,他們?nèi)匀豢梢愿櫹M(fèi)者并窺探其隱私。所以目前需要解決的是如何能保證停止標(biāo)簽的有效性問(wèn)題和如何對(duì)標(biāo)簽進(jìn)行重用的問(wèn)題。
讀取訪問(wèn)控制的方法對(duì)識(shí)讀器通信的全程都進(jìn)行了加密防護(hù),特別是對(duì)驗(yàn)證過(guò)程加入了隨機(jī)數(shù)。具有防竊聽(tīng)、防跟蹤、防欺騙的能力,并且可安全地更換合法的ReaderID。然而它對(duì)硬件的要求很高,尤其是標(biāo)簽要實(shí)現(xiàn)比較多的邏輯運(yùn)算并要求有可讀寫的存儲(chǔ)器。對(duì)于這種方法,關(guān)鍵的是提高標(biāo)簽芯片的計(jì)算和存儲(chǔ)能力,以及對(duì)驗(yàn)證方法的改進(jìn)和簡(jiǎn)化。
雙標(biāo)簽聯(lián)合驗(yàn)證的方法意在加密算法的小代價(jià)實(shí)現(xiàn),達(dá)到了一定的安全強(qiáng)度。然而它仍然要求計(jì)算hash 函數(shù)并且要求標(biāo)簽有360bit 的存儲(chǔ)器,對(duì)于無(wú)源標(biāo)簽來(lái)講還要有待于RFID 硬件技術(shù)的進(jìn)步才能實(shí)現(xiàn)。
下面分析一下后兩種方法的計(jì)算量。我們可以看到,為了進(jìn)行一次讀取訪問(wèn)控制驗(yàn)證,標(biāo)簽必須有一次產(chǎn)生隨機(jī)數(shù)的運(yùn)算,一次hash 運(yùn)算和一次比較運(yùn)算;而數(shù)據(jù)庫(kù)服務(wù)器也要做相應(yīng)的hash 運(yùn)算,另外如果系統(tǒng)中一共有n 個(gè)標(biāo)簽的話,服務(wù)器必須在n 個(gè)標(biāo)簽的記錄中查找對(duì)應(yīng)的hash(TagID) 。整個(gè)驗(yàn)證標(biāo)簽和識(shí)讀器和標(biāo)簽之間至少進(jìn)行兩次對(duì)話。而為了進(jìn)行一次雙標(biāo)簽聯(lián)合驗(yàn)證,標(biāo)簽需要作一次hash 運(yùn)算,兩次MAC 運(yùn)算,還有兩次增量運(yùn)算。標(biāo)簽和識(shí)讀器間至少進(jìn)行三次對(duì)話。
5 結(jié)論
分析了RFID系統(tǒng)前端數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)安全問(wèn)題,對(duì)可能的攻擊進(jìn)行了論述和分類。針對(duì)這些攻擊,研究了目前有代表性的幾種解決方案,并對(duì)其實(shí)現(xiàn)要求、安全強(qiáng)度和適用范圍等特性進(jìn)行了比較,分析了其不足,提出了待改進(jìn)之處。