吳 飛 陳景暉 陳亞猛 黃曉云 王宏偉 鄭成賀
(1.國網(wǎng)福建省電力有限公司,福建 福州350003;2.國網(wǎng)福建省電力有限公司 泉州供電公司,福建 泉州362000;3.國網(wǎng)信通億力科技有限責(zé)任公司,福建 福州350003)
射頻識別(Radio Frequency Identification)是一種非接觸的無線自動識別技術(shù)。 它通過射頻信號自動識別目標(biāo)對象并獲取相關(guān)數(shù)據(jù),在工作過程中不需要人工操作, 相當(dāng)于無線的條形碼, 但相比條形碼RFID 技術(shù)具有防水、防磁、耐高溫、讀取距離大、使用壽命更長、標(biāo)簽數(shù)據(jù)能夠加密、存儲數(shù)據(jù)容量更大、存儲信息更改自如等優(yōu)點(diǎn)[1]。
RFID 系統(tǒng)主要由以下三個部分組成:應(yīng)答器:由天線,耦合元件及芯片組成,通常使用標(biāo)簽作為應(yīng)答器,每個標(biāo)簽上有一個唯一的標(biāo)識碼及標(biāo)簽key,用于識別標(biāo)簽黏貼的對象。 閱讀器:與應(yīng)答器相同內(nèi)部都有天線,耦合元件和芯片,是作為讀取或?qū)懭霕?biāo)簽信息的相應(yīng)設(shè)備,根據(jù)應(yīng)用場景不同,可設(shè)計為手持或者固定的RFID 閱讀器。 應(yīng)用軟件系統(tǒng):作為RFID 數(shù)據(jù)處理后端,主要是將收集的數(shù)據(jù)做進(jìn)一步處理[2]。
RFID 的工作原理是標(biāo)簽通過與讀寫器發(fā)生電磁耦合從而獲得能量,并將標(biāo)簽上的數(shù)據(jù)信息傳送給讀寫器。整個過程是自動進(jìn)行,無需系統(tǒng)做出任何物理性接觸就能夠完成對區(qū)域內(nèi)特定目標(biāo)對象的自動識別,并且可以工作在各種惡劣的環(huán)境,同時還能夠?qū)Σ恢挂粋€標(biāo)簽進(jìn)行數(shù)據(jù)交換,操作簡單快捷。 從20 世紀(jì)起RFID 技術(shù)就逐漸進(jìn)入企業(yè)應(yīng)用的領(lǐng)域中。
雖然如上所述RFID 技術(shù)有著許多傳統(tǒng)識別技術(shù)所欠缺的優(yōu)點(diǎn),但由于標(biāo)簽和讀寫器之間傳輸數(shù)據(jù)的方式是通過無線射頻信號進(jìn)行的,在傳輸過程中這些數(shù)據(jù)相當(dāng)于廣播發(fā)送,完全暴露在一定范圍內(nèi),任何人想獲取這些數(shù)據(jù)信息都可以通過相關(guān)手段得到,這樣就會造成一些敏感信息泄露,使得RFID 系統(tǒng)存在著傳統(tǒng)識別系統(tǒng)不需要特殊考慮的傳輸方面等安全隱私問題[3]。
本文的提出就是為了解決由于RFID 引入而存在的安全隱患,其中安全認(rèn)證技術(shù)是解決RFID 安全的關(guān)鍵問題之一。 只有設(shè)計了可靠的安全機(jī)制,才能夠保證RFID 標(biāo)簽里面的數(shù)據(jù)、相關(guān)信息不被竊取、篡改、干擾、RFID 系統(tǒng)中的相關(guān)個人信息,甚至是商業(yè)機(jī)密才能不被不法分子盜取和利用。 同時注重數(shù)據(jù)讀寫傳輸過程的安全問題,最終達(dá)到提升電力資產(chǎn)管理系統(tǒng)的安全性,可靠性的目的。
在安全缺陷方面RFID 除了與傳統(tǒng)計算機(jī)網(wǎng)絡(luò)的相同之處外,還存在以下四種不同的安全缺陷類型[4]:
由于標(biāo)簽的成本有限,標(biāo)簽自身很難具備保證安全的能力,這就使整個系統(tǒng)面臨了很大的安全問題。非法用戶能夠利用合法的閱讀器或是自己構(gòu)建一個閱讀器與標(biāo)簽直接進(jìn)行通信。進(jìn)而輕松獲取標(biāo)簽里面的數(shù)據(jù)。 對于讀寫標(biāo)簽,還能夠被非法用戶篡改標(biāo)簽內(nèi)數(shù)據(jù)。
RFID 的信息通信鏈路是無線通信鏈路。 與傳統(tǒng)的有線連接的端到端傳輸不同,無線傳輸相當(dāng)于廣播,信號本身就是開放式的。信號覆蓋區(qū)域內(nèi)的非法用戶可以很方便的進(jìn)行各種操作如下:
(1)非法截取竊聽通信信息數(shù)據(jù);
(2)業(yè)務(wù)拒絕式攻擊,通過發(fā)射大量干擾信號來堵塞區(qū)域內(nèi)通信鏈路,使閱讀器不斷接收處理垃圾數(shù)據(jù),而無法接收處理標(biāo)簽發(fā)送過來的正常數(shù)據(jù);
(3)利用冒名代替正常的標(biāo)簽向閱讀器發(fā)送虛假數(shù)據(jù),使得閱讀器處理的都是非法用戶的數(shù)據(jù),真實(shí)數(shù)據(jù)則被隱藏起來。
在閱讀器中,只有提供一些簡單的數(shù)據(jù)篩選,時間過濾和管理功能,對外只提供用戶對應(yīng)的業(yè)務(wù)接口,沒有用于提升安全性能的相應(yīng)接口。
除了前端標(biāo)簽,閱讀器以及標(biāo)簽閱讀器之間存在的風(fēng)險,后端系統(tǒng)同時存在安全問題,例如后端數(shù)據(jù)的儲存安全,后端系統(tǒng)訪問安全,后端系統(tǒng)與其他系統(tǒng)的交互安全等。
根據(jù)上述的RFID 缺陷問題,容易引發(fā)的攻擊方式可分為:主動攻擊和被動攻擊[5]。
主動攻擊:對獲取到的標(biāo)簽,在實(shí)驗(yàn)室環(huán)境下通過物理手段去除標(biāo)簽芯片的外部封裝,使用微探針進(jìn)行敏感信號獲取,從而進(jìn)行重構(gòu)標(biāo)簽的復(fù)雜性攻擊;通過軟件手段,利用微處理器上的通用通信接口,不斷掃描,探詢標(biāo)簽與讀寫器間的安全認(rèn)證協(xié)議與加密算法以及對應(yīng)存在的弱點(diǎn),進(jìn)行篡改標(biāo)簽內(nèi)容的攻擊;通過發(fā)送大量干擾廣播以阻塞信道或使用其他手段,使區(qū)域內(nèi)工作環(huán)境異常,閱讀器無法正常工作,進(jìn)行業(yè)務(wù)拒絕式攻擊等。
被動攻擊:采用竊聽技術(shù),通過分析正常工作下微處理器產(chǎn)生的各種電磁信號,獲得標(biāo)簽和識讀器之間或與其他RFID 設(shè)備之間的通信信息 (由于接收到閱讀器傳來的密碼不正確時標(biāo)簽的能耗會上升,功率消耗模式可被加以分析以確定何時標(biāo)簽接收了正確和不正確的密碼位)。
RFID 的安全認(rèn)證主要提供對信息來源方的鑒別、 保證信息的完整和不可否認(rèn)等功能,而這三種功能都需要通過數(shù)字簽名實(shí)現(xiàn)[6]。數(shù)字簽名的基本過程為:發(fā)送方將明文用相關(guān)算法獲得數(shù)字摘要,用簽名私鑰對摘要進(jìn)行加密得到數(shù)字簽名,發(fā)送方將明文與數(shù)字簽名一起使用對稱加密發(fā)送給接收方;接收方先使用秘鑰解密,然后使用發(fā)送方公鑰解密數(shù)字簽名,則驗(yàn)證發(fā)送方真實(shí)身份并得出數(shù)字摘要;接收方將明文采用同樣算法計算出新的數(shù)字摘要,對比兩個數(shù)字摘要,相同則證明內(nèi)容未被篡改。 該密鑰系統(tǒng)既能發(fā)揮對稱加密算法加密效率高、速度快,安全性好的優(yōu)點(diǎn);又能發(fā)揮非對稱加密算法密鑰管理方便、安全性高、可實(shí)現(xiàn)數(shù)字簽名的優(yōu)點(diǎn);各取所長,使得RFID 系統(tǒng)更安全、快速,運(yùn)行代價更低。
其中數(shù)字簽名的原理簡述為:用非對稱算法的私鑰加密的內(nèi)容只能用對應(yīng)的公鑰來解密。而私鑰是不公開的。因此,如果一段信息能用某個人的公鑰解密,那么它一定是用此人的私鑰加密的。 它和物理的簽名一樣,是很難偽造的。根據(jù)項(xiàng)目實(shí)際需求,選取SSL 作為電力資產(chǎn)管理主站與RFID 終端雙向認(rèn)證技術(shù):通過建立HTTPS 信息安全通道保證資產(chǎn)數(shù)據(jù)傳輸?shù)陌踩院屯ㄓ嶋p方身份的真實(shí)性;采用數(shù)字證書及數(shù)字簽名進(jìn)行雙端實(shí)體驗(yàn)證, 用非對稱加密算法進(jìn)行秘鑰協(xié)商,用對稱加密算法將數(shù)據(jù)加密后進(jìn)行傳輸以保證數(shù)據(jù)的保密性,驗(yàn)證數(shù)據(jù)在傳輸過程中是否被篡改和偽造,從而為敏感數(shù)據(jù)的傳輸提供了一種安全保障手段。主要提供以下三種服務(wù):RFID 終端入網(wǎng)注冊成功后自動安裝安全證書, 在和管理主站在握手交換數(shù)據(jù)時進(jìn)行數(shù)字認(rèn)證,需要持有正確的秘鑰和安全證書才可以進(jìn)行握手通信;在傳輸過程中對資產(chǎn)數(shù)據(jù)進(jìn)行加密以防止數(shù)據(jù)中途被竊?。?維護(hù)字長數(shù)據(jù)的完整性,確保在傳輸過程中不被改變。
使用TOMCAT+SSL 雙向認(rèn)證進(jìn)行模擬試驗(yàn)。首先,客戶端將要認(rèn)證服務(wù)器的安全性,確保訪問的是正確的服務(wù)器,而非假冒的釣魚網(wǎng)站;其次,服務(wù)器也要認(rèn)證客戶端的安全性,只有那些擁有服務(wù)器授權(quán)證書的客戶端才可以訪問。 設(shè)計實(shí)現(xiàn)步驟如下:
1)在E 盤下建立目錄:mykeys
2)啟動命令行,并轉(zhuǎn)到E:/mykeys
a)創(chuàng)建服務(wù)器密鑰,其密鑰庫為E:/mykeys/server.ks,keypass和storepass 需要保持一致,它們分別代表密鑰密碼和密鑰庫密碼,在CN=localhost中,localhost 表示要配置SSL 的主機(jī)名,不能隨意指定
E:/mykeys >keytool -genkey -v -alias serverKey -dname "CN =localhost" -keyalg RSA -keypass zch123 -keystore server.ks -storepass zch123
b)創(chuàng)建客戶端密鑰,其密鑰庫為E:/mykeys/client.p12,這個密鑰庫的后綴名類型為PKCS12
E:/mykeys >keytool -genkey -v -alias clientKey -dname "CN =SomeOne" -keyalg RSA -keypass test123-keystore client.p12 -storepass test123-storetype PKCS12
c)將客戶端密鑰導(dǎo)出為證書文件
E:/mykeys >keytool -export -alias clientKey -file clientKey.cer -keystore client.p12 -storepass test123-storetype PKCS12
d) 將上述客戶端密鑰文件導(dǎo)入服務(wù)器證書庫, 并設(shè)置為信任證書; E:/mykeys>keytool -import -v -alias clientKey -file clientKey.cer -keystore server.ks -storepass zch123
3)為了在本機(jī)瀏覽器中進(jìn)行SSL 訪問,雙擊E:/mykeys/client.p12,啟動證書向?qū)?/p>
a)要導(dǎo)入的文件文件名 E:/mykeys/client.p12
b)為私鑰鍵入密碼test123,并勾選:標(biāo)志此密鑰為可導(dǎo)出的
c)證書存儲,選:將所有的證書放入下列存儲區(qū),然后,瀏覽-個人
d)打開IE,查看證書:工具-Internet 選項(xiàng)-內(nèi)容-證書-個人,看到SomeOne 證書已被安裝
4) 配 置TOMCAT 服 務(wù) 器, 以 支 持SSL 認(rèn) 證, 編 輯 文 件:%tomcat_home%/conf/server.xml,下面這段配置代碼原本是被屏蔽的,需要取消其屏蔽,并相應(yīng)增加密鑰庫的配置,設(shè)置clientAuth="true" 用以啟動雙向認(rèn)證,否則,只有客戶端單向認(rèn)證服務(wù)器
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="E:/mykeys/server.ks" keystorePass="zch123"
truststoreFile="E:/mykeys/server.ks " truststorePass=" zch123" />
5)啟動TOMCAT,在IE 瀏覽器中訪問:https://localhost:8443/
a)彈出一個消息框,要客戶端認(rèn)證服務(wù)器,查看證書可看到服務(wù)器證書為localhost
b)頁面出現(xiàn),說明客戶端被允許訪問
6) 再次打開IE, 工具-Internet 選項(xiàng)-內(nèi)容-證書-個人, 刪除SomeOne 證書
再在IE 瀏覽器中訪問:https://localhost:8443
7)再次重復(fù)3 步驟,之后再嘗試訪問
至此,在本機(jī)上SSL 雙向配置已經(jīng)成功,在另一臺電腦來訪問本機(jī)服務(wù)器,把E:/mykeys/client.p12 復(fù)制到該機(jī)器,然后執(zhí)行3 步驟,將這個證書導(dǎo)入到該機(jī)器的IE 瀏覽器個人證書中, 密碼為:test123;在這臺電腦上訪問時,要將localhost 修改為本機(jī)主機(jī)名或IP 地址
要使WEB 程序應(yīng)用SSL 安全訪問, 需在應(yīng)用的web.xml 文件的<web-app></web-app>中加入如下配置
<login-config>
<! -- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<! -- Authorization setting for SSL -->
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport -guarantee >CONFIDENTIAL </transport -guarantee>
</user-data-constraint>
</security-constraint>
最后使用http://....:8080 來訪問應(yīng)用程序, 被重 定 向 為https://....8443 訪問,此時應(yīng)用已經(jīng)強(qiáng)制使用SSL 安全訪問層,表示雙向認(rèn)證已經(jīng)成功。
秘鑰協(xié)商選擇RSA 非對稱算法進(jìn)行,具體設(shè)計實(shí)現(xiàn)步驟如下:
第一步,選擇密鑰長度為128、256、512 或者1024 比特,如下圖所示:
第二步,隨機(jī)選取兩個大素數(shù),如下圖所示:
第三步,將兩個大素數(shù)相乘運(yùn)算得到一個大整數(shù)n,如下圖所示:
第四步,隨機(jī)選擇一個公鑰e,根據(jù)公式ed=1mod(p-1)(q-1),計算出私鑰d,如下圖:
第五步,輸入要加密的明文,并得到對應(yīng)ASCII 碼,如下圖所示
第六步,將明文分塊,如下圖所示:
第七步,根據(jù)公式c=m^emodn,計算出密文c,如下圖所示:
第八步,根據(jù)公式m=c^dmodn,解密出明文m,如下圖所示:
在數(shù)據(jù)傳輸過程中使用AES 對稱加密算法進(jìn)行, 具體設(shè)計實(shí)現(xiàn)步驟如下:
第一步,輸入需要加密的明文,轉(zhuǎn)換為對應(yīng)的ASCII 碼,如下圖所示:
第二步,選擇加密秘鑰,將秘鑰轉(zhuǎn)換為4×4 字節(jié)矩陣,再經(jīng)過矩陣行列變換與異或等運(yùn)算生成第一個輪秘鑰, 然后進(jìn)行11 輪子密鑰生成,如下圖所示:
第三步,將第一步中需要加密的明文轉(zhuǎn)換為4X4 的矩陣,依次使用子秘鑰進(jìn)行矩陣運(yùn)算,最終得到加密后的密文,如下圖所示:
RFID 作為物聯(lián)網(wǎng)的重要核心技術(shù), 在許多行業(yè)有著廣闊的發(fā)展前景,受到越來越多人的關(guān)注,其中RFID 系統(tǒng)的安全問題又作為最主要的關(guān)注點(diǎn)。 本文首先介紹了RFID 概述,進(jìn)而研究了RFID 存在的常見安全問題,最后結(jié)合電力資產(chǎn)管理系統(tǒng)中RFID 實(shí)際應(yīng)用,設(shè)計實(shí)現(xiàn)了SSL 雙向認(rèn)證,非對稱RSA 算法協(xié)商秘鑰,對稱AES 算法加密傳輸數(shù)據(jù)。 為RFID 應(yīng)用于電力行業(yè)奠定了一定基礎(chǔ),但有關(guān)認(rèn)證與加密算法在生產(chǎn)環(huán)境下運(yùn)行效率問題還需進(jìn)一步研究改善。
[1]沈祥金.深度理解物聯(lián)網(wǎng)[J].電子商務(wù),2011(9).
[2]Eun K R,Takagi TA. hybrid approach for privacy-preserving RFID tags[J].Wireless Communications Computer Standards& Interfaces,2009.
[3]富春巖,周虹,等.RFID 系統(tǒng)的安全隱患問題綜述[J].電腦知識與技術(shù),2013(15).
[4]胡國勝,方龍雄.RFID 系統(tǒng)安全分析[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2013(2).
[5]何偉剛.物聯(lián)網(wǎng)中RFID 節(jié)點(diǎn)通信安全研究[J].信息安全與技術(shù),2011(7).
[6]張文麗,趙峰.RFID 雙向安全認(rèn)證協(xié)議的設(shè)計及分析[J].智能計算機(jī)與應(yīng)用,2013(5).