陳小海,丁 勇,黃廷輝
(桂林電子科技大學 計算機與信息安全學院,廣西 桂林 541004)
隨著經濟全球化的迅速發(fā)展,RFID技術雖然得到了廣泛的應用,但卻面臨著安全和隱私的威脅,包括RFID偽造、嗅探、追蹤、拒絕服務、欺騙、拒絕和重放攻擊等[1,2]。同時,RFID安全研究主要集中在加強各種RFID協議的安全性和私密性,并與集中式數據庫結合使用[3-5]。基于集中式數據庫RFID系統存在數據易丟失、被篡改和單點故障等問題,且供應鏈產品溯源困難,數據透明度低,易出現假冒產品。區(qū)塊鏈技術是一種新興的去中心化的安全管理技術,可以通過引入區(qū)塊鏈來解決集中式數據庫的缺點[6-8]。
區(qū)塊鏈解決了傳統供應鏈技術存在的漏洞,但它的廣泛應用存在許多問題,如與區(qū)塊鏈系統中集成RFID技術相關的安全和隱私問題。Toyoda等[9]、Wang等[10]提出的基于區(qū)塊鏈的RFID認證協議,用于解決區(qū)塊鏈在RFID系統中應用的安全認證問題,但該協議存在易受追蹤攻擊和計算需求較大的問題。
當前輕量級RFID認證協議得到了廣泛的研究,例如Lin等提出了一種用于供應鏈系統的基于云的RFID標簽互認證協議[11],Hsu等[12]提出了一種用于高吞吐量RFID系統的密鑰管理身份認證(KMIA)協議,Mujahid等[13]提出了一種超輕量級原語,即pseudo-Kasami代碼,然而這些協議均存在不同程度的安全漏洞。
本文研究設計了一種超輕量級身份認證協議UPBBC(ultralightweight protocol based on block chain)來保障基于區(qū)塊鏈系統的標簽與閱讀器之間的通信安全。與當前使用的方法相比,將區(qū)塊鏈技術用于供應鏈管理具有明顯的優(yōu)勢。
區(qū)塊鏈技術于2008年引入,最初的目的是解決當前經濟的問題[14],它可以使用戶能夠在沒有中間第三方參與的情況下進行交易。區(qū)塊鏈是一個以分布式分散賬本(DLT)為基礎的基礎架構。數據只能添加到分類賬中,不能刪除[15]。所有的數據都以塊的形式存儲,對等節(jié)點網絡共享區(qū)塊鏈的副本,任何篡改數據的操作都將無法進行,并且大多數參與節(jié)點需要就添加到鏈上的數據達成共識。因此,與集中式數據庫相比,不存在單點故障。
目前存在幾種類型的區(qū)塊鏈,它們根據網絡上的節(jié)點可見性、用戶如何連接到網絡以及連接后獲得的權限分為不同的類別,分別為公有鏈、聯盟鏈和私有鏈。每種類型的區(qū)塊鏈在匿名性、不變性、效率和透明度上都具有不同的重要性級別。公共區(qū)塊鏈網絡由于每個用戶都可以看到所寫的信息,私有區(qū)塊鏈實體將完全控制權授予單個實體,從而使其變得所有權過于集中,不適用供應鏈系統。因此,具有混合功能的聯盟區(qū)塊鏈網絡更適合在供應鏈管理中使用。
協議設計中主要的供應鏈節(jié)點有:制造商、分銷商、零售商和最終用戶。制造商節(jié)點作為控制供應鏈平臺的治理主體,起著至關重要的作用,它具有完全的訪問權限,并且能夠授予某些參與方加入網絡的權限。此外,它是這個網絡中唯一可以執(zhí)行一致協議的節(jié)點。網絡中的其它節(jié)點,如分銷商和零售商,具有與制造商節(jié)點相同的完全訪問控制權限,但是,它們無法驗證事務。終端用戶節(jié)點只允許從網絡讀取數據。由于不同的供應鏈節(jié)點具有不同的訪問級別,因此標簽需要區(qū)分它們,并相應地更新或保持其機密數據的完整。同時由于RFID標簽在計算上受到限制,因此引入了一個簡單的解決方案來通知訪問級別,并包含向標簽發(fā)送特定的值。采用隨機數的偶數表示具有讀寫訪問權的供應鏈節(jié)點,采用隨機數的奇數表示只具有讀寫訪問權的終端用戶節(jié)點。
UPBBC該協議主要包含3個部分:標簽、閱讀器和供應鏈節(jié)點。供應鏈節(jié)點包括上述的制造商、分銷商、零售商和最終用戶。由于低成本RFID標簽在計算上受到限制,本文提出的協議采用按位異或和移位操作。而供應鏈節(jié)點沒有計算限制,因此它可以執(zhí)行更復雜的哈希計算操作。
通常供應鏈節(jié)點與讀寫器之間的通信通道是安全的,而讀寫器與標簽之間的通信通道是不安全的,且由于分布式分類賬本的特性,存儲在區(qū)塊鏈中的數據被認為是安全的。因此,設計該協議是為了保護讀寫器和標簽之間通過通信信道傳輸的消息。表1為協議中使用的符號說明,圖1為供應鏈節(jié)點、閱讀器和標簽之間的身份驗證階段進行的操作,以下對每個步驟進行解釋。
表1 協議符號說明
圖1 協議流程
(1)發(fā)起會話,閱讀器向標簽發(fā)送一條Query消息和一個隨機數T。
(2)接收到這兩條消息后,標簽使用其存儲的IDS、K、生成的隨機數N和接收到的隨機數T來計算消息A和消息B。標簽將計算出的A和B發(fā)送給閱讀器。
(3)閱讀器將T、A、B的消息轉發(fā)給供應鏈節(jié)點。
(4)供應鏈節(jié)點提取存儲的密鑰K,根據公式計算生成N′、IDS′,根據N′、IDS′計算得到S
N′=RROT(B,T)⊕K
IDS′=RROT(A,N′⊕K)⊕T
(5)讀取器將消息C和D轉發(fā)給標簽。
(6)接收到消息C和D后,標簽從接收到的消息D中提取隨機數Z
Z′=RROT(D⊕ROT(T,K),IDS)
C′=ROT(T,IDS⊕K)⊕ROT(Z′,K)
如果從提取的Z計算出的消息C′等于接收到的C,則標簽對讀取器進行身份驗證。身份驗證之后,如果Z的值為偶數則標簽更新其IDSnew,如果Z的值為奇數,則標簽將不會更新其IDSnew
IDSnew=ROT(K⊕N,IDS)⊕ROT(IDS⊕K,T)
圖2 基于區(qū)塊鏈的供應鏈中相互認證協議應用場景
BAN邏輯形式化分析方法是由Burrows、Abadi和Neesham提出的,是最具影響力的安全協議形式化分析方法。本文使用BAN邏輯形式化分析方法對提出的協議UPBBC進行安全性分析。
3.1.1 BAN邏輯基本符號與推理規(guī)則
本節(jié)介紹UPBBC協議中用到的BAN邏輯形式化分析方法的基本符號和推理規(guī)則。
(1)BAN邏輯基本語義
BAN邏輯形式化分析過程中用到的表達符號的基本語義表示如下:
P、Q:分別表示不同的通信主體;
X、Y:分別表示通信的消息;
K:表示共享秘鑰;
KP、KQ:表示對應主體P、Q公有秘鑰;
P|≡X:表示主體P相信消息X為真;
P|~X:表示主體P發(fā)出了包含X的消息;
{X}K:表示X經過秘鑰K加密的消息;
#(X):表示消息X是新鮮的;
P→Q:表示主體P發(fā)送消息給主體Q;
P|≡Q?X:表示主體P相信主體Q對消息X的管轄權。
(2)推理規(guī)則
BAN邏輯形式化分析方法的推理規(guī)則總體分為7類,安全協議根據推理規(guī)則來推導出協議的安全目標。以下介紹本協議用到的其中6類推理規(guī)則。
接收消息規(guī)則:接收消息規(guī)則(1)表明若P收到消息整體(X,Y),則P收到該消息的組成部分X
(1)
消息含義規(guī)則:消息含義規(guī)則(2)表明若P相信K為實體P、Q之間的共享密鑰,且P收到由密鑰K加密的消息{X}K,則P相信給主體Q發(fā)送了包含X的消息
(2)
新鮮性規(guī)則:新鮮性規(guī)則(3)表明若P相信X是新鮮的,則P相信包含X消息的整體(X,Y)也是新鮮的
(3)
臨時校驗規(guī)則:臨時校驗規(guī)則(4)表明若P相信消息X是新鮮的,且P相信Q發(fā)送過消息X,則P相信消息X
(4)
管轄權規(guī)則:管轄權規(guī)則(5)表明若P相信Q對消息X有管轄權,且P相信Q相信X消息,則P相信消息X
(5)
信念規(guī)則:信念規(guī)則(6)表明若主體P相信消息整體(X,Y),則P相信消息的組成部分X
(6)
安全協議的形式化分析證明需要先將協議轉化成BAN邏輯形式化語言,并根據協議提出安全目標。下面介紹UPBBC協議轉化為BAN邏輯形式化語言,提出協議的安全目標,并通過BAN邏輯規(guī)則對安全目標進行證明。
3.1.2 協議描述
(1)協議的理想化模型
將安全協議轉換為BAN邏輯理想化模型如下,其中R表示閱讀器,T表示標簽:
M1:R→T:Query,T
M2:T→R:{{IDS,T,N}K,{T,N}K}
M3:R→T:{{IDS,T,Z}K,{T,IDS,Z}K}
將消息M2,M3轉換成BAN邏輯語言:
(2)協議初始化假設
初始化假設為協議中已有的推導條件。本協議已有的條件有如下8條。
P3:T|≡#(N)
P4:R|≡#(N)
P5:T|≡#(T)
P6:R|≡#(T)
P7:T|≡R|?N
P8:R|≡T|?Z
(3)安全目標
安全目標即安全協議需要達到的目標,本協議需要到達的目標為閱讀器相信標簽動態(tài)IDS為真,且標簽相信隨機數Z為真,即目標一G1和目標二G2。
G1:R|≡IDS
G2:T|≡Z
3.1.3 安全性證明過程
安全性證明過程即安全協議推導安全目標的過程。協議能根據推理規(guī)則和初始化假設推導出安全目標G1、G2則證明協議安全。安全目標推導過程如下:
由邏輯語言M2、初始化假設P1和接收消息規(guī)則(1)可推出
(7)
由式(7)根據初始化假設P1和消息含義規(guī)則(2)推導出
R|≡T|~(IDS,T,N)
(8)
根據初始化假設P4和新鮮性規(guī)則(3)得出
R|≡#(IDS,T,N)
(9)
再由式(8)和式(9)根據臨時校驗規(guī)則(4)推導出
R|≡T|≡(IDS,T,N)
(10)
由式(10)及初始化假設P7根據管轄權規(guī)則(5)得出
R|≡(IDS,T,N)
(11)
再由式(11)根據信念規(guī)則(6)可推導出安全目標R|≡IDS,即安全目標G1得證。同理可證安全目標G2:T|≡Z。
本文對該系統及安全協議UPBBC可能面臨的安全性攻擊進行分析,具體如下:
(1)單點故障、數據篡改和假冒攻擊
由于該系統基于分布式區(qū)塊鏈技術設計,所有的數據都以塊的形式存儲,對等節(jié)點網絡共享區(qū)塊鏈的副本,任何篡改數據的操作都將無法進行,并且大多數參與節(jié)點需要就添加到鏈上的數據達成共識。因此,與集中式數據庫相比,本系統不存在單點故障,也無法對數據進行篡改和假冒攻擊。
(2)重放攻擊
當攻擊者記錄在通信信道中交換的消息并重放這些消息以竊取信息或獲得訪問權時,就會發(fā)生重放攻擊。①攻擊者將前一會話中捕獲的消息A和消息B重放給讀取器。然而,讀取器無法驗證由真正的標簽發(fā)送的消息,因為ID和K在每個新會話中都使用新的隨機數(T和N)加密,無法通過認證;②攻擊者將前一會話捕獲的消息C和消息D重放到標簽。同樣,攻擊者也不會成功,因為標簽無法對消息進行身份驗證,因為消息C和消息D的計算需要對每個新會話使用不同的隨機數(T和Z)。因此所提出的協議能夠抵抗重放攻擊。
(3)中間人攻擊
(4)去同步化攻擊
(5)追蹤攻擊
這種攻擊的目的是基于標簽對閱讀器查詢返回的常量響應來追蹤標簽的移動??梢酝ㄟ^使用密鑰對其進行加密來防止這種恒定響應。在該協議中,消息A~消息D分別使用秘密信息ID和K,以及隨機數T、N、Z進行加密,每次成功會話結束時,都使用隨機數T和N對ID和K進行更新。協議可以有效抵抗追蹤攻擊。
協議安全性對比見表2,可以看出本協議能有效抵抗重放攻擊、數據完整性、去同步化攻擊和追蹤攻擊者5種安全威脅,且由于區(qū)塊鏈技術的優(yōu)越性,本文提出的協議能有效解決單點故障和數據篡改問題,相比文獻[2]、文獻[10]、文獻[13]、文獻[15]安全性更高。
表2 協議安全性對比
由于RFID閱讀器和供應鏈節(jié)點具有較高的處理能力,而標簽資源受限,因此以下對RFID標簽的性能進行分析。
存儲開銷,指RFID標簽在部署之前存儲所需數據所產生的成本。在UPBBC協議中,一個RFID標簽需要存儲K和ID,每個K和ID長度均為96位,所以標簽總的存儲開銷為192位。
計算開銷,指RFID系統認證所需的計算時間。Txor、Trot分別表示執(zhí)行異或、移位操作所需的時間。RFID標簽在認證階段的總計算成本為12Txor+12Trot,異或操作Txor的計算成本可以忽略,因為該計算成本大大低于使用單向哈希函數Th和對稱加密Tenc的計算成本。此外,移位操作都是按位操作,其計算消耗可以忽略不計,因此可以忽略本協議的計算成本。
通信開銷,指RFID系統認證所需的通信時間。通信由讀取器發(fā)送給標簽的40位Query消息和96位隨機數T啟動。提出的協議使用4條消息(A、B、C和D)執(zhí)行相互身份驗證,每條消息長度為96位。因此,總的通信成本僅僅是傳輸520位的成本。
綜上所述,該協議在性能方面與現有的輕量級身份驗證RFID協議進行了比較,見表3,可以看出本協議保持了較低的通信開銷,且在存儲開銷和計算開銷方面相比現有協議均具有優(yōu)勢。
表3 協議性能對比
本文針對集中式數據庫的傳統RFID供應鏈系統存在的問題,在供應鏈管理系統集成利用聯盟區(qū)塊鏈網絡,并針對該系統設計一種輕量級安全協議。將供應鏈節(jié)點分為4類,即制造商、分銷商、零售商和最終用戶,每個供應鏈節(jié)點被授予不同的訪問級別,通過使用一個具有奇數或偶數的隨機數來表示節(jié)點的訪問級別來區(qū)分它們。根據該系統特點設計輕量級的身份認證協議,對系統及協議安全性進行分析并對協議性能進行分析,結果表明所提出的系統不受單點故障、數據篡改、假冒問題影響,且協議能保證系統不受密鑰泄露、重放、中間人、去同步和追蹤5種攻擊。與現有的協議相比,所提出的協議UPBBC在存儲、計算和通信成本方面均具有優(yōu)勢,該協議適用于RFID基于聯盟區(qū)塊鏈的供應鏈與網絡,基于區(qū)塊鏈的RFID供應鏈系統更適用于保護產品信息及用戶數據的安全。