?

共享密鑰與位運算的移動RFID認證協議

2020-07-13 12:56梅松青鄧小茹
計算機應用與軟件 2020年7期
關鍵詞:讀寫器攻擊者后臺

梅松青 鄧小茹

(廣州醫科大學 廣東 廣州 510006)

0 引 言

RFID是一種使用非物理性接觸實現對象識別和數據交換的技術,興起于20世紀,并在20世紀90年代末得到大規模的應用[1-2]。

現有的RFID系統一般由標簽、讀寫器、后臺數據庫三部分構成。在傳統的RFID系統中,讀寫器一般是固定式,因此讀寫器與后臺數據庫之間的通信基于有線信道完成,同時被認為該信道安全可靠[3-4]。伴隨著移動智能終端的快速發展,將讀寫器嵌入移動智能終端中從而形成移動RFID系統。在移動RFID系統中,讀寫器不再是固定式,而是可移動的,因此讀寫器與后臺數據庫之間的信息傳輸亦只能通過無線方式完成;無線信道易被攻擊者竊聽,使得兩者之間的信息傳輸不再安全可靠[5-6]。

基于上述描述,顯然傳統的RFID認證協議并不適用于移動RFID系統。為此,提出一種基于共享密鑰及按位運算的移動無線射頻識別系統雙向認證協議MAP。

1 相關工作

文獻[7]提出一個移動雙向認證協議,且考慮了后臺服務器與移動讀寫器之間的信道安全問題,引入后臺服務器對移動讀寫器身份認證步驟,適用于移動讀寫器的認證場景。但對協議進行深入分析發現:協議沒有提供標簽與移動讀寫器兩者之間的認證,從而導致協議并不能抵抗攻擊者發起的假冒攻擊。

文獻[8]提出一種移動認證協議,該協議未采用計算量較大的哈希函數,而是采用位運算進行信息的加密。對協議進行研究發現:攻擊者通過物理入侵的方式獲取密鑰,從而假冒標簽或移動讀寫器發起假冒攻擊。

文獻[9]提出了一種超輕量級的移動認證協議,分析發現該協議不能抵抗標簽端的重放攻擊。文獻[10]中提出一種基于Hash函數的移動認證協議,分析發現協議無法防范標簽偽造且存在中間人攻擊及重放攻擊。文獻[11]提出三方認證的移動協議,但分析得知,協議使得后臺數據庫一直處于大負荷工作狀態,且該協議無法抵抗拒絕服務攻擊。

文獻[12]基于物理不可克隆設計出一種適用于輕量級的移動RFID雙向認證協議,協議主要基于物理不可克隆特征進行信息加密。對協議進一步研究分析:協議無法抵抗攻擊者發起的去同步化攻擊,攻擊者截獲信息后,重放該消息,經過幾輪重放之后,標簽一端的密鑰會與后臺服務器之間的密鑰失去同步性。文獻[13]提出了基于共享密鑰的移動認證協議,分析發現該協議在整個認證過程中并未實現標簽對讀寫器的認證,使得協議存在假冒攻擊威脅。

鑒于現有眾多方案的缺陷,本文針對移動無線射頻識別系統提出了一種基于共享密鑰與按位運算的移動RFID系統雙向認證協議MAP。MAP在整個認證過程中,先驗證消息源的真偽,再進行后續操作,從而可以抵抗攻擊者的蓄意破壞;采用按位運算對信息進行加密,使得MAP可以達到超輕量級別,能夠有效減少RFID系統的計算量;從安全性及性能角度分析表明,MAP適用于低成本的移動RFID系統中。

2 MAP設計

2.1 初始條件及符號說明

位替換運算定義:為了便于用符號描述,約定用符號Sub(X,Y)表示位替換運算符號。位替換運算Sub(X,Y)定義如下:設X、Y是兩個長度均為L位的二進制數,X=x1x2…xL,Y=y1y2…yL。獲取二進制數Y中為1的位,二進制數X中與之對應的位元素取反將其替換,則二進制數X中共有n=wt(Y)個元素被替換,其中wt(Y)為Y的漢明重量。

