尹 平,李群祖
(1.西北工業大學 計算機學院,陜西 西安 710129;2.解放軍93926部隊 新疆 和田 848000)
射頻識別技術(Radio Frequency Identification)的基本原理是利用空間電磁波進行通信,以達到自動識別識對象,獲取相關信息的目的。
RFID技術優點明顯,可以應用于眾多領域。在物聯網領域中,RFID是一項關鍵技術。當前,RFID安全認證協議是很多從業人士研究重點[1-2]。
EPC global是歐洲和美國聯合推出的一種面對RFID行業的標準[3]。該標準規定的標簽是低成本的,計算能力有限[4],標簽無法從硬件方面實現Hash函數等常用的安全機制。
EPC global提出的標準協議[5],具有明顯的安全漏洞。諸多相關人士針對其安全方面的不足提出安全有效的雙向認證協議[6]。chen等人提出一種基于EPC C1G2標準的雙向認證協議[7]。該方式在認證過程中使用CRC機制對EPC碼進行保護。但是,Chen的協議效率較低,且存在閱讀器假冒等問題。Yeh等人[8]的協議里設定了一個動態索引增加數據庫查找速率。相對Chen的協議,Yeh提出的協議在工作效率方面有了顯著的提高,但是相應的安全問題也隨之而來[9]。
提出的協議增設了動態索引IDS和私人密鑰SK。文中使用的輕量級的加密函數F可以通過PUF[10](PhysicalUnclonable Function)電路和 LFSR(Linear Feedback Shift Register)電路來實現。完整的協議流程分初始化、標簽認證、秘密更新、所有權轉移4個階段。

表1 協議所用參數Tab.1 Param eter of the protocol
初始化設置時,生產商使用K0、IDS0和SK0這3個隨機選取的秘密值,把這些值寫入標簽 Ki=K0,IDSi=IDS0,SKi=SK0。數據庫中也存儲相應的信息IDSold=IDSnew=IDS0,Kold=Knew=K0,SKN=SKL=SK0。
標簽認證過程如圖1所示。

圖1 認證過程圖Fig.1 Structure diagram of the authentication process
1)閱讀器生成隨機數RR,發送給標簽。
2)標簽收到隨機數RR,隨后生成隨機數RT。標簽計算:

標簽把(M1,M2,M3,IDSi)發送給閱讀器。
3) 閱讀器收到數據后,把(M1,M2,M3,IDSi,RR,RID)發送給后端數據庫。
4)后端數據庫收到后,首先檢驗RID是否和數據庫內的RID一致。如果一致,說明閱讀器是合法的。數據庫通過動態索引IDSi來查找對應的Ki和EPCS。數據庫的索引值存在IDSi=IDSold或者IDSi=IDSnew兩種情況。數據庫根據動態索引IDSP找到相應的EPCS和接入密碼KP(P=old或者P=new)。
數據庫找到EPCS后,檢查其標志位flag。如果flag=1,說明后端數據庫和標簽的私人密鑰更新情況一致,即SKN=SKi,數據庫用SKN對標簽進行驗證。如果flag=0,數據庫分別用SKN和SKL對標簽進行驗證:

如果上述兩個等式都不成立,說明標簽是非法的,進行錯誤處理。如果flag=0時,等式(5)成立,說明后端數據庫未收到標簽私人密鑰更新成功的通知,數據庫把flag置1;如果等式(6)成立,說明后端數據庫與標簽的私人密鑰更新不一致,flag保持不變。上述兩個等式任一成立,后端數據庫對標簽的驗證通過。后端數據庫把標簽相應的其他信息Info(T)發送給閱讀器。如果不進行秘密更新,認證協議執行完畢,否則轉到秘密更新階段。
秘密更新階段如圖2所示。

圖2 秘密更新過程圖Fig.2 Structure diagram of the secret update
1)舊的標簽所有者A為了保護個人隱私,設定一個新的私人密碼(SK′和臨時身份標識RIDA)來代替以前的密碼和身份標識。A使用閱讀器通過安全通道把(SK′,RIDA)發送給后端服務器。
2) 后端服務器收到(SK′,RIDA)后,首先檢查:

如果等式(7)成立,說明動態索引值無誤。后端數據庫對接入密碼和動態索引進行如下更新:
如果 P=new,Kold=Knew,Knew=F(Knew);IDSold=IDSnew,IDSnew=F(RR⊕RT)。
如果 P=old,IDSnew=F(RR⊕RT)。
然后,后端數據庫對身份標識、私人密鑰及標志位進行更新:

接著,數據庫計算:

