基于RFID 技術(shù)的無(wú)線Key 模型
1 引言
隨著電子商務(wù)和網(wǎng)上銀行的普遍應(yīng)用,USBKey 的安全使用成為日益關(guān)注的問(wèn)題。在公 司、銀行、交易所等一些公共場(chǎng)所,如果用戶臨時(shí)有事暫時(shí)離開(kāi)而又忘記拔掉USBKey,這 時(shí)非法者就有可能趁虛而入,竊取用戶隱私或者利用存儲(chǔ)在USBKey 中的證書(shū)進(jìn)行網(wǎng)上非 法交易,給用戶造成隱私泄漏和金錢(qián)損失。所以,有必要設(shè)計(jì)一種用戶可以隨身攜帶的 USBKey 來(lái)解決這方面的安全問(wèn)題。這樣既能方便用戶,而且更加安全。本文正是在這種問(wèn) 題背景下設(shè)計(jì)了一種基于RFID 技術(shù)的無(wú)線Key 模型,并對(duì)其安全性進(jìn)行了分析。
2 RFID 安全性分析
RFID 系統(tǒng)主要包括:電子標(biāo)簽(Tag)、讀卡器(Reader)和微型天線(Antenna)。由于集成(1)(2) 的RFID 系統(tǒng)實(shí)際上是一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用系統(tǒng),因此安全問(wèn)題類(lèi)似于計(jì)算機(jī)和網(wǎng)絡(luò)的安全 問(wèn)題。一般地,RFID 的安全威脅除了與計(jì)算機(jī)網(wǎng)絡(luò)有相同之處外,還包括標(biāo)簽數(shù)據(jù)、通信 鏈路和閱讀器協(xié)議三種類(lèi)型的安全威脅(3)。標(biāo)簽數(shù)據(jù)的安全威脅表現(xiàn)為非法用戶可以利用合 法的閱讀器或者自構(gòu)一個(gè)閱讀器,直接與標(biāo)簽進(jìn)行通信,造成標(biāo)簽內(nèi)數(shù)據(jù)泄露;通信鏈路上的安全威脅主要表現(xiàn)在黑客非法截取通信數(shù)據(jù)、非法用戶通過(guò)發(fā)射干擾信號(hào)來(lái)堵塞通信鏈 路、利用冒名頂替標(biāo)簽向閱讀器發(fā)送數(shù)據(jù)以及發(fā)射特定電磁波破壞標(biāo)簽等方面;閱讀器協(xié)議 安全威脅是指在閱讀器中,除中間件(4)被用來(lái)完成數(shù)據(jù)的遴選、時(shí)間過(guò)濾和管理之外,只能 提供用戶業(yè)務(wù)接口,而不能提供能讓用戶自行提升安全性能的接口。
由此可見(jiàn),如何解決RFID 技術(shù)的安全缺陷成為其能否得到更大程度應(yīng)用的關(guān)鍵。而本 文正是利用USBKey 的操作安全性提出了一個(gè)將RFID 技術(shù)與USBKey 相結(jié)合的模型。
3 無(wú)線Key 模型設(shè)計(jì)
3.1 模型設(shè)計(jì)
無(wú)線Key 的功能實(shí)現(xiàn)需要用戶機(jī)終端、讀卡器、無(wú)線Key 等硬件,其中標(biāo)簽內(nèi)嵌在無(wú) 線Key 內(nèi)。其模型設(shè)計(jì)如圖1 所示:
圖1 基于RFID 技術(shù)的無(wú)線Key 模型
讀卡器包括控制單元、射頻接口、加/解密邏輯單元和隨機(jī)數(shù)發(fā)生器四部分(5)。其中控 制單元完成以下功能:與用戶機(jī)終端進(jìn)行通信;信號(hào)編碼與解碼;控制與應(yīng)答器的通信過(guò)程; 以及進(jìn)行讀卡器與無(wú)線Key 內(nèi)標(biāo)簽的身份認(rèn)證。射頻接口的功能是產(chǎn)生高頻發(fā)射功率以便 啟動(dòng)標(biāo)簽和提供能量;調(diào)制發(fā)射信號(hào)并將數(shù)據(jù)傳送給應(yīng)答器以及接受并解調(diào)應(yīng)答器高頻信 號(hào)。
無(wú)線Key 由用戶隨身攜帶,其硬件構(gòu)成如上圖所示。其中ROM 單元存放的是標(biāo)簽的ID 號(hào)。COS 即芯片操作系統(tǒng),是無(wú)線Key 的核心,它主要實(shí)現(xiàn)控制無(wú)線Key 和外界的信息交 換,管理存儲(chǔ)器單元并在無(wú)線Key 內(nèi)部完成各種命令的處理等功能。 無(wú)線 Key 的認(rèn)證過(guò)程主要分為兩個(gè)步驟:第一步:利用RFID 技術(shù)實(shí)現(xiàn)標(biāo)簽與讀卡器之 間的雙向認(rèn)證;第二步:在標(biāo)簽與讀卡器進(jìn)行雙向認(rèn)證無(wú)誤后,用戶機(jī)終端提示用戶輸入 PIN 碼,進(jìn)行主機(jī)對(duì)用戶身份的認(rèn)證。
3.2 協(xié)議設(shè)計(jì)
這里,假設(shè)讀卡器和用戶機(jī)終端數(shù)據(jù)庫(kù)的通信是在一條安全可靠的有連接信道上進(jìn)行而讀卡器和無(wú)線Key 之間的通信是不安全的。并且在用戶機(jī)終端和無(wú)線Key 的RAM 中已 經(jīng)存儲(chǔ)了讀卡器和無(wú)線Key 雙方的證書(shū)。協(xié)議描述過(guò)程(6)(7)如下:
?、女?dāng)帶有標(biāo)簽的無(wú)線 Key 進(jìn)入到讀卡器的作用范圍內(nèi)時(shí),讀卡器會(huì)向應(yīng)答器發(fā)送請(qǐng)求。 ⑵應(yīng)答器產(chǎn)生響應(yīng),并由無(wú)線Key 的COS 執(zhí)行一系列操作:先由隨機(jī)數(shù)發(fā)生器產(chǎn)生隨機(jī)數(shù) R1 并存儲(chǔ)到RAM 單元,然后取出RAM 單元中存儲(chǔ)的讀卡器的證書(shū)Certreader,在加/解密邏 輯單元中利用讀卡器證書(shū)里的公鑰KUB 對(duì)隨機(jī)數(shù)R1 進(jìn)行加密。最后通過(guò)應(yīng)答器再發(fā)送給讀 卡器,如圖2 所示:
圖2 應(yīng)答器響應(yīng)并利用KUB 發(fā)送R1
?、亲x卡器射頻接口接收到信號(hào)后,讀卡器的控制單元先從用戶機(jī)終端取得自己的證書(shū),再由 加解密部件進(jìn)行解密獲得R1,接著調(diào)用隨機(jī)數(shù)發(fā)生器(RNG)產(chǎn)生一個(gè)隨機(jī)數(shù)R2 并存儲(chǔ)到用 戶機(jī)終端的RAM 中,然后再?gòu)挠脩魴C(jī)終端取得無(wú)線Key 的證書(shū)CertKey,在加/解密邏輯單 元中執(zhí)行以下操作:首先利用自己的私鑰KRB 對(duì)R1、R2 進(jìn)行簽名,再利用無(wú)線Key 的公鑰 KUA 對(duì)上一步的結(jié)果進(jìn)行加密得到數(shù)據(jù)Token1,即:Token1= EKUA(DKRB(R2|| R1))。最后讀 卡器通過(guò)射頻接口將Token1 發(fā)送給無(wú)線Key 端,如圖3 所示。
圖3 發(fā)送Token1 給無(wú)線Key
⑷應(yīng)答器收到后,COS 從RAM 單元中取出讀卡器和無(wú)線Key 的證書(shū),交由加解密邏輯單 元完成解密和驗(yàn)證讀卡器的過(guò)程:首先用無(wú)線Key 的私鑰KRA 進(jìn)行解密,接著利用讀卡器 的公鑰KUB 進(jìn)行驗(yàn)證,得到R1 和R2 并存儲(chǔ)R2,將通過(guò)解密得到的R1 與第⑵步中存儲(chǔ)的 R1 進(jìn)行比較看是否一致。如果沒(méi)有改變,則進(jìn)行下步操作。否則標(biāo)簽進(jìn)入休眠狀態(tài)。 ⑸無(wú)線 Key 端的隨機(jī)數(shù)發(fā)生器產(chǎn)生另一隨機(jī)數(shù)R3 并存儲(chǔ),同時(shí)從ROM 中取得標(biāo)簽的ID 號(hào), 利用讀卡器和無(wú)線Key 的證書(shū),將R2、R3 和ID 號(hào)交由加/解密邏輯單元進(jìn)行加密和簽名操 作得到數(shù)據(jù)Token2,即:Token2 = DKRA(EKUB(R3|| R2||ID))。完成后應(yīng)答器將Token2 發(fā)送 給讀卡器,如圖4 所示。
圖4 無(wú)線Key 發(fā)送Token2 給讀卡器
⑹讀卡器接收后,從用戶機(jī)終端取得讀卡器和無(wú)線 Key 的證書(shū),在加解密邏輯單元中完成 驗(yàn)證標(biāo)簽和得到標(biāo)簽ID 號(hào)的過(guò)程:首先用無(wú)線Key 的公鑰KUA 進(jìn)行驗(yàn)證,再利用自己的 私鑰KRB 解密得到隨機(jī)數(shù)R2、R3 和ID 號(hào)碼。將得到的R2 和ID 號(hào)與存儲(chǔ)在用戶機(jī)終端RAM 中的R2 和ID 號(hào)進(jìn)行比較,如果一致標(biāo)簽得到驗(yàn)證。讀卡器再將得到的R3 利用自己的私鑰 進(jìn)行簽名后發(fā)送給無(wú)線Key,以便無(wú)線Key 接收后確認(rèn)讀卡器已收到自己的ID 號(hào)。
?、藷o(wú)線 Key 端應(yīng)答器收到后進(jìn)行解密,將計(jì)算得到的R3 與第⑸步存儲(chǔ)的R3 進(jìn)行驗(yàn)證比較, 以確認(rèn)是正確授權(quán)的讀卡器接收了ID 號(hào)。
至此,完成了讀卡器與標(biāo)簽之間的雙向認(rèn)證,并且讀卡器安全地獲得了標(biāo)簽的 ID 號(hào), 為下面進(jìn)行用戶身份的認(rèn)證提供了前提。
?、逃脩魴C(jī)提示用戶輸入無(wú)線 Key 對(duì)應(yīng)的PIN 碼,輸入后保存到用戶機(jī)的RAM 中;同時(shí)COS 調(diào)用密鑰生成器,生成一對(duì)公/私鑰,將公/私鑰存儲(chǔ)到無(wú)線Key 的RAM 單元中,并把產(chǎn)生 的公鑰發(fā)送給讀卡器。
?、妥x卡器接收后,利用該公鑰對(duì)上一步存儲(chǔ)的 PIN 碼進(jìn)行加密并發(fā)送給應(yīng)答器。 ⑽應(yīng)答器接收并取出存儲(chǔ)在 RAM 中相對(duì)應(yīng)的私鑰進(jìn)行解密,得到用戶輸入的PIN 碼,然后 與存儲(chǔ)在RAM 單元中的PIN 碼進(jìn)行比較,驗(yàn)證用戶身份。
驗(yàn)證通過(guò)后,用戶就可以利用無(wú)線Key 進(jìn)行網(wǎng)上交易簽名或者其它電子商務(wù)活動(dòng)了。
4 模型安全性分析
在虛擬的網(wǎng)絡(luò)世界,通信安全無(wú)疑是要考慮的首要問(wèn)題。而對(duì)于無(wú)線Key 模型,如何 解決無(wú)線射頻環(huán)境中的通信成為其安全與否的關(guān)鍵。下面具體從5 個(gè)方面來(lái)分析。
?、抛x卡器與標(biāo)簽之間通信的保密性。讀卡器與標(biāo)簽都采用公鑰密碼算法(例如RSA 算法)對(duì) 數(shù)據(jù)進(jìn)行加/解密運(yùn)算,即使被攻擊者截獲,也無(wú)法解密,有效地保證了數(shù)據(jù)在不安全信道 傳輸?shù)陌踩院屯暾浴?/p>
?、品乐怪胤殴?。在標(biāo)簽對(duì)讀卡器認(rèn)證的過(guò)程中,讀卡器收到的R1 是隨機(jī)產(chǎn)生的,下一次 收到的R1 是不一樣的,因此攻擊者再重放Token1 給標(biāo)簽是不能通過(guò)驗(yàn)證的,同理標(biāo)簽應(yīng)答 器收到的R2 以及后來(lái)產(chǎn)生的R3 也是如此。因此,讀卡器和標(biāo)簽都可以抵御重放攻擊。
?、欠乐怪虚g人攻擊。讀卡器與標(biāo)簽之間采用公鑰密碼算法有效地防止了攻擊者進(jìn)行中間人攻 擊的可能。攻擊者可以獲得讀卡器和無(wú)線Key 所對(duì)應(yīng)的證書(shū),從而獲得公鑰。但是在應(yīng)答 器利用讀卡器的公鑰將隨機(jī)數(shù)R1 加密并發(fā)送給讀卡器后,攻擊者即使截獲,也無(wú)法解密獲 得R1。
⑷保護(hù)隱私。在本模型中,RFID 標(biāo)簽對(duì)讀卡器是有選擇性的,讀卡器取得標(biāo)簽信息之前, 標(biāo)簽會(huì)對(duì)讀卡器的合法性進(jìn)行驗(yàn)證,如果讀卡器沒(méi)有通過(guò)驗(yàn)證,標(biāo)簽就認(rèn)為讀卡器是非法的, 不會(huì)對(duì)讀卡器做出任何相應(yīng)。這種機(jī)制很好地保護(hù)了標(biāo)簽信息隱私的安全,非授權(quán)讀卡器是 不可能取得標(biāo)簽中的信息,也不能對(duì)目標(biāo)進(jìn)行跟蹤。
?、煞乐筓SBKey 被利用進(jìn)行非法交易。由于采用了RFID 技術(shù),用戶走出讀卡器的作用范圍 后,身上隨身攜帶的無(wú)線Key 自動(dòng)與終端PC 機(jī)斷開(kāi)連接,這樣可以防止用戶因?yàn)槭韬龆?記USBKey 還插在PC 機(jī)USB 端口上的情況。這不僅方便了用戶,而且也杜絕了不法分子 冒充用戶進(jìn)行非法交易活動(dòng)。
5 總結(jié)
本文在對(duì)RFID 安全性進(jìn)行分析的基礎(chǔ)上,提出設(shè)計(jì)了基于RFID 技術(shù)的無(wú)線Key 模型。 與單一的RFID 技術(shù)應(yīng)用相比,本模型不僅充分利用了RFID 技術(shù)便捷的優(yōu)點(diǎn),而且還結(jié)合 了USBKey 的加密技術(shù),使安全性和方便性得到了充分發(fā)揮。