位替換運算在標簽中實現時,采用文獻[14]中所提出的指針形式,從而使得它比直接采用邏輯門效率更高。引入兩個指針,一個記為PX,另一個記為PY,其中PX指向二進制數X,PY指向二進制數Y。當PX從二進制數X最高位開始遍歷的時候,PY同時從二進制數Y最高位開始遍歷。當PY指向二進制數Y中元素為0時,PX所指二進制數X中元素不變;當PY指向二進制數Y中元素為1時,PX所指二進制數X位上元素用取反(0的反為1)替換。最后Sub(X,Y)即為被替換后的二進制數X。比如:L=8,X=00001100,Y=01100101,則Sub(X,Y)=01101001,具體過程如圖1所示。

圖1 位替換運算流程圖

本文提出的MAP移動認證協議主要基于以下假設前提:

1) 低成本標簽的計算能力及存儲空間是受限制的;移動讀寫器及后臺數據庫具備較強的計算能力及存儲空間。

2) 標簽與移動讀寫器之間無線信道通信,被認為不安全;移動讀寫器與后臺數據庫之間無線信道通信,同樣被認為不安全。

3) 協議中采用的位替換運算是安全的。

4) 標簽、讀寫器、后臺數據庫初始化時存放的信息是安全可靠的。

在MAP執行之前,移動RFID系統中所有實體需初始化內存單元。初始化結果如下:

標簽端存放Key_L、Key_R、IDT,即形成一個三元組(Key_L,Key_R,IDT)。移動讀寫器端存放Key_L、Key_R、IDR,即形成一個三元組(Key_L,Key_R,IDR)。后臺數據庫端存放Key_L、Key_R、IDT、IDR,即形成一個四元組(Key_L,Key_R,IDT,IDR)。

MAP所使用的符號定義及說明如表1所示。

表1 符號說明

2.2 MAP認證流程

MAP認證流程如圖2所示。圖2中M0至M12公式具體含義說明如表2所示。

圖2 MAP認證流程圖

符號含義M0rR⊕Key_RM1rR⊕Key_LM2rR⊕rT

續表2

MAP認證流程詳細步驟描述如下:

步驟1首先移動讀寫器生成一個隨機數rR,然后讀寫器計算M0和M1的值,最后將M0、M1及認證請求命令Query發送給標簽。

步驟2標簽接收到信息后,首先計算M0⊕Key_R、M1⊕Key_L的值,然后比對M0⊕Key_R與M1⊕Key_L兩者值是否相等。若相等,則標簽驗證移動讀寫器通過,進行步驟3;否則,說明移動讀寫器是偽造的,MAP立刻終止。

步驟3標簽通過計算得到隨機數rR,然后標簽生成一個隨機數rT,接著標簽計算M2、M3、M4、M5的值,最后將(M2、M3、M4、M5)傳送給移動讀寫器。

步驟4移動讀寫器接收到信息后,首先計算M2⊕rR的值,然后計算M5′的值,最后比較M5′與M5的值是否相等。若相等,則移動讀寫器驗證標簽通過,進行步驟5;否則,說明標簽是偽造的,MAP立刻終止。其中:M5′=Sub(((M2⊕rR)&rR),((M2⊕rR)& Key_L))。

步驟5移動讀寫器通過計算得到隨機數rT,然后讀寫器計算M6、M7的值,最后將(M3、M4、M6、M7)傳送給后臺數據庫。

步驟6后臺數據庫對移動讀寫器的認證。

(1) 數據庫接收到信息后,首先計算M6⊕IDR的值,然后計算M7′的值,最后比對M7′與M7的值是否相等。若相等,則數據庫驗證移動讀寫器通過,進行步驟(3);否則,進行步驟(2)。其中:M7′=Sub((M6⊕IDR)&IDR& Key_L,(M6⊕IDR)&IDR& Key_R)。

