臧俊斌 ,白 洋
(1.中北大學 儀器科學與動態測試教育部重點實驗室,山西 太原 030051;2.中北大學(朔州校區),山西 朔州 036000)
自國內啟動“金卡工程”以來,非接觸式IC 卡技術的發展及應用取得了一定的效果,例如小區門禁管理系統、家庭門禁管理系統以及辦公室門禁管理系統等智能識別系統已經廣泛的應用到人們的日常生活中[1-2]。但是仍然存在很多安全隱患,例如:(1)如果用戶不慎丟失IC 卡,或者由于某種情況被非法分子通過某種手段獲取到IC 卡號,然后將IC 卡號復制到空白卡中,這有可能會造成用戶信息泄露,甚至威脅到用戶財產安全;(2)所有用戶數據存儲在服務器,管理員可以掌握所有用戶的信息,而有些用戶不愿意將個人信息安全交給某個管理員以防止泄密。這些問題都致使RFID 技術的應用推廣受到限制,同時也使其便捷、高效的優點難以展現,進而束縛了技術變革帶來的經濟和社會效益。但是RFID標準的初步形成,將極大地推動RFID 的應用和研究[3-7]。因此,為進一步解決目前“金卡工程”所帶來的安全隱患瓶頸與安全等級越高成本越貴技術難題,推動RFID 技術的實用性發展,需加強對智能識別系統的設計與研究。對此,本文利用基于8051 內核的STC89C52、MFRC522 模塊、MIFARE 卡等構建射頻識別模塊架構設計,實現在該讀寫模塊基礎上進行二次開發認證加密的自動識別方法,旨在提供一個安全等級較高、便攜使用的智能識別系統,以解決目前智慧安全系統的瓶頸問題。
市面上常規的IC 卡可以輕易被復制。丟失若不進行注銷權限,卡被別人撿到或者通過空白IC 卡全盤復制的新卡也是可以通過驗證輕而易舉地進入,其這種行為有一定的風險,涉及個人及公共安全。此外,在一些注冊系統中,因為沒有持卡者和具體卡號的綁定關系,失主在注銷丟失IC 卡的權限時,也會遇到無法確定注銷哪一張卡這種問題。
同樣地,將用戶數據存儲在服務器中也存在一定的被竊取的風險,進而使得竊取了IC 卡信息的不法人員制作特定信息的復制品,其同樣可以通過驗證。
無線通信技術中的射頻識別技術(Radio Frequency Identifica tion,RFID)主要是通過電感耦合(近場通信)或電磁反向散射耦合(遠場通信)方式實現讀寫器和電子標簽的無機械接觸數據通信[8-11]。
綜合應用場合與功能的需求,本文RFID 認證系統的射頻模塊讀寫器采用MFRC522 芯片,此芯片具有低電壓、低成本、小尺寸等的優點,其工作頻段為13.56 MHz、集成度較高,并與ISO/IEC 14443 A/MIFARE 3 種型號都兼容,擁有強大而有效的解調和解碼電路,可實現與任意類型卡的近場通信。數字部分可提供幀校驗、奇偶校驗和CRC 校驗等多種校驗方式。此外,MFRC522 還擁有SPI、UART、I2C 等豐富的外設資源,方便系統的二次開發[9-14]。
本系統采用的電子標簽是MIFARE S50 智能卡,擁有8 Kbit 的EEPROM。本文將EEPROM 分為16 個扇區,每個扇區分成4 個塊(Block0~Block3),每塊有16 B。絕對地址Block0 塊用于存儲IC 卡制造商代碼,Block3 用于控制塊。控制塊包括密鑰A、密鑰B、訪問控制條件三部分,訪問控制條件決定密鑰A 和密鑰B 的使用以實現對數據的讀(Read)、寫(Write)、增 值(Increment)、減 值(Decrement)、轉存(Transfer)、恢復(Restore)等控制操作,每個扇區的密鑰和存取控制獨立設置,可以根據實際需要自行設定密碼和存取控制,只有同時滿足訪問控制條件和密鑰認證,讀寫器才能訪問標簽內用戶數據,這樣可確保每個分區的數據安全。其訪問控制條件如表1 所示。