后端數據庫把(M4,M5)發送給閱讀器。
3) 閱讀器把(M4,M5)發送給標簽。
4)標簽接收到后,先計算:

然后驗證:

如果等式(11)成立,標簽進行秘密更新:

標簽計算:

如果等式(11)不成立,標簽不進行更新操作,并且計算:

不論是否進行秘密更新,標簽都把M6發送給閱讀器。
5)閱讀器收到后,把M6發送給后端數據庫。
6)后端數據庫收到M6后, 檢驗 M6=F (EPCS⊕SKi+1⊕())是否成立。如果成立,把flag置1,否則不變。
舊的用戶A為了保護自己隱私和信息安全,通過標簽認證和秘密更新將私人密鑰SKi和身份標識RID更改為SK′和RIDA。 雙方可以使用對稱密碼的數字簽名協議[11]。

圖3 所有權轉移過程圖Fig.3 Structure diagram of the ownership transfer
1)A和B在公證機構AS處協商得到共享密鑰KC,A在公證機構AS存儲私人密鑰KA。A用KA制作數字簽名SGKA=EKA(SK′,RIDA,Info(T)), 然后得到 EKA(IDA,SGKA,IDB)。 A 把該消息發送給AS。
2) AS 收到 EKA(IDA,SGKA,IDB),用 KA解密該消息,得到IDA、IDB和 SGKA, 確認消息來自 A。AS用 KC加密得到 EKC(SK′,RIDA, Info(T),IDA,SGKA),并把該消息發送給 B。
3) B 收到后,用 KC解密該消息,得到 SK′,RIDA,Info(T),IDA,SGKA。新用戶B不知道KA,無法解密和修改SGKA。B把SGKA保存。 如果 A 抵賴,B 可以出示(SK′,RIDA,Info(T), SGKA)。
4)B獲得標簽所有相關信息后,應立即修改密鑰和身份標識以防止舊的用戶繼續控制標簽或者獲取一些新用戶的相關信息。B先利用A的臨時身份標識RIDA在認證階段驗證標簽的合法性,在秘密更新階段使用新的私人密鑰SK′′和其閱讀器的標識RIDB來更新標簽和數據庫內的信息,以此來完全控制標簽。所有權轉移后,B完全擁有了對標簽的控制權,而A無法對標簽進行讀寫及其他操作。
1)標簽假冒 攻擊者冒充標簽進行認證,后端數據庫在檢驗動態索引IDSi時就能檢驗出該標簽是非法的。
2)離線字典攻擊 為避免攻擊者進行離線字典攻擊,認證過程使用多個密鑰和隨機數進行數據處理。攻擊者很難使用離線字典序方式獲取真實的數據。
3)前向安全性 認證過程中,標簽和閱讀器分別生成隨機數,保證了數據的匿名通信。攻擊者無法從截獲或偷聽到的數據中得出標簽的真實信息,因此保證了數據的前向安全性。
4)克隆攻擊 在認證過程中,攻擊者無法完全得知標簽的信息,進行標簽克隆。
5)竊聽攻擊 每次的認證過程,標簽和閱讀器都要生成隨機數。用戶數據與隨機數以及密鑰結合之后進行傳輸。攻擊者無法對標簽進行竊聽。
6)拒絕服務攻擊 攻擊者使用拒絕服務攻擊來干擾系統的通信,造成標簽與后端數據庫的更新不一致,導致數據庫與標簽的去同步化。由于數據庫保存的密鑰和索引有new和old兩種,即使標簽未完成密鑰和索引更新,還是可以在下一次的認證過程中找到與之匹配的密鑰和索引。
7)雙向認證 在改進協議中,標簽、閱讀器、服務器通過嚴密的相互認證,保證了各組件的合法性,確保了用戶數據在認證過程中的安全。
8)所有權轉移 在所有權轉移后,新的用戶通過認證和秘密更新來實現對標簽的完全擁有。在所有權轉移過程中,舊的擁有者制作了數字簽名給新的擁有者。一旦舊的擁有者抵賴或者反悔,新的擁有者可以以此作為證據。
9)匿名通信 標簽和閱讀器產生偽隨機數,保證了信道里的信息是匿名的。
10)授權訪問 改進協議使用RID對閱讀器的身份進行標識。后端數據庫在認證開始時要對閱讀器進行身份標識信息檢查,只有合法的閱讀器所傳輸的數據才能通過檢測。

