◆朱義杰 楊玉龍 楊 義 石 彬 韓 丹
(貴州航天計量測試技術研究所 貴州 550009)
RFID無線射頻識別系統因具有非接觸式識別的特點,不受惡劣環境的影響,還有讀寫數據方便快捷、識別速度快、數據容量大、使用壽命長、標簽數據可動態改寫等特點,已被廣泛應用在票務系統(門票、高速公路自動收費等)、安檢門禁、倉儲管理、防盜防偽、證件等眾多領域[1]。RFID-SIM系統是將RFID技術與手機SIM卡相結合的一種身份認證和移動支付業務系統,RFID-SIM卡采用的是2.4GHz的全卡,和手機有良好的兼容性,能夠相對大規模推廣。RFID-SIM卡由手機直接供電,因此可以制作出具有較復雜電路的RFID-SIM卡,是一種CPU卡,內含有操作系統COS,將比一般標簽更加安全,在處理數據方面更加有效,這是NFC手機和SIMPASS手機所不具有的功能。RFID-SIM卡長中短距離混合應用,雙向通信距離10cm-500cm,可以根據應用調整,可以實現考勤、門禁、食堂消費等短距離應用,也可以實現在停車場的中距離1-3米的NFC不能實現的刷卡應用,在移動支付方面具有很大優勢,成為真正意義上的手機一卡通。
雖然RFID-SIM卡應用如此方便,但RFID技術在實際應用中還存在著一個不可忽視的隱患:缺乏健全的安全機制。RFID系統在工作時,閱讀器和應答器(標簽)之間是通過無線射頻信號進行通信的,這就將通信信號暴露在大庭廣眾之下,雖然具有很大的方便性和靈活性,但隨之帶來的就是數據的安全和隱私問題。如果標簽被不法分子非法讀取、篡改信息、非法克隆,將會帶來數據安全的問題,甚至可能會把一些個人隱私比如行程、時間、地點等信息暴露于眾。如果RFID系統的安全性不能得到充分保證,RFID系統中的個人信息、商業機密和軍事秘密,都可能被人盜竊或被不法分子利用,這必將嚴重影響經濟、軍事和國家安全。基于RFID技術的RFID-SIM系統同樣具有RFID的安全問題,同時其認證協議采用非國密算法,也容易被植入密碼后門。因此,設計一種安全高效自主可控的RFID-SIM系統安全協議具有十分重要的意義。
目前,針對RFID系統中存在的安全隱患所采用的安全機制可以劃分為3類:物理方法、密碼機制以及兩者的結合。關于基于密碼機制的RFID安全認證協議,保證密碼機制安全最常用的工具有兩種:哈希函數和隨機數,利用哈希函數運算不可逆的特性和隨機數的不確定性保證數據傳輸的安全。基于哈希函數的認證協議是研究較多的一類RFID認證協議,這類協議的安全性都是由Hash函數的單向性來保證的,主要包括Sarma于2003年提出的Hash-lock協議[2],以及后面發展的隨機化Hash-lock協議[3],Hash鏈協議[4-5]。考慮到前幾種基于哈希函數的認證協議在保證內容隱私、位置隱私,抵抗重放攻擊方面的安全缺陷,張文麗[6]提出了IHSAP3協議,更好地保證了認證的安全。除了哈希函數的認證協議,裴友林[7]等提出了基于密鑰矩陣的RFID安全協議,之后游相柏等提出自同步密鑰矩陣RFID安全認證協議彌補了裴友林的協議的安全隱患問題。李斌[8]等提出一種基于NTRU公鑰加密系統的RFID認證協議,康鴻雁[9]提出的一種基于ECC的RFID雙向認證協議設計,相對于傳統的RFID安全認證協議,有著較高的安全性和執行效率。RFID-SIM系統認證協議是基于RFID認證協議的,但又由于其標簽具有COS系統,可考慮設計較為復雜但更為安全的認證協議。
一般來說,比較完善的RFID-SIM系統解決方案或安全協議應當具備5個基本特征:機密性、完整性、可用性、真實性和隱私性。目前各種協議都有著各自的優缺點,因此可以考慮多種協議之間的關系發展一種綜合型認證協議。
本協議結合了國際標準ISO 9798-2的“三次認證過程”和隨機化Hash-Lock協議,鑒于兩種協議都存在不足,因此將兩種協議混合起來相互彌補不足之處,設計出一種安全的認證協議。三次認證過程是:先用系統主控密鑰對每個標簽ID實施加密算法而獲得導出密鑰,初始化標簽寫入,在閱讀器發出認證請求后,標簽生成隨機數發給閱讀器,閱讀器生成隨機數,將用密鑰加密后傳給標簽,標簽解密后檢驗解密得到的與其之前生成的是否一致來實現標簽對閱讀器的認證,然后標簽將用密鑰加密傳給閱讀器,閱讀器解密后檢驗是否與之前生成的隨機數一致來檢驗標簽的合法性。
本協議是通過標簽與后臺數據庫之間具有相同的哈希函數和相同的加密算法及密鑰來相互認證的。在協議中,每個標簽都有一個與其標識ID所對應的密鑰,每個標簽還具有一個哈希函數運算和一個橢圓曲線密碼加密算法。協議中數據庫包含了系統中每個ID所對應的公鑰和私鑰。此協議中用到了國密SM3哈希函數和國密SM2橢圓曲線算法機制,也可以稱為Hash-ECC混合認證協議。
認證協議的設計基于以下假設條件:
(1)后臺數據庫中數據是安全的,攻擊者不能侵入數據庫獲得數據庫中信息。
(2)后臺數據庫和閱讀器之間的通信是安全的,也就是說后臺數據庫和閱讀器可以看成一個整體。
(3)后臺數據庫(或閱讀器)有一個偽隨機數生成器,能夠進行哈希運算和ECC加解密運算。
(4)標簽都有一個偽隨機數生成器,可以獨立生成隨機數。
(5)標簽都能夠進行哈希運算,能夠進行ECC加解密運算,且內存記錄安全可靠。
(6)閱讀器和標簽之間的信道是不安全的,容易受到攻擊者的竊聽或攻擊。
在RFID-SIM卡首次售出之前,RFID-SIM卡作為系統中的標簽,初始化過程系統要將RFID-SIM的標識碼ID和其特有的密鑰和公鑰寫入卡中,同時初始化過程系統還要將RFID-SIM卡的標識碼ID及其所對應的產品信息和公鑰私鑰插入數據庫,更新數據庫中與此ID相關的哈希值,插入數據庫中的數據以ID為主鍵建立索引。

