基于Hash函數(shù)的輕量級(jí)RFID雙向認(rèn)證協(xié)議
龔海余1, 李飛1, 趙國(guó)娟2
(1.成都信息工程大學(xué)信息安全工程學(xué)院, 成都610225;2.新疆大學(xué)電氣工程學(xué)院, 烏魯木齊830046)
摘要:通過(guò)對(duì)輕量級(jí)RFID系統(tǒng)中基于Hash函數(shù)認(rèn)證協(xié)議安全性及計(jì)算成本等因素進(jìn)行研究,分析了目前該類協(xié)議存在的安全缺陷和計(jì)算成本。通過(guò)對(duì)協(xié)議的改進(jìn),提出了一種輕量級(jí)RFID雙向認(rèn)證協(xié)議,在滿足同等安全性能的條件下,減輕了標(biāo)簽的計(jì)算成本,提高了標(biāo)簽的計(jì)算性能,并通過(guò)BAN邏輯形式化證明了協(xié)議的安全認(rèn)證過(guò)程。通過(guò)51單片機(jī)與天線模塊仿制電子標(biāo)簽進(jìn)行實(shí)驗(yàn),從安全性、隱私性、協(xié)議性能等因素與其他基于Hash函數(shù)的協(xié)議比較。實(shí)驗(yàn)表明,本協(xié)議認(rèn)證過(guò)程時(shí)間更短,并當(dāng)數(shù)據(jù)庫(kù)標(biāo)簽數(shù)量越多,改進(jìn)協(xié)議的計(jì)算成本優(yōu)越性較其他協(xié)議越突出,具有一定的實(shí)用價(jià)值。
關(guān)鍵詞:RFID;Hash函數(shù);BAN邏輯;認(rèn)證協(xié)議;標(biāo)簽
文章編號(hào):1673-1549(2015)04-0045-05
DOI:10.11863/j.suse.2015.04.10
收稿日期:2015-06-26
作者簡(jiǎn)介:龔海余(1989-),男,湖南婁底人,助教,碩士,主要從事物聯(lián)網(wǎng)安全方面的研究,(E-mail)1243024108@qq.com;李飛(1966-),男,湖南常德人,教授,碩士,主要從事物聯(lián)網(wǎng)技術(shù)、網(wǎng)格計(jì)算方面的研究,(E-mail)512960520@ qq.com
中圖分類號(hào):TP368
文獻(xiàn)標(biāo)志碼:A
引言
無(wú)線射頻識(shí)別(Radio Frequency Identification,簡(jiǎn)稱RFID)是一種非接觸的自動(dòng)識(shí)別技術(shù),是物聯(lián)網(wǎng)核心技術(shù)之一。在最近幾年,物聯(lián)網(wǎng)技術(shù)迅速發(fā)展,已經(jīng)在物流、交通運(yùn)輸、醫(yī)療、批發(fā)零售、設(shè)備資產(chǎn)管理、食品安全等方面取得了較好的應(yīng)用。與此同時(shí),RFID的安全性問(wèn)題也備受關(guān)注。由于RFID的計(jì)算能力跟存儲(chǔ)能力有限,這種硬件上的局限性決定了標(biāo)簽不可能實(shí)現(xiàn)復(fù)雜的運(yùn)算[1]。針對(duì)Hash函數(shù)的RFID認(rèn)證協(xié),從Sarma提出Hash-Lock協(xié)議至張捍東等前人對(duì)協(xié)議的不斷改進(jìn),協(xié)議從沒(méi)有加密機(jī)制到可以抵制重放攻擊與對(duì)標(biāo)簽的跟蹤等攻擊,但受限于標(biāo)簽硬件因素,還是存在計(jì)算成本大、安全性能差、大量標(biāo)簽認(rèn)證時(shí)間長(zhǎng)等缺點(diǎn)。通過(guò)對(duì)前人協(xié)議的分析,提出了一種改進(jìn)協(xié)議,并通過(guò)實(shí)驗(yàn)驗(yàn)證結(jié)果。
1RFID系統(tǒng)簡(jiǎn)介
RFID系統(tǒng)主要由三部分組成[2],包括后臺(tái)數(shù)據(jù)庫(kù)(Database,簡(jiǎn)稱DB)、讀寫器(Reader)、標(biāo)簽(Tag)三部分,如圖1所示。
DB一般是指數(shù)據(jù)處理服務(wù)器,其具有強(qiáng)大的數(shù)據(jù)處理和存儲(chǔ)能力。與DB連接的Reader,其功能是傳遞DB與Tag之間的數(shù)據(jù),一般不具有數(shù)據(jù)處理能力或者有較小的運(yùn)算能力。而Reader與Tag之間的通信則是RFID系統(tǒng)的關(guān)鍵。Tag一般是通過(guò)空中接口與Reader通信,因空中接口的開放性及標(biāo)簽的低數(shù)據(jù)處理導(dǎo)致了通信信息的泄露,且低成本RFID標(biāo)簽的最多只包含10 000個(gè)以內(nèi)的邏輯門電路,而用于安全機(jī)制的門電路基本在3000個(gè)左右[3]。這些硬件上的局限性對(duì)RFID系統(tǒng)安全機(jī)制的設(shè)計(jì)要求提出了挑戰(zhàn)。設(shè)計(jì)一種安全、低成本和高效的RFID認(rèn)證協(xié)議引起了廣大學(xué)者的探討。
圖1 RFID系統(tǒng)結(jié)構(gòu)
2RFID認(rèn)證協(xié)議的安全問(wèn)題
RFID系統(tǒng)在滿足安全性條件下,需要考慮諸多因素。首先,協(xié)議必須能夠?qū)FID系統(tǒng)的數(shù)據(jù)流提供有效的保護(hù);而對(duì)于低成本、計(jì)算資源和存儲(chǔ)受限的標(biāo)簽,協(xié)議所需要的通信量及計(jì)算量等性能指標(biāo)也是必須考慮的因素[4-6]。
3基于Hash函數(shù)的RFID認(rèn)證協(xié)議分析
Sarma等人[7]提出的采用Hash函數(shù)的RFID認(rèn)證協(xié)議,顯然存在很多漏洞。其以明文方式傳輸不可取,標(biāo)簽易被跟蹤、竊聽(tīng),因此可以克隆標(biāo)簽進(jìn)行重放攻擊,還可進(jìn)行中間人攻擊、拒絕服務(wù)攻擊;而Weis提出隨機(jī)Hash-Lock協(xié)議,該協(xié)議在Hash-Lock協(xié)議的基礎(chǔ)上增加了Hash函數(shù)與偽隨機(jī)數(shù)發(fā)生器,通過(guò)增加標(biāo)簽成本換取標(biāo)簽不易被跟蹤等問(wèn)題,且閱讀器需計(jì)算所有標(biāo)簽的Hash值,不但增加了閱讀器的成本,同時(shí)也嚴(yán)重影響標(biāo)簽識(shí)別的效率;NTT實(shí)驗(yàn)室提出的基于Hash鏈的安全協(xié)議,很顯然,當(dāng)標(biāo)簽數(shù)量為n時(shí),該協(xié)議要為每個(gè)標(biāo)簽計(jì)算2n個(gè)Hash函數(shù),計(jì)算和比較次數(shù)都比較大,不適合大量標(biāo)簽的情況;陳雁飛等[8]提出的Reader_Tag安全協(xié)議,該協(xié)議將隨機(jī)數(shù)移到后臺(tái),降低了標(biāo)簽的復(fù)雜性,且前向通道安全,相對(duì)于隨機(jī)Hash-Lock協(xié)議,機(jī)器運(yùn)算負(fù)載減少很多,效率明顯提高,并且實(shí)現(xiàn)了身份的雙向認(rèn)證,有效實(shí)現(xiàn)了安全隱私保護(hù)。但每個(gè)標(biāo)簽保存兩條記錄,不利于標(biāo)簽數(shù)量過(guò)多的情形,且標(biāo)簽的計(jì)算量還是對(duì)標(biāo)簽的成本是個(gè)考驗(yàn);張捍東等人[9]提出的RFID安全協(xié)議,雖然協(xié)議設(shè)計(jì)的比較完善,但協(xié)議認(rèn)證過(guò)程復(fù)雜,閱讀器有計(jì)算和存儲(chǔ)功能,通過(guò)閱讀器的計(jì)算和存儲(chǔ)能力換取安全性能。其次,對(duì)重放攻擊抵抗能力不強(qiáng)。
本文在眾多協(xié)議的基礎(chǔ)上,提出基于Hash函數(shù)的改進(jìn)型的安全認(rèn)證協(xié)議。
改進(jìn)協(xié)議結(jié)構(gòu)如圖2所示。
圖2 改進(jìn)之后的協(xié)議
前提假設(shè):數(shù)據(jù)庫(kù)與閱讀器之間的有線信道為安全信道,而閱讀器與標(biāo)簽之間的空中接口部分為不安全信道;協(xié)議中的Hash函數(shù)為安全函數(shù);為了加快查詢數(shù)據(jù),根據(jù)文獻(xiàn)[10-11]中的建議,在H(Key)上建立特殊索引。
Flag的定義:一般情況下,F(xiàn)lag=0;當(dāng)記錄根據(jù)H(Key)沒(méi)有找到時(shí),F(xiàn)lag=1,根據(jù)H(Key*)查找,并將本次訪問(wèn)的時(shí)間等因素記錄到日志文件,供今后的安全分析使用。
鎖定標(biāo)簽:該協(xié)議DB中保存有:標(biāo)簽ID、更新之前的Key與H(Key)、更新之后的Key*與H(Key*);標(biāo)簽中也同時(shí)寫入標(biāo)簽ID、Key、s;閱讀器中保存有s。
解鎖標(biāo)簽:
(1) 閱讀器發(fā)送隨機(jī)數(shù)R給數(shù)據(jù)庫(kù)DB,并把查詢字段Query,R⊕s發(fā)給標(biāo)簽Tag。
(2) 標(biāo)簽Tag把R⊕s與s異或得到R,計(jì)算H(Key)⊕R,并由閱讀器轉(zhuǎn)發(fā)給數(shù)據(jù)庫(kù)。
(3) 數(shù)據(jù)庫(kù)接口計(jì)算H(Key)⊕R⊕R得到H(Key),根據(jù)H(Key)查找數(shù)據(jù)庫(kù)(Flag默認(rèn)為0)。
① 如果能查找到一條記錄,則把查找到的記錄的IDk與R計(jì)算得到H(IDk⊕R),并把IDk、H(IDk⊕R)發(fā)給閱讀器Reader,同時(shí)數(shù)據(jù)庫(kù)信息更新為:H(Key*)=H(H(Key⊕R)),H(Key)=H(Key*),ID,Key=Key*,Key*=H(Key⊕R)。更新完成后進(jìn)入步驟(4)。
② 若此次查詢沒(méi)有查找到數(shù)據(jù),則標(biāo)志位Flag=1,則根據(jù)H(Key*)查找,若查到一條記錄,按前面的操作,并把相關(guān)數(shù)據(jù)記錄并保存到日志文件中。若沒(méi)有查到數(shù)據(jù)就中斷通信。
(4) 閱讀器Reader把H(IDk⊕R)發(fā)給標(biāo)簽Tag,然后標(biāo)簽根據(jù)自身存儲(chǔ)的ID、R,計(jì)算H(ID⊕R)。如果H(ID)與傳過(guò)來(lái)的H(IDk)不相等,則結(jié)束通信;如果相等,更新Key=H(Key⊕R);如果遲遲沒(méi)有接收到消息或者消息為不正確,則不更新Key。
此認(rèn)證協(xié)議在數(shù)據(jù)庫(kù)中的記錄數(shù)減半,不但提高了查找的速度,而且標(biāo)簽計(jì)算也大大減小。
為了證明改進(jìn)協(xié)議的先進(jìn)性和安全性,下面采用BAN形式化語(yǔ)言分析與驗(yàn)證。
4BAN分析及改進(jìn)協(xié)議的演示
(1) 根據(jù)網(wǎng)絡(luò)安全協(xié)議形式化分析與驗(yàn)證的基本方法,通過(guò)簡(jiǎn)化本協(xié)議,提煉出了本安全協(xié)議的基本模型:①A→B:A向B發(fā)送請(qǐng)求Query;②B→A發(fā)送H(Key)應(yīng)答;③A:A收到H(Key)之后,查找數(shù)據(jù)庫(kù)找到相同的記錄,確定B的合法性;④A→B:A向B發(fā)送H(IDk);⑤B:B根據(jù)自身的ID,通過(guò)計(jì)算得到H(ID),比較A發(fā)來(lái)的H(ID),確認(rèn)A的合法性;
(2) 使用BAN形式證明理論,通過(guò)對(duì)協(xié)議過(guò)程省略和抽象,僅保留與安全分析有關(guān)的內(nèi)容,協(xié)議形式化簡(jiǎn)化如下:
①A?{Key,R}k;②B?{ID,R}k;
(3) 本安全認(rèn)證協(xié)議的初始化假設(shè):
(4)BAN分析本改進(jìn)協(xié)議的目標(biāo):
(5) 本協(xié)議推理過(guò)程:
同理,可以推理得出B|≡ID。閱讀器與Tag之間可以通過(guò)雙向相互認(rèn)證,從而能夠信用對(duì)方。因此達(dá)到了認(rèn)證的目的。
假設(shè)數(shù)據(jù)庫(kù)中存儲(chǔ)一條記錄,見(jiàn)表1。
表1 數(shù)據(jù)初始化
解釋:初始化時(shí),標(biāo)簽的ID為1,Key與Key*相等。H(Key*)與H(Key)相等。同時(shí),相應(yīng)的標(biāo)簽初始化為ID=1,Key=A,F(xiàn)lag=0。
閱讀器給數(shù)據(jù)庫(kù)DB發(fā)送隨機(jī)數(shù)R,同時(shí),閱讀器加上認(rèn)證查詢Query,連同R⊕s一起發(fā)給標(biāo)簽Tag。Tag計(jì)算H(Key)=H(A),H(A)與隨機(jī)數(shù)R異或得到H(A)⊕R,由閱讀器轉(zhuǎn)發(fā)給數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)得到H(A)⊕R與R異或,即:H(A)⊕R⊕R=H(A),再根據(jù)Flag=0(默認(rèn)),通過(guò)H(A)查找數(shù)據(jù)庫(kù)表,得到ID=1、Key=A,能找到記錄說(shuō)明標(biāo)簽為合法標(biāo)簽,標(biāo)簽認(rèn)證過(guò)程結(jié)束。根據(jù)通過(guò)認(rèn)證得到的記錄(1,A)和r計(jì)算H(1⊕r),然后通過(guò)閱讀器轉(zhuǎn)發(fā)H(1⊕R)給標(biāo)簽Tag。如果找不到記錄,認(rèn)證結(jié)束,發(fā)送EOF由閱讀器轉(zhuǎn)發(fā)給標(biāo)簽。而此時(shí),數(shù)據(jù)庫(kù)中的數(shù)據(jù)將發(fā)生變化,見(jiàn)表2。
表2 數(shù)據(jù)庫(kù)中數(shù)據(jù)變化后的結(jié)果
當(dāng)標(biāo)簽Tag接收到H(1⊕R)后,標(biāo)簽Tag根據(jù)與自己計(jì)算的H(1)是否相等。如果相等,則閱讀器通過(guò)驗(yàn)證,更新標(biāo)簽Tag中的Key=H(A⊕R),標(biāo)簽解鎖,開放標(biāo)簽中數(shù)據(jù)段中的數(shù)據(jù)。如果接收到EOF或者根本沒(méi)有接收到信號(hào),標(biāo)簽不更新Key。
特別說(shuō)明:當(dāng)下次驗(yàn)證時(shí),如果是Flag=0,則根據(jù)H(Key)查找到IDk、Key。如果是Flag=1,則根據(jù)H(Key*)查找IDk、Key*。
5改進(jìn)協(xié)議驗(yàn)證及性能分析
實(shí)驗(yàn)環(huán)境及過(guò)程:通過(guò)開發(fā)板上的51單片機(jī)加天線模塊構(gòu)成標(biāo)簽進(jìn)行實(shí)驗(yàn),當(dāng)上位機(jī)程序接收到閱讀器發(fā)送的隨機(jī)數(shù)R進(jìn)行定時(shí)開始,到閱讀器正常認(rèn)證后通過(guò)串口通知上位機(jī)作為一次認(rèn)證過(guò)程。上位機(jī)累加時(shí)間差通過(guò)計(jì)算得到單個(gè)標(biāo)簽的平均認(rèn)證時(shí)間(表3),并通過(guò)標(biāo)簽進(jìn)行多次認(rèn)證分析得知:當(dāng)數(shù)據(jù)庫(kù)中存有標(biāo)簽數(shù)量越多(通過(guò)生成隨機(jī)數(shù)的方式快速插入數(shù)據(jù)庫(kù)導(dǎo)致數(shù)據(jù)記錄條數(shù)增多),單個(gè)標(biāo)簽的查詢性能提高越明顯。
表3 各種基于Hash函數(shù)的RFID安全協(xié)議的平均認(rèn)證時(shí)間
從本實(shí)驗(yàn)數(shù)據(jù)中發(fā)現(xiàn),Hash-Lock協(xié)議認(rèn)證簡(jiǎn)單,認(rèn)證時(shí)間短,但有很大的安全問(wèn)題。隨機(jī)Hash-Lock把數(shù)據(jù)計(jì)算轉(zhuǎn)移到閱讀器,較Hash-Lock協(xié)議有一定的安全性。通過(guò)與Reader-Tag安全協(xié)議和基于Hash的RFID安全協(xié)議的研究中的方法進(jìn)行比較發(fā)現(xiàn),本協(xié)議的平均認(rèn)證時(shí)間比這兩種協(xié)議都短,且安全性能比兩者都高,從而證明了本協(xié)議的優(yōu)越性。從上面的認(rèn)證過(guò)程發(fā)現(xiàn),改進(jìn)協(xié)議的電子標(biāo)簽計(jì)算成本也是有很大優(yōu)越性的,幾種協(xié)議的計(jì)算成本見(jiàn)表4。
表4 電子標(biāo)簽的計(jì)算成本與存儲(chǔ)成本對(duì)比
注:Tag的計(jì)算成本包括Hash函數(shù)計(jì)算次數(shù)+隨機(jī)數(shù)發(fā)生器產(chǎn)生次數(shù)
5.2.1安全性分析
改進(jìn)協(xié)議是在陳雁飛等的基礎(chǔ)上提出的,改進(jìn)后的協(xié)議能抵抗假冒攻擊、重放攻擊、中間人攻擊、通信數(shù)據(jù)流分析攻擊,滿足一定的安全需求。
5.2.2隱私性分析
改進(jìn)協(xié)議的數(shù)據(jù)流都采用Hash單向散列函數(shù)進(jìn)行加密,且每次數(shù)據(jù)流的內(nèi)容都會(huì)發(fā)生改變,不存在跟蹤標(biāo)簽,非法訪問(wèn)標(biāo)簽數(shù)據(jù)信息泄漏隱私等情況。
5.2.3協(xié)議性能分析
改進(jìn)協(xié)議最大的特點(diǎn)就是滿足大量標(biāo)簽識(shí)別的情況。通過(guò)對(duì)協(xié)議的改進(jìn)和后臺(tái)數(shù)據(jù)庫(kù)的重新設(shè)計(jì),不僅大大提高了數(shù)據(jù)查詢的速度,而且減少了標(biāo)簽存儲(chǔ)成本。
6結(jié)束語(yǔ)
本協(xié)議是在基于RFID系統(tǒng)的Reader-Tag安全協(xié)議上提出的改進(jìn)協(xié)議,在此基礎(chǔ)上不但重新設(shè)計(jì)了數(shù)據(jù)庫(kù),并且充分利用了兩個(gè)性質(zhì):(1)每次驗(yàn)證綁定隨機(jī)數(shù)使得每次通信的內(nèi)容不同;(2)利用A⊕B⊕B=A的性質(zhì)達(dá)到安全通信的目的。改進(jìn)協(xié)議具有運(yùn)算成本低、標(biāo)簽負(fù)載小、認(rèn)證效率高、安全性好等優(yōu)點(diǎn),是一種實(shí)用的算法。實(shí)驗(yàn)表明:隨著數(shù)據(jù)庫(kù)中標(biāo)簽數(shù)量的增多,它的優(yōu)越性就更能表現(xiàn)出來(lái)。另外,本協(xié)議也有不足之處:(1)本認(rèn)證協(xié)議因?yàn)樵赗eader-Tag協(xié)議的基礎(chǔ)上改進(jìn)的,實(shí)際應(yīng)用過(guò)程中的諸多因素的干擾沒(méi)有考慮,但不會(huì)影響本協(xié)議針對(duì)大量標(biāo)簽結(jié)果的趨勢(shì);(2)本協(xié)議如果s被內(nèi)部人員利用,通過(guò)多次重放攻擊,可以導(dǎo)致失步現(xiàn)象。以上不足之處在接下來(lái)的工作中重點(diǎn)解決。
參 考 文 獻(xiàn):
[1]金永明,吳棋瀅,石志強(qiáng),等.基于PRF的RFID輕量級(jí)認(rèn)證協(xié)議研究.計(jì)算機(jī)研究與發(fā)展,2014,51(7):1506-1514.
[2]于廣威,何文才.基于RFID技術(shù)的身份識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).通信技術(shù),2010,43(4):106-108.
[3]林貴彬,王永華,詹宜巨.一種基于隨機(jī)序列的RFID安全協(xié)議.計(jì)算機(jī)工程,2008,34(20):151-156.
[4]伍新華,唐翠婷.一種基于Hash的RFID雙向認(rèn)證協(xié)議.武漢理工大學(xué)學(xué)報(bào):交通科學(xué)與工程版,2011,35(3):571-574.
[5]丁振華,李錦濤,馮波.基于Hash函數(shù)的RFID安全認(rèn)證協(xié)議研究.計(jì)算機(jī)研究與發(fā)展,2009,46(4):583-592.
[6]張兵,馬新新,秦志光.輕量級(jí)RFID雙向認(rèn)證協(xié)議設(shè)計(jì)與分析.電子科技大學(xué)學(xué)報(bào),2013,42(3):425-430.
[7]曾麗華,熊璋.Key值更新隨機(jī)Hash鎖對(duì)RFID安全隱私的加強(qiáng).計(jì)算機(jī)工程,2007,33(3):151-154.
[8]陳雁飛,馬成勇,楊慧.基于RFID系統(tǒng)的Reader-Tag安全協(xié)議的設(shè)計(jì)及分析.計(jì)算機(jī)與數(shù)字工程,2008,36(9):128-131.
[9]張捍東,丁磊,岑豫皖.基于Hash函數(shù)的RFID安全協(xié)議研究.計(jì)算機(jī)工程與設(shè)計(jì),2013,34(11):3766-3769.
[10]趙海,歐陽(yáng)元新,熊璋.用于RFID中間件的主存數(shù)據(jù)庫(kù)索引結(jié)構(gòu).華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2012,40(S1):91-94.
[11]Wang Wenchuang,Wang Keren.RFID Protocols Based on Data Buffer Mechanism.Information and Electronic Engineering,2008,6(5):372-378.
[12]Luo Zongwei,Zhou Shijie,Li Jenny.Enhancement of a Lightweight RFID Security Protocol.Journal of University of Electronic Science and Technology of China,2007,36(6):1172-1178.
The Duplex Authentication Protocol of Lightweight RFID Based on Hash Function
GONGHaiyu1,LIFei1,ZHAOGuojuan2
(1.School of Information Security Engineering, Chengdu University of Information Technology, Chengdu 610225, China;
2.College of Electrical Engineering, Xinjiang University, Urumchi 830046, China)
Abstract:Through the research on security and calculation cost and other factors of authentication protocol base on hash function in lightweight radio frequency identification(RFID)system, the security defects and computational cost of this kind of protocol are analyzed. Through the improvement of the protocol, a kind of lightweight RFID mutual authentication protocol is proposed. When it meets the condition of the same security property, the calculation cost of the tag is reduced, and the calculation performance of the tag is improved. And the safety certification process of the protocol is proved through the BAN logic formalization. Then through the experiment of the 51 ECU and antenna module to copy electronic tag, it was compared with other protocols which based on Hash function from the security, privacy, agreement and other factors. The experiments show, the authentication process time of this protocol is shorter, and the more tags in the database, the better superiority of the improved protocol’s calculate cost. So, this protocol has a certain practical value.
Key words: RFID; hash function; BAN logic; authentication protocol; tag