表2 協議的安全比較Tab.2 Comparisons of protocol security
由表2可見,Chen的協議無法抵御假冒攻擊,無法實現數據的前向安全性和后向安全。Yeh的協議無法避免離線字典攻擊方式,還面臨假冒攻擊方式和去同步化的風險。提出協議具有較好的安全性能,可以防范多種攻擊方式。通過授權訪問方式避免了閱讀器和標簽假冒。通過使用隨機數保證了數據的匿名通信和前向安全性。后端數據庫里存儲的兩套密鑰保證了數據庫與標簽的同步。標簽認證和秘密更新后,新舊用戶通過所有權轉移過程實現了數據的后向安全。綜上,提出的協議擁有良好的安全性能,可以滿足用戶的安全需求。
RFID認證協議的性能主要通過存儲空間、硬件成本、計算量和認證步驟等方面體現。為便于分析各協議,文中涉及的協議中的EPC、密鑰、偽隨機數等長度都用L表示。函數的輸出長度也為L。

表3 協議的性能比較Tab.3 Comparisons of protocol performance
存儲空間方面:協議的存儲空間要求主要是針對電子標簽而言。表中的3種協議都是基于EPC標準的。因此,電子標簽都是低成本、易實現的。
計算量方面:Chen的協議中,后端數據庫在認證過程中需要進行逐一比對來查找相應的EPC碼,查找效率較低。Yeh的協議中,如果標簽是首次驗證,后端數據庫要對索引分new和old兩種情況,然后逐一計算來查找EPC碼,影響系統的工作效率。提出的協議使用動態索引來查找EPC碼。后端數據庫驗證標簽時,通過索引就可以直接找到相應的EPC碼和接入密鑰用于驗證,提高了系統的認證效率,標簽數目越多優勢越明顯。
認證步驟方面:Chen的協議和Yeh的協議通過5個步驟完成了標簽和閱讀器的相互認證和秘密更新。提出的協議完成相互認證和秘密更新需要10個步驟。
綜上,提出的協議在存儲、硬件成本和其他兩種協議相差不大;在計算量方面略優于其他兩種協議;認證步驟則多于其他兩種協議。由于提出的協議完成了相互認證、秘密更新和所有權轉移3個階段,并且安全性能優于其他兩種協議,所以該協議的綜合性能優于其他兩種協議。
EPC標準是當下影響較大的標準,受到越來越多的國家和企業重視。在未來的物聯網研究中,信息安全問題也將日益凸顯。文中分析了現有的幾種協議存在的安全問題,結合EPC標準,提出一種符合該標準的安全的雙向認證協議。該協議通過較低的硬件成本安全高效的實現相互認證、授權訪問、所有權轉移等實用性要求,并且防范避免了多種常見的攻擊方式,對RFID研究與應用有一定的意義。
[1]Yang M H.Lightweight authentication protocol for mobile RFID networks[J].International Journal of Security and Networks,2010,5(1):53-62.
[2]Ayoade J.Security implications in RFID and authentication processing framework[J].Computer&Security,2006,25(3):207-212.
[3]Shunzo Tateishi.EPC and Applications of RFID[J].Presentation Solution,2006(3):28-37.
[4]劉亞東.基于EPC C1G2的匿名雙向認證協議研究[J].通信技術, 2011,4(44):135-137.LIU Ya-dong.Research of anonymous mutual authentication protocol based on EPC C1G2[J].Communication Technology,2011,4(44):135-137.
[5]Pedro Peris-Lopez,JulioCesarHernandez-Castro,etal.LAMEDA PRNG for EPC Class-1 Generation-2 RFID specification[J].Computer Standards&Interfaces,2009(31):88-97.
[6]Dixit V,Verma H K,Singh A K.Comparison of various security protocols in RFID[J].International Journal of Computer Applications,2011,24(7):17-21.
[7]Chien H Y,Chen C H.Mutual authentication protocol for RFID conforming to EPC class 1 generation 2 standards[J].Computer Standards and Interfaces,2007(29):254-259.
[8]Yeh T C,Wang Y J,Kuo T C,et al.Securing RFID systems conforming to EPC Class 1 Generation 2 standard[J].Expert Systems with Applications,2010(37):7678-7683.
[9]Habibi M H,Alagheband M R.Attacks on a Lightweight Mutual Authentication Protocol under EPC C-1 G-2 Standard[C]//WISTP, LNCS 6633,2011:254-263.
[10]Suh G E,Devadas S.Physically Unclonable Functions for Device Authentication and Secret Key Generation[C]//Proceedings of the 44th Annual Design Automation Conference,New York:ACM Press,2007:9-14.
[11]盧開澄.計算機密碼學-計算機網絡中的數據保留與安全[M].3版.北京:清華大學出版社,2003.