圖1 基于國密算法的RFID-SIM系統混合認證協議
認證過程如圖1所示,具體過程如下:
(1)閱讀器向RFID-SIM卡(標簽)發出Query認證請求。
(2)RFID-SIM卡生成一個隨機數,并計算哈希值,然后將和發送到閱讀器。
(3)閱讀器轉發和到后臺數據庫。
(4)后臺數據庫檢查是否有某個,使得,如果有則說明對標簽初步驗證通過,獲取ID后,進行下一步;否則認證失敗。
(5)后臺數據庫查找與ID相對應的RFID-SIM卡的公鑰,此時后臺數據庫生成一個隨機數,利用公鑰對和進行加密得到密文,并將發給閱讀器。
(6)閱讀器轉發給RFID-SIM卡標簽。
(7)RFID-SIM卡標簽利用自己的私鑰解密得到,驗證是否成立,成立則說明RFID-SIM卡對后臺系統和閱讀器驗證通過;否則驗證失敗。
(8)RFID-SIM卡標簽生成一個隨機數,利用公鑰對和進行加密得到密文,并將發給閱讀器。
(9)閱讀器轉發給后臺數據庫。
(10)后臺數據庫利用ID對應的私鑰解密得到,驗證是否成立,成立則說明后臺數據庫對RFID-SIM卡驗證通過。
該協議能夠實現RFID-SIM卡和后臺數據庫(或閱讀器)之間雙向認證。后臺數據庫通過驗證后臺數據庫和RFID-SIM卡用了相同的哈希函數,實現了后臺數據庫對標簽的一次認證;標簽通過驗證收到密文解密后的密文中否成立驗證標簽和后臺數據庫是否用了同種加密算法和密鑰,實現了標簽對后臺數據庫的一次認證;后臺通過驗證收到的密文解密后的密文中kk¢=是否成立驗證標簽和后臺數據庫是否用了同種加密算法和密鑰,再次實現了后臺數據庫對標簽的一次驗證。
該協議針對隨機化Hash-Lock協議和“三次認證過程”中的不足,通過混合兩種認證協議,相互彌補不足,實現了較高的安全性。
(1)防被竊聽
閱讀器和RFID-SIM卡之間的通信信息都是經過哈希函數和橢圓曲線密碼進行加密的,竊聽者很難通過截獲的密文獲取明文,保障了信息的安全。
(2)防被追蹤
閱讀器和RFID-SIM卡之間的通信信息每次都有隨機數參與,RFID-SIM卡每次響應閱讀器的結果都不同,防止了不法分子對標簽的追蹤。
(3)防重放攻擊
每次認證過程中的通信都含有隨機數,攻擊者即使獲取了上次認證成功時的信息,也不能偽造出新一次的認證。
(4)防假冒攻擊
認證過程中的通信信息是通過哈希函數和橢圓曲線密碼加密的,即使攻擊者得到傳輸的明文,也無法獲得RFID-SIM卡的密鑰,無法復制標簽。
(5)抗前向攻擊
由于每個標簽都有其特有的私鑰,即使攻擊者通過破壞了一個RFID-SIM卡,得到了上面所有的信息,也不能獲取得到數據庫中其他標簽的ID信息和私鑰信息。
本文在研究當前協議的基礎上,設計出一種針對手機RFID-SIM卡系統的基于國密SM3和國密SM2的Hash-ECC混合型安全認證協議,并分析了其安全性。此協議是用于帶CPU的RFID-SIM卡系統,RFID-SIM卡的復雜性電路可以滿足此協議的要求,可以在此協議中標簽在認證中高效執行哈希運算和ECC點加解密運算。此協議對后臺數據庫的要求較高,要求后臺數據庫能夠存儲與標簽ID和所有偽隨機數相關的所有哈希值信息。在后期,可以考慮將在后臺數據庫中運行的ECC加解密運算換到在閱讀器中進行,將在后臺數據庫中查找哈希值信息換到把所有哈希值發送到閱讀器然后通過閱讀器查找,以此來達到可用于分布式環境的目的。