何 小 平
(廣東培正學院數據科學與計算機學院 廣東 廣州 510830)
射頻識別技術不需要與實體相接觸,即可識別出實體內部存放的信息,因此得到廣泛應用,其中RFID系統的應用最為廣泛[1-2]。RFID系統在20世紀末得到較大范圍的推廣,因當時科技的局限性,使得RFID系統中讀寫器與后臺服務器之間的通信都是采用有線信道完成數據傳送。有線信道在很多時候被認為安全可靠,因此在設計雙向認證協議之時,一般將讀寫器與后臺服務器看成一個整體[3-5]。進入21世紀,隨著科技的發(fā)展,人們的需求也越來越繁瑣,傳統的RFID系統已經無法滿足人們的需求,急需出現新的解決方法。移動式的RFID系統便在這樣的背景之下產生,其與傳統的RFID系統最大的區(qū)別在于:移動式的RFID系統為滿足人們的需求,讀寫器不再是固定式的,而是采用移動式的,即讀寫器與后臺服務器之間的通信采用無線信道完成[6-8]。
鑒于上述移動式RFID系統自身特有的屬性,使得適用于傳統RFID系統的雙向認證協議并不能應用在移動式RFID系統中,因此需要設計出新的適用于移動式的RFID系統的雙向認證協議[9-10]。
針對傳統的RFID系統,為確保隱私信息的安全性,國內外專家學者設計出很多雙向認證,以下介紹一些近些年較為經典的適用于傳統的RFID系統的雙向認證協議。
文獻[11]基于M-Hash函數提出一種雙向認證協議,但該協議僅適用于傳統的RFID系統,無法運用在移動式的RFID系統中。協議因采用Hash函數進行加密,使得采用該協議的系統整體計算量較大,且協議無法抵抗攻擊者的重放攻擊。
文獻[12]基于位重排變換設計出一種雙向認證協議,該協議也是僅適用于傳統的RFID系統。協議采用按位運算的加密能夠一定程度上降低系統的整體計算量,對協議進行深入分析發(fā)現,協議并沒有提供最后一步驟中標簽與讀寫器之間的雙向認證。
文獻[13]設計出一種適用于移動式RFID系統的雙向認證協議,協議采用偽隨機函數算法對通信消息進行加密,具備一定的安全性。對協議進行分析可以發(fā)現,協議并沒有文中聲稱的那樣安全可靠,協議加密過程中,并不是所有信息均混入隨機數,使得攻擊者可以多次監(jiān)聽消息,對獲取的消息進行分析,從而定位標簽的位置,因此,協議無法抵抗追蹤攻擊。
文獻[14]提出的協議能夠使用在移動式的RFID系統中,但仍存在一定缺陷。攻擊者可以采用物理攻擊的手段克隆出通信實體的相關隱私信息,從而假冒成合法通信實體與其他通信實體進行通信,更進一步獲取其隱私信息,因此,協議無法抵抗假冒攻擊。
文獻[15]提出的協議適用于移動式的RFID系統,對協議進行分析發(fā)現,協議在最后一步驟中,移動讀寫器僅僅只是轉發(fā)消息給標簽,從而使得協議無法提供雙向認證,在此基礎之上,攻擊者更進一步對截獲的消息進行多次重放,從而導致標簽與后臺服務器之間用到的共享密鑰信息失去一致性,使得協議無法抵抗攻擊者的去同步化攻擊。
鑒于篇幅有限,此處不再闡述更多的認證協議,具體可參見文獻[16-20]。
鑒于文獻[15]中有詳細的協議認證步驟的描述,此處為便于后續(xù)協議的具體分析,因此只對該協議認證步驟進行較為簡單的描述。如圖1所示。
圖1 改進的輕量級移動RFID雙向認證協議的認證步驟
認證步驟可以描述如下:
1)移動讀寫器產生隨機數Nr,將Nr和Query一起發(fā)送給標簽。
2)標簽計算通信消息X,并將其分成左右兩部分,保存右部分XR,將通信消息Nt和XL發(fā)送給移動讀寫度。
3)移動讀寫器計算通信消息Y,并將其分成左右兩部分,保存右部分YR,將Nt、Nr、YL、XL發(fā)送給后臺服務器。
4)后臺服務器先對移動讀寫器進行驗證,具體地,通過Nr、YL對移動讀寫器進行驗證。驗證通過,再對標簽進行驗證,具體通過Nt、XL對標簽進行驗證。驗證通過,開始更新信息,并將YR、XR發(fā)送給移動讀寫器;驗證不通過,則后臺服務器會再次用到上一輪的共享密鑰計算得到另一組Nt、XL對標簽再次進行驗證。若再次驗證還是未通過,協議終止;反之,標簽通過驗證,開始更新信息,并將YR、XR發(fā)送給移動讀寫器。
5)移動讀寫器通過YR對后臺服務器進行驗證。驗證通過,將XR轉發(fā)給標簽;反之,協議終止。
6)標簽通過XR對后臺服務器和移動讀寫器進行驗證。驗證通過,開始更新信息;反之,協議終止。
通過上面協議的步驟描述,對協議進行深入分析,可以得到如下結論:協議無法抵抗攻擊者發(fā)起的去同步化攻擊。
在協議的第5步中,當移動讀寫器驗證后臺服務器通過之后,就直接將XR傳送給標簽,并沒有做任何其他處理操作。
攻擊者可以通過監(jiān)聽的手段獲取第4步中后臺服務器發(fā)送給移動讀寫器的消息YR、XR。當攻擊者獲取該消息后,立刻阻塞移動讀寫器與標簽之間的最后一步通信。此時合法的移動讀寫器正在驗證后臺服務器的真?zhèn)危鶕f議的步驟,移動讀寫器驗證后臺服務器肯定可以通過,之后移動讀寫器將XR傳送給標簽。但此時合法移動讀寫器與標簽之間已無法進行通信,攻擊者就可以假冒成移動讀寫器向標簽發(fā)送XR消息。根據第5步可知,XR并不會進行任何處理,因此攻擊者發(fā)送給標簽XR信息后,標簽對移動讀寫器和后臺服務器的驗證還是可以通過,通過之后,將開始進行信息更新。此時,如果攻擊者再次重放XR信息給標簽,則標簽對其驗證將會再次通過,通過之后,標簽端將再次更新信息。標簽端進行兩次信息的更新,而此時,后臺服務器端僅進行一次信息的更新,截至此刻,標簽與后臺服務器之間的共享密鑰以及假名信息已失去一致性,攻擊者去同步化攻擊成功。
下面給出通過重放XR信息使得標簽與后臺服務器之間的信息失去一致性的詳細分析過程。
通信開始之前,標簽與后臺服務器之間信息同步,都滿足IDtnew=IDtold=IDt,Ktnew=Ktold=Kt,其中:IDtnew為當前會話的標簽標識符;IDtold為上一輪會話的標簽標識符;IDt為標簽的標識符;Ktnew為當前會話的共享密鑰;Ktold為上一輪會話的共享密鑰;Kt為共享密鑰。
第一次通信開始,通信步驟前面的第1步至第5步正常進行,攻擊者阻塞第6步。竊聽截獲第4步中后臺服務器發(fā)送給移動讀寫器的YR、XR信息,在阻塞第6步的操作下,攻擊者將XR信息發(fā)送給標簽,標簽驗證通過,開始更新信息。因這次是攻擊者第一次重放XR信息,因此標簽端與后臺服務器端的信息還是一致的。具體的更新信息如下:
IDtold=IDtnew,將該次的數值記作ID_1_old;IDtnew=HKt(Nt||IDtold),將該次的數值記作ID_1_new,其中HKt()為在共享密鑰Kt條件下的哈希函數的加密運算;Ktold=Kt,將該次的數值記作Kt_1_old;Ktnew=H(Kt||IDtold),將該次的數值記作Kt_1_new,其中H()為哈希函數的加密運算。
當攻擊者第一次重放XR信息,標簽端更新信息完成后,仍繼續(xù)阻塞合法移動讀寫器與標簽的通信。攻擊者將進行第二次重放XR信息,根據第6步中的描述可知,此時攻擊者假冒的移動讀寫器還是可以再次通過標簽的驗證,驗證通過之后,標簽端將再次進行信息更新操作,但合法后臺服務器卻并沒有進行同步的信息更新操作。截至此時,標簽與后臺服務器之間的共享密鑰及假名已失去一致性。具體的標簽端的更新信息如下:
IDtnew=HKt_1_new(Nt||ID_1_new),將該次的數值記作ID_2_new;Ktnew=H(Kt_1_new||ID_1_new),將該次的數值記作Kt_2_new。
后臺服務器信息未進行更新操作,因此,此時后臺服務器端存放的假名還是上面的ID_1_old和ID_1_new;共享密鑰還是上面的Kt_1_old和Kt_1_new。
很顯然,ID_2_new≠ID_1_old,且ID_2_new≠ID_1_new;Kt_2_new≠Kt_1_old,且Kt_2_new≠Kt_1_new。
至此,標簽與后臺服務器之間的共享密鑰信息及假名信息均失去一致性,攻擊者去同步化攻擊成功。
抗同步化攻擊的協議中出現的符號按照如下含義進行解釋:
S:后臺服務器;R:移動讀寫器;T:標簽;x:移動讀寫器產生的隨機數;y:標簽產生的隨機數;K:后臺服務器、移動讀寫器、標簽三者之間的共享密鑰;KReader:后臺服務器、移動讀寫器兩者之間的共享密鑰;KTag:后臺服務器、標簽兩者之間的共享密鑰;KTag_old:后臺服務器、標簽兩者之間上輪認證過程中的共享密鑰;IDReader:移動讀寫器的假名;IDTag:標簽的假名;IDTag_old:標簽上輪認證過程中的假名;Count:標簽一端的計數器的數值;SRC(X,Y):交換重組交叉位運算;⊕:異或運算;&:與運算。
為統一文中描述,約定用SRC(X,Y)符號表示交換重組交叉位運算。交換重組交叉位運算定義如下:X和Y均表示二進制序列,且位數L均為偶數位(如8位、24位等);取二進制序列X的前L/2位,放在新組成二進制序列Z的右邊,同時取二進制序列Y的后L/2位,放在新組成二進制序列Z的左邊;對二進制序列Z進行從左到右的遍歷,將二進制序列Z的奇數位上的數值放在新組成二進制序列的偶數位上,同時將二進制序列Z的偶數位上的數值放在新組成二進制序列的奇數位上。
比如:X=1010 0001,Y=1000 0100,根據上面的定義可得出:Z=0100 1010,SRC(X,Y)=1000 0101。具體過程如圖2所示。
圖2 交換重組交叉位運算的流程圖
協議開始之前,后臺服務器產生如下信息:IDTag、KReader、KTag、K、IDReader,并通過安全通道將信息發(fā)送給標簽和移動讀寫器。標簽接收并存放下列信息:IDTag、KTag、K;移動讀寫器接收并存放下列信息:KReader、K、IDReader;后臺服務器存放下列信息:IDTag、KReader、KTag、K、IDReader。最開始的時候,令IDTag_old=IDTag_new=IDTag;KTag_old=KTag_new=KTag。
改進的抗同步化攻擊的協議過程如圖3所示。
圖3 抗同步化攻擊的協議
結合圖3描述改進的抗同步化的協議步驟如下:
1)移動讀寫器產生隨機數x,用隨機數x、共享密鑰K計算A=x⊕K;用隨機數x、共享密鑰K計算B=SRC(x,x&K)。將{A,B,Query}發(fā)送給標簽,其中Query表示認證請求命令。
2)標簽接收到移動讀寫器發(fā)送來的信息,用收到的A、共享密鑰K計算x′=A⊕K;用計算所得x′、共享密鑰K計算B′=SRC(x′,x′&K)。
對比B′與B是否相等。B′≠B,移動讀寫器未通過驗證,協議終止;B′=B,表明移動讀寫器通過標簽的驗證,同時也得出:x′=x。標簽接著進行后續(xù)操作,產生隨機數y,用隨機數y、共享密鑰K計算C=y⊕K;用隨機數y、計算所得隨機數x、共享密鑰K計算D=SRC(y⊕x,y&K);用隨機數y、共享密鑰KTag、標簽假名IDTag計算E=SRC(y⊕KTag,y⊕IDTag)。將消息E均等地分成左右兩部分,左邊一部分記為E_L,右邊一部分記為E_R。標簽最后將{C,D,E_L}發(fā)送給移動讀寫器。
3)移動讀寫器收到標簽發(fā)送來的信息,用收到的C、共享密鑰K計算y′=C⊕K;用計算所得y′、共享密鑰K計算D′=SRC(y′⊕x,y′&K)。
對比D′與D是否相等。D′≠D,標簽未通過驗證,協議終止;D′=D,表明標簽通過移動讀寫器的驗證,同時也得出:y′=y。移動讀寫器接著進行后續(xù)操作,用隨機數x、共享密鑰KReade、移動讀寫器假名IDReader計算F=SRC(x⊕KReader,x⊕IDReader)。將消息F均等地分成左右兩部分,左邊一部分記為F_L,右邊一部分記為F_R。標簽最后將{A,C,E_L,F_L}發(fā)送給后臺服務器。
4)后臺服務器收到移動讀寫器發(fā)送來的信息,后臺服務器分兩步進行操作。先驗證移動讀寫器的真?zhèn)危炞C通過,再驗證標簽的真?zhèn)?,兩者均通過驗證,后臺服務器才會進行信息更新操作。兩者中只要有一方未通過驗證,協議終止。
(1)后臺服務器對移動讀寫器的驗證。后臺服務器用收到的A、共享密鑰K計算x″=A⊕K;用計算所得x″、共享密鑰K計算F′=SRC(x″⊕KReader,x″⊕IDReader)。將消息F′均等地分成左右兩部分,左邊一部分記作F_L′,右邊一部分記作F_R′。對比F_L′與F_L是否相等。F_L′≠F_L,移動讀寫器未通過驗證,協議終止;F_L′=F_L,表明移動讀寫器通過后臺服務器的驗證,同時也得出:x″=x′=x。后臺服務器接著進行后續(xù)操作,開始進行對標簽的驗證。
(2)后臺服務器對標簽的驗證。后臺服務器用收到的C、共享密鑰K計算y″=C⊕K;用計算所得隨機數y″、共享密鑰KTag、標簽假名IDTag計算E′=SRC(y″⊕KTag,y″⊕IDTag)。將消息E′均等地分成左右兩部分,左邊一部分記為E_L′,右邊一部分記為E_R′。對比E_L′與E_L是否相等。E_L′=E_L,表明標簽通過后臺服務器的驗證,同時也得出:y″=y′=y;后臺服務器開始更新信息:IDTag_old=IDTag_new、IDTag_new=SRC(y,IDTag_old)、KTag_old=KTag_new、KTag_new=SRC(KTag,y);待后臺服務器更新信息完成,將{E_R,F_R}發(fā)送給移動讀寫器。E_L′≠E_L,后臺服務器將取出上一輪認證過程中用到的
5)移動讀寫器收到后臺數據庫發(fā)送來的信息,將接收到的F_R與自身計算所得F_R進行比較。不相等,后臺數據庫未通過驗證,協議終止;相等,后臺數據庫通過移動讀寫器的驗證,移動讀寫器用收到的E_R、自身產生隨機數x、計算所得到隨機數y計算G=E_R&x⊕y。最后將{G}發(fā)送給標簽。
6)標簽收到移動讀寫器發(fā)送來的信息,首先查找與G相對應的計數器的數值Count。Count≠0,標簽不進行任何操作,直接摒棄G;Count=0,表示G消息是第一次發(fā)送過來,并不是攻擊者重放發(fā)送來的G消息(以此來抵抗攻擊者的去同步化攻擊),并將相對應的Count變?yōu)?。同時標簽進行下列操作:用自身計算所得的E_R、自身產生隨機數y、計算所得到隨機數x計算G′=E_R&x⊕y。
對比G′與G是否相等。G′≠G,移動讀寫器及后臺服務器未通過驗證,表明兩者之中至少有一方是假冒的,協議終止;G′=G,表明移動讀寫器與后臺服務器同時通過標簽的驗證,標簽開始更新信息:IDTag_new=SRC(y,IDTag_old)、KTag_new=SRC(KTag,y)。待標簽一端的信息更新完成,則雙向認證到此結束。
改進的協議能夠提供3個通信實體之間的相互認證,此處選擇標簽與移動讀寫器之間的相互認證為例子進行詳細分析。標簽與后臺服務器之間的認證、移動讀寫器與后臺服務器之間的認證,與選擇的例子分析過程相同,此處不再闡述。
在改進的協議第2步中,標簽收到移動讀寫器發(fā)送來的信息之后,會對移動讀寫器進行第一次驗證。標簽先通過A計算得到移動讀寫器產生的隨機數x′,再用計算得到的隨機數x′代入計算B′中。通過比較B′與B是否相等,即可識別出移動讀寫器的真?zhèn)?。具體的識別驗證過程,可以參見協議的第2步描述。
在協議的第3步中,移動讀寫器收到標簽發(fā)送來的信息之后,對標簽的真?zhèn)芜M行辨識。通過C計算得到標簽產生的隨機數y′,將計算得到的隨機數y′代入D的計算,可以得到D′。通過比較D′與D是否相等,即可辨別出標簽的真?zhèn)巍?/p>
此處重點分析協議步驟中的最后一步中,標簽是如何通過G同時識別出移動讀寫器和后臺服務器的真?zhèn)?。從G=E_R&x⊕y公式中可以看出,G在計算過程中包含3個參數:E_R、x、y;這3個參數對于攻擊者來說,除了E_R可以通過竊聽手段獲取之外,x和y是攻擊者無法獲取的,且也無法通過破解獲得。因此,當攻擊者竊聽得到E_R之后,偽裝成移動讀寫器進行加密計算,但因缺少x和y兩個參數,是無法計算得到正確的G。標簽收到信息后,通過簡單的計算,即可發(fā)現G不正確,協議終止,表明移動讀寫器與后臺服務器之間至少有一方是偽造的。
基于以上闡述,改進的協議能夠提供通信實體之間的雙向認證。
假冒攻擊是指攻擊者偽裝成合法的通信實體中的任何一方,向其他通信實體發(fā)送消息,以達到蒙混過關的目的,從而進行隱私信息的竊取。
改進的協議能夠抵抗攻擊者的假冒攻擊。具體來說,協議在進行所有合法操作之前,均會對消息的來源一方進行識別認證,只有在驗證消息來源一方不是偽造的之后,才會進行后續(xù)操作。攻擊者想假冒成其中一個通信實體,則在進行消息加密過程中,會用到一些參數,比如共享密鑰K。對于這些參數的具體數值,攻擊者是無法獲取的,因此攻擊者在加密過程中,就只能隨便選擇一個數來進行消息的加密,很明顯所得結果肯定是錯誤的。當攻擊者加密的消息發(fā)送給其他通信實體的時候,另一個通信實體就只需要進行簡單的計算比對,即可識別出消息的來源一方是偽造的,攻擊者的假冒攻擊失敗。因此,協議能夠抵抗攻擊者的假冒攻擊。
重放攻擊是說攻擊者在通過監(jiān)聽手段獲取某些通信消息之后,偽裝成合法的一個通信實體,重復多次給另外的通信實體發(fā)送該截獲的通信消息,從而達到某種目的,比如獲取隱私信息。
改進的協議中為抵抗攻擊者的重放攻擊,所有通信消息在加密過程中,均混入隨機數;其中有些隨機數是移動讀寫器產生的,有些隨機數是標簽產生的;隨機數的混入,既可以保證前后兩輪通信過程中的通信消息的互異性,也可以增加攻擊者的破解難度。當攻擊者通過監(jiān)聽等手段獲取當前的通信消息,想通過重放該消息以逃過另一通信實體的認證,但攻擊者無法成功,因為下一輪認證過程中用到的通信消息加密過程中的隨機數已經發(fā)生變化,所以攻擊者重放該消息失敗?;谝陨详U述,協議能夠抵抗攻擊者的重放攻擊。
去同步化攻擊也稱為異步攻擊,主要是攻擊者通過重放消息或其他手段,導致通信實體雙向認證用到的共享密鑰等信息失去一致性,從而使得后續(xù)正常的認證無法進行。
改進的協議為了能夠抵抗攻擊者的去同步化攻擊,采用以下兩個措施:(1)在后臺服務器一端不僅存放當前認證過程中用到的共享密鑰等信息,而且也會存放上一輪認證過程中用到的共享密鑰等信息,這樣就可以使得后臺服務器對標簽的認證第一次失敗之后,還可以用上輪信息替換本輪信息再次認證,從而恢復同步性。(2)標簽一端會增加計算器參數Count,通過該計算器的數值,來進行相對應的操作。當Count不為零時,表明標簽至少已經在此次通信之前接收到通信消息G一次,為避免攻擊者發(fā)起的異步攻擊,標簽采取放棄策略,即不進行信息的更新操作,從而保持標簽與后臺服務器之間的共享密鑰等信息是一致的。而當Count為零時,表明標簽之前還未收到該信息G,從而可以斷定該信息并不是攻擊者重放的,標簽開始對G進行驗證。驗證通過,開始更新信息;驗證失敗,協議終止。通過上述兩個措施,使得改進的協議能夠抵抗攻擊者發(fā)起的去同步化攻擊。
攻擊者通過多次監(jiān)聽通信實體發(fā)送的消息,根據獲取的通信消息分析出具體的通信實體,從而進行跟蹤,然后實施破壞等操作。為能夠抵抗攻擊者發(fā)起的追蹤攻擊,改進的協議在加密過程中混入隨機數,使得攻擊者無法實施追蹤攻擊。主要原因有下面幾點:(1)隨機數由隨機數產生器隨機產生,無法進行預測;(2)隨機數在一個時間段內具有不重復性;(3)消息加密過程中用到的隨機數每輪均不一樣,即便是獲取當前的通信消息,也無法推導出下輪通信消息?;谏鲜鲆蛩?,使得攻擊者發(fā)起的追蹤攻擊失敗。
當攻擊者無法通過上述等攻擊方法獲取隱私信息之時,攻擊者可能會采取更為直接更為暴力的方式進行,即采用窮舉的方式窮盡所有可能的情況,然后獲取隱私信息。改進的協議能夠抵抗攻擊者的暴力破解攻擊,具體此處以通信消息A為例子進行詳細分析。在通信消息A中A=x⊕K包含2個加密參數:x和K,攻擊者對A無法實施暴力破解攻擊獲取隱私信息。具體原因如下:(1)對于攻擊者來說,這2個參數都是不知曉的,且無法通過監(jiān)聽等手段獲??;(2)共享密鑰K在通信過程中沒有明文出現過,攻擊者要想獲取K,還必須采用其他手段獲??;(3)隨機數x每輪均發(fā)生變化,無法預測,使得通信消息A的值也是每輪不同?;谏鲜觯瑓f議能夠抵抗攻擊者發(fā)起的暴力破解攻擊。
本文協議與其他此類移動雙向認證協議進行安全性分析對比,對比的結果如表1所示。
表1 認證協議安全性分析對比
移動式的RFID系統中一般包含三大通信實體,即移動讀寫器、后臺服務器、標簽。在三大通信實體中,后臺服務器與移動讀寫器兩者具備強大的計算能力和足夠大的存儲空間,因此性能分析部分一般不會選擇這兩者作為研究對象。相反,標簽并不具備前面兩者的優(yōu)勢,計算能力非常有限,且存儲空間大小也受到嚴格限制,無法大量存放數據,因此性能分析中會將標簽作為重點研究對象進行分析。同時將會選擇標簽的計算量和存儲量作為兩個性能分析的角度。
本文協議與其他認證協議進行性能分析比對結果如表2所示。
表2 認證協議性能分析比對
表2中:H表示哈希函數的計算量;M表示模運算的計算量;Reg表示位重排變換的計算量;Rot表示左循環(huán)移位的計算量;F表示偽隨機函數的計算量;PR表示隨機數產生的計算量;C表示交叉運算的計算量;PUF表示物理不可克隆函數的計算量;XOR表示異或運算的計算量;AND表示與運算的計算量;SRC表示交換重組交叉位運算的計算量。在上述計算量中,屬于超輕量級的計算有:Reg、Rot、C、XOR、AND、SRC;其他計算屬于輕量級的計算量。輕量級的計算量一次操作的計算量相當于若干次超輕量級計算的計算量。
本文協議在第2步中,計算隨機數x′時第一次用到XOR運算,計算C時第2次用到XOR運算,計算B′、D、E時會連續(xù)3次用到SRC運算,產生隨機數y用到一次PR運算。在協議的第6步中,計算G′時,第一次用到AND運算,同時也是第3次用到XOR運算,共享密鑰和假名在更新過程中會連續(xù)2次用到SRC運算?;谏鲜觯緟f議在認證過程中,標簽一端的計算量為:3XOR+5SRC+AND+PR。其他協議標簽一端的計算量按照上述方法可以逐一查找出來,鑒于文中篇幅有限,此處不再具體闡述。
設定所有消息的長度均為l位,本協議標簽一端會存放如下信息:共享密鑰K、假名IDTag、共享密鑰KTag、計數器Count。因此,協議標簽一端的存儲量為4l。
結合表2可以得出:本文協議標簽一端的計算量相對于其他協議來說,得到一定程度上的減少。從標簽一端的存儲量角度出發(fā),本文協議與其他協議相當,本文協議在此方面并沒有較大的改進。綜合各方面比較,本文協議在計算量方面要優(yōu)于其他協議,且本文協議能夠彌補其他協議存在的一些安全缺陷問題,具備一定的運用價值。
本文對汪杰[15]等提出的移動認證協議進行深入分析,指出該協議存在的安全不足,并給出一種改進的能夠抵抗去同步化攻擊的移動雙向認證協議。改進協議為抵抗攻擊者的去同步化攻擊,在后臺服務器存放上一輪和本輪的認證共享密鑰信息,且在標簽引入計數器Count,根據計數器Count的數值進行不同的操作。對協議進行安全性分析,改進的協議能夠滿足移動式RFID系統的安全需求;對協議進行性能分析,表明改進的協議具備計算量低等特征。下一步研究方向是將該協議在具體的移動式RFID系統中實現,對一個完整的通信過程進行分析,研究分析一個完整通信過程所需時間等參數。