表1 訪問控制條件
系統認證時只有讀寫器和標簽相互認證且在訪問控制允許下驗證密碼后才能進行下一步數據操作,以確保操作的安全性。而通用識別系統的用戶ID 號則可以由任意讀寫器讀取[15],倘若用戶不慎丟失IC 卡,非法分子可以使用“Chinese Magic Card”復制該IC 卡,用戶的所有信息將直接暴露給非法分子。因此,本文提出的二次認證加密智能識別系統可提高用戶安全等級。
系統工作思想就是利用讀寫器和標簽必須在相互認證且訪問控制允許下驗證密碼通過后才能訪問數據,同時配合UID 作為識別系統的Key。意味著只有在通過第二個身份認證的情況下才能訪問數據或者進行下一步操作。
本系統具有3 種工作模式:注冊模式、工作模式、注銷模式。
(1)注冊模式階段:進入注冊模式需要輸入密碼,此密碼由系統管理員保管。首先,讀寫器在這種模式下開放注冊,將用戶新卡注冊入系統。具體是:系統給需注冊的IC 卡分配一個SID(System-ID),顯示到LCD 屏上,IC卡主需牢記SID 號,同時系統將此SID 碼對應的Joaat 哈希碼寫入到IC 卡特定扇區的塊中。SID 同UID 作為整體保存到EEPROM 數據存儲單元;將需注冊的IC 卡的某一分組的某一塊填充具體數據,同時將IC 卡內區尾部的密鑰A 和密鑰B 更改。所有用戶的IC 卡經注冊加入系統后,由管理員授權后可以進入工作模式。
(2)工作模式階段:工作模式階段可由解鎖該系統的智能卡ID 號確定,此時任何未經注冊的IC 卡和無法通過UID+SID 哈希碼組合驗證的IC 卡都無效,作為不合法IC 卡不具有有效性。只有系統認定合法的用戶才能正常識別,通過智能識別系統。如果用戶不慎將卡丟失,為防止意外事故,需及時通知管理員注銷。
(3)注銷模式階段:進入注銷模式后,用戶可以手動輸入用戶的SID(十進制)進行注銷。系統將通過用戶提供的SID 號對應生成Jotta 哈希碼檢索并刪除此卡所有相關信息,被注銷卡的所有信息(包括UID 和SID)將會從EEPROM 存儲單元刪除。
如上所述,此時丟失的卡即使被非法分子得到,且被得知IC 卡的ID 號也無妨,因為仍需破解密鑰A 或密鑰B 才能訪問到用戶卡的數據信息,而密鑰A 和密鑰B又是結合用戶SID 生成的,卡里只存儲了用戶SID 對應的哈希碼,鑒于哈希碼的不可逆性,所以非法分子無法獲取真正的密鑰,也就無法獲得卡內存儲的信息,密鑰無法被泄露,這大大增加了破解和偽造用戶卡的難度。另一種情況,若原卡被非法復制,只要失主及時在讀寫器端注銷此卡,使用這張復制的卡同樣無法通過驗證,因為系統數據庫中已經把原卡的SID 和UID 信息全部刪除,復制的卡會被識別為不合法,也就無法通過讀卡器端的驗證。這就意味著用戶的安全級別更高,小區安全或者家庭財產安全也更有保障。
哈希碼是一種算法,它不是唯一確定的一串字符。通過散列算法將任意長度的輸入變換成固定長度的輸出。不同的輸入可能有相同的輸出,但不可能從散列值來唯一的確定輸入值。不同的哈希算法得出的哈希碼差別迥異。
常用的哈希算法有MD4、MD5 和SHA-1 等。Joaat hash 全稱為Jenkin′s "One at a time"hash,是一種簡單高性能的字符串映射加密算法。其加密過程高效,加密后的密文具有不可逆和低字節的特點,適合于在代碼容量較小的系統及實時系統中使用。對于RFID 用戶驗證的應用滿足這兩個特點,故選用此加密方式。
本智能識別系統由完整且功能完備的硬件和軟件構成。由模塊化思想設計的硬件結構大大降低了后期維護的成本,同時軟件部分也采用模塊化設計,易于開發者后期維護。系統總體組成如圖1 所示。

