最經學習了一些物聯網RFID的相關安全方案,下面對相關的知識作一個總結。算法
0x00 RFID是啥?數據庫
0x01 RFID面臨的問題安全
0x02 圍觀各種RFID安全方案服務器
0x03 最新的研究成果和方向分佈式
0x04 參考文獻函數
RFID即無線射頻識別,是一種普遍用於咱們生活當中的通訊技術。學習
怎麼個普遍應用法呢?舉個例子,門禁系統常見吧?咱們知道,門禁系統裏一般有兩個顯而易見的東西,一個是通行卡片,一個是門上的讀卡器。只要咱們將在卡片在讀卡器上刷一下,咱們就能合法的經過門禁系統。這個過程當中其實就完成了,讀卡器和卡片之間的RFID通訊。雲計算
除了這個,還有不少好比說校園卡系統啊、銀行卡系統啊等等用到卡片做爲身份認證的系統都是用到了RFID進行通訊的。加密
這些卡片當中都存在一個芯片,當和讀卡器接觸的時候就會通電,而後發出無線電磁信號和讀卡器進行通訊。設計
別看芯片這麼小,裏面能夠含有不少計算單元和一個小型存儲器的呢。
還有哦,其實除了身份卡片和讀卡器以外,還有一個東西是咱們看不到的哦。
噹噹噹當,那就是後臺的數據庫服務器。
讀卡器僅僅只是讀取數據,真正分析數據,驗證身份的就是交給後臺的數據庫服務器啦。
以上就是RFID中的三個角色啦:卡片(學名標籤)、讀卡器(學名閱讀器)、數據庫服務器(學名就是服務器啦)。
那麼RFID如今到底面臨什麼安全問題呢?請聽我細細道來。
下面是這個結構的基本拓撲圖:
那麼啊,這個結構裏面,有哪些須要考慮的問題呢?
因爲數據通路是無線的,因此啊,標籤是能夠僞造的,讀卡器也是能夠僞造的。標籤僞造很好理解,就是黑闊想進行未受權的訪問啊。讀卡器僞造呢,就是黑闊們想拿到標籤的數據進而僞造標籤啦。
以上就是RFID中面臨的各類安全問題啦。下面咱們圍觀一下已有的各種安全方案吧。
實現RFID安全機制所採用的方法主要有兩類:物理安全方案和基於密碼技術的軟件安全方案 。
Kill命令機制採用從物理上銷燬RFID標籤的方法,一旦對標籤實施了銷燬(Kill)命令,標籤將再也不可用。
靜電屏蔽的工做原理是使用Faraday Cage來屏蔽標籤,使之不能接受來自任何讀寫器的信號,以此來保護消費者我的隱私。
主動干擾的基本原理是使用一個設備持續不斷地發送干擾信號,以干擾任何靠近標籤的讀寫器所發出的信號。
Blocker Tag是一種特殊的標籤,與通常用來識別物品的標籤不一樣,Blocker Tag是一種被動式的干擾器。
因爲啊,RFID中所採用的物理安全機制存在種種缺點,人們前後提出了許多基於密碼技術的安全機制。
Hash-Lock協議是由Sarma等人提出,使用metalID來代替真實的標籤ID以免信息的泄漏和被追蹤,每一個標籤擁有本身的訪問密鑰key,且metalID=Hash(key),簡寫爲metalID=H(key) 。
協議的通訊過程以下圖所示。
協議的本質是讓標籤回傳metalID來代替ID,避免將ID直接經過不安全信道傳送給標籤讀寫器。
該協議可以提供訪問控制和標籤數據隱私保護。可是因爲ID沒有使用動態刷新機制,metalID保持不變,標籤易被跟蹤定位。(key,ID)以明文形式發送,容易被竊聽者獲取。
也就是說,這個協議沒法抗拒中間人攻擊。
因爲Hash-Lock協議使用metalID可能被隱私侵犯者追蹤定位,爲了解決該協議中的標籤跟蹤性的問題,Weis等人提出了隨機Hash-Lock協議。
該協議中,對於標籤讀寫器的不一樣詢問,標籤將回傳隨機數形態的回傳值給讀寫器以免追蹤。
協議的通訊過程以下所示。
該協議中,對於讀寫器的訪問請求,標籤是隨機響應的,解決了依據相同響應對標籤進行跟蹤定位的問題。
但因爲IDk仍然以明文方式傳輸,獲取了該信息就能夠對標籤進行假冒。
此外每次標籤的認證,後臺數據庫都要將全部標籤的標識發送給標籤讀寫器,二者之間的通訊量很大,同時也難以快速處理突發的信息,該協議不實用。
NTT實驗室提出了一種Hash-Chain協議,本質上,此協議是基於共享祕密的詢問-應答協議,但對兩個使用不一樣Hash函數的標籤發起認證時,標籤老是發送不一樣的應答。
在Hash-Chain協議中,標籤是個具備自主ID更新能力的主動式標籤,避免了標籤訂位隱私信息的泄漏。又因爲單向的Hash函數,不可能從St,j+1得到St,j,具備前向安全性。
但爲了儘可能下降標籤的製做成本,該協議下降了標籤的存儲空間和計算能力,只是單向的認證協議,標籤在協議的最後沒有實現對讀寫器的認證,標籤未確認讀寫器的合法性。
同時,Hash-Chain協議很是容易受到重傳和假冒攻擊。只要隱私侵犯者截獲了at,j,它就能夠進行重傳攻擊,假裝標籤經過認證。
Rhee等人提了一種適用於分佈式數據庫環境的RFID認證協議,它是典型的詢問-應答型雙向認證協議 。
到目前爲止,尚未發現該協議有明顯的安全漏洞或缺陷。
可是,在本方案中,執行一次認證協議須要標籤進行兩次Hash運算。標籤電路中天然也須要集成隨機數發生器和散列函數模塊,所以它也不適合用於低成本RFID系統。
LCAP協議也是詢問-應答協議,可是與前面的同類其餘協議不一樣,它每次執行以後都要動態刷新標籤的ID。LCAP協議的後臺數據庫保存兩類信息:更新前的信息Prev和更新後的信息。
因爲RFID標籤的計算資源和存儲資源都十分有限,所以極少有人設計使用公鑰密碼體制的RFID安全機制。
到目前爲止,公開發表的基於公鑰密碼機制的RFID安全方案只有兩個:Juels等人提出的用於歐元鈔票上Tag標識的建議方案;Golle等人提出的可用於實現RFID標籤匿名功能的方案。
通過十幾年的研究和發展,RFID在安全方案這一塊已經作的很成熟了。
可是啊,其實仍是有東西能夠搞的哦。好比說,下降標籤的芯片成本這一塊,就有很大的空間。
咱們知道,標籤的芯片裏面,含有許多運算單元。當在固定大小的芯片裏面,想要加入更多的運算單元的話,成本天然就更高。
大概怎麼個比例呢?舉個例子,低級的磁卡成本只需幾毛錢甚至幾分錢,可是帶芯片的卡片,成本但是要幾元錢的哦。這種狀況下, 哪怕只是節省了1毛錢的成本啊,乘以基數都是很是恐怖的數字。
最新的研究RFID安全方案的話,有兩個方案。
PUF,即物理不可克隆(Physical Unclonable Function,PUF)。是一種硬件技術,它有一組微型延遲電路,當收到一個隨機的二進制輸入口令以後,會生成一個惟一的、隨機的二進制序列做爲響應,而這個響應是利用芯片製造過程當中的光刻、摻雜等環節所產生的差別來生成的。因爲芯片製造過程當中產生的差別自己具備不可模仿和複製的特性,因此每一個芯片中的 PUF 電路能夠生成無限多個、惟一的、不可複製的口令/響應序列。即便是芯片的製造廠商也不可能從另一個芯片上覆製出一套如出一轍的口令/響應序列。
同時,PUF 電路所需的硬件開銷很小,一個 64 位的 PUF 電路大概須要 545 個門電路。而根據標籤特色而簡化設計的Hash運算和高級加密標準(Advanced Encryption Standard,AES)運算分別須要1700和3400個門電路。
協議的具體認證過程以下圖所示:
這裏用到了LSRF(線性反饋移位寄存器,Linear Feedback Shift Register),LFSR 是用來生成二進制序列的一種機制,若是 LFSR 的種子保持機密,LFSR 就可做爲僞隨機數產生器。同時,對於相同的密鑰種子,兩個相同結構的 LFSR 會產生相同的僞隨機數,這個特色也用來對閱讀器和標籤的共享密鑰進行同步更新。
既然下降成本的關鍵在於芯片,芯片的關鍵又在於加密算法,那麼下降加密算法的複雜度不就能夠了嗎?
沒錯,這就是最簡單直接的作法,雖然想作到這個並不簡單。
如今超輕量級的加密算法的研究很是火熱,可是其設計難度也大大增長了。緣由在於,大型加密算法重複的循環操做比較多因此形成速度慢,若是要作超輕量級的加密算法的話,須要對加密的每一步都作出合適合理的設計才行,這是典型的增長腦力勞動來減小體力勞動啊。
下面將給出一個應用於RFID的超輕量級加密算法的例子:
其中,Rot(A, B)表示 A 向左旋轉 n bit(就是移位啦),且n 是 B 中 1 的個數。
例如,Rot(111000,1110)=000111。
RFID認證協議的安全性分析_王明輝
安全的RFID認證協議研究設計_杜治國
基於PUF的高效低成本RFID認證協議_賀章擎
一個超輕量級的RFID認證協議_馬巧梅