(2) 數據庫用Key_old代替Key_new進行步驟(1)中的計算。若相等,則數據庫驗證讀寫器通過,進行步驟(3);否則,說明移動讀寫器是偽造的,MAP立刻終止。

(3) 數據庫通過計算得到隨機數rR,然后進行步驟7。

步驟7后臺數據庫對標簽的認證。

(1) 數據庫驗證移動讀寫器通過后,然后計算M3⊕IDT的值,再計算M4′的值,最后比對M4′與M4的值是否相等。若相等,則數據庫驗證標簽通過,進行步驟(3);否則,進行步驟(2)。其中:M4′=Sub((M3⊕IDT)& Key_L,(M3⊕IDT)⊕Key_R)。

(2)數據庫用Key_old代替Key_new進行步驟(1)中的計算。若相等,則數據庫驗證標簽通過,進行步驟(3);否則,說明標簽是偽造的,MAP立刻終止。

(3)數據庫通過計算得到隨機數rT,然后進行步驟8。

步驟8數據庫生成一個隨機數rDB,然后計算M8、M9、M10、M11的值,接著開始更新共享密鑰信息Key_old=Key、Key=Key_new,最后將(M8,M9,M10,M11)傳送給移動讀寫器。其中:Key_new=Sub((rDB⊕rT⊕rR),(rDB&rT&rR))。

步驟9移動讀寫器接收到信息后,首先計算M8⊕rR⊕IDR的值,然后計算M10′的值,最后比對M10′與M10的值是否相等。若相等,則移動讀寫器驗證后臺數據庫通過,進行步驟10;否則,說明后臺數據庫是偽造的,MAP立刻終止。其中:M10′=Sub(rR,(M8⊕rR⊕IDR))。

步驟10移動讀寫器計算M12的值;然后更新共享密鑰信息,即Key_old=Key、Key=Key_new;最后將(M9,M11,M12)傳送給標簽。其中:Key_new=Sub((rDB⊕rT⊕rR),(rDB&rT&rR))。

步驟11標簽對移動讀寫器的驗證。

(1) 標簽接收到信息后,標簽首先計算M9⊕rT⊕IDT的值,然后計算M12′的值,最后比對M12′與M12的值是否相等。若相等,則標簽驗證移動讀寫器通過,進行步驟(2);否則,說明移動讀寫器是偽造的,MAP立刻終止。其中:M12′=rR&(M9⊕rT⊕IDT)。

(2) 標簽對后臺數據庫的驗證:標簽計算M11′的值,比對M11′與M11的值是否相等。若相等,則標簽驗證后臺數據庫通過,進行步驟(3);否則,說明后臺數據庫是偽造的,MAP立刻終止。其中:M11′=Sub(rT,(M9⊕rT⊕IDT))。

(3) 標簽開始更新共享密鑰信息,即Key=Sub((rDB⊕rT⊕rR),(rDB&rT&rR))。到此標簽、移動讀寫器、后臺數據庫三方之間的認證結束。

3 安全性分析

(1) 重放攻擊。在每次認證過程中,標簽都會產生隨機數rT。認證消息(M2,M3,M4,M5)計算過程中都有包含rT。若攻擊者采用舊的上述消息,則標簽在驗證(M9,M11,M12)時會使用新產生的隨機數rT。這樣使得標簽在驗證移動讀寫器及后臺數據庫時就會失敗,MAP立刻終止,阻止了攻擊者完成后續認證過程,故MAP可以抵抗重放攻擊。

(2) 異步攻擊。異步攻擊是指移動讀寫器(或后臺數據庫)與標簽在認證過程中,由于攻擊者的蓄意破壞,使得兩者之間的共享密鑰不同步,異步攻擊也稱為去同步化攻擊。為了能夠抵抗異步攻擊,MAP存放了上一輪認證過程中用到的共享密鑰Key_old用來現實與標簽恢復同步。后臺數據庫通過(M3,M4,M6,M7)對標簽及移動讀寫器進行認證時,首先調用Key_new進行計算,若驗證無法通過,再調用Key_old進行計算,從而抵抗攻擊者的去同步化攻擊。故Key_new及Key_old的存在使得MAP能夠抵抗異步攻擊。