圖1 系統結構圖
硬件部分主要由STC89C52RC 單片機、MFRC522 射頻模塊、AT24C256 存儲模塊、人機交互按鍵模塊、外圍控制電路以及報警模塊等部分組成。
(1)單片機控制部分
系統主控部分采用STC89C52 單片機。STC89C52 MCU采用MCS-51 核心,其抗干擾能力強、運行速度快、性能高、功耗低。其內置8 KB 的閃存ROM、512 B RAM 和2 KB的EEPROM、3 個16 位定時器/計數器、32 個普通I/O 口,滿足此系統工作條件。此外,STC89C52 單片機還具有價格低廉的特點。因此,選用STC89C52 作為主控芯片,能夠降低系統成本。
(2)按鍵和LCD 模 塊
本系統具有3 種工作模式,因此必須具備模式切換的功能。另外本系統具有注銷功能,需要在用戶注銷時輸入SID。本系統設置按鍵模塊,使用按鍵掃描的方式確定系統的工作模式。因此,系統采用4×4 矩陣鍵盤,設有數字鍵(0~9)、確認鍵、退格鍵、清空鍵,以及功能鍵A、B、C。
(3)外圍控制電路
外圍控制電路包括了電機以及電機控制電路、霍爾感應開關和報警模塊,用來控制鎖的開啟和關閉以及防止非法開鎖。
(4)存儲部分
本系統存在注冊模式,注冊模式時,用戶的注冊信息存儲在EEPROM 中。考慮到該系統將應用到類似小區的中型門禁管理系統,因此,本系統選取ATMEL 公司生產的AT24C256 可編程只讀存取器,它具有256 Kbit 的位存儲單元、32 KB 存儲單元,而用戶SID 對應的哈希碼和IC 的UID(Unique ID)只需要8 B 的存儲空間,其詳細的數據存儲記錄格式見表2 所示。因此本系統最多支持4 096 個IC 卡,可應用于中型門禁系統。

表2 EEPROM 數據記錄格式
基于硬件電路的設計,本文開發出相應的軟件來配合響應硬件電路以實現整體識別功能。軟件程序的質量直接決定著整個系統的成敗。使用可移植性高的C 語言編寫,在Real View MDK 編譯環境中運行,使用STC-ISP軟件與單片機交互,這給程序的修改和調試帶來很大的方便。圖2 展示了系統的軟件結構設計流程圖。

圖2 系統軟件流程圖
系統的關鍵API 函數主要有:

識別部分是該系統的關鍵部分,需要進行大量實驗以測試驗證系統的可靠性。為便于觀察,需通過多機通訊的方式驗證識別系統是否可靠。圖3 所示為搭建的系統實驗測試方案,其主要由RFID-RC522 射頻模塊和終端處理組成,射頻模塊用于IC 卡感應識別,終端處理器負責完成對數據的讀寫控制操作。首先進行IC 卡的注冊,如圖4 所示,用戶進入注冊模式需要輸入管理員密碼,之后將卡貼近讀卡器,讀卡器識別到UID 為B4EEF8E2的卡后,將卡序列號轉換為哈希碼作為SID 并顯示在屏幕上。該SID 由用戶保管。

圖3 系統結構實驗測試圖

圖4 注冊模式
然后,進入到工作模式。如圖5 所示,屏幕顯示UID為 B4EEF8E2 的卡通過了ID 驗證及塊認證,UID 為56AC2312 的卡因未注冊所以沒有通過ID 驗證,更無法進行下一步的塊認證。而UID 為CABB9A10 的通過了ID認證但沒有通過塊認證,結果同樣是驗證失敗。

圖5 工作模式
假設UID 為B4EEF8E2 卡的主人將卡遺失,被非法分子撿到。該卡的主人及時進行了注銷,如圖6 所示,進入注銷模式,輸入SID 號后,系統將該卡的所有相關驗證信息刪除。如圖7 所示,非法分子使用IC卡復制工具將UID 為B4EEF8E2的卡復制到“Chinese Magic Card”上,企圖使用復制的卡通過系統驗證,但復制卡只通過了ID 認證,沒有通過塊認證,結果如圖8 所示。

圖6 注銷模式

圖7 IC 卡復制

圖8 復制卡無法通過驗證
綜上,測試的卡分別是注冊過的卡、未注冊的卡和系統中已注冊的卡的復制卡。經測試,系統運行穩定,未注冊的卡和已注冊卡的復制卡無法通過認證。同時,因為有密鑰的存在,也無法輕易讀取卡內信息。
對于已注銷的卡,仍可以在注冊模式下進行注冊,但需要系統管理員提供進注冊模式的密碼,此時即可驗證注冊者的身份是否合法。
基于RFID 技術的二次認證加密智能識別系統便捷、有效地保障了用戶信息的安全性,解決了個人信息存儲于服務器帶來的安全隱患與昂貴成本問題。此外,本文詳細闡述了二次認證系統的3 種工作模式以及針對各工作模式下的實驗測試效果,表明其具有極高的安全性,且不易被破解和偽造,也能有效識別并阻止復制卡認證。所以此設計方法具有極大的應用價值,適用于家庭小區、辦公室、學校等任何可以使用智能識別系統的場所,以提高安全等級。另外,隨著IoT 的大規模普及,RFID 技術作為一種物聯網的促進劑將不斷改進,安全和隱私級別會不斷提高,RFID 在日常生活中的應用將更加廣泛,而基于RFID 技術的性能優異、便捷可靠的安全識別系統也會得到快速提升與推廣。