隨著NFC技術(shù)的發(fā)展和智能手機(jī)的普及,現(xiàn)有的門禁系統(tǒng)已難以滿足人們的需求。本文設(shè)計(jì)了一種通過智能手機(jī)控制的門禁系統(tǒng),該系統(tǒng)使用NFC(近場(chǎng)通信)技術(shù)實(shí)現(xiàn)開鎖功能,可以隨時(shí)隨地使用,不需要繁瑣的操作與持續(xù)的電源供應(yīng),只需要NFC功能模塊和電池供給的少量電量即可支持系統(tǒng)功能。該系統(tǒng)的后臺(tái)管理功能可有效管理用戶,并可給予權(quán)限或收回權(quán)限,以使門禁系統(tǒng)始終處在可控范圍。zui后,在所有的通信過程中加入動(dòng)態(tài)檢驗(yàn)碼并進(jìn)行加密傳輸,從而有效提高了系統(tǒng)的安全性。
NFC是一種短距離的高頻無線通信技術(shù),在13.56MHz頻率運(yùn)行于20厘米距離內(nèi)。其傳輸速度有106Kb/s、212Kb/s、424Kb/s三種。目前近場(chǎng)通信已通過成為ISO/IECIS18092標(biāo)準(zhǔn)、EMCA-340標(biāo)準(zhǔn)與ETSITS102190標(biāo)準(zhǔn)。NFC采用主動(dòng)和被動(dòng)兩種讀取模式。相對(duì)于藍(lán)牙,NFC兼容于現(xiàn)有的被動(dòng)RFID(13.56MHzISO/IEC18000-3)設(shè)備。NFC的功耗更低,與藍(lán)牙V4.0低能協(xié)議類似。當(dāng)NFC在一臺(tái)無動(dòng)力設(shè)備(比如一臺(tái)關(guān)機(jī)的手機(jī)、非接觸式智能信用卡,或智能海報(bào))上工作時(shí),NFC的能量消耗會(huì)大大低于低功率藍(lán)牙V4.0。
【設(shè)計(jì)方案】一種基于NFC的門禁系統(tǒng)
1、整體方案設(shè)計(jì)
本方案主要由客戶端、服務(wù)端、NFC模塊及Arduino開發(fā)板三個(gè)端構(gòu)成。服務(wù)端由C#實(shí)現(xiàn),后臺(tái)管理由PHP提供支持。整個(gè)方案流程分為如下幾步:
(1)新用戶打開App注冊(cè);
(2)管理員使用后臺(tái)管理系統(tǒng)通過用戶注冊(cè)并分配開鎖列表及權(quán)限;
(3)用戶登錄手機(jī)鑰匙,獲取開鎖列表及相關(guān)權(quán)限;
(4)用戶使用NFC手機(jī)靠近NFC模塊,使用開鎖功能;
(5)門鎖被打開,用戶可允許的開鎖次數(shù)減少。其中,若用戶A具有可*權(quán)限,用戶A可以通過雙方手機(jī)NFC直接通信將開鎖權(quán)限*給用戶B。用戶B無需請(qǐng)求服務(wù)端管理員分配權(quán)限即可獲得由用戶A所*的權(quán)限。一次開鎖流程如圖1所示。
2、數(shù)據(jù)傳輸設(shè)計(jì)
數(shù)據(jù)傳輸設(shè)計(jì)分如下幾步進(jìn)行:
(1)用戶通過NFC手機(jī)App請(qǐng)求注冊(cè)信息至服務(wù)端;
(2)管理員進(jìn)入后臺(tái)管理系統(tǒng)通過用戶請(qǐng)求及分配權(quán)限后,將開鎖列表及權(quán)限返回至NFC手機(jī);
(3)用戶開鎖時(shí),請(qǐng)求服務(wù)端獲取開鎖指令;
(4)使用NFC手機(jī)靠近NFC模塊將開鎖指令傳輸至Arduino開發(fā)板進(jìn)行驗(yàn)證,判斷是否進(jìn)行開鎖。
整個(gè)方案的數(shù)據(jù)傳輸過程都采用了AES加密[9],保證了數(shù)據(jù)的安全性,同時(shí)保護(hù)了用戶的個(gè)人私密信息。在判斷開鎖指令是否合法時(shí)通過Hashkey值進(jìn)行比較,增加系統(tǒng)的安全性,防止了惡意用戶盜取他人信息從而非法開鎖等問題的出現(xiàn)。
3、數(shù)據(jù)庫設(shè)計(jì)
本方案的數(shù)據(jù)關(guān)系(包括實(shí)體型、類型、屬性及標(biāo)識(shí)符)如下:
(1)管理員(aid用戶id,logname用戶名,pass密碼,grade權(quán)限,lastdainezui后登錄時(shí)間,salt隨機(jī)數(shù));
(2)用戶信息(authid*條目id,lid鎖id,autheduid被*人id,number允許開鎖次數(shù),starttime_d開始日期,endtime_d結(jié)束日期,starttime_h開始時(shí)間,endtime_h結(jié)束時(shí)間,authuid*人id,allow再次*,fromauthid該條項(xiàng)目是由哪一個(gè)*項(xiàng)目二次*的);
(3)開鎖記錄(hid歷史id,lid鎖id,date開鎖時(shí)間,uid用戶id);
(4)門鎖信息(lid鎖id,lname鎖的名稱,isgprs是否允許gprs流量開鎖,pass與鎖通信數(shù)據(jù)加密密碼,keyword開鎖用的關(guān)鍵字);
(5)加密日志(auto_num自增序列,uid_num用戶id,md5_nummd5值,lid_num鎖id);
(6)用戶(uid用戶id,ucode用戶手機(jī)編碼,commpass通信數(shù)據(jù)加密密碼,uname用戶姓名,check是否通過驗(yàn)證,date申請(qǐng)日期,del用戶是否作廢,upk)。
方案數(shù)據(jù)庫的E-R圖如圖2:
基于NFC的門禁系統(tǒng)分析
1、安全性分析
1.1服務(wù)安全性分析
用戶訪問認(rèn)證服務(wù)時(shí),需要提交動(dòng)態(tài)的通信口令以及個(gè)人對(duì)整個(gè)消息的簽名,其中通信口令的變更,保證了攻擊者無法進(jìn)行重放攻擊,而通信口令在認(rèn)證服務(wù)返回通信口令時(shí),使用AES進(jìn)行加密,不會(huì)被攻擊者觀察到明文,若攻擊者替換返回的通信口令,則用戶也無法正常完成通信,因此攻擊者無法達(dá)到開鎖的目的。而簽名保證了數(shù)據(jù)不會(huì)被篡改以及攻擊者無法偽造消息。
1.2后臺(tái)管理安全性分析
(1)方面除登錄頁外全部采用session機(jī)制,用戶若想瀏覽、操作其他頁面必須先登錄。此舉有效防止了非管理人員查看和管理。與session不同的是cookie將用戶信息保存在客戶端并受瀏覽器設(shè)置限制,不能防止cookie欺騙,而session是將用戶信息保存在服務(wù)器端與瀏覽器設(shè)置無關(guān),可有效防止他人獲得cookie進(jìn)行欺騙登錄,大大提高了的安全程度。
(2)登錄頁面對(duì)提交的表單內(nèi)容進(jìn)行過濾,防止SQL注入且管理用戶的密碼采用MD5+salt方式存儲(chǔ),其安全程度遠(yuǎn)高于MD5加密,即使數(shù)據(jù)庫泄露也很難破解用戶密碼。
1.3開鎖指令安全性分析
系統(tǒng)設(shè)置每把鎖均對(duì)應(yīng)*一個(gè)Hashkey值,不同電機(jī)鎖對(duì)應(yīng)開鎖指令均不相同,此值即為初始開鎖指令。每當(dāng)用戶進(jìn)行一次開鎖操作,服務(wù)端和Arduino開發(fā)板即使用相同的算法對(duì)初始值進(jìn)行處理變換,但每次開鎖所對(duì)應(yīng)的Hashkey亦不相同。傳統(tǒng)門禁系統(tǒng)所使用的開鎖鑰匙若不慎丟失或被復(fù)制,非法用戶即可順利完成開鎖。本系統(tǒng)通過對(duì)于開鎖指令加密及輪換處理,即使某一次開鎖指令被非法用戶竊取,非法用戶亦不能打開電機(jī)鎖,極大地提高了本系統(tǒng)的安全性。
2、效率/經(jīng)濟(jì)性分析
與傳統(tǒng)的門禁系統(tǒng)相比,基于NFC的門禁系統(tǒng)在制作成本、門禁安全、拓展功能方面都有很大的提升。傳統(tǒng)門禁系統(tǒng)多采用IC卡作為開鎖鑰匙,而IC卡存在易損壞、易丟失等問題,增加了用戶維護(hù)、更換的相關(guān)成本。相較于傳統(tǒng)方案,
本系統(tǒng)只需使用一臺(tái)帶有NFC功能的智能手機(jī)即可完成開鎖,為用戶主要用來通信的智能手機(jī)賦予了更多的功能和權(quán)限,額外增加的成本較低,且攜帶方便。NFC門禁系統(tǒng)與傳統(tǒng)門禁系統(tǒng)簡(jiǎn)單對(duì)比如表1所列。
結(jié)語
本項(xiàng)目在選題之初就立足于解決生活之中的不便之處,這也是本項(xiàng)目的核心所在——創(chuàng)新。隨著智能手機(jī)的普及,在我們的生活中手機(jī)也被賦予了更多的功能,使用手機(jī)做為門禁系統(tǒng)的鑰匙更加具有競(jìng)爭(zhēng)力。本系統(tǒng)使用帶有NFC功能的智能手機(jī)代替?zhèn)鹘y(tǒng)鑰匙,滿足用戶對(duì)于門禁系統(tǒng)安全、便捷且成本較低的需求。這也是本方案的創(chuàng)新之處。但本方案仍存在些許不足之處,有待改進(jìn)。