(3) 中間人攻擊。該種攻擊方式比較常見的攻擊方法是替換消息、篡改消息等。根據協議應用的場景,攻擊者可以獲取標簽、移動讀寫器、后臺數據庫三者之間所有的通信信息集合MS={M0,M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}。上述消息都是加密之后的信息,因此即便是攻擊者獲取上述消息,并不能推導出有用信息。攻擊者雖然可以對其中某個消息進行修改或篡改,但MAP在每個步驟中都將會對其進行驗證,簡單的驗證便會發現消息已被篡改。同時上述消息計算過程中與隨機數rR、rT、rDB有關聯,且隨機數是秘密產生的,并具備無法預測性,使得攻擊者修改消息難度進一步增大。故MAP可以抵抗中間人攻擊。

(4) 前向安全。因后臺數據庫存放有上一輪的認證共享密鑰,所以這里僅僅討論標簽端的前向安全性。若攻擊者想要獲取標簽的當前共享密鑰值,則攻擊者需要從獲得的上次消息來解密出以前的認證消息。但攻擊者無法成功,原因如下:攻擊者無法破解采用按位操作加密的消息,因為密文中至少有兩個量對于攻擊者來說是未知的;MAP在認證結束后,會立刻更新共享密鑰值,前后共享密鑰值之間并無關聯,同時共享密鑰值的計算與rR、rT、rDB三個隨機數都有關聯,攻擊者是不可能獲取這三個隨機數的。故MAP能夠確保標簽的前向安全。

(5) 假冒攻擊。若攻擊者假冒標簽,發送消息給移動讀寫器。由于攻擊者假冒的標簽并不知曉當前共享密鑰值Key_R、Key_L,因此攻擊者無法計算出正確的隨機數rR的值,從而攻擊者傳送給移動讀寫器(M2、M5)信息也會被移動讀寫器識別為錯誤,認證立刻終止。攻擊者假冒標簽失敗。

若攻擊者假冒移動讀寫器,則發送消息給標簽。由于攻擊者假冒的移動讀寫器并不知曉當前共享密鑰值Key_R、Key_L,因此攻擊者計算出來的(M0、M1)必定是錯誤的,傳送給標簽后,標簽進行簡單計算即可識別出攻擊者假冒移動讀寫器。

若攻擊者假冒移動讀寫器,則發送消息給后臺數據庫。由于攻擊者假冒的移動讀寫器并不知曉移動讀寫器標識符IDR,因此攻擊者計算出來的(M6、M7)必定是錯誤的。消息傳送給后臺數據庫之后,驗證移動讀寫器失敗,攻擊者被發現。

若攻擊者假冒后臺數據庫,發送消息給移動讀寫器。由于攻擊者假冒的后臺數據庫并不知曉移動讀寫器標識符IDR、標簽標識符IDT,因此攻擊者根本無法解密出正確的隨機數rR、rT,攻擊者計算得到的(M8、M9、M10、M11)亦是錯誤的,移動讀寫器驗證后臺數據庫無法通過,攻擊者假冒失敗。綜上描述,MAP能夠抵抗攻擊者的各種假冒攻擊。

(6) 雙向認證。因在移動RFID系統中,標簽與讀寫器之間、讀寫器與后臺數據庫之間都是通過無線信道進行通信的,均不安全,因此每次信息傳輸都需要先對其進行認證。

? 標簽對讀寫器的認證。讀寫器第一次傳送消息給標簽,標簽通過步驟2完成對讀寫器的第一次驗證;讀寫器在步驟10中第二次傳送消息給標簽,標簽在步驟11中完成對讀寫器的第二次認證。

? 讀寫器對標簽的認證。標簽在步驟3中發送消息給讀寫器,讀寫器在步驟4中完成對標簽的真偽鑒定。

