戴建浜 福建省莆田第二中學(xué)
近些年,隨著生活水平的提高和學(xué)校對(duì)安防意識(shí)的重視,智能門(mén)鎖已成為學(xué)校門(mén)鎖升級(jí)換代的選擇。智能門(mén)鎖是指在傳統(tǒng)機(jī)械鎖的基礎(chǔ)上改進(jìn)的,在用戶(hù)安全性、識(shí)別、管理性方面更加智能化簡(jiǎn)便化的鎖具。[1]智能門(mén)鎖是門(mén)禁系統(tǒng)中鎖門(mén)的執(zhí)行部件,磁卡、射頻卡是使用非機(jī)械鑰匙作為用戶(hù)識(shí)別ID的成熟技術(shù),這類(lèi)卡片屬非接觸類(lèi),安全性較高,塑料材質(zhì),配置攜帶較方便,價(jià)格又低廉,如指紋鎖、虹膜識(shí)別門(mén)禁等,這類(lèi)卡在銀行、政府部門(mén)(注重安全性),以及酒店、學(xué)校宿舍、居民小區(qū)、別墅、賓館等使用比較多。還有一種智能鎖是近年來(lái)比較暢銷(xiāo)的人工智能鎖具,可以進(jìn)行人臉識(shí)別開(kāi)鎖,具有安全性高、簡(jiǎn)單又方便的特點(diǎn)。目前,不管是哪一種智能鎖,一般都可以與智能手機(jī)、智能路由器、監(jiān)控器等智能家居設(shè)備一起實(shí)現(xiàn)用手機(jī)遠(yuǎn)程操控等功能。
但這些智能鎖具都存在一個(gè)致命的問(wèn)題,就是電源問(wèn)題,目前有一部分智能鎖要拉專(zhuān)線給鎖供電,有一部分采用電池方式,但過(guò)幾個(gè)月就得更換電池,改造成本很高,在沒(méi)電時(shí)也會(huì)有安全隱患。還有就是強(qiáng)電磁波干擾問(wèn)題[2],攻擊者通過(guò)外部的強(qiáng)電磁場(chǎng)發(fā)射工具,向門(mén)鎖發(fā)出強(qiáng)電磁波干擾(俗稱(chēng)小黑盒攻擊),電磁波在門(mén)鎖內(nèi)部耦合產(chǎn)生電壓,可能觸發(fā)門(mén)鎖的誤動(dòng)作。[3]攻擊結(jié)果包括但不限于觸發(fā)開(kāi)鎖信號(hào)、驅(qū)動(dòng)電機(jī)、觸發(fā)MCU或識(shí)別芯片重啟等造成誤開(kāi)鎖。據(jù)2018年的一份研究,國(guó)家質(zhì)檢中心對(duì)市面上40款智能門(mén)鎖做了風(fēng)險(xiǎn)監(jiān)測(cè),15%都能被小黑盒秒開(kāi),剩余絕大多數(shù)都存在安全風(fēng)險(xiǎn)。
本文涉及的“掛鎖”采用傳統(tǒng)機(jī)械鎖的構(gòu)造,無(wú)需改造原有門(mén)的結(jié)構(gòu),鎖內(nèi)部無(wú)需安裝電池也可實(shí)現(xiàn)智能鎖的多數(shù)功能,實(shí)現(xiàn)一把鑰匙可以授權(quán)開(kāi)多把鎖,不同的管理員可以授權(quán)開(kāi)不同的、多個(gè)鎖的功能,真正達(dá)到一把鑰匙開(kāi)全校所有鎖的目的。掛鎖采用防小黑盒暴力破解設(shè)計(jì),免去沒(méi)電、更換鎖電池的煩惱,安全方便,特別適合校園這一類(lèi)鎖頭經(jīng)常更換、開(kāi)鎖人員隨時(shí)更換的場(chǎng)所。
掛鎖是由鎖梁直接與鎖體扣接而成的一種封閉形鎖具,它是鎖具世界中最古老、最龐大的家族,可以說(shuō)其他鎖具都是從掛鎖這門(mén)類(lèi)中繁衍、派生而來(lái)。[4]筆者設(shè)計(jì)的校園一把鑰匙開(kāi)鎖系統(tǒng)是在原有掛鎖的基礎(chǔ)上改進(jìn)而成的,由無(wú)源掛鎖、有源鑰匙、校園解碼中心三個(gè)部分組成,其中有源鑰匙利用物聯(lián)網(wǎng)技術(shù)連接到校園解碼中心獲取密碼并返回給無(wú)源掛鎖,比對(duì)成功后即可以開(kāi)鎖。物聯(lián)網(wǎng)(IOT:Internet of Things)是一個(gè)通過(guò)信息技術(shù)將各種物體與網(wǎng)絡(luò)相連,以幫助人們獲取所需物體相關(guān)信息的巨大網(wǎng)絡(luò)。[5]在本研究中物聯(lián)網(wǎng)連接的就是鑰匙和鎖,每把鑰匙和鎖在物聯(lián)網(wǎng)中都有一個(gè)唯一的ID,也稱(chēng)為識(shí)別碼,系統(tǒng)通過(guò)讀取這個(gè)識(shí)別碼的對(duì)應(yīng)關(guān)系來(lái)判斷是否開(kāi)鎖。系統(tǒng)原理結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)原理結(jié)構(gòu)
圖1中無(wú)源掛鎖的解鎖密碼存放在校園解碼中心,要通過(guò)有源鑰匙通過(guò)網(wǎng)絡(luò)去獲取。本研究實(shí)現(xiàn)的目標(biāo)是不改變?cè)虚T(mén)的結(jié)構(gòu),用一把鑰匙開(kāi)多把鎖的功能,從圖1中可以看出,一把鑰匙可以開(kāi)多把鎖,一個(gè)掛鎖可以授權(quán)給多人開(kāi)。
無(wú)源掛鎖由鎖梁、鎖體和USB鎖口組成,鎖體集成一塊ESP32單片機(jī),這是一款專(zhuān)門(mén)為移動(dòng)設(shè)備、可穿戴電子產(chǎn)品和物聯(lián)網(wǎng)應(yīng)用而設(shè)計(jì)的單片機(jī)[6],具有低功耗性能,包括精細(xì)分辨時(shí)鐘門(mén)控、省電模式和動(dòng)態(tài)電壓調(diào)整等。采用ESP32單片機(jī)具有成本低、容易編程等眾多優(yōu)點(diǎn)。
每把鎖頭內(nèi)置的單片機(jī)在出廠時(shí)都有唯一的ID(Identity document),用戶(hù)不能更改,每個(gè)ID對(duì)應(yīng)12位16進(jìn)制編碼來(lái)作為這把鎖的解碼密碼,保證其無(wú)重復(fù)編號(hào)和安全性,使其達(dá)到統(tǒng)一管理,當(dāng)與電子鑰匙通信時(shí),有多層交互通信及校驗(yàn)過(guò)程,以便達(dá)到更加安全可靠、無(wú)誤開(kāi)率、無(wú)重開(kāi)率的目的。運(yùn)行時(shí)鎖隨機(jī)生成加密代碼和運(yùn)算代碼,一起發(fā)送至解碼中心用于解碼中心對(duì)解鎖碼進(jìn)行加密,之后鎖再對(duì)收到的解鎖碼進(jìn)行解密,以防止解鎖碼在串口傳輸時(shí)被竊取后復(fù)制。鎖梁末端有一個(gè)缺口,鎖住時(shí)被一非金屬物件卡住,該物件連接一個(gè)舵機(jī),當(dāng)接收到開(kāi)鎖指令時(shí),舵機(jī)轉(zhuǎn)動(dòng)一個(gè)方向帶動(dòng)非金屬物件,松開(kāi)鎖梁,達(dá)到開(kāi)鎖的目的。USB接口有四根線,其中兩根線給無(wú)源掛鎖的ESP32單片機(jī)供電,另外兩根通過(guò)串口與有源鑰匙的USB插口相連接,發(fā)送開(kāi)鎖請(qǐng)求和接收解鎖密碼。結(jié)構(gòu)圖如圖2所示。
圖2 掛鎖結(jié)構(gòu)圖
有源鑰匙由電池、控制部分和USB插口部分組成。電池是一塊3.7V的鋰電池,結(jié)合升壓模塊,升壓至5.0V給控制部分供電。控制部分是一塊ESP32單片機(jī),這種單片機(jī)帶有Wi-Fi模塊,可以接入校園無(wú)線網(wǎng)絡(luò)進(jìn)行認(rèn)證,單片機(jī)上也有一個(gè)唯一的ID識(shí)別碼和12位16進(jìn)制密碼來(lái)作為這把鑰匙登入系統(tǒng)的準(zhǔn)入編碼。鑰匙上有一個(gè)USB插口,此插口與平時(shí)USB的插口外觀一致,插口上有四根線,其中兩根電源線用來(lái)與鎖頭連接,給鎖頭供電,另外兩根與鎖頭的串口連接,用來(lái)接收鎖頭編碼給校園解碼中心和發(fā)送解鎖密碼給鎖頭。本研究單片機(jī)需要事先連接到校園無(wú)線網(wǎng)絡(luò),在單片機(jī)成功登入系統(tǒng)后,插入鎖頭,鎖頭會(huì)反饋一個(gè)鎖頭ID給鑰匙,鑰匙再把自己的ID和鎖頭的ID通過(guò)無(wú)線網(wǎng)絡(luò)發(fā)送至系統(tǒng)平臺(tái)端進(jìn)行比對(duì)認(rèn)證,如果比對(duì)成功,平臺(tái)發(fā)送一個(gè)解鎖密碼回來(lái),鑰匙收到解鎖密碼后,把密碼再通過(guò)串口發(fā)送給鎖頭,鎖頭比對(duì)解鎖密碼與內(nèi)置的密碼是否相匹配,匹配成功則發(fā)送一個(gè)指令給舵機(jī),舵機(jī)轉(zhuǎn)動(dòng)非金屬物體,松開(kāi)鎖梁,解鎖成功。鑰匙側(cè)面還有一個(gè)電腦編程接口,可重新燒寫(xiě)程序,分配鑰匙ID和密碼,以及給電池充電等。具體結(jié)構(gòu)如圖3所示。
解碼中心平臺(tái)主要實(shí)現(xiàn)比對(duì)的過(guò)程,采用B/S結(jié)構(gòu),管理員從Web端登入頁(yè)面后就可以進(jìn)入后臺(tái)添加或刪除教師,給教師鑰匙授權(quán)開(kāi)鎖對(duì)象和數(shù)量。每把鑰匙通過(guò)自身的準(zhǔn)入編碼登錄到平臺(tái),上傳鎖的ID、加密代碼和運(yùn)算代碼在平臺(tái)進(jìn)行匹配,匹配成功則返回根據(jù)加密代碼和運(yùn)算代碼返回加密后鎖的解鎖密碼,具體流程如圖4所示。
圖4 校園解碼中心工作流程
由鎖生成并記錄加密代碼(隨機(jī)常數(shù))和運(yùn)算代碼(隨機(jī)常數(shù)),解密中心根據(jù)運(yùn)算代碼選用不同加密算法。
本研究基于校園無(wú)線網(wǎng)絡(luò),如果學(xué)校沒(méi)有無(wú)線網(wǎng)絡(luò),也可以通過(guò)手機(jī)共享等方式接入網(wǎng)絡(luò)。當(dāng)然,也可以用zigbee、z-wave、sigfox、Lora或NB-iot等方式連接至物聯(lián)網(wǎng),其他原理一致。
本研究硬件分鑰匙和鎖頭兩個(gè)部分。鑰匙和鎖頭通過(guò)串口進(jìn)行連接,連接方式如下頁(yè)圖5所示,鑰匙和鎖頭的供電電源均來(lái)自鑰匙的鋰電池,TX是發(fā)送(transport),RX是接收(receive)。鑰匙的發(fā)送端接鎖頭的接收端,鑰匙的接收端接鎖頭的發(fā)送端。
圖5 鑰匙與鎖頭連接示意圖
鑰匙上裝有一個(gè)指示燈,當(dāng)成功連接上Wi-Fi,工作正常時(shí),顯示綠燈,連接失敗顯示紅燈。當(dāng)鑰匙插入鎖頭進(jìn)行解鎖,顯示黃燈并閃爍,鑰匙先獲取鎖頭的ID編碼后上傳至校園解鎖中心,解鎖中心匹配成功后返回解鎖密碼并通過(guò)鑰匙傳送至鎖頭,解鎖成功后顯示綠燈,解鎖失敗顯示紅燈。具體程序流程如圖6所示。
圖6 鑰匙工作流程
鎖頭通電后發(fā)送請(qǐng)求信號(hào),成功發(fā)送ID編碼后開(kāi)始等待接收解鎖密碼,收到并匹配成功則告訴舵機(jī)轉(zhuǎn)動(dòng)非金屬物件,鎖被打開(kāi),舵機(jī)恢復(fù)原位,程序流程如圖7所示。
圖7 鎖頭工作流程
本研究中的掛鎖、鑰匙和校園解碼中心組成了一個(gè)完整的開(kāi)鎖系統(tǒng),系統(tǒng)管理采用B/S結(jié)構(gòu),為了保證系統(tǒng)的穩(wěn)定性,建立一個(gè)良好的數(shù)據(jù)庫(kù)結(jié)構(gòu)和簡(jiǎn)單安全的后臺(tái)管理系統(tǒng)是非常有必要的。
數(shù)據(jù)庫(kù)共涉及鑰匙列表、鎖頭列表和解鎖匹配列表三個(gè)表(如下頁(yè)表1、表2、表3),鑰匙列表保存所有鑰匙的信息,鎖頭列表保存所有鎖的信息,解鎖匹配列表保存管理員的授權(quán)信息。數(shù)據(jù)庫(kù)保存在本地服務(wù)器,供平臺(tái)調(diào)用。
表1 鑰匙列表
表2 鎖頭列表
表3 解鎖匹配列表
后臺(tái)要做的是對(duì)新鑰匙和新鎖頭分配ID、授權(quán)開(kāi)鎖等。可以將一把新鎖通過(guò)數(shù)據(jù)線連接到計(jì)算機(jī),通過(guò)管理端對(duì)鎖進(jìn)行命名,注冊(cè)鎖的賬戶(hù)和密碼以及命名相對(duì)應(yīng)的房間號(hào)。同樣,每拿到一把新的鑰匙,都要把新鑰匙通過(guò)數(shù)據(jù)線連接到電腦,通過(guò)管理端對(duì)鑰匙分配ID,生成登錄密碼,注冊(cè)鑰匙的所有人的身份信息、聯(lián)系電話等,并授權(quán)開(kāi)鎖方案、失效時(shí)間等。當(dāng)出現(xiàn)鑰匙丟失時(shí),可將已經(jīng)丟失的鑰匙禁用,防止鑰匙被盜用。
本文介紹了一種基于物聯(lián)網(wǎng)的校園一把鑰匙開(kāi)掛鎖系統(tǒng)。本系統(tǒng)改變了傳統(tǒng)智能鎖鎖芯帶電的模式,讓鑰匙帶電可充電,而鎖不帶電,鑰匙可再編程,重復(fù)利用,極大地節(jié)約了資源,實(shí)現(xiàn)了鑰匙的分布式管理。本系統(tǒng)適合鐵門(mén)較多、掛鎖較多的學(xué)校,實(shí)踐表明,它能解除這些學(xué)校管理多把鑰匙的煩惱,提高校園安全管理水平。