盧愛(ài)芬
(廣州科技職業(yè)技術(shù)大學(xué),信息工程學(xué)院, 廣東,廣州 510550)
射頻識(shí)別系統(tǒng)一般包含電子標(biāo)簽、讀寫器、后臺(tái)服務(wù)器三者。其中,電子標(biāo)簽因體積小、方便攜帶、易部署、成本不高、使用時(shí)間長(zhǎng)等眾多優(yōu)勢(shì),使射頻識(shí)別技術(shù)在很多領(lǐng)域中得到應(yīng)用[1-3]。常見(jiàn)的電子標(biāo)簽一般有2種類型:一種是自身攜帶電源,可主動(dòng)發(fā)起認(rèn)證;另一種是自身并沒(méi)有攜帶電源,無(wú)法主動(dòng)發(fā)起認(rèn)證,只能被動(dòng)式響應(yīng)讀寫器信息?,F(xiàn)有的射頻識(shí)別系統(tǒng)中,大多數(shù)用的電子標(biāo)簽還是屬于無(wú)電源類型的[4-6]。
射頻識(shí)別系統(tǒng)中經(jīng)典的通信模型是讀寫器與后臺(tái)服務(wù)器間有線鏈路實(shí)現(xiàn)交互,一般認(rèn)為安全可靠;讀寫器與電子標(biāo)簽間采用無(wú)線鏈路,因無(wú)線鏈路自身具備的開(kāi)放性,使得消息易被攻擊者監(jiān)聽(tīng)獲取,存在安全隱患[7-8]。在早期的射頻識(shí)別系統(tǒng)認(rèn)證算法中,較多時(shí)候會(huì)采用經(jīng)典的密碼加密算法對(duì)所要發(fā)送信息進(jìn)行加密,但現(xiàn)有的電子標(biāo)簽因低成本因素,使得電子標(biāo)簽計(jì)算能力受到嚴(yán)格限制,無(wú)法采用經(jīng)典加密算法[9-10]。
文獻(xiàn)[11]中采用簡(jiǎn)單的異或運(yùn)算、與運(yùn)算實(shí)現(xiàn)信息加密,但協(xié)議無(wú)法抵抗攻擊者發(fā)起的物理攻擊,攻擊者物理攻擊成功后,可對(duì)標(biāo)簽發(fā)起假冒攻擊。文獻(xiàn)[12]中采用物理不可克隆函數(shù)對(duì)信息加密,算法雖具備一定安全性,但因讀寫器端未存放前后輪會(huì)話共享密鑰,使得協(xié)議無(wú)法抗去同步化攻擊。文獻(xiàn)[13]中采用經(jīng)典的HASH函數(shù)實(shí)現(xiàn)信息加密,文獻(xiàn)[14]中算法對(duì)文獻(xiàn)[13]中算法進(jìn)行了詳細(xì)安全性分析,指出文獻(xiàn)[13]中算法無(wú)法提供會(huì)話實(shí)體間雙向認(rèn)證缺陷,同時(shí)算法還無(wú)法抗攻擊者發(fā)起的假冒攻擊安全缺陷。
針對(duì)現(xiàn)有大多數(shù)雙向認(rèn)證算法或存在安全隱患或存在計(jì)算量大無(wú)法適用低成本RFID系統(tǒng)等不足,文中在結(jié)合眾多協(xié)議基礎(chǔ)之上,設(shè)計(jì)一個(gè)采用變形反比例函數(shù)實(shí)現(xiàn)加密的雙向認(rèn)證算法。
本小節(jié)首先介紹算法中涉及的符號(hào)含義,然后給出文中算法加密用的變形反比例函數(shù)具體定義,最后給出算法。
R表示讀寫器;
T表示電子標(biāo)簽;
ID_L表示電子標(biāo)簽標(biāo)識(shí)符左邊一半;
ID_R表示電子標(biāo)簽標(biāo)識(shí)符右邊一半;
ID表示電子標(biāo)簽標(biāo)識(shí)符;
K表示電子標(biāo)簽與讀寫器間共享秘密值;
Knew表示電子標(biāo)簽與讀寫器間當(dāng)前共享秘密值;
Kold表示電子標(biāo)簽與讀寫器間上輪共享秘密值;
Gf(x,y)表示變形反比例函數(shù);
a表示電子標(biāo)簽產(chǎn)生的隨機(jī)數(shù);
b表示讀寫器產(chǎn)生的隨機(jī)數(shù);
&表示按位與運(yùn)算;
⊕表示按位異或運(yùn)算。
變形反比例函數(shù)按照如下方式定義:約定x、y都是長(zhǎng)度為L(zhǎng)位的二進(jìn)制串;hm(x)、hm(y)分別表示二進(jìn)制串x、y的漢明重量值;變形反比例函數(shù)一般形式如y=m/x+n。當(dāng)hm(x)>hm(y)時(shí),取hm(y)的值作為上述一般形式中m的值,取hm(x)的值作為上述一般形式中n的值,同時(shí)對(duì)參數(shù)y進(jìn)行反比例函數(shù)加密計(jì)算。當(dāng)hm(x)≤hm(y)時(shí),取hm(y)的值作為上述一般形式中n的值,取hm(x)的值作為上述一般形式中m的值,同時(shí)對(duì)參數(shù)x進(jìn)行反比例函數(shù)加密計(jì)算。為便于文中有關(guān)變形反比例函數(shù)描述,文中統(tǒng)一用符號(hào)Gf(x,y)表示。
即如下:
(1)
與文獻(xiàn)[15]一樣,做出如下約定:讀寫器與數(shù)據(jù)庫(kù)間采用有線方式交互消息,安全可靠,故將二者看成一個(gè)整體。文中算法在認(rèn)證之前有一個(gè)初始化過(guò)程,初始化過(guò)程完成,R端儲(chǔ)存信息有ID_L、ID_R、K,T端儲(chǔ)存信息有ID_L、ID_R、K。具體流程如圖1所示。
圖1 雙向認(rèn)證算法
結(jié)合圖1可將文中基于變形反比例函數(shù)的雙向認(rèn)證算法具體步驟描述如下。
步驟1 R向T發(fā)送ACK認(rèn)證請(qǐng)求命令,開(kāi)始認(rèn)證過(guò)程。
步驟2 T產(chǎn)生隨機(jī)數(shù)a,計(jì)算得到消息A=a⊕ID_L、消息B=Gf(a,ID_L),并將ID_R、A、B發(fā)送給R。
步驟3 R將依據(jù)收到的ID_R在數(shù)據(jù)庫(kù)中查找是否存在該數(shù)據(jù)。未找到,則算法停止。找到,R可將與ID_R相關(guān)聯(lián)的信息全部取出來(lái)。先對(duì)A進(jìn)行變形A⊕ID_L可得到隨機(jī)數(shù)a′,然后計(jì)算得到B′=Gf(a′,ID_L),接著對(duì)比B′與B的關(guān)系。
B與B′不等,算法終止;如果相等,說(shuō)明T通過(guò)R的驗(yàn)證。R開(kāi)始產(chǎn)生一個(gè)隨機(jī)數(shù)b,計(jì)算得到消息C=a⊕b、消息D=Gf(a,b),并將C、D發(fā)送給T。
步驟4 T將對(duì)C進(jìn)行變形處理C⊕a可得到隨機(jī)數(shù)b′,計(jì)算得到D′=Gf(a,b′),然后對(duì)比D′與D的值。
D與D′不等,算法終止;如果相等,說(shuō)明T對(duì)R的驗(yàn)證完成。T計(jì)算得到消息E=Gf(a⊕D,b),并將E發(fā)送給R。
步驟5 R計(jì)算得到E′,對(duì)比E′與E的大小關(guān)系。
E與E′不等,算法終止;如果相等,說(shuō)明R完成對(duì)T的驗(yàn)證。R計(jì)算得到消息F=Gf(a&b,K),開(kāi)始更新信息,信息更新完成后,將F發(fā)送給R。
當(dāng)*=old時(shí),Knew=Gf(a,b⊕Kold)。
當(dāng)*=new時(shí),Kold=Knew、Knew=Gf(a,b⊕Knew)。
步驟6 T收到信息后,T計(jì)算得到F′,并比較F′與收到F的大小。
F與F′不等,算法終止。如果相等,表明R通過(guò)T的驗(yàn)證。T開(kāi)始更新信息K=Gf(a,b⊕K)。T信息更新完成后,則雙向認(rèn)證完成。
雙向認(rèn)證。通信實(shí)體間能夠?qū)Ρ舜说恼鎮(zhèn)芜M(jìn)行驗(yàn)證是算法最基本的安全需求。文中算法R與T間的雙向認(rèn)證都分2次進(jìn)行,在步驟3中,R通過(guò)A、B完成第一次對(duì)T的認(rèn)證;在步驟5中,R再次通過(guò)E完成第二次對(duì)T的認(rèn)證。在步驟4中,T則是通過(guò)C、D第一次完成對(duì)R的認(rèn)證;在步驟6中,T將再次通過(guò)F完成第二次對(duì)R的認(rèn)證?;谏鲜觯闹兴惴梢詫?shí)現(xiàn)通信實(shí)體間的雙向認(rèn)證。
假冒攻擊。當(dāng)攻擊者假冒成R時(shí),攻擊者可以接收到合法T發(fā)送來(lái)的消息ID_R、A、B,但因攻擊者不知曉ID_L值,攻擊者無(wú)法從消息A、B中破解出有用的隱私信息,使得攻擊者計(jì)算的消息C、D值并不是正確的值;當(dāng)T收到攻擊者發(fā)送來(lái)的C、D消息時(shí),T只需要進(jìn)行簡(jiǎn)單的計(jì)算,即可識(shí)別出消息來(lái)源是攻擊者偽造的。當(dāng)攻擊者假冒成T時(shí),攻擊者會(huì)隨機(jī)選擇數(shù)據(jù)進(jìn)行消息A、B的計(jì)算;當(dāng)R收到攻擊者發(fā)送來(lái)的消息時(shí),R對(duì)A、B進(jìn)行簡(jiǎn)單驗(yàn)證,即可辨別出消息發(fā)送方是攻擊者偽造?;谏鲜?,算法可以抵抗假冒攻擊。
重放攻擊。攻擊者竊聽(tīng)當(dāng)前會(huì)話過(guò)程,可以獲取當(dāng)前會(huì)話過(guò)程中所有消息,在下一輪會(huì)話過(guò)程中重放當(dāng)前竊聽(tīng)所得消息,以企圖通過(guò)某會(huì)話實(shí)體驗(yàn)證,從而達(dá)到破解隱私信息目的。文中算法采用信息加密過(guò)程中混入隨機(jī)數(shù)方法來(lái)解決攻擊者發(fā)起的重放攻擊,當(dāng)攻擊者重放上輪消息時(shí),本輪消息加密過(guò)程中用到的隨機(jī)數(shù)已發(fā)生變更,使得攻擊者重放的消息無(wú)法通過(guò)驗(yàn)證。鑒于隨機(jī)數(shù)由隨機(jī)數(shù)發(fā)生器隨機(jī)產(chǎn)生,具有無(wú)法預(yù)測(cè)性,因此攻擊者無(wú)法預(yù)測(cè)下輪會(huì)話用到的隨機(jī)數(shù)。基于上述,文中算法可抵抗重放攻擊。
追蹤攻擊。文中算法所有消息都是加密之后在發(fā)送,攻擊者獲取的消息都是密文,無(wú)法直接破解出有用信息。信息加密通過(guò)混入隨機(jī)數(shù)方式,使得前后兩輪會(huì)話同一個(gè)會(huì)話實(shí)體計(jì)算所得消息值也是不同的,這樣攻擊者就無(wú)法從獲取的消息中分析出電子標(biāo)簽的位置,無(wú)法實(shí)施追蹤攻擊?;谏鲜?,文中算法可抵抗追蹤攻擊。
異步攻擊。文中算法在R一端存放有當(dāng)前會(huì)話、上輪會(huì)話過(guò)程中R與T間的共享秘密值,以此來(lái)抵抗異步攻擊。具體在算法步驟5中,R會(huì)先用Knew來(lái)發(fā)起對(duì)T的驗(yàn)證,驗(yàn)證通過(guò),可直接進(jìn)行后續(xù)操作;若驗(yàn)證失敗,則R會(huì)再次用Kold來(lái)發(fā)起對(duì)T的驗(yàn)證。當(dāng)且僅當(dāng),前后兩次對(duì)T的驗(yàn)證都失敗,算法才會(huì)終止?;谏鲜觯闹兴惴傻挚巩惒焦?。
后向安全。攻擊者想要從獲取的當(dāng)前會(huì)話消息中分析部分隱私信息,然后用此信息再來(lái)逆推出上輪會(huì)話中部分隱私信息,該種攻擊方式稱為后向安全攻擊。文中協(xié)議在信息加密時(shí)候引入隨機(jī)數(shù),使得前后消息值不同;加之隨機(jī)數(shù)具有隨機(jī)性、前后無(wú)關(guān)聯(lián)性、互異性等特征,使得攻擊者無(wú)法從當(dāng)前獲取消息逆推出上輪消息加密用到隱私信息。基于上述,文中算法具備后向安全性。
將本文算法與其他算法之間進(jìn)行安全性對(duì)比分析結(jié)果如表1所示。在表1中,√表示能夠抵抗該種類型攻擊,×表示無(wú)法抵抗該種類型攻擊。
表1 不同算法間安全性對(duì)比
本文選擇電子標(biāo)簽作為性能分析對(duì)象,選擇電子標(biāo)簽為對(duì)象的因素有:電子標(biāo)簽滿足低成本要求,使得電子標(biāo)簽計(jì)算能力及存儲(chǔ)空間嚴(yán)重受到制約。從電子標(biāo)簽一端的計(jì)算量及存儲(chǔ)量角度出發(fā),將本文算法與其他算法進(jìn)行性能比較,分析結(jié)果如表2所示。
對(duì)表2中出現(xiàn)的符號(hào)所表示的含義解釋如下:AND符號(hào)表示按位與運(yùn)算、OXR符號(hào)表示按位異或運(yùn)算、PUF符號(hào)表示物理不可克隆函數(shù)、HASH符號(hào)表示哈希函數(shù)、Gf符號(hào)表示變形反比例函數(shù)、L符號(hào)表示會(huì)話消息長(zhǎng)度。
在上述不同的運(yùn)算算法中,不同的算法自身具備的計(jì)算量大小不同,其中AND、XOR、Gf三種運(yùn)算都是基于按位運(yùn)算實(shí)現(xiàn),因此三者都屬于超輕量級(jí)的運(yùn)算;而PUF、HASH兩種運(yùn)算則是屬于輕量級(jí)的運(yùn)算?;谏鲜?,本文算法與文獻(xiàn)[11]中算法在電子標(biāo)簽一端的計(jì)算量應(yīng)是大致相當(dāng);本文算法在電子標(biāo)簽一端的計(jì)算量要優(yōu)于文獻(xiàn)[12-14]中電子標(biāo)簽一端的計(jì)算量。
表2 不同算法間性能對(duì)比
從電子標(biāo)簽一端的存儲(chǔ)量角度分析,本文算法電子標(biāo)簽一端需要存放的信息有:ID、K、a,因此存儲(chǔ)量大小為3L。與其他算法相比較,要少于其他算法電子標(biāo)簽一端存儲(chǔ)開(kāi)銷。
綜合表2中計(jì)算量、存儲(chǔ)量角度分析,文中算法雖與文獻(xiàn)[11]中電子標(biāo)簽一端計(jì)算量相當(dāng),但存儲(chǔ)量角度有減少,且文中算法可以彌補(bǔ)文獻(xiàn)[11]中算法存在的安全不足;文中算法計(jì)算量要少于文獻(xiàn)[12-14]中電子標(biāo)簽計(jì)算量,具備推廣優(yōu)勢(shì),同時(shí)文中算法可以彌補(bǔ)上述文獻(xiàn)中算法存在的安全漏洞。
本文給出一個(gè)基于變形反比例函數(shù)實(shí)現(xiàn)的雙向認(rèn)證算法。算法采用變形反比例函數(shù)實(shí)現(xiàn)對(duì)信息加密,根據(jù)變形反比例函數(shù)定義可得,算法計(jì)算量能夠達(dá)到超輕量級(jí)別;同時(shí)變形反比例函數(shù)充分利用加密參數(shù)自身漢明重量參數(shù),能夠減少參量的引入,從而可降低存儲(chǔ)量。文中最后從多個(gè)角度對(duì)文中算法進(jìn)行了詳細(xì)的安全分析,表明文中算法可抵抗重放攻擊、異步攻擊、假冒攻擊等常見(jiàn)類型的攻擊,具備較高的安全性能;性能對(duì)比角度,表明文中算法具備低計(jì)算量特征,能夠在現(xiàn)有低成本RFID系統(tǒng)中推廣使用。