? 讀寫器對后臺數據庫的認證。后臺數據庫在步驟8中向讀寫器傳送消息,讀寫器在步驟9中完成對后臺數據庫真偽的鑒定。

? 后臺數據庫對讀寫器、標簽的認證。為了能夠抵抗去同步攻擊,后臺數據庫同時存放Key_new、Key_old的值。在步驟5中讀寫器向后臺數據庫傳送消息后,后臺數據庫在步驟6中實現對讀寫器的認證,在步驟7中實現對標簽的認證。

通過上述描述,標簽、讀寫器、后臺數據庫之間可以實現任意兩者之間的相互認證,故MAP能夠實現雙向認證。

表3為本文MAP與其他移動RFID認證協議之間的安全性比較。

表3 認證協議安全性比較

注:×表示不能抵抗;√表示能夠抵抗。

4 GNY邏輯形式化證明

(1) 協議形式化描述。為使MAP協議便于用GNY形式邏輯語言描述,現作如下約定:R表示移動讀寫器,T表示標簽,DB表示后臺數據庫。MAP協議流程如下:

用GNY形式邏輯語言規范以上協議,可以描述如下:

Msg1:T<*{M0,M1,Query}。

Msg2:R<*{M2,M3,M4,M5}。

Msg3:DB<*{M3,M4,M6,M7}。

Msg4:R<*{M8,M9,M10,M11}。

Msg5:T<*{M9,M11,M12}。

(2) 協議初始化假設。MAP協議假設如下:R、DB、T表示主體,即R表示移動讀寫器,T表示標簽,DB表示后臺數據庫。

Sup1:T(Key_R,Key_L,IDT,rT);表示標簽T擁有共享密鑰值Key_R、Key_L,擁有自身標識符IDT及自身產生的隨機數rT。

Sup2:R(Key_R,Key_L,IDR,rR);表示移動讀寫器R擁有共享密鑰值Key_R、Key_L,擁有自身標識符IDR及自身產生的隨機數rR。

Sup3:DB(Key_R,Key_L,IDR,IDT,rDB);表示后臺數據庫DB擁有共享密鑰值Key_R、Key_L,擁有移動讀寫器R的標識符IDR及標簽T的標識符IDT,擁有自身產生的隨機數rDB。

Sup4:R|≡#(rR,rT,rDB);表示移動讀寫器R相信隨機數rR、rT、rDB是新鮮的。

Sup5:T|≡#(rR,rT,rDB);表示標簽T相信隨機數rR、rT、rDB是新鮮的。

Sup6:DB|≡#(rR,rT,rDB);表示后臺數據庫DB相信隨機數rR、rT、rDB是新鮮的。

(3) 協議證明目標。MAP協議的證明目標主要有5個,即標簽、移動讀寫器、后臺數據庫之間對彼此交互信息新鮮性的信任。目標的證明公式如下:

Goal1:T|≡R|~#(M0,M1);

Goal2:R|≡T|~#(M2,M3,M4,M5);

Goal3:DB|≡R|~#(M3,M4,M6,M7);

Goal4:R|≡DB|~#(M8,M9,M10,M11);

Goal5:T|≡R|~#(M9,M11,M12)。

(4) 協議證明過程。MAP協議的證明是在初始化假設的基礎之上進行的,證明過程遵循文獻[15]中的邏輯推理規則、告知規則、新鮮規則、擁有規則,消息解釋規則遵循文獻[15]中GNY邏輯推理規則的書寫形式,分別用T、P、F及I表示。

因協議證明目標Goal2、Goal3、Goal4、Goal5的證明過程與協議證明目標Goal1的證明過程相似,故本節以協議證明目標Goal1為例,證明過程如下描述:

∴ T=#{M0,M1}

∴ T|≡#{M0,M1}

∴ T|=R~{M0,M1}

∵ 新鮮性定義以及推導出來的T=#{M0,M1}、T|=R~{M0,M1}

∴ Goal1:T|≡R|~#(M0,M1)得證明。

5 性能分析

