基于讀寫(xiě)器參與計(jì)算的RFID認(rèn)證協(xié)議的設(shè)計(jì)與分析淺析
射頻識(shí)別RFID(Radio Frequency IdentificaTIon)技術(shù)是支撐物聯(lián)網(wǎng)(The Internet of Things)發(fā)展的重要技術(shù)之一,它是一種利用射頻信號(hào)和空間耦合(電感或電磁耦合)傳輸特性實(shí)現(xiàn)非接觸、自動(dòng)識(shí)別目標(biāo)對(duì)象并獲取相關(guān)數(shù)據(jù)的技術(shù)。
RFID系統(tǒng)一般由讀寫(xiě)器(Reader)、天線(Antenna)和標(biāo)簽(Tag)組成,通常還包括用來(lái)記錄標(biāo)簽更多信息的后端服務(wù)器或后端數(shù)據(jù)庫(kù)(Backend Database)。讀寫(xiě)器通過(guò)天線發(fā)送射頻信號(hào)到電子標(biāo)簽并接收電子標(biāo)簽回傳的信號(hào),獲讀取標(biāo)簽的標(biāo)識(shí)性信息,然后讀寫(xiě)器將標(biāo)簽的應(yīng)答消息發(fā)送給后端數(shù)據(jù)庫(kù)進(jìn)行判斷識(shí)別。
正是由于RFID技術(shù)具有無(wú)需人工干預(yù)、自動(dòng)、無(wú)接觸的傳遞數(shù)據(jù)等特性的識(shí)別過(guò)程,在諸多應(yīng)用實(shí)現(xiàn)高效、智能化的識(shí)別、定位、跟蹤、監(jiān)控和管理,但該技術(shù)在為數(shù)據(jù)采集提供靈活、方便的同時(shí)也將通過(guò)無(wú)線方式傳遞的數(shù)據(jù)信息暴露出來(lái),造成了信息安全方面的一個(gè)隱患。隨著RFID技術(shù)應(yīng)用的迅速推廣,其系統(tǒng)中數(shù)據(jù)安全問(wèn)題甚至已經(jīng)超過(guò)了計(jì)算機(jī)信息系統(tǒng)的安全邊界,引起了業(yè)界的普遍關(guān)注。
讀寫(xiě)器一旦發(fā)出讀取請(qǐng)求,在其天線信號(hào)覆蓋范圍中的標(biāo)簽會(huì)自動(dòng)應(yīng)答,但是這一應(yīng)答并不會(huì)通知其持有者。因讀寫(xiě)器與標(biāo)簽之間的無(wú)線通信信道是通用的工業(yè)頻段,如果有人攜帶RFID標(biāo)簽進(jìn)入該范圍,在通用協(xié)議下,讀寫(xiě)器可以輕易讀取標(biāo)簽信息,這時(shí)攜帶者的位置隱私就受到了威脅。如果標(biāo)簽信息被讀寫(xiě)器惡意篡改,則導(dǎo)致更為嚴(yán)重的安全問(wèn)題,當(dāng)RFID標(biāo)簽傳出自身專有信息時(shí),專有信息同樣可能被侵犯。RFID技術(shù)應(yīng)用的一些潛在用戶抵制RFID技術(shù)應(yīng)用推廣的原因多在于此。
目前,RFID系統(tǒng)應(yīng)用存在各式各樣的安全威脅,攻擊手段主要包括:1)通過(guò)竊聽(tīng)等手段獲取相關(guān)信息;2)根據(jù)已有消息進(jìn)行數(shù)據(jù)統(tǒng)計(jì)分析,做出對(duì)秘密的判斷;3)構(gòu)造消息(包括重放消息)對(duì)入侵系統(tǒng)進(jìn)行攻擊。
隱私和安已經(jīng)成為制約RFID技術(shù)推廣應(yīng)用的兩個(gè)主要因素,對(duì)于這兩個(gè)問(wèn)題,人們可以采取了主動(dòng)干擾、靜電屏蔽等物理防范措施保證系統(tǒng)的安全與隱私,但是這些措施在提高系統(tǒng)安全性的同時(shí)增加了系統(tǒng)成本,降低了標(biāo)簽使用的靈活性。密碼機(jī)制在RFID系統(tǒng)中的引入相對(duì)于物理防范而言,由于不需增加成本而更易于用戶接受,因此越來(lái)越多的研究人員將計(jì)算機(jī)信息技術(shù)中的密碼機(jī)制引入到RFID的安全協(xié)議中進(jìn)行研究,并提供應(yīng)對(duì)隱私和安全問(wèn)題的解決方案。
RFID的技術(shù)特性決定了與傳統(tǒng)認(rèn)證(例如口令認(rèn)證)方式不同,標(biāo)簽的唯一標(biāo)識(shí)信息ID與標(biāo)簽所附著的物品之間存在一定的對(duì)應(yīng)關(guān)系,識(shí)別RFID標(biāo)簽的背后是對(duì)其所附著物的識(shí)別,并且:1)RFID識(shí)別是被動(dòng)的;2)RFID標(biāo)簽應(yīng)答讀寫(xiě)器時(shí),標(biāo)識(shí)其ID的應(yīng)答消息與隱私相關(guān)。因此從信息安全的角度,對(duì)于標(biāo)簽的應(yīng)答信息,協(xié)議需要有一定的保護(hù)手段,保護(hù)所傳遞的信息不能夠被截取、篡改和重放;對(duì)于標(biāo)簽的ID信息,同樣需要保護(hù),以防對(duì)指定標(biāo)簽的定位跟蹤等涉及隱私的威脅發(fā)生,以達(dá)到機(jī)密性、完整性、可用性、真實(shí)性和隱私性的要求。
在RFID認(rèn)證協(xié)議中,普遍借助隨機(jī)數(shù)將RFID標(biāo)簽所發(fā)送的ID信息匿名化,當(dāng)讀寫(xiě)器讀取標(biāo)簽信息時(shí),讀寫(xiě)器生成一個(gè)隨機(jī)數(shù)并發(fā)送給標(biāo)簽,標(biāo)簽接收到隨機(jī)數(shù)后,利用該隨機(jī)數(shù)與標(biāo)簽ID結(jié)合處理,生成一個(gè)新的消息代替標(biāo)簽ID,實(shí)現(xiàn)標(biāo)簽ID的匿名化,之后將該消息回傳給讀寫(xiě)器作為系統(tǒng)認(rèn)證的依據(jù)。
基于密碼機(jī)制的RFID安全協(xié)議可分為靜態(tài)和動(dòng)態(tài)ID協(xié)議。在靜態(tài)ID協(xié)議中,標(biāo)簽的ID始終保持不變;在動(dòng)態(tài)ID協(xié)議中,每次認(rèn)證完成后,標(biāo)簽和后端數(shù)據(jù)庫(kù)中的ID信息需要同步更新。相對(duì)于靜態(tài)ID協(xié)議,動(dòng)態(tài)ID協(xié)議更加安全。
文獻(xiàn)對(duì)一些經(jīng)典協(xié)議進(jìn)行了分析,文獻(xiàn)利用隨機(jī)數(shù)實(shí)現(xiàn)了標(biāo)簽所發(fā)出ID的動(dòng)態(tài)化,但是沒(méi)有利用隨機(jī)數(shù)對(duì)標(biāo)簽ID進(jìn)行保護(hù),攻擊者較容易獲得標(biāo)簽ID信息。文獻(xiàn)中用metaID代替標(biāo)簽ID,但由于metaID是固定不變的,當(dāng)攻擊者得知metaID與標(biāo)識(shí)物的對(duì)應(yīng)關(guān)系后,仍可對(duì)其進(jìn)行跟蹤和定位。文獻(xiàn)利用 Hash函數(shù)與標(biāo)簽ID相結(jié)合,雖然具有一定的隱蔽性,但不具備隨機(jī)性,給攻擊者提供了重放攻擊的機(jī)會(huì)。文獻(xiàn)所述安全協(xié)議,在文獻(xiàn)所提出的強(qiáng)攻擊模型 (Strong Attacker)下,存在被擊破的可能。對(duì)于文獻(xiàn),攻擊者根據(jù)異或操作的特點(diǎn),通過(guò)選用特定的隨機(jī)數(shù)可對(duì)協(xié)議進(jìn)行分析,進(jìn)而破解協(xié)議。文獻(xiàn)所給出的 LCSS協(xié)議,包含了秘密的消息但缺乏校驗(yàn)機(jī)制,不能保證消息的完整性,而且入侵者有機(jī)會(huì)篡改消息,危害更為嚴(yán)重。在文獻(xiàn)中,研究人員試圖使攻擊者在無(wú)標(biāo)簽ID時(shí),不能構(gòu)造應(yīng)答消息,但是若攻擊者能給標(biāo)簽發(fā)送特定的隨機(jī)數(shù),并利用之前搜集的消息數(shù)據(jù)便可能構(gòu)造出關(guān)鍵消息。
以上協(xié)議,都強(qiáng)調(diào)“無(wú)需人工干預(yù)”這一條件下進(jìn)行,讀寫(xiě)器只負(fù)責(zé)傳遞數(shù)據(jù),不對(duì)數(shù)據(jù)進(jìn)行處理,也不參與識(shí)別認(rèn)證。在不增加標(biāo)簽制作成本的條件下,通過(guò)在讀寫(xiě)器增加數(shù)據(jù)處理操作來(lái)提升RFID系統(tǒng)的安全性,從而保障標(biāo)簽可以僅可被合法的讀寫(xiě)器所讀取,下面給出這一新協(xié)議。
1 認(rèn)證協(xié)議的設(shè)計(jì)與分析
1.1 協(xié)議設(shè)計(jì)
在介紹本協(xié)議前,將下文所用符號(hào)在表1中給出并進(jìn)行說(shuō)明。
1. 1.1 基本假設(shè)及系統(tǒng)初始狀態(tài)
RFID讀寫(xiě)器工作時(shí),需要從一個(gè)設(shè)備上獲取其工作密鑰KR,例如一張預(yù)先分配給這一讀寫(xiě)器的智能IC卡,操作者需要使用該卡啟動(dòng)讀寫(xiě)器工作。如果讀寫(xiě)器和后端數(shù)據(jù)庫(kù)都具備強(qiáng)大的數(shù)據(jù)處理和存儲(chǔ)能力,采用類似公鑰密碼算法的高強(qiáng)度密碼技術(shù)保障它們之間的通信安全是最佳選擇,但是實(shí)際情況并非如此,本協(xié)議僅要求標(biāo)簽具有一個(gè)偽隨機(jī)數(shù)發(fā)生器,可以進(jìn)行XOR運(yùn)算和一個(gè)函數(shù)F(x,y)運(yùn)算,F(xiàn)(x,y)≠F(y,x)。F(x,y)必須是適合在有限資源的標(biāo)簽上可以實(shí)現(xiàn)的輕計(jì)算型函數(shù)。
對(duì)于一個(gè)標(biāo)簽,它所持有的秘密為ID和Key,對(duì)應(yīng)的后端數(shù)據(jù)庫(kù)信息為{ID’,Key’,IDold’,Keyold’,LRd}。ID,Key和ID’,Key’,為當(dāng)前認(rèn)證所使用的數(shù)據(jù),ID old’,Keyold’為上一次認(rèn)證所使用的數(shù)據(jù),LRd為以隨機(jī)數(shù),ID與Key以及ID,Key和ID’,Key’的關(guān)系為:
1.1.2 識(shí)別過(guò)程
讀寫(xiě)器與數(shù)據(jù)庫(kù)之間同樣需要認(rèn)證,認(rèn)證方式可采用成熟的認(rèn)證方式,同時(shí)也需要對(duì)操作者所控制的IC進(jìn)行認(rèn)證。在讀取標(biāo)簽之前,讀寫(xiě)器需要從IC卡中獲取KR。
標(biāo)簽的識(shí)別過(guò)程如圖1所示。
1. 2 協(xié)議分析
1.2.1 安全性
隨著計(jì)算機(jī)處理能力的增強(qiáng),攻擊者能力也不斷提升,未受保護(hù)的通信容易受到如:竊聽(tīng)攻擊(Eavesdrop Attack),偽造攻擊(Forgery Attack),重放攻擊(Replay Atta ck),哄騙攻擊(Spoofing Attack),扮演攻擊(ImropersonaTIon,Attack),中間人攻擊(Man—in—Middle Attack),不同步攻擊(De-SynchronizaTIon Attack),拒絕服務(wù)(Den ial of Service)等安全方面的攻擊,以及定位(Locate),跟蹤(Trace),隱私信息(InformaTIon Privacy)等隱私方面的攻擊。
在上述攻擊中,一部分是通過(guò)對(duì)攻擊所致結(jié)果來(lái)命名,典型的如不同步攻擊和拒絕服務(wù)攻擊;還有一部分是利用認(rèn)證雙方所傳遞的信息,如重放攻擊、扮演攻擊、中間人攻擊等,它們是利用協(xié)議的漏洞,提供給認(rèn)證方認(rèn)為“合法”的數(shù)據(jù)對(duì)其進(jìn)行欺騙。
無(wú)論哪種攻擊,其核心為通過(guò)采用一定的手段、方式或方法獲取信息、分析信息背后所保護(hù)的信息、構(gòu)造出認(rèn)證所需的數(shù)據(jù)進(jìn)而破壞協(xié)議執(zhí)行。當(dāng)攻擊者要攻擊的 RFID系統(tǒng),一般有以下3種途徑,一種是通過(guò)竊聽(tīng)到的消息數(shù)據(jù)計(jì)算秘密,另一種在獲取一系列數(shù)據(jù)信息(監(jiān)聽(tīng)標(biāo)簽和讀寫(xiě)器之間的通信,竊取后端數(shù)據(jù)數(shù)據(jù)庫(kù)等)的基礎(chǔ)上,構(gòu)造可通過(guò)識(shí)別的消息,還有一種就是通過(guò)諸如旁道攻擊(Side-Channel Attack)等方式從標(biāo)簽獲取秘密。
為了抵抗攻擊,協(xié)議提供以下特性:
1)消息的新鮮性(Message Freshness):如其他諸多RFID協(xié)議一樣,為了實(shí)現(xiàn)RFID認(rèn)證中對(duì)隱私保護(hù)的支持,最基本的方法是使得在開(kāi)放信道中傳遞的消息是隨機(jī)的,所設(shè)計(jì)的協(xié)議使用了隨機(jī)數(shù)來(lái)使消息呈現(xiàn)新鮮性,并且Rt,Rd作為秘密處理。
2)機(jī)密性(Confidentiality):ID和Key以密文形式進(jìn)行傳遞,并通過(guò)包含Rt,Rd在內(nèi)的隨機(jī)秘密進(jìn)行保護(hù),保障ID和Key的機(jī)密性。
3)匿名性(Anonymity):在RFID識(shí)別過(guò)程中,通過(guò)隨機(jī)數(shù)對(duì)標(biāo)簽的應(yīng)答消息進(jìn)行保護(hù),這樣就保障了標(biāo)簽的匿名性,并且應(yīng)答的消息不與任何之前的消息有因果關(guān)系。
4)重放攻擊(Replay attack):在每次認(rèn)證過(guò)程中,都用新的隨機(jī)數(shù)對(duì)密碼進(jìn)行保護(hù),即使同一標(biāo)簽在不同認(rèn)證過(guò)程中的應(yīng)答消息也是不一樣的,重放上次的認(rèn)證消息是行不通的。
5)跟蹤(Traceability):RFID標(biāo)簽持有者攜標(biāo)簽進(jìn)入某讀寫(xiě)器覆蓋范圍時(shí),標(biāo)簽將自動(dòng)相應(yīng)讀寫(xiě)器的請(qǐng)求,如果直接用如ID信息等固有消息進(jìn)行相應(yīng),則標(biāo)簽持有者極易被定位跟蹤。在本協(xié)議中,標(biāo)簽ID變成了秘密,協(xié)議運(yùn)行時(shí)隨機(jī)數(shù)保護(hù)了應(yīng)答的消息,因此可以防止跟蹤。
6)不可區(qū)分性(Indistinguishability):如果在某一時(shí)刻是多個(gè)標(biāo)簽在應(yīng)答讀寫(xiě)器,由于消息的隨機(jī)性,攻擊者無(wú)法區(qū)分到底是哪個(gè)標(biāo)簽在應(yīng)答讀寫(xiě)器。
7)計(jì)算秘密(Calculatethe Secret):Rr,M1,M2,M3,M4,M5通過(guò)公開(kāi)的公用信道進(jìn)行傳遞,對(duì)具有強(qiáng)大攻擊能力的攻擊者來(lái)說(shuō)可視作明文。但是攻擊者要求解秘密,必須求解如下形式的方程:
然而,這對(duì)攻擊者來(lái)說(shuō)是有一定困難的。
8)構(gòu)造消息(Message Construction):哄騙攻擊,扮演攻擊,偽造攻擊,中間人攻擊都要求攻擊者利用所截獲的消息,或?qū)ο⑦M(jìn)行組合,或創(chuàng)造新消息,或綜合構(gòu)造出符合驗(yàn)證的消息,但方程(e)求解的困難性決定攻擊者要構(gòu)造出假消息是困難的。例如攻擊者要構(gòu)造
滿足服務(wù)器的驗(yàn)證。即便攻擊者利用XOR運(yùn)算的特性,選擇特定的數(shù)0作為Rr,但包含Rr的消息M2中ID,Key均未知,因此構(gòu)造出能通過(guò)服務(wù)器的檢查
,依然是困難的。同樣在沒(méi)有破解標(biāo)簽的情況構(gòu)造M3,M4,M5也是困難的。
9)拒絕服務(wù)(DoS):協(xié)議中,數(shù)據(jù)庫(kù)保存了上次運(yùn)行所需數(shù)據(jù)信息,以防止當(dāng)同步不成功時(shí),后端數(shù)據(jù)庫(kù)不再識(shí)別標(biāo)簽,呈現(xiàn)拒絕服務(wù)的狀況。
10)標(biāo)簽數(shù)據(jù)泄露(Tag Data,Leakage)與服務(wù)器扮演攻擊(Impersonate the Sever):依照文獻(xiàn),服務(wù)器扮演攻擊定義為攻擊者破解并竊取了標(biāo)簽的內(nèi)部狀況,進(jìn)而可以模仿服務(wù)器使標(biāo)簽更新數(shù)據(jù),而真實(shí)的服務(wù)器卻沒(méi)有更新。這個(gè)協(xié)議標(biāo)簽更新數(shù)據(jù)前要驗(yàn)證Key=F(ID,LRd)。因此,如果攻擊者僅僅破解內(nèi)部狀態(tài),依然不能構(gòu)造M3,M4,M5消息欺騙標(biāo)簽。但是,如果攻擊者不但破解了標(biāo)簽,此外還獲取了Rr,M1,M2,同時(shí)阻止M3,M4,M5,發(fā)送給標(biāo)簽,則攻擊者可以得手,不過(guò)這一條件比較苛刻。
11)后端數(shù)據(jù)庫(kù)信息泄露風(fēng)險(xiǎn)(Sever Data Leakage):如果后端數(shù)據(jù)庫(kù)提供識(shí)別服務(wù)的數(shù)據(jù)泄露,將給系統(tǒng)帶來(lái)巨大的風(fēng)險(xiǎn),攻擊者可以根據(jù)數(shù)據(jù)克隆標(biāo)簽,獲取非法利益。為此本協(xié)議通過(guò)在讀寫(xiě)器中增加操作,可以降低風(fēng)險(xiǎn)的發(fā)生。這是因?yàn)楹蠖藬?shù)據(jù)庫(kù)中沒(méi)有存儲(chǔ)讀寫(xiě)器的運(yùn)行密鑰KR。
1.2.2 性能
總所周知,在RFID系統(tǒng)中相對(duì)于標(biāo)簽而言,端讀寫(xiě)器和服務(wù)器具有更強(qiáng)的計(jì)算能力,標(biāo)簽的信息處理能力影響整個(gè)系統(tǒng)性能的關(guān)鍵因素,因此,在系統(tǒng)性能分析是主要分析標(biāo)簽端的計(jì)算、通信及存儲(chǔ)三部分。
計(jì)算:標(biāo)簽無(wú)需承擔(dān)高強(qiáng)度的計(jì)算,但是應(yīng)能夠完成異或運(yùn)算、生成隨機(jī)數(shù)、實(shí)現(xiàn)輕量的F(x,y)函數(shù)運(yùn)算。
通信:在一次完整的標(biāo)簽讀取過(guò)程中,標(biāo)簽接收2條消息,發(fā)送1條消息。
存儲(chǔ):標(biāo)簽端需要存儲(chǔ)用來(lái)完成識(shí)別過(guò)程的兩個(gè)秘密數(shù)據(jù)標(biāo)簽ID和Key。
1.2.3 可擴(kuò)展性
協(xié)議運(yùn)行時(shí),后端的數(shù)據(jù)庫(kù)需要進(jìn)行一個(gè)線性的查找過(guò)程,其所需時(shí)間的復(fù)雜度為O(n),顯然這面臨可擴(kuò)展性問(wèn)題。為了實(shí)現(xiàn)可擴(kuò)展性需求,可以將數(shù)據(jù)分布于多個(gè)后端數(shù)據(jù)庫(kù),讀寫(xiě)器認(rèn)證連接后,可以有選擇的連接到其工作數(shù)據(jù)庫(kù)。當(dāng)然,數(shù)據(jù)庫(kù)要維護(hù)好式ID,Key和ID’,Key’的關(guān)系。
1.2.4 討論
在分析認(rèn)證協(xié)議時(shí),常常假設(shè)所使用的密碼算法是“完美無(wú)缺”的,忽略其可能存在的缺點(diǎn),但是對(duì)于解決RFID安全問(wèn)題而進(jìn)行協(xié)議設(shè)計(jì)時(shí),不能不考慮所使用的密碼算法的各種特性。
RFID標(biāo)簽可分為主動(dòng)式標(biāo)簽(Active Tag)及被動(dòng)式標(biāo)簽(Passive Tag)兩種。被動(dòng)式的標(biāo)簽也叫無(wú)源標(biāo)簽,它身沒(méi)有電池的裝置,所需電流來(lái)源于讀寫(xiě)器的無(wú)線電波電磁感應(yīng)產(chǎn)生,因此標(biāo)簽只有在接收到讀寫(xiě)器發(fā)出的信號(hào)才會(huì)被動(dòng)的應(yīng)答讀寫(xiě)器。這一類型的標(biāo)簽成本相對(duì)較低并具有較長(zhǎng)的使用壽命,同時(shí)比有源標(biāo)簽更小也更輕。主動(dòng)式的標(biāo)簽也叫有源標(biāo)簽,內(nèi)置有電池,可以主動(dòng)傳送信號(hào)供讀寫(xiě)器讀取,但體積較大,與無(wú)源標(biāo)簽相比成本也會(huì)高出很多。
RFID標(biāo)簽是整個(gè)RFID系統(tǒng)中最為“弱”得一個(gè)環(huán)節(jié),特別是對(duì)于低成本的RFID標(biāo)簽來(lái)說(shuō)沒(méi)有足夠的計(jì)算能力,存儲(chǔ)能力以及電源供給能力。一般來(lái)說(shuō),低成本被動(dòng)標(biāo)簽只有5K-10K邏輯門,并且可用于安全算法的更少。傳統(tǒng)的密碼技術(shù)難以在這些標(biāo)簽上實(shí)現(xiàn),例如公鑰密碼ECC(Ellipic- based Public Key Encryption)需要15K邏輯門。傳統(tǒng)的Hash函數(shù)需要超過(guò)16K邏輯門,這遠(yuǎn)遠(yuǎn)超出了一般低成本標(biāo)簽的能力。
因此,針對(duì)不同特性的RFID標(biāo)簽,需要對(duì)F(x,y)進(jìn)行選擇,使用可以在低成本標(biāo)簽中實(shí)現(xiàn)的算法。
2 結(jié)論
安全是相對(duì)的,它取決于多種因素,在基本不增加系統(tǒng)成本的前提下,將系統(tǒng)的安全級(jí)別進(jìn)行提升,意義尤為重要。本文所提出的協(xié)議是針對(duì)被動(dòng)式低成本RFID 標(biāo)簽,通過(guò)增加讀寫(xiě)器數(shù)據(jù)處理操作來(lái)提高整體的安全性,同時(shí)所使用的函數(shù)可以根據(jù)RFID標(biāo)簽?zāi)芰M(jìn)行選擇,適用性較廣。