本發(fā)明涉及應(yīng)用于物聯(lián)網(wǎng)的RFID標簽安全認證方法與裝置。
背景技術(shù):
隨著無線射頻技術(shù)(Radio Frequency Identification,RFID)在物聯(lián)網(wǎng)中的廣泛應(yīng)用,RFID系統(tǒng)的安全問題也日益突出,這已經(jīng)成為制約RFID技術(shù)發(fā)展的關(guān)鍵問題之一,尤其是低成本RFID系統(tǒng),由于受到設(shè)備成本的限制,安全問題尤為突出。為了推動RIFD系統(tǒng)的普及應(yīng)用,EPC global和ISO制定了EPC-C1G2標準,并被ISO接收為國際標準ISO18000-6C。由于C1G2標準主要設(shè)計目標是針對低成本標簽,復(fù)雜度低,故存在一定的安全隱患,為了提高標準的安全性,LO和Yeh提出了兼容EPC-C1G2標準的安全協(xié)議,本文對LO和Yeh所提出協(xié)議安全性進行分析,找出了協(xié)議的安全漏洞,并在此基礎(chǔ)上提出了應(yīng)對密鑰攻擊的低成本RFID改進協(xié)議;但是該協(xié)議存在一定的安全漏洞。攻擊者僅需攔截標簽和閱讀器之間的對話,即能分析出標簽密碼信息。
技術(shù)實現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供應(yīng)用于物聯(lián)網(wǎng)的RFID標簽安全認證方法與裝置,其能抵御竊聽、重放、跟蹤、阻斷、模擬等多種攻擊。
本發(fā)明的目的采用以下技術(shù)方案實現(xiàn):
應(yīng)用于物聯(lián)網(wǎng)的RFID標簽安全認證方法,包括如下步驟:
S10、閱讀器隨機生成參數(shù)N1,并將參數(shù)N1發(fā)送給標簽;
S11、標簽隨機生成參數(shù)N2,計算參數(shù)和參數(shù)并將參數(shù)M1,參數(shù)M2和flag發(fā)送至閱讀器;
S12、閱讀器將flag設(shè)為1,并將參數(shù)M1,參數(shù)M2,參數(shù)N1和flag發(fā)送至后臺數(shù)據(jù)庫;
S13、后臺數(shù)據(jù)庫設(shè)置參數(shù)并計算再判斷和EPCX||Kx||N1||N2||CRC(EPCX||N1||N2)是否相等;如果是,則后臺數(shù)據(jù)庫認證成功,執(zhí)行S14;否則結(jié)束流程;
S14、后臺數(shù)據(jù)庫隨機生成兩個參數(shù)N3和N4,并計算參數(shù)和參數(shù)更新共享密鑰將參數(shù)M3、參數(shù)M4和對象數(shù)據(jù)發(fā)送給閱讀器,以使閱讀器將參數(shù)M3、參數(shù)M4發(fā)送至標簽;執(zhí)行S15;
S15、標簽設(shè)置參數(shù)以及計算判斷與EPCX||N4||CRC(EPCX||N4)是否相等,如果是則標簽認證成功,更新共享密鑰并設(shè)置flag=0;否則結(jié)束流程。
作為優(yōu)選,S10之前還包括如下步驟:
S00、當flag=0執(zhí)行S10,當flag=1時執(zhí)行S20;
S20、閱讀器隨機生成參數(shù)N'1,并將參數(shù)N'1發(fā)送給標簽;
S21、標簽隨機生成參數(shù)N′2,計算參數(shù)和參數(shù)并將參數(shù)M'1,參數(shù)M'2和flag發(fā)送至閱讀器;
S22、閱讀器將參數(shù)M′1,參數(shù)M′2,參數(shù)N′1和flag發(fā)送至后臺數(shù)據(jù)庫;
S23、后臺數(shù)據(jù)庫設(shè)置參數(shù)以及計算判斷和EPCXDB||Kx||N′1||N′2||CRC(EPCX||N′1||N′2)是否相等,如果是則系統(tǒng)通過認證,執(zhí)行S24;否則結(jié)束流程;
S24、后臺數(shù)據(jù)庫隨機生成兩個參數(shù)N′3和N′4,并計算參數(shù)和參數(shù)更新共享密鑰將參數(shù)M′3、參數(shù)M′4和對象數(shù)據(jù)發(fā)送給閱讀器,以使閱讀器將參數(shù)M′3、參數(shù)M′4發(fā)送至標簽;執(zhí)行S25;
S25、標簽設(shè)置參數(shù)以及計算判斷與EPCX||N′4||CRC(EPCX||N′4)是否相等,如果是則標簽認證成功,更新共享密鑰并設(shè)置flag=0;否則結(jié)束流程。
應(yīng)用于物聯(lián)網(wǎng)的RFID標簽安全認證裝置,包括:
第一生成模塊,應(yīng)用于閱讀器,用于隨機生成參數(shù)N1,并將參數(shù)N1發(fā)送給標簽;
第一處理模塊,應(yīng)用于標簽,用于隨機生成參數(shù)N2,計算參數(shù)和參數(shù)并將參數(shù)M1,參數(shù)M2和flag發(fā)送至閱讀器;
第一發(fā)送模塊,應(yīng)用于閱讀器,用于將flag設(shè)為1,并將參數(shù)M1,參數(shù)M2,參數(shù)N1和flag發(fā)送至后臺數(shù)據(jù)庫;
第一判斷模塊,應(yīng)用于后臺數(shù)據(jù)庫,用于設(shè)置參數(shù)并計算再判斷和EPCX||Kx||N1||N2||CRC(EPCX||N1||N2)是否相等;如果是,則后臺數(shù)據(jù)庫認證成功,執(zhí)行第二處理模塊;否則結(jié)束;
第二處理模塊,應(yīng)用于后臺數(shù)據(jù)庫,用于隨機生成兩個參數(shù)N3和N4,并計算參數(shù)和參數(shù)更新共享密鑰將參數(shù)M3、參數(shù)M4和對象數(shù)據(jù)發(fā)送給閱讀器,以使閱讀器將參數(shù)M3、參數(shù)M4發(fā)送至標簽;執(zhí)行第二判斷模塊;
第二判斷模塊,應(yīng)用于標簽,用于設(shè)置參數(shù)以及計算判斷與EPCX||N4||CRC(EPCX||N4)是否相等,如果是則標簽認證成功,更新共享密鑰并設(shè)置flag=0;否則結(jié)束。
作為優(yōu)選,RFID認證裝置還包括:
總判斷模塊,用于在flag=0執(zhí)行第一生成模塊,在flag=1時執(zhí)行第二生成模塊;
第二生成模塊,應(yīng)用于閱讀器,用于隨機生成參數(shù)N'1,并將參數(shù)N'1發(fā)送給標簽;
第三處理模塊,應(yīng)用于標簽,用于隨機生成參數(shù)N′2,計算參數(shù)和和參數(shù);并將參數(shù)M'1,參數(shù)M'2和flag發(fā)送至閱讀器;
第二發(fā)送模塊,應(yīng)用于閱讀器,用于將參數(shù)M′1,參數(shù)M′2,參數(shù)N′1和flag發(fā)送至后臺數(shù)據(jù)庫;
第三判斷模塊,應(yīng)用于后臺數(shù)據(jù)庫,用于計算參數(shù)和判斷和EPCXDB||Kx||N′1||N′2||CRC(EPCX||N′1||N′2)是否相等,如果相同,則系統(tǒng)通過認證,執(zhí)行第四處理模塊;否則結(jié)束;
第四處理模塊,應(yīng)用于后臺數(shù)據(jù)庫,用于隨機生成兩個參數(shù)N′3和N′4,并計算參數(shù)和參數(shù)更新共享密鑰將參數(shù)M′3、參數(shù)M′4和對象數(shù)據(jù)發(fā)送給閱讀器,以使閱讀器將參數(shù)M′3、參數(shù)M′4發(fā)送至標簽;執(zhí)行第四判斷模塊;
第四判斷模塊,應(yīng)用于標簽,用于設(shè)置參數(shù)以及計算判斷與EPCX||N′4||CRC(EPCX||N′4)是否相等,如果是則標簽認證成功,更新共享密鑰并設(shè)置flag=0;否則結(jié)束。
相比現(xiàn)有技術(shù),本發(fā)明的有益效果在于:通過在服務(wù)器上保存每個標簽新、舊標識,有效的解決了服務(wù)器和標簽的同步問題,進一步提高了系統(tǒng)安全性。同時能有效抵御竊聽攻擊、重放攻擊、跟蹤攻擊、阻斷攻擊、模擬攻擊,具有較高的安全性和實用性。
附圖說明
圖1為本發(fā)明的認證方法的流程圖一;
圖2為本發(fā)明的認證方法的流程圖二;
圖3為本發(fā)明的認證裝置的模塊圖。
具體實施方式
下面,結(jié)合附圖以及具體實施方式,對本發(fā)明做進一步描述:
應(yīng)用于物聯(lián)網(wǎng)的RFID標簽安全認證方法,應(yīng)用于RFID通信系統(tǒng),包括閱讀器、標簽和后臺數(shù)據(jù)庫。如圖1至圖2所示,包括如下步驟:
步驟100、當flag=0執(zhí)行步驟101,當flag=1時執(zhí)行步驟201。
步驟101、閱讀器隨機生成參數(shù)N1,并將參數(shù)N1發(fā)送給標簽。
步驟102、標簽將參數(shù)M1,參數(shù)M2和flag發(fā)送至閱讀器;其中:
N2為標簽隨機生成的參數(shù);EPC(Electronic Product Code)即電子產(chǎn)品編碼,是RFID的編碼系統(tǒng)。它建立在EAN.UCC(即全球統(tǒng)一標識系統(tǒng))條型編碼的基礎(chǔ)之上,并對該條形編碼系統(tǒng)做了一些擴充,用以實現(xiàn)對單品進行標志。EPCX是標簽x的EPC編碼,PRNG是偽隨機噪聲發(fā)生器,CRC是循環(huán)冗余校驗,f是散列函數(shù);Kx是標簽x的共享密鑰。
步驟103、閱讀器將flag設(shè)為1,并將參數(shù)M1,參數(shù)M2,參數(shù)N1和flag發(fā)送至后臺數(shù)據(jù)庫;
步驟104、后臺數(shù)據(jù)庫根據(jù)EPCX,設(shè)置參數(shù)并計算再判斷是否等于EPCX||Kx||N1||N2||CRC(EPCX||N1||N2);如果是,則后臺數(shù)據(jù)庫認證成功,并執(zhí)行步驟105;否則結(jié)束流程。此時后臺數(shù)據(jù)庫已經(jīng)進行了驗證,在后臺數(shù)據(jù)庫這邊已經(jīng)驗證通過。
步驟105、后臺數(shù)據(jù)庫隨機產(chǎn)生兩個參數(shù)N3和N4,并計算參數(shù)M3和參數(shù)M4,具體:
更新共享密鑰
通過安全通道將參數(shù)M3、參數(shù)M4和對象數(shù)據(jù)發(fā)送給閱讀器,以使閱讀器將參數(shù)M3、參數(shù)M4發(fā)送至標簽;執(zhí)行步驟106。安全通道是網(wǎng)絡(luò)層的協(xié)議,在網(wǎng)絡(luò)層下面還有物理層的協(xié)議保障安全。
步驟106、標簽設(shè)置參數(shù)以及計算判斷與EPCX||N4||CRC(EPCX||N4)是否相等,如果是則標簽認證成功,更新共享密鑰并設(shè)置flag=0;否則結(jié)束流程。此時標簽已經(jīng)通過驗證,也就是此次通信雙方都完成了驗證。
步驟201、閱讀器隨機生成一個參數(shù)N'1,并將參數(shù)N'1發(fā)送給標簽。
步驟202、標簽將參數(shù)M'1,參數(shù)M'2和flag發(fā)送至閱讀器;其中:
N′2為標簽隨機生成的參數(shù)。
步驟203、閱讀器將參數(shù)M′1,參數(shù)M′2,參數(shù)N′1和flag發(fā)送至后臺數(shù)據(jù)庫;
步驟204、后臺數(shù)據(jù)庫根據(jù)EPCX和KX,設(shè)置參數(shù)并計算判斷是否等于EPCXDB||Kx||N′1||N′2||CRC(EPCX||N′1||N′2),如果相同,則系統(tǒng)通過認證,執(zhí)行步驟205;否則結(jié)束流程。
步驟205、后臺數(shù)據(jù)庫隨機生成兩個參數(shù)N′3和N′4,并計算參數(shù)M′3和參數(shù)M′4,具體:
更新共享密鑰
通過安全通道將參數(shù)M′3、參數(shù)M′4和對象數(shù)據(jù)發(fā)送給閱讀器,以使閱讀器將參數(shù)M′3、參數(shù)M′4發(fā)送至標簽;執(zhí)行步驟206。
步驟206、標簽設(shè)置參數(shù)以及計算判斷與EPCX||N′4||CRC(EPCX||N′4)是否相等,如果是則標簽認證成功,更新密鑰并設(shè)置flag=0;否則結(jié)束流程。
以下將對協(xié)議進行邏輯分析,證明協(xié)議的可行性,為說明方便,我們做出以下定義和邏輯假定:
P信任X(P believes X):P信任X是正確的。(1)
P接收X(P sees X):P接收到包含了X的信息(2)
P發(fā)送X(P said X):P發(fā)送了包括X的信息。(3)
P控制X(P controls X):P是X的權(quán)威,P的權(quán)限大于X,能夠控制X(4)
fresh(X):表示X在之前沒有發(fā)送過。(5)
秘鑰K被P、Q共享(6)
{X}K:X被秘鑰K保護(7)
S信任
T信任
S信任T控制{EPCx}(10)
T信任S控制{EPCx}(11)
S信任fresh(N1,N2)(12)
T信任fresh(N3,N4)(13)
由式1、2可知,如果P信任P接收{(diào)X}K,則P認為X是由Q發(fā)送的。(14)
由式1、3、5可知,如果P信任fresh(X),并且P信任Q發(fā)送X,則P認為Q信任X(15)
規(guī)則3:如果P信任Qcontrols X,并且P信任Q信任X,則我們認為P信任X(16)
規(guī)則4:如果P接收到包含了(X,Y)的信息,則P接收到包含X的信息(17)
由式4、5可知,如果P信任fresh(X),則P信任fresh(X,Y)(18)
協(xié)議具體實現(xiàn)如下:
1、S接收到
2、T、S共享Kx
3、S信任T發(fā)送了{EPCx,N1,N2}結(jié)論1
4、S信任{N1,N2}之前沒有被發(fā)送過
5、S信任{EPCx,N1,N2}之前沒有發(fā)送過,結(jié)論2
6、由結(jié)論1、2可得:S信任T信任{EPCx,N1,N2}結(jié)論3
7、由規(guī)則2、假設(shè)3,S信任T控制{EPCx}
8、由規(guī)則3,S信任{EPCx}結(jié)論4
9、由第三步可知,T接收到
10、由假設(shè)2,T信任T、S共享Kx,
11、由規(guī)則1,T信任T發(fā)送了{EPCx,N4}結(jié)論5
12、由假設(shè)6可知,T信任{N4}之前沒有發(fā)送過
13、由規(guī)則5,T信任{EPCx,N4}之前沒有發(fā)送過
14、由規(guī)則2,T信任S信任{EPCx,N4}結(jié)論7
15、由假設(shè)4,T信任S控制{EPCx}結(jié)論7
16、由規(guī)則3,T信任{EPCx}
基于結(jié)論3,4,7,8,通過使用檢索值EPCx,S和T能夠相互認證。那是非常明顯,協(xié)議能夠獲得相互認證的特性。另外,由于T和S能夠成功驗證{epcx,n1}、{epcx,n4},則證明這種密鑰更新機制是可行的。
在RFID中,重放攻擊主要包括兩種,是攻擊者重放標簽的響應(yīng)去偽造標簽的存在,是攻擊者模擬閱讀器重放查詢?nèi)ス魳撕灐5钟胤殴糁饕袝r間戳和參數(shù)兩種辦法,本協(xié)議采用參數(shù)的辦法抵御重放攻擊。
首先,在本方法中,重放標簽的響應(yīng)是沒有用的。因為在標簽、讀寫器、服務(wù)器之間在通信時,都包含了N1、N2、N3等參數(shù),每次通信都會對相應(yīng)的參數(shù)進行更新,而重放攻擊的數(shù)據(jù)包含的是舊參數(shù),閱讀器就可以通過比較接收到得參數(shù)和存儲的參數(shù)來判斷標簽是否存在。
其次,重放閱讀器的查詢對協(xié)議也不能構(gòu)成威脅。因為標簽收到的數(shù)據(jù)M2,是包含了標簽自己發(fā)出的參數(shù)N2,只需將接收到的參數(shù)與之前發(fā)出的參數(shù)進行比較即可判斷是否需要發(fā)出響應(yīng)。
攻擊者經(jīng)常通過偽造成閱讀器發(fā)送查詢信息,誘騙標簽發(fā)送響應(yīng),并根據(jù)響應(yīng)的內(nèi)容來跟蹤標簽的運動。在本協(xié)議中,標簽只會對合法的查詢信息進行響應(yīng)。如果攻擊者不知道標簽的ID,是無法誘使標簽返回信息的,而查詢和響應(yīng)都是經(jīng)過加密的,不會泄露標簽的ID信息。攻擊者即使重放查詢,并捕獲響應(yīng),仍然不知道發(fā)送響應(yīng)的標簽ID,不能跟蹤他想要的標簽。如果標簽的ID泄露,但由于每次標簽產(chǎn)生的N2不同,發(fā)送的內(nèi)容也不相同,故無法跟蹤。即使一個標簽信息泄露,其所有的秘密數(shù)據(jù)被攻擊者捕獲,但由于我們的密鑰是自動更新的,所以攻擊者不能捕獲到該標簽之前的運動軌跡。
竊聽攻擊是攻擊者通過偷聽閱讀器和標簽之間的通信,獲取標簽ID,共享密鑰等信息,同時,利用這些信息跟蹤標簽。本協(xié)議可以有效的抵御竊聽攻擊。
根據(jù)Shannon理論,如果在異或操作中至少有一項是隨機的,那么一個簡單的異或運算就能夠很好的對傳輸數(shù)據(jù)進行加密。在本協(xié)議中,需傳輸?shù)男畔1、M2分別與進行異或運算,參數(shù)N2、N3在每一輪傳輸中都會改變,因此,閱讀器與標簽之間的數(shù)據(jù)通信是安全的。
DoS攻擊是指通過暴力手段耗盡被攻擊對象的資源,使得服務(wù)器或網(wǎng)絡(luò)無法提供正常的服務(wù)或資源訪問。關(guān)于DoS攻擊,我們通過設(shè)置flat位來抵御DoS攻擊,當前一次通信成功時,flag=0,其中:當flag=1時,由于EPC時是不變化的,那即使被攻擊者異常打斷,也可以重新更新共享密鑰KX。
因為被動式RFID標簽沒有電源,所以安全算法的性能就至關(guān)重要,下面,我們將從計算能力和存儲空間二個方面進行分析:
本發(fā)明提出了安全、高效、實用的,能適用于低成本RFID系統(tǒng)的雙向認證方法。該方法通過在服務(wù)器上保存每個標簽新、舊標識,有效的解決了服務(wù)器和標簽的同步問題,進一步提高了系統(tǒng)安全性。同時能有效抵御竊聽攻擊、重放攻擊、跟蹤攻擊、阻斷攻擊、模擬攻擊,具有較高的安全性和實用性。
應(yīng)用于物聯(lián)網(wǎng)的RFID標簽安全認證裝置,如圖3所示,包括:
總判斷模塊,用于在flag=0執(zhí)行第一生成模塊,在flag=1時執(zhí)行第二生成模塊;
第一生成模塊,應(yīng)用于閱讀器,用于隨機生成參數(shù)N1,并將參數(shù)N1發(fā)送給標簽;
第一處理模塊,應(yīng)用于標簽,用于隨機生成參數(shù)N2,計算參數(shù)和參數(shù)并將參數(shù)M1,參數(shù)M2和flag發(fā)送至閱讀器;
第一發(fā)送模塊,應(yīng)用于閱讀器,用于將flag設(shè)為1,并將參數(shù)M1,參數(shù)M2,參數(shù)N1和flag發(fā)送至后臺數(shù)據(jù)庫;
第一判斷模塊,應(yīng)用于后臺數(shù)據(jù)庫,用于設(shè)置參數(shù)并計算再判斷和EPCX||Kx||N1||N2||CRC(EPCX||N1||N2)是否相等;如果是,則后臺數(shù)據(jù)庫認證成功,執(zhí)行第二處理模塊;否則結(jié)束;
第二處理模塊,應(yīng)用于后臺數(shù)據(jù)庫,用于隨機生成兩個參數(shù)N3和N4,并計算參數(shù)和參數(shù)更新共享密鑰將參數(shù)M3、參數(shù)M4和對象數(shù)據(jù)發(fā)送給閱讀器,以使閱讀器將參數(shù)M3、參數(shù)M4發(fā)送至標簽;執(zhí)行第二判斷模塊;
第二判斷模塊,應(yīng)用于標簽,用于設(shè)置參數(shù)以及計算判斷與EPCX||N4||CRC(EPCX||N4)是否相等,如果是則標簽認證成功,更新共享密鑰并設(shè)置flag=0;否則結(jié)束。
第二生成模塊,應(yīng)用于閱讀器,用于隨機生成參數(shù)N'1,并將參數(shù)N'1發(fā)送給標簽;
第三處理模塊,應(yīng)用于標簽,用于隨機生成參數(shù)N′2,計算參數(shù)和和參數(shù);并將參數(shù)M'1,參數(shù)M'2和flag發(fā)送至閱讀器;
第二發(fā)送模塊,應(yīng)用于閱讀器,用于將參數(shù)M′1,參數(shù)M′2,參數(shù)N′1和flag發(fā)送至后臺數(shù)據(jù)庫;
第三判斷模塊,應(yīng)用于后臺數(shù)據(jù)庫,用于計算參數(shù)和判斷和EPCXDB||Kx||N′1||N′2||CRC(EPCX||N′1||N′2)是否相等,如果相同,則系統(tǒng)通過認證,執(zhí)行第四處理模塊;否則結(jié)束;
第四處理模塊,應(yīng)用于后臺數(shù)據(jù)庫,用于隨機生成兩個參數(shù)N′3和N′4,并計算參數(shù)和參數(shù)更新共享密鑰將參數(shù)M′3、參數(shù)M′4和對象數(shù)據(jù)發(fā)送給閱讀器,以使閱讀器將參數(shù)M′3、參數(shù)M′4發(fā)送至標簽;執(zhí)行第四判斷模塊;
第四判斷模塊,應(yīng)用于標簽,用于設(shè)置參數(shù)以及計算判斷與EPCX||N′4||CRC(EPCX||N′4)是否相等,如果是則標簽認證成功,更新共享密鑰并設(shè)置flag=0;否則結(jié)束。
對本領(lǐng)域的技術(shù)人員來說,可根據(jù)以上描述的技術(shù)方案以及構(gòu)思,做出其它各種相應(yīng)的改變以及形變,而所有的這些改變以及形變都應(yīng)該屬于本發(fā)明權(quán)利要求的保護范圍之內(nèi)。