移動RFID系統中包含標簽、移動讀寫器、后臺數據庫,因后兩者具備較強的計算能力及較大的存儲量,對協議的性能影響不大,所以這里只針對標簽一端的計算量及存儲量進行分析。RFID認證協議的性能分析主要從以下4個方面進行:標簽端的計算量、標簽端的存儲量、會話次數、協議的通信量。表4為本文MAP與其他認證協議之間的性能比較結果。

表4 認證協議性能比較

表4中:H表示哈希函數運算;M表示標量乘運算;S表示隨機數運算;Sub表示位替換運算;N表示求余運算;PR表示偽隨機數運算;P表示物理不可克隆函數運算;C表示交叉運算。由上文敘述可得,H、M、S、N、PR、P屬于輕量級運算,而Sub、C屬于超輕量級運算,即前者的運算量要比后者運算量大很多??紤]到按位“異或”運算、按位與運算的計算開銷很小,因此在進行性能分析時予以忽略。設定共享密鑰Key、標識符ID、各運算結果(各運算是指H、M、S、N、PR、P、Sub、C)的長度均為l。

(1) 標簽的存儲量及計算量。本文MAP中標簽端只需要存放共享密鑰Key、標簽的標識符IDT兩個量,根據前面的約定可知,標簽端存儲量為2l。相對于文獻[7,10,12]來說,本文協議標簽端的存儲量已有所降低;相對于文獻[8,11,13]來說,本文協議標簽端的存儲量與其相當。

在標簽端的計算量方面,針對按位“異或”運算及按位與運算因計算開銷小,不予考慮,故本文協議在標簽端的計算量要遠少于其他文獻。本文協議標簽端并未使用計算量較大的哈希函數或標量乘運算對信息進行加密,而是采用超輕量級的按位操作對信息進行加密,從而減少標簽的計算量。綜上描述,在標簽的存儲量及計算量方面,本文協議相比其他協議均有所改進。

(2) 通信量及會話次數。本文協議在通信量方面相對文獻[7,10-11,13]而言,略大于上述文獻中的通信量,但上述文獻中均存在一些安全隱患,而本文協議彌補了上述文獻中協議存在的缺陷問題。本文協議在通信量方面與文獻[8,12]相當,同時解決了它們中存在的安全問題。

會話次數方面,眾多協議大多是5次通信,本文協議在會話次數方面并無優勢。綜上所述,本文協議在整個通信量及會話次數兩方面改進不大,相對其他協議并無優勢,但解決了其他協議中存在的安全缺陷問題,故本文協議仍具備一定的實用價值。

6 結 語

本文描述傳統RFID系統與移動RFID系統的不同點,指出傳統RFID系統認證協議無法適用于移動RFID系統的特點,從而提出一種適用于移動RFID系統的認證協議MAP。闡述當前一些適用于移動RFID系統的認證協議中存在的缺陷及不足,然后提出改進的認證方案。所提MAP協議摒棄哈希函數加密的方法,采用按位操作對信息進行加密,使得協議可以達到超輕量級的級別;位替換運算的使用,增加了攻擊者破解協議的難度;通過安全性及性能分析,表明了協議的安全性及優勢之處所在;GNY邏輯形式化證明了MAP的正確性。MAP不僅適用于移動RFID系統,傳統RFID系統也同樣適用。下一步的研究方向:對MAP協議進行優化,合理降低整個通信的通信量;將采用MAP的移動RFID系統原型實現出來,搞清楚實現所需門電路總個數、一個完整通信時間等問題,做到理論與實際相結合。

猜你喜歡
讀寫器攻擊者后臺
基于貝葉斯博弈的防御資源調配模型研究
寧波軌道交通AFC系統讀寫器測試平臺設計
Wu Fenghua:Yueju Opera Artist
正面迎接批判
正面迎接批判
后臺暗戀
基于國家標準的UHF RFID讀寫器數字基帶系統設計
RFID技術在固定資產管理中應用研究
后臺的風景
基于Intel?。遥保埃埃暗某哳lRFID讀寫器設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合