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