于 仕,付萍萍,卓明旺,李 彬,江 虹
1(國網(wǎng)江西省電力有限公司信息通信分公司,南昌 330077)
2(南京南瑞集團公司信息系統(tǒng)集成分公司,南京 211106)
無線射頻識別(Radio Frequency IDentification,RFID)是一種自動識別和數(shù)據(jù)獲取技術(shù),只需要將RFID標簽附著在目標實體上,無需直接接觸目標實體就可以實現(xiàn)對選定目標的識別[1–3].具有體積小、壽命長等優(yōu)點,已被廣泛應用在商品生產(chǎn)、交通運輸?shù)雀鱾€領(lǐng)域[4–6].在應用中,通信實體的所有權(quán)會不斷的發(fā)生改變,比如: 生產(chǎn)者將商品賣給批發(fā)商,商品的所有權(quán)就會發(fā)生改變,所有權(quán)不再屬于生產(chǎn)者,然而生產(chǎn)者卻依舊有可能獲取該商品的信息,而導致批發(fā)商的隱私信息遭到泄漏[7–9].為了解決上述存在的問題,需設計出安全的所有權(quán)轉(zhuǎn)移協(xié)議.
Molnar等人在2005年首次提出RFID標簽所有權(quán)轉(zhuǎn)移協(xié)議,但是該協(xié)議每次通話只能完成一個標簽的所有權(quán)轉(zhuǎn)移,使用范圍受到局限[10]; Zuo等人在2010年首次提出RFID標簽組所有權(quán)轉(zhuǎn)移協(xié)議,該協(xié)議可以一次通話完成一組標簽所有權(quán)的轉(zhuǎn)移,但該協(xié)議基于可信第三方,使其應用也具有一定的局限,同時該協(xié)議無法抵抗異步攻擊和假冒攻擊[11]; Yang等人在2012年提出了一個適用移動RFID系統(tǒng)的RFID標簽組所有權(quán)轉(zhuǎn)移協(xié)議,分析發(fā)現(xiàn),該協(xié)議無法抵抗異步攻擊,同時協(xié)議也無法滿足后向隱私的安全需求[12];He等人在2014年提出了一個RFID標簽組所有權(quán)轉(zhuǎn)移協(xié)議,但分析發(fā)現(xiàn),該協(xié)議仍無法抵抗去同步化攻擊,同時不能保證后向隱私的安全性[13].原變青等人在2015年提出了一個通用可組合安全的RFID標簽組所有權(quán)轉(zhuǎn)移協(xié)議,但分析發(fā)現(xiàn),該協(xié)議無法抵抗暴力破解攻擊,攻擊者通過強制手段,可以暴力破解出標簽的相關(guān)隱私[14].在總結(jié)上述協(xié)議基礎(chǔ)之上,提出一種適用于的多標簽的所有權(quán)轉(zhuǎn)移協(xié)議.在所提協(xié)議中,信息通過字合成運算加密后再傳輸,使得攻擊者只能獲取密文;同時在所提協(xié)議中,保證每個傳輸?shù)男畔⒅?都至少有兩個以上的量是攻擊者事前無法知曉的,從而使得攻擊者無法進行暴力破解攻擊; 通過BAN邏輯形式證明了協(xié)議的正確性.
對協(xié)議中出現(xiàn)的符號進行如下說明:
A: 標簽原所有者;
B: 標簽新所有者;
Ta: 群組標簽(其中a表示群組標簽的總個數(shù));
Ti: 群組標簽中編號為i的標簽;
V: 群組標簽Ta與標簽原所有者A之間共享的密鑰;
U: 群組標簽Ta與標簽新所有者B之間共享的密鑰;
Vi: 群組標簽Ta中編號為i的標簽與標簽原所有者A之間共享的認證密鑰;
Ui: 群組標簽Ta中編號為i的標簽與標簽新所有者B之間共享的認證密鑰;
x: 標簽原所有者A產(chǎn)生的一個隨機數(shù);
y: 標簽新所有者B產(chǎn)生的一個隨機數(shù);
zi、wi: 群組標簽Ta中編號為i的標簽產(chǎn)生的兩個隨機數(shù);
e、f: 標簽新所有者B隨機選取的兩個大素數(shù);
g:e、f兩個大素數(shù)的乘積,即
Query: 所有權(quán)轉(zhuǎn)移請求命令;
SURE: 所有權(quán)轉(zhuǎn)移授權(quán)命令;
Cro(X,Y): 交叉位運算;
⊕: 異或運算;
&: 與運算;
M2modd: 模運算.
其中有關(guān)交叉位運算詳細實現(xiàn)步驟可參考文獻[15],示例可參考如圖1所示: 取長度L=12,并設定根據(jù)交叉位運算的定義可得:
圖1 交叉位運算
所提所有權(quán)轉(zhuǎn)移協(xié)議分為兩個階段,第一個階段是初始化階段,完成標簽原所有者A、標簽新所有者B、群組標簽Ta中各參數(shù)的設置; 第二階段是所有權(quán)轉(zhuǎn)移階段,完成標簽所有權(quán)由標簽原所有者A轉(zhuǎn)移到標簽新所有者B的過程.
(1)初始化階段
在所有權(quán)轉(zhuǎn)移協(xié)議的初始化階段,標簽新所有者B隨機選擇兩個大素數(shù)e和f,然后計算的值,并將g的值通過安全信道告知標簽原所有者A和群組標簽Ta.標簽原所有者A端存放如下信息: (Vi、V、g);標簽新所有者B端存放如下信息: (e、f、g); 群組標簽Ta中編號為i的標簽端存放如入信息: (Vi、V、g).
(2)所有權(quán)轉(zhuǎn)移階段
對圖2中的通信過程中出現(xiàn)的字符進行解釋:
圖2 本文協(xié)議
所提所有權(quán)轉(zhuǎn)移協(xié)議如圖2所示,具體的執(zhí)行步驟如下:
(1) 步驟1
1)標簽原所有者A生成一個隨機數(shù),記作x.
2)標簽原所有者A用自身生成的x、自身存放的V計算得到M1.標簽原所有者A用自身生成的x、接收到的g計算得到M3.
3)標簽原所有者A將
(2) 步驟2
標簽新所有者B在接收到信息之后,進行如下操作.
1)標簽新所有者B生成一個隨機數(shù),記作y.
2)標簽新所有者B用自身生成的y、接收到的M1計算得到M2.標簽新所有者B用自身生成的y、自身存放的g計算得到M4.
3)標簽新所有者B向標簽組Ta廣播消息
(3) 步驟3
標簽Ti在接收到信息之后,進行如下操作.
1)標簽Ti用接收到的M3、自身存放的g計算得到隨機數(shù)x.標簽Ti用接收到的M4、自身存放的g計算得到隨機數(shù)y.標簽Ti用計算得到的x、計算得到的y、自身存放的V計算得到一個M2`的值.
2)標簽Ti將計算得到的M2`與接收到的M2值進行比對.若兩者值相等,進行步驟3); 反之,協(xié)議終止.
3)標簽Ti生成兩個隨機數(shù),分別記作zi、wi.
4)標簽Ti用自身生成的zi、自身存放的Vi計算得到M5i.標簽Ti用自身生成的zi、計算得到的x計算得到M6i.標簽Ti用自身生成的wi、計算得到的y、接收到的g計算得到M7i.
5)標簽Ti將
(4) 步驟4
標簽新所有者B接收到標簽Ti的響應信息后,得到集合.進行如下操作.
1)標簽新所有者B對M7i進行解方程,即:根據(jù)中國剩余定理,可以計算得出方程的四個解,依次為:b1、b2、b3、b4.
2)若能夠找到左邊L位等于y的解進行步驟3); 反之,協(xié)議終止.
3)該解相對應的右邊L位即為wi,然后存放集合
4)標簽新所有者B將集合{(M5i、M6i)|傳送給標簽原所有者A.
(5) 步驟5
標簽原所有者A在接收到信息之后,進行如下操作.
1)標簽原所有者A檢查收到的消息集合中消息對(M5i、M6i)的數(shù)量是否與數(shù)據(jù)庫中存放的待轉(zhuǎn)移的群組標簽Ta中的標簽數(shù)一致.
2)如果數(shù)量一致,進行步驟6; 反之,協(xié)議終止.
(6) 步驟6
標簽原所有者A將對每一個消息對(M5i、M6i)進行驗證,驗證過程如下.
1)標簽原所有者A用接收到的M5i、自身存放的Vi計算得到隨機數(shù)zi.
2)標簽原所有者A用自身生成的x、計算得到的zi計算得到一個M6i`的值.
3)標簽原所有者A將計算得到的M6i`與接收到的M6i值進行比對.若兩者值相等,進行步驟4); 反之,協(xié)議終止.
4)說明群組標簽Ta中的每個標簽Ti都存在,進行步驟7.
(7) 步驟7
1)標簽原所有者A對群組標簽Ta中的每個標簽Ti用自身存放的Vi、計算得到的zi計算得到M8i.
2)標簽原所有者A向標簽新所有者B發(fā)送授權(quán)轉(zhuǎn)移信息 (8) 步驟8 標簽新所有者B在接收到所有權(quán)轉(zhuǎn)移授權(quán)命令之后,進行如下操作. 1)標簽新所有者B生成一個標簽新所有者B與群組標簽Ta之間共享的密鑰U.標簽新所有者B生成一個標簽新所有者B與群組標簽Ta中編號為i的標簽Ti之間共享的認證密鑰Ui. 2)標簽新所有者B用自身生成的Ui、計算得到的wi計算得到M9i.標簽新所有者B用自身生成的U、計算得到的wi計算得到M10i.標簽新所有者B用計算得到的M9i、計算得到的M10i、接收到的M8i、計算得到的wi計算得到M11i. 3)標簽新所有者B向標簽Ti發(fā)送信息 (9) 步驟9 標簽Ti在接收到信息之后,進行如下操作. 1)標簽Ti用自身存放的Vi、自身生成的zi計算得到一個M8i`的值.標簽Ti用接收到的M9i、接收到的M10i、計算得到的M8i`、自身生成的wi計算得到一個M11i`的值. 2)標簽Ti將計算得到的M11i`與接收到的M11i值進行比對.若兩者值相等,進行步驟3); 反之,協(xié)議終止. 3)標簽Ti通過計算wi⊕M9i得到認證密鑰Ui的值.標簽Ti通過計算wi⊕M10i得到共享密鑰U的值. 4)標簽Ti更新標簽Ti與標簽新所有者B之間的密鑰信息,到此所有權(quán)轉(zhuǎn)移成功. (1)后向安全 在所有權(quán)轉(zhuǎn)移協(xié)議中,當群組標簽的所有權(quán)轉(zhuǎn)移成功后,標簽組中存放的密鑰全部更新,U取代V,Ui取代Vi,同時U和Ui對標簽的原所有者A是保密的; 密鑰更新之后,標簽的原所有者A將不能再識別出群組標簽中的任何一個標簽,并且無法訪問標簽與標簽的新所有者B之間的會話消息.故所提協(xié)議能夠保證后向安全性. (2)前向安全 在所提所有權(quán)轉(zhuǎn)移協(xié)議中,標簽的新所有者B僅僅只能獲得更新后的密鑰U和Ui,根本沒有辦法獲取標簽的原所有者A與群組標簽之間共享的密鑰V和Vi,因此標簽的新所有者B根本沒有權(quán)限訪問到標簽與標簽的原所有者A之間的會話消息.故本文協(xié)議能夠保證前向安全性. (3)去同步化攻擊 去同步化攻擊是要造成群組標簽與標簽的新所有者B之間共享的密鑰不相同,或者是造成群組標簽與標簽的原所有者A之間共享的密鑰不相同.在所提所有權(quán)轉(zhuǎn)移協(xié)議中,協(xié)議運行的前提是: 群組標簽中存放有與標簽的原所有者A通信所需用到的密鑰V和Vi,因此攻擊者無法造成群組標簽與標簽的原所有者A之間的密鑰不同.當標簽的新所有者B產(chǎn)生新的密鑰之后,群組標簽并不是立刻進行更新密鑰,而是通過M9i、M10i、M11i消息來驗證標簽的新所有者B的真?zhèn)?只有標簽的新所有者B不是偽造的情況下,群組標簽端才會進行密鑰的更新,否則密鑰不僅不會更新,而且協(xié)議立刻終止,因此攻擊者無法造成密鑰不同步的情況.故所提協(xié)議可以抵抗去同步化攻擊. (4)暴力破解攻擊 在所提所有權(quán)轉(zhuǎn)移協(xié)議中,攻擊者監(jiān)聽整個通信過程,可以獲得M2、M3、M4、M5i、M6i、M7i、M9i、M10i、M11i這些消息,但攻擊者仍無法從上述消息中獲得任何有用的隱私信息.比如對M3進行暴力破解攻擊,在該公式中,隨機數(shù)x攻擊者不知曉,它是由標簽原所有者A隨機產(chǎn)生,且無法提前預測,同時又是通過安全通道傳送給標簽新所有者B;g是e和f的乘積,對于e和f的選取,攻擊者更是無法知曉,且g事先已安全存放在群組標簽端,因此在上述公式中,攻擊者僅僅只能截獲到M3消息,而M3消息中的x和g都是無法知曉的,所以攻擊者即使對消息M3進行強制性破解,也還是無法獲取任何有用的信息;對其他獲取的消息進行強制性攻擊同樣無法獲取信息,因每個消息中至少有兩個量,攻擊者是無法提前知曉的.故本文協(xié)議可以抵抗暴力破解攻擊. (5)追蹤攻擊 在所提所有權(quán)轉(zhuǎn)移協(xié)議中,攻擊者通過監(jiān)聽一個完整的通信過程,可以獲得眾多消息中的M5i、M6i、M7i三個消息,攻擊者試圖通過分析由群組標簽產(chǎn)生的M5i、M6i、M7i三個消息來跟蹤群組標簽,但攻擊者無法成功.M5i、M6i、M7i三個消息中都有用到由群組標簽產(chǎn)生的隨機數(shù)來計算,而隨機數(shù)的產(chǎn)生是隨機生成且無法提前預測,并且每次生成的隨機數(shù)都是不相同的,因此攻擊者截獲的M5i、M6i、M7i三個消息每次都是不同的,從而使得攻擊者根本無法跟蹤群組標簽的具體位置.故本文協(xié)議可以抵抗跟蹤攻擊. (6)重放攻擊 在所提所有權(quán)轉(zhuǎn)移協(xié)議中,攻擊者監(jiān)聽整個通信過程,可以獲得M2、M3、M4、M5i、M6i、M7i、M9i、M10i、M11i這些消息,攻擊者想通過重放上述信息進行重放攻擊,從而獲取標簽端的隱私信息,但攻擊者無法成功.在上述獲取的消息中,每個消息再計算過程中都會用到不同的隨機數(shù),標簽原所有者A通過隨機數(shù)x來保持每次傳輸消息的新鮮性; 標簽新所有者B通過隨機數(shù)y來保持每次傳輸消息的新鮮性; 標簽Ti通過隨機數(shù)wi、zi來保持每次會話用到的信息的新鮮性.攻擊者不論對誰發(fā)送的惡意重放攻擊,都是不可能實現(xiàn)的,因為隨機數(shù)x、y、wi、zi的產(chǎn)生都是隨機產(chǎn)生的,每次都是不同的,且無法提前預測,因此重復發(fā)送上一次會話的消息無法通過認證.故本文協(xié)議可以抵抗重放攻擊. 性能分析主要從標簽計算量、標簽存儲空間大小方面來分析,分析結(jié)果如表1所示. 表1 協(xié)議的性能比較 表1中,設定共享密鑰值,共享認證密鑰值,大素數(shù)的長度均為L位;PR()表示PRNG運算,PH()表示哈希函數(shù)運算,PM()表示模運算,PE()表示加解密運算,AND表示與運算,XOR表示按位異或運算,XAND表示連接運算,Cro()表示交叉位運算. 由表1中可得知,在存儲空間方面,本文協(xié)議相對文獻[12]及文獻[13]來說,減少了標簽端的存儲空間;相對文獻[14]而言,與其標簽端的存儲空間相當.在計算量方面,本文協(xié)議相對文獻[12]及文獻[13]來說,標簽端的計算量減少較多,因PE()加解密運算,PH()哈希函數(shù)運算都是輕量級的運算量,而本文協(xié)議中用到的加密方法都是超輕量級的運算量; 相對文獻[14]而言,本文協(xié)議在超輕量級方面的運算量稍微多一些,但超輕量級的計算量本身計算量較少,因此多幾次的超輕量級加密運算量可以忽略不計,同時文獻[14]中采用PRNG運算進行加密,而該運算屬于輕量級的計算量,本文協(xié)議采用Cro()字合成運算進行加密,該加密方法屬于超輕量級的算法.因此綜合比較,本文協(xié)議在標簽端計算量方面,要比文獻[14]中的計算量少一些,且文獻[14]中的協(xié)議存在安全缺陷,無法抵抗暴力破解攻擊,而本文協(xié)議彌補了原協(xié)議的安全缺陷問題. 本文采用BAN邏輯形式化分析方法對本文協(xié)議進行安全性證明,BAN邏輯是由Burrows等人提出的. 采用BAN邏輯對協(xié)議進行形式化分析,證明過程如下所示.因標簽新所有者B和標簽原所有者A中都有讀寫器部分,因此可以將兩者看成一個整體,看成一個大的讀寫器,用R來表示. (1)協(xié)議的理想化模型 消息①R→T:M2、M3、M4; 消息②T→R:M5i、M6i、M7i; 消息③R→T:M9i、M10i、M11i. (2)協(xié)議的預期目標 本協(xié)議正確性的證明目標主要有G1、G2、G3、G4、G5、G6、G7、G8、G9九個,即雙向認證實體之間對交互信息新鮮性的相信. (3)協(xié)議的初始假設 (4)協(xié)議的推導過程 運用上述條件和法則,同理可證得G2、G3、G4、G5、G6、G7、G8、G9.此處不再贅述. 針對RFID系統(tǒng)中標簽所有權(quán)轉(zhuǎn)移的實際問題,提出了一種輕量級的群組RFID標簽所有權(quán)轉(zhuǎn)移協(xié)議.該協(xié)議彌補了一次會話只能轉(zhuǎn)移單個標簽所有權(quán)的缺陷,本文協(xié)議可以在一次會話中轉(zhuǎn)移多個標簽的所有權(quán);所提協(xié)議彌補了原協(xié)議存在的安全缺陷,本文協(xié)議可以抵抗暴力破解攻擊; 所提協(xié)議在傳輸過程中所有的信息都是經(jīng)過簡單的加密后再傳輸,從而增加了攻擊者破解的難度; 通過安全性分析以及BAN邏輯形式化,證明了協(xié)議的安全性; 通過性能分析,表明了該協(xié)議適用于低成本的RFID系統(tǒng).2 安全性分析
3 性能分析
4 基于BAN邏輯形式化證明
4 結(jié)論與展望