滕智飛+馬金億+李雙+杜磊+陳樂



摘 要:隨著NFC技術(shù)的發(fā)展和智能手機(jī)的普及,現(xiàn)有的門禁系統(tǒng)已難以滿足人們的需求。文中設(shè)計了一種通過智能手機(jī)控制的門禁系統(tǒng),該系統(tǒng)使用NFC(近場通信)技術(shù)實現(xiàn)開鎖功能,可以隨時隨地使用,不需要繁瑣的操作與持續(xù)的電源供應(yīng),只需要NFC功能模塊和電池供給的少量電量即可支持系統(tǒng)功能。該系統(tǒng)的后臺管理功能可有效管理用戶,并可給予權(quán)限或收回權(quán)限,以使門禁系統(tǒng)始終處在可控范圍。最后,在所有的通信過程中加入動態(tài)檢驗碼并進(jìn)行加密傳輸,從而有效提高了系統(tǒng)的安全性。
關(guān)鍵詞:NFC;AES;WCF;門禁系統(tǒng)
中圖分類號:TP249 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2016)06-00-03
0 引 言
計算機(jī)技術(shù)日新月異,基于網(wǎng)絡(luò)技術(shù)對門禁系統(tǒng)的研究方興未艾,現(xiàn)如今已形成了體系完整的出入管理系統(tǒng)。然而,重復(fù)部署系統(tǒng)耗時耗力,安全威脅與日俱增,人們的需求也在不斷提高,多數(shù)門禁系統(tǒng)已難以滿足人們的期望。與此同時,智能手機(jī)的普及與發(fā)展,以及NFC技術(shù)的出現(xiàn)給了門禁系統(tǒng)新的展望,人們不斷嘗試將智能手機(jī)應(yīng)用于門禁系統(tǒng),并從中積累了寶貴的經(jīng)驗。取締繁瑣的操作,減少人力資源的浪費(fèi),酒店門禁系統(tǒng)、校園卡門禁系統(tǒng)等都給人們帶來了便捷。盡管在不斷進(jìn)步,但門禁系統(tǒng)也存在許多問題。用于身份識別的磁卡因為經(jīng)常使用會受到損壞,而且磁卡本身體積小,容易丟失,落入外人手里可能還會造成財產(chǎn)損失和個人信息的泄露。磁卡還有相當(dāng)?shù)闹谱鞒杀荆械纳踔烈恢辈逶诳ú壑胁拍苁褂茫@也給我們的生活帶來很多不便。本項目基于這一點,擬用NFC技術(shù)設(shè)計一種通過手機(jī)就能更安全便捷地完成身份驗證的門禁系統(tǒng)。門鎖的管理者可以通過這個方式,用手機(jī)刷門上的NFC模塊來打開門鎖,同時還可以將開門權(quán)限賦給其他用戶,讓別人也能用手機(jī)開門,或是取消權(quán)限,保證門禁安全。使用本解決方案,就可以免除磁卡的制作成本,也避免了磁卡丟失補(bǔ)辦的問題,讓個人信息安全得到保障。該系統(tǒng)不會受到周圍溫度等環(huán)境的影響,且安裝、調(diào)試簡單,后期維護(hù)方便。我們將通過不斷地測試和改進(jìn),提高用戶體驗和應(yīng)用的普及性,讓更多的用戶從中受益。
1 預(yù)備知識
1.1 NFC
NFC是一種短距離的高頻無線通信技術(shù),在13.56 MHz頻率運(yùn)行于20厘米距離內(nèi)。其傳輸速度有106 Kb/s、212 Kb/s、424 Kb/s三種。目前近場通信已通過成為ISO/IEC IS 18092國際標(biāo)準(zhǔn)、EMCA-340標(biāo)準(zhǔn)與ETSI TS 102 190標(biāo)準(zhǔn)。NFC采用主動和被動兩種讀取模式[1]。
(1)卡模擬模式:此模式相當(dāng)于一張采用RFID技術(shù)的IC卡,可以替代現(xiàn)有的大量IC卡。在此種方式下,卡片通過非接觸讀卡器的RF域來供電,即便是寄主設(shè)備(如手機(jī))沒電也可以工作。
(2)點對點模式:此模式類似于紅外線,可用于數(shù)據(jù)交換,傳輸創(chuàng)建速度較快,傳輸速度也快,功耗低,只是傳輸距離較短。將兩個具備NFC功能的設(shè)備鏈接,能實現(xiàn)數(shù)據(jù)點對點傳輸,如下載音樂、交換圖片或者同步設(shè)備地址薄。因此通過NFC,多個設(shè)備如數(shù)位相機(jī)、PDA、計算機(jī)和手機(jī)之間都可以交換資料。
(3)讀卡器模式:作為非接觸讀卡器使用,比如從海報或者展覽信息電子標(biāo)簽上讀取相關(guān)信息。
相對于藍(lán)牙,NFC兼容于現(xiàn)有的被動RFID(13.56 MHz ISO/IEC 18000-3)設(shè)備。NFC的功耗更低,與藍(lán)牙V4.0低能協(xié)議類似。當(dāng)NFC在一臺無動力設(shè)備(比如一臺關(guān)機(jī)的手機(jī)、非接觸式智能信用卡,或智能海報)上工作時,NFC的能量消耗會大大低于低功率藍(lán)牙V4.0[2]。
1.2 AES算法
高級加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES)在密碼學(xué)中又稱為Rijndael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。
假定讀者熟悉AES加密算法的過程,我們以128-比特分組長度128-比特密鑰長度為例簡要描述AES算法的加密過程。AES加密過程在一個4×4 字節(jié)的矩陣上運(yùn)作,這個矩陣又稱為“體”,也可看成一個16×1的列向量,即(aij)=(a00,…,a30,a01,…,a31,…,a33)T。在AES加密中包括四個變換(除最后一輪),依次為:字節(jié)替換,行移位,列混合和輪密鑰加[3,4]。
1.2.1 非線性混亂
字節(jié)矩陣中的每個元素按照S[#]進(jìn)行查表替換。替換表由三個變換組成。
(1)在GF(28)中計算y=x-1(0-1=0);
(2)計算z=LA·y,這里L(fēng)A是一個GF上的8×8矩陣;
(3)S-盒輸出為LA·y+63
1.2.2 線性擴(kuò)散
字節(jié)矩陣的每一行進(jìn)行循環(huán)移位,字節(jié)aij變?yōu)閍i(j-imod4),可以用一個16×16的字節(jié)矩陣RA來完成行移位操作,即:
(2)把字節(jié)矩陣的每一列看成是4維GF(28)-向量,然后計算y=D·x,這里D是一個4×4的GF(28)-矩陣。同樣的,可以用一16×16的塊對角矩陣MixA(每一塊都是D)來完成列混合操作,即線性擴(kuò)散的輸出為:
1.2.3 密鑰輪加
字節(jié)矩陣的每一個字節(jié)與相應(yīng)的輪子密鑰字節(jié)進(jìn)行異或,因此,AES的輪函數(shù)可以表示為:
2 基于NFC門禁系統(tǒng)方案設(shè)計
2.1 整體方案設(shè)計
本方案主要由客戶端、服務(wù)端、NFC模塊及Arduino開發(fā)板三個端構(gòu)成。服務(wù)端由C#實現(xiàn),后臺管理由PHP提供支持。整個方案流程分為如下幾步:
(1)新用戶打開App注冊;
(2)管理員使用后臺管理系統(tǒng)通過用戶注冊并分配開鎖列表及權(quán)限[5];