和其它安全設(shè)備一樣,RFID設(shè)備的安全性并不完美。盡管RFID設(shè)備得到了廣泛的應(yīng)用,但其帶來的安全威脅需要我們在設(shè)備部署前解決。本文將主要介紹幾個RFID相關(guān)的安全問題。
1.RFID偽造
根據(jù)計算能力,RFID可以分為三類:
1.普通標(biāo)簽(tag)
2.使用對稱密鑰的標(biāo)簽
3.使用非對稱密鑰的標(biāo)簽
其中,普通標(biāo)簽不做任何加密操作,很容易進(jìn)行偽造。但普通標(biāo)簽卻廣泛應(yīng)用在物流管理和旅游業(yè)中,攻擊者可以輕易將信息寫入一張空白的RFID標(biāo)簽中或者修改一張現(xiàn)有的標(biāo)簽,以獲取使用RFID標(biāo)簽進(jìn)行認(rèn)證系統(tǒng)對應(yīng)的訪問權(quán)限。對于普通標(biāo)簽攻擊者可以進(jìn)行如下三件事:
1.修改現(xiàn)有標(biāo)簽中的數(shù)據(jù),使一張無效標(biāo)簽變?yōu)橛行У模蛘呦喾矗瑢⒂行У臉?biāo)簽變?yōu)闊o效。例如,可以通過修改商品的標(biāo)簽內(nèi)容,然后以一個較低的價格購買一件昂貴的商品。
2.同樣還是修改標(biāo)簽,不過是將一個標(biāo)簽內(nèi)容修改為另一個標(biāo)簽的內(nèi)容,就是貍貓換太子。
3.根據(jù)獲取到的別人標(biāo)簽內(nèi)容來制造一張自己的標(biāo)簽。
所以,當(dāng)想在一些處理如身份證這種包含敏感信息的系統(tǒng)中使用RFID標(biāo)簽時,一定要使用加密技術(shù)。但如果不得不使用普通標(biāo)簽的話,一定要確保配有相應(yīng)的安全規(guī)范、監(jiān)控和審計程序,以檢測RFID系統(tǒng)中任何的異常行為。
2.RFID嗅探
RFID嗅探是RFID系統(tǒng)中一個主要的問題。RFID閱讀器總是向標(biāo)簽發(fā)送請求認(rèn)證的信息,當(dāng)閱讀器收到標(biāo)簽發(fā)送的認(rèn)證信息時,它會利用后端數(shù)據(jù)庫驗(yàn)證標(biāo)簽認(rèn)證信息的合法性。但不幸的是,大部分的RFID標(biāo)簽并不認(rèn)證RFID閱讀器的合法性。那么攻擊者可以使用自己的閱讀器去套取標(biāo)簽的內(nèi)容。
3.跟蹤
通過讀取標(biāo)簽上的內(nèi)容,攻擊者可以跟蹤一個對象或人的運(yùn)動軌跡。當(dāng)一個標(biāo)簽進(jìn)入到了閱讀器可讀取的范圍內(nèi)時,閱讀器可以識別標(biāo)簽并記錄下標(biāo)簽當(dāng)前的位置。無論是否對標(biāo)簽和閱讀器之間的通信進(jìn)行了加密,都無法逃避標(biāo)簽被追蹤的事實(shí)。攻擊者可以使用移動機(jī)器人來跟蹤標(biāo)簽的位置。
4.拒絕服務(wù)
當(dāng)閱讀器收到來自標(biāo)簽的認(rèn)證信息時,它會將認(rèn)證信息與后端數(shù)據(jù)庫內(nèi)的信息進(jìn)行比對。閱讀器和后端數(shù)據(jù)庫都很容易遭受拒絕服務(wù)攻擊。當(dāng)出現(xiàn)拒絕服務(wù)攻擊時,閱讀器將無法完成對標(biāo)簽的認(rèn)證,并導(dǎo)致其他相應(yīng)服務(wù)的中斷。所以,必須確保閱讀器和后端數(shù)據(jù)庫之間有相應(yīng)防范拒絕服務(wù)攻擊的機(jī)制。
5.欺騙
在欺騙攻擊中,攻擊中常常將自己偽造成為一個合法的用戶。有時,攻擊者會把自己偽造成后端數(shù)據(jù)庫的管理員,如果偽造成功,那么攻擊者就可以隨心所欲的做任何事,例如:相應(yīng)無效的請求,更改RFID標(biāo)識,拒絕正常的服務(wù)或者干脆直接在系統(tǒng)中植入惡意代碼。
6.否認(rèn)
所謂否認(rèn)就是當(dāng)一個用戶在進(jìn)行了某個操作后拒絕承認(rèn)他曾做過,當(dāng)否認(rèn)發(fā)送時,系統(tǒng)沒有辦法能夠驗(yàn)證該用戶究竟有沒有進(jìn)行這項(xiàng)操作。在使用RFID中,存在兩種可能的否認(rèn):一種是發(fā)送者或接收者可能否認(rèn)進(jìn)行過一項(xiàng)操作,如發(fā)出一個RFID請求,此時我們沒任何證據(jù)可以證明發(fā)送者或接收者是否發(fā)出過RFID 請求;另一種是數(shù)據(jù)庫的擁有者可能否認(rèn)他們給予過某件物品或人任何標(biāo)簽。
7.插入攻擊
在這種攻擊中,攻擊者試圖向RFID系統(tǒng)發(fā)送一段系統(tǒng)命令而不是原本正常的數(shù)據(jù)內(nèi)容。一個最簡單的例子就是,攻擊者將攻擊命令插入到標(biāo)簽存儲的正常數(shù)據(jù)中。
8.重傳攻擊
攻擊者通過截獲標(biāo)簽與閱讀器之間的通信,記錄下標(biāo)簽對閱讀器認(rèn)證請求的回復(fù)信息,并在之后將這個信息重傳給閱讀器。重傳攻擊的一個例子就是,攻擊者記錄下標(biāo)簽和閱讀器之間用于認(rèn)證的信息。
9.物理攻擊
物理攻擊發(fā)送在攻擊者能夠在物理上接觸到標(biāo)簽并篡改標(biāo)簽的信息。物理攻擊有多種方式,例如:使用微探針讀取修改標(biāo)簽內(nèi)容,使用X射線或者其他射線去破壞標(biāo)簽內(nèi)容,使用電磁干擾破壞標(biāo)簽與閱讀器之間的通信。
另外,任何人都可以輕易的使用小刀或其他工具人為的破壞標(biāo)簽,這樣閱讀器就無法識別標(biāo)簽了。
10.病毒
同其他信息系統(tǒng)一樣,RFID系統(tǒng)很容易遭受病毒的攻擊。多數(shù)情況下,病毒的目標(biāo)都是后端數(shù)據(jù)庫。RFID病毒可以破壞或泄露后端數(shù)據(jù)庫中存儲的標(biāo)簽內(nèi)容,拒絕或干擾閱讀器與后端數(shù)據(jù)庫之間的通信。為了保護(hù)后端數(shù)據(jù)庫,一定要及時修補(bǔ)數(shù)據(jù)庫漏洞和其他風(fēng)險。
雖然RFID系統(tǒng)常常成為被攻擊的目標(biāo),但是由于RFID系統(tǒng)低廉的成本,使得其在很多領(lǐng)域還是得到了廣泛的應(yīng)用。所以當(dāng)準(zhǔn)備部署RFID系統(tǒng)時,一定要更多的關(guān)注其安全問題,特別是本文描述的前四種攻擊:偽造、嗅探、跟蹤和拒絕服務(wù)攻擊。
基于MSP430F2012和nRF24L01低功耗RFID定位設(shè)計方案
1.系統(tǒng)硬件設(shè)計
1.1 系統(tǒng)結(jié)構(gòu)
有源標(biāo)簽在設(shè)計中除了需要考慮低成本、小型化之外,最重要的是要采取低功耗設(shè)計。
RFID標(biāo)簽從整體結(jié)構(gòu)上看,通常包括2個部分:控制端和射頻端,因此在選擇控制芯片和射頻芯片時需要優(yōu)先考慮其低功耗性能。本文在此基礎(chǔ)上選擇了 MSP430F2012控制芯片和nRF24L01射頻芯片;天線則選用了Nordic公司的PCB單端天線;標(biāo)簽采用3V-500mAh紐扣電池供電。系統(tǒng)工作在2.4GHz頻段。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
2.2 芯片選擇及低功耗設(shè)計
TI推出的MSP430系列單片機(jī)是16位Flash型RISC指令集單片機(jī)[3],以超低功耗聞名業(yè)界。
MSP430F2012芯片工作電壓僅為1.8~3.6V,掉電工作模式下消耗電流為0.1μA,等待工作模式下消耗電流僅為0.5μA.本設(shè)計中,MSP430F2012被長時間置于等待工作模式,通過中斷喚醒的方式使其短暫進(jìn)入工作狀態(tài),以節(jié)省電能。MSP430F2012具有3組獨(dú)立的時鐘源:片內(nèi)VLO、片外晶振、DCO.其中,片外時鐘基于外部晶振;DCO由片內(nèi)產(chǎn)生,且頻率可調(diào)。顯然,主系統(tǒng)時鐘頻率的高低決定著系統(tǒng)的功耗,尤其是選擇了高速片外晶振的情況下,因此,MSP430F2012提供了在不同時鐘源間進(jìn)行切換的功能。在實(shí)際設(shè)計中,通過實(shí)時重新配置基礎(chǔ)時鐘控制寄存器以實(shí)現(xiàn)主系統(tǒng)時鐘和輔助系統(tǒng)時鐘間的切換,既不失性能,又節(jié)約了能耗。
MSP430F2012具有LPM0~LPM4五種低功耗模式,合理的利用這五種預(yù)設(shè)的模式是降低MCU功耗的關(guān)鍵,本設(shè)計中,MSP430F2012 在上電配置完畢后將直接進(jìn)入LPM3模式,同時開啟中斷,等待外部中斷信號。此外,由于MSP430F2012是一款多功能通用單片機(jī),片內(nèi)集成了較多功能模塊,在上電配置時即停止所有不使用的功能模塊也能起到降低系統(tǒng)功耗的目的。
nRF24L01是Nordic公司開發(fā)的2.4GHz超低功耗單片無線收發(fā)芯片,芯片有125個頻點(diǎn),可實(shí)現(xiàn)點(diǎn)對點(diǎn)和點(diǎn)對多點(diǎn)的無線通信,最大傳輸速率可達(dá)2Mbps,工作電壓為1.9~3.6V[4]。為了凸顯其低功耗性能,芯片預(yù)置了兩種待機(jī)模式和一種掉電模式。更值得一提的是nRF24L01 的 ShockBurstTM模式及增強(qiáng)型ShockBurstTM模式[4],真正實(shí)現(xiàn)了低速進(jìn)高速出,即MCU將數(shù)據(jù)低速送入nRF24L01片內(nèi) FIFO,卻以1Mbps或2Mbps高速發(fā)射出去。本設(shè)計正是利用了增強(qiáng)型ShockBurstTM模式,使得MSP430F2012即便在 32768Hz低速晶振下也能通過射頻端高速的將數(shù)據(jù)發(fā)射出去,既降低了功耗,又提高了效率,增強(qiáng)了系統(tǒng)防沖突和應(yīng)付移動目標(biāo)能力。
1.3 電路設(shè)計
本系統(tǒng)主要運(yùn)用于RFID定位方面,除了簡單的識別外,重點(diǎn)在于閱讀器對標(biāo)簽信號強(qiáng)度的測量,因此閱讀器與標(biāo)簽間不會有大數(shù)據(jù)量頻繁的讀寫操作,在電路設(shè)計時可省略片外EEPROM.同時還可以省去穩(wěn)壓電路以節(jié)省靜態(tài)電流消耗。硬件原理圖如圖2所示。
2.系統(tǒng)軟件設(shè)計
2.1 軟件流程
本系統(tǒng)屬于雙向通信系統(tǒng),標(biāo)簽在發(fā)送數(shù)據(jù)前處于監(jiān)聽狀態(tài),nRF24L01的接收功能被打開,同時MSP430F2012處于LPM3模式,直至接收到閱讀器廣播的“開始”指令,并通過中斷將MSP430F2012喚醒。MSP430F2012被中斷喚醒后開始判斷指令是否正確,如果正確則進(jìn)入正常發(fā)送周期,否則返回LPM3模式。
考慮到實(shí)時定位的需要,系統(tǒng)不能像一般的RFID標(biāo)簽?zāi)菢觾H僅進(jìn)行有限次驗(yàn)證,本系統(tǒng)采用等間隔持續(xù)發(fā)送的模式,便于閱讀器實(shí)時監(jiān)測目標(biāo)位置,系統(tǒng)設(shè)定的正常發(fā)送周期為500ms,由MSP430F2012的Timer_A定時,500ms定時開始后,標(biāo)簽ID通過SPI發(fā)送到 FIFO,nRF24L01采用了增強(qiáng)型ShockBurstTM模式,發(fā)送失敗則會繼續(xù)重發(fā),標(biāo)簽ID發(fā)送完畢后,MSP430F2012判斷定時器是否超時,一旦超時則進(jìn)入下個發(fā)送周期,否則處于等待狀態(tài)直至超時。當(dāng)閱讀器停止廣播“開始”指令,MSP430F2012重新進(jìn)入LPM3模式以降低功耗。
系統(tǒng)完整流程如圖3所示。
2.2 防沖突設(shè)計
nRF24L01自帶載波檢測功能,在發(fā)送數(shù)據(jù)前先轉(zhuǎn)入接收模式進(jìn)行監(jiān)聽,確認(rèn)要傳輸?shù)念l率通道未被占用才發(fā)送數(shù)據(jù),利用此功能可實(shí)現(xiàn)簡單的硬件防沖突。
考慮到本系統(tǒng)采用了500ms的統(tǒng)一發(fā)送間隔,在被定位目標(biāo)眾多的場合有可能發(fā)生識別沖突,因此需要在程序中合理的增加防沖突算法。ALOHA算法主要用于有源標(biāo)簽,其原理就是,一旦信源發(fā)生數(shù)據(jù)包碰撞,就讓信源隨機(jī)延時后再次發(fā)送數(shù)據(jù)。考慮到程序的復(fù)雜性勢必引起處理時間的增加,也會帶來額外的能耗,本系統(tǒng)采用了較為簡單的純ALOHA算法,即在每個500ms計時周期內(nèi)隨機(jī)發(fā)送標(biāo)簽ID,這就需要在程序中插入一個隨機(jī)延時,延時時長的選擇通過一個隨機(jī)值函數(shù)來實(shí)現(xiàn),隨機(jī)延時范圍為0~300ms.這種簡單的防沖突算法既簡化了指令,又能大幅降低沖突概率。
另外,n R F 2 4 L 0 1傳輸速率為1 M b p s或2Mbps,單次發(fā)送一個數(shù)據(jù)包,單個數(shù)據(jù)包最大32bytes,假設(shè)標(biāo)簽ID為32bytes,以2Mbps速率發(fā)送一次ID的信號寬度(傳輸時間)約為100~150μs,相對于500ms的整個定時周期而言微乎其微,但仍有可能出現(xiàn)發(fā)送飽和的狀態(tài),這時可以適當(dāng)?shù)难娱L計時周期以增加信道容量。較快的傳輸速率有助于移動目標(biāo)的識別和定位,而較短的數(shù)據(jù)長度也能顯著提高標(biāo)簽基于隨機(jī)延時的防沖突能力,因此盡可能將標(biāo)簽ID的長度限制在 32bytes以內(nèi)。
3.測試結(jié)果
對于RFID系統(tǒng)而言,最重要的參數(shù)就是讀取距離[5]和有效讀取率。本次實(shí)驗(yàn)測試設(shè)備為標(biāo)簽3枚,閱讀器一臺,PC一臺,閱讀器基于 MSP430F149和nRF24L01芯片設(shè)計,并通過RS232串口與PC進(jìn)行通信。測試中,分別將3枚標(biāo)簽置于距離閱讀器15m、30m、45m 處,便簽ID分別為AABBCCDDFFFFFF01、AABBCCDDFFFFFF02、AABBCCDDFFFFFF03,每枚標(biāo)簽進(jìn)行一小時(約 7200次)連續(xù)讀取測試。
從表1測試結(jié)果看,30m以內(nèi)為標(biāo)簽正常讀取距離,可滿足一般的室內(nèi)應(yīng)用,距離為45m 時讀取率則顯著下降。由于天線的設(shè)計對系統(tǒng)性能有較大影響[6],通過改進(jìn)標(biāo)簽的天線以獲取較大輸出功率,改進(jìn)閱讀器端天線接收靈敏度也能顯著提高系統(tǒng)性能。
4.結(jié)束語
本文對基于MSP430F2012和nRF24L01的有源RFID標(biāo)簽的設(shè)計進(jìn)行了詳細(xì)的介紹。對2款芯片的低功耗性能進(jìn)行了分析并提出了自己的低功耗設(shè)計方案;結(jié)合了RFID定位的特點(diǎn),介紹了有別于一般以識別為主要目的的標(biāo)簽的設(shè)計方法,分析了其軟件設(shè)計流程;針對一般空間內(nèi)被識別目標(biāo)眾多且常處于移動狀態(tài)的特點(diǎn),介紹了系統(tǒng)的防沖突能力。整個系統(tǒng)電路簡單,尺寸小,功耗低,通過良好匹配的天線通信距離可達(dá)幾十米,可以滿足煤礦行業(yè)井下一般小范圍空間內(nèi)的定位需求。
?
?
評論