[陳進(jìn)慧 申永 徐林 孫暉 馬建軍]
門鎖作為普通百姓日常用品,是保障人們生活隱私和安全的必要工具。傳統(tǒng)門鎖控制方式有機(jī)械式的鑰匙、電磁感應(yīng)式的磁卡或磁芯,而鑰匙、磁卡或磁芯均攜帶不方便,易遺忘,耐久性較差,安全性不高。市面上已有智能門鎖可以支持密碼鍵盤輸入、指紋識別、虹膜識別、人臉識別等方式實(shí)現(xiàn)開鎖,該類型智能門鎖價格昂貴,通常需要上千元,不利于廣泛普及,且功耗較高,需經(jīng)常更換電池?,F(xiàn)在市面上迫切需要一種智能、便攜、快捷、低功耗和低成本的安全型智能門鎖控制系統(tǒng)。智能終端(如智能手機(jī))現(xiàn)已經(jīng)成為大部分人日常人手不離的工具,它集成了上述智能門鎖所需的指紋識別、人臉識別等身份認(rèn)證輸入和觸摸屏鍵盤密碼輸入等有效開鎖部件,內(nèi)置閃光燈,可通過軟件方式對其進(jìn)行編碼調(diào)制,發(fā)射光信號作為有效的開鎖指令。相對傳統(tǒng)藍(lán)牙、WIFI 等無線方式,光控門鎖優(yōu)點(diǎn)是門鎖端接收器光電探測器待機(jī)功耗低[1][2],單向點(diǎn)對點(diǎn)傳輸省去通信配對和握手的時間開銷,指令傳遞更快捷。
但是當(dāng)前光控門鎖的用于發(fā)送開鎖口令的光信號很容易被探測復(fù)制,執(zhí)行非法的開鎖操作。因而客觀上要求光信號每次加載傳輸?shù)拿艽a不規(guī)則、不一致且具有一定的時效性[3],從而避免光信號開鎖密碼被非法復(fù)制。由于該光控門鎖光信號為單向傳輸通信方式,門鎖端和控制端無法進(jìn)行雙向通信,不能采用傳統(tǒng)的加密芯片滾動法或密碼詞典隨機(jī)數(shù)查表法獲得計(jì)次使用的動態(tài)密碼,因而需要設(shè)計(jì)基于精準(zhǔn)時間戳的動態(tài)密碼實(shí)現(xiàn)開鎖指令安全傳遞。
光控門鎖實(shí)施結(jié)構(gòu)包括控制端和門鎖端,其工作機(jī)制如圖1 所示??刂贫嘶窘M成包括密碼發(fā)生器、編碼調(diào)制器、光信號發(fā)射器[1]。密碼發(fā)生器主要通過密碼輸入方式或身份認(rèn)證方式完成特定開鎖指令生成,然后采用一定的編碼方式調(diào)制光源(如激光器、LED 等)實(shí)現(xiàn)開鎖執(zhí)行發(fā)射??刂贫溯d體可以為智能終端,通過安裝光控門鎖系統(tǒng)APP 實(shí)現(xiàn)密碼輸入或身份認(rèn)證、開鎖指令編碼,智能終端自帶LED 閃光燈調(diào)制并發(fā)射開鎖指令,APP 還配備預(yù)設(shè)模式用于對門鎖端認(rèn)證信息輸入及開鎖密碼輸入。門鎖端基本組成包括光信號接收器、解碼器、解密模塊、密碼判決模塊和電控機(jī)械鎖體。光信號接收器包括光電探測器及信號處理電路;光電探測器接收光信號并將其轉(zhuǎn)換為電流信號;光電探測器連接信號處理電路將所得電流信號濾波處理并轉(zhuǎn)換成電信號、喚醒待機(jī)模式的微控制器進(jìn)行解碼和密碼判決,若密碼符合規(guī)則通過電荷泵電路驅(qū)動電控機(jī)械鎖體執(zhí)行開鎖操作,并進(jìn)入待機(jī)模式,等待下一次開鎖操作。門鎖端配置預(yù)設(shè)模式鍵,實(shí)現(xiàn)對控制端進(jìn)行認(rèn)證及開鎖密碼設(shè)置。
圖1 光控門鎖基本工作流程
光控門鎖系統(tǒng)組成原理如圖2 所示,包括智能終端開鎖密碼輸入模塊,智能終端動態(tài)密碼生成模塊,手機(jī)閃光燈驅(qū)動與編碼調(diào)制模塊以及預(yù)設(shè)模式下的雙向認(rèn)證和開鎖密碼設(shè)置部分;光控門鎖端光信號探測與接收解調(diào)模塊,光控門鎖端動態(tài)密碼解密模塊,光控門鎖執(zhí)行機(jī)構(gòu)驅(qū)動模塊以及預(yù)設(shè)模式下控制端認(rèn)證和開鎖密碼存儲部分。
圖2 系統(tǒng)組成原理框圖
控制端為具有內(nèi)置處理器、觸摸屏、閃光燈的智能終端,智能終端通常為智能手機(jī)和平板電腦等智能設(shè)備。智能終端閃光燈在開鎖模式下可發(fā)射動態(tài)開鎖密碼作為開鎖指令,在預(yù)設(shè)模式下可發(fā)射智能終端的串號到門鎖端作為有效認(rèn)證信息,具體操作通過APP 軟件實(shí)現(xiàn)。開鎖模式下在用戶界面輸入密碼,然后組合門鎖機(jī)器碼和IMEI 串號產(chǎn)生共享密鑰,再通過加密模塊結(jié)合智能終端時間信息采用TOPT 算法進(jìn)行加密并生產(chǎn)動態(tài)密碼,爾后驅(qū)動相機(jī)模塊中的LED 閃光燈實(shí)現(xiàn)動態(tài)密碼發(fā)射。預(yù)設(shè)模式下首先通過相機(jī)模塊掃描門鎖二維碼獲得門鎖機(jī)器碼完成門鎖認(rèn)證,然后將控制端IMEI 串號身份信號通過閃光燈傳送到門鎖完成控制端認(rèn)證,最后輸入開鎖密碼,APP 根據(jù)算法組合開鎖密碼、門鎖機(jī)器碼、IMEI 串口生產(chǎn)共享密鑰亦通過閃光燈傳輸?shù)介T鎖進(jìn)行存儲。在時間信息精度方面,智能終端具備時鐘網(wǎng)絡(luò)同步功能和GPS 時鐘同步功能,其時間信息是高精度的標(biāo)準(zhǔn)時間(如北京時間)。
光控門鎖包括微控制器和其連接的光信號接收機(jī)構(gòu)、電控機(jī)械鎖機(jī)構(gòu)。光信號接收機(jī)構(gòu)包括光電探測器及信號處理電路;光電探測器連接信號處理電路,光電探測器接收光信號并將其轉(zhuǎn)換為電流信號后送入信號處理電路;信號處理電路的輸入端接入微控制器,信號處理電路將電流信號濾波處理并轉(zhuǎn)換成電壓信號、送入微控制器;電控機(jī)械鎖機(jī)構(gòu)包括電控開鎖單元及其連接控制的機(jī)械鎖定裝置,微控制器連接電控開鎖單元。光控門鎖控制端為發(fā)射控制光控門鎖的開鎖密鑰光信號的設(shè)施。微控制器配備存儲器用于存儲門鎖機(jī)器碼、認(rèn)證信息和共享密鑰。微控制器連接預(yù)設(shè)模式鍵,用于實(shí)現(xiàn)預(yù)設(shè)模式下進(jìn)行控制端認(rèn)證[5]。光控門鎖內(nèi)高精度時鐘芯片,用于動態(tài)密碼解密。鎖體主要基于傳統(tǒng)電控門鎖進(jìn)行升級改造,通過智能控制處理板賦予更多功能,可以支持專用數(shù)據(jù)輸出輸入接口與計(jì)算機(jī)進(jìn)行連接,并可配備存儲器進(jìn)行開鎖記錄存儲。光控門鎖內(nèi)置高精度時鐘芯片,否則時鐘漂移后可用性受到影響,通過采用通用高精度時鐘芯片RX8025T 并外接0.5 ppm的有源低頻帶溫度補(bǔ)償TCXO 型高穩(wěn)石英晶體振蕩器,方能達(dá)到月誤差約1 秒,滿足光控門鎖解密的時間信息要求。同時在APP 軟件中配備時間同步功能,可以將智能終端高精度時鐘信息通過光信號傳遞到門鎖,實(shí)現(xiàn)對門鎖端時鐘芯片中日歷時間校準(zhǔn)。
采用雙向認(rèn)證技術(shù)用于實(shí)現(xiàn)門鎖端到控制端、控制端到門鎖端有效身份認(rèn)證,并產(chǎn)生控制端與門鎖端一致的共享密鑰。雙向認(rèn)證過程中門鎖端的身份信息為唯一性的門鎖機(jī)器碼SN,控制端的身份信息為智能終端串號IMEI(International Mobile Equipment Identity,國際移動設(shè)備識別碼)。
門鎖機(jī)器碼SN 作為門鎖唯一性標(biāo)志,是一個由2 個字符、12 個數(shù)字、2 個校驗(yàn)字符組成的門鎖標(biāo)識,2 個字符代表門鎖型號,12 個數(shù)字由門鎖內(nèi)MCU 序列號通過加密算法生成,2 個校驗(yàn)字符是根據(jù)門鎖型號和數(shù)字標(biāo)識進(jìn)行異或和求與組合邏輯生成,可在出廠時候附于門鎖內(nèi)側(cè),當(dāng)將門鎖設(shè)置為預(yù)設(shè)模式下,SN 則以二維碼形式展現(xiàn)出來,通過智能終端內(nèi)置攝像頭和APP 軟件二維碼解析程序在認(rèn)證模式下獲取該二維碼,并執(zhí)行同樣邏輯校驗(yàn)判斷,若符合該規(guī)則認(rèn)為門鎖為有效光控門鎖,并獲取機(jī)器碼SN。完成門鎖端向控制端傳遞認(rèn)證信息。該認(rèn)證方式還可以防止非法門鎖進(jìn)入APP 軟件進(jìn)行管理,有效保護(hù)其產(chǎn)權(quán)。
智能終端串號IMEI 作為智能終端唯一的辨識碼,是由15 位數(shù)字組成的“電子串號”,可以通過智能終端APP 軟件在認(rèn)證模式下讀取該串號。APP 軟件將串號IMEI 經(jīng)過加密算法編碼為32 位的控制端序號,在雙向認(rèn)證過程中通過光信號和共享密鑰一起傳輸?shù)介T鎖中進(jìn)行存儲。通過智能終端身份有效性認(rèn)證可以防止智能終端在聯(lián)網(wǎng)情況下其輸入的密碼可能會被黑客通過非法方式監(jiān)聽竊取或被旁人非法窺竊后利用APP 軟件執(zhí)行非法開鎖操作,從而利用智能終端內(nèi)置開鎖軟件執(zhí)行非法開鎖操作。并且IMEI 還經(jīng)過加密算法編碼為32 位的序號,為了防止黑客非法獲取有效認(rèn)證的智能終端串號,通過偽裝方式執(zhí)行開鎖。而且由于所采用的MCU 可配置防外部編程模式進(jìn)行程序數(shù)據(jù)讀取功能,可以有效保護(hù)存儲的數(shù)據(jù)信息和程序被竊取克隆。
雙向認(rèn)證獲取的門鎖機(jī)器碼SN、控制端IMEI 串號是控制端和門鎖端生成動態(tài)密碼所需共享密鑰的前提。共享密鑰K 通過智能終端軟件采用ECC(Elliptic Curves Cryptography,橢圓曲線密碼編碼學(xué))算法組合IMEI、門鎖機(jī)器碼SN 和用戶預(yù)先設(shè)置的門鎖密碼P 生成一組base32 字符串。
COMPOSE 為ECC 組合算法函數(shù),先選擇素域上的橢圓曲線Ep(a,b)上基點(diǎn)G[7],并選用私有密鑰k(k<n,n為G 的階),利用基點(diǎn)G 組合IMEI、SN、P 來計(jì)算生成192 位的共享密鑰K。
針對光控門鎖靜態(tài)開鎖密碼或指令易被竊取,執(zhí)行非法開鎖操作的問題,需要采取更加安全的動態(tài)密碼方式加載開鎖操作指令。動態(tài)密碼即一次性密碼OTP(One Time Password),也稱動態(tài)口令,密碼只能在一次會話或一段時間內(nèi)有效,屬于強(qiáng)認(rèn)證技術(shù),可有效規(guī)避傳統(tǒng)靜態(tài)密碼易被竊取的缺點(diǎn),其實(shí)現(xiàn)形式包括事件同步、挑戰(zhàn)/應(yīng)答、時間同步3 種方式[5]。由于智能終端光控門鎖采用的是單向光信號發(fā)射方式,不具備雙向通信能力,只能采用基于時間的OTP 同步方式。基于時間的OTP 簡稱TOTP(Time-based One Time Password)的基本認(rèn)證原理是認(rèn)證雙方共享密鑰,并使用同一個密鑰對時間戳進(jìn)行密碼算法計(jì)算,之后比較值是否一致進(jìn)行認(rèn)證,動態(tài)口令使用后下一個時間戳作廢,理論上時間間隔越小,密碼安全性越高,TOTP 算法計(jì)算如公式如下。
Truncate 代表截取操作,K 為共享密鑰,T 代表時間信息,可以根據(jù)安全性和可用性要求事先約定動態(tài)密碼截取長度。TOTP 生產(chǎn)過程為首先將K 與T 通過HAMCSHA-256 算法轉(zhuǎn)換為256 bit 的哈希值,該算法作為2 代SHA 加密算法,目前還未有有效的攻擊方法。然后再通過Truncate 截取為32 bit 無符號整數(shù)TOTP,由于動態(tài)密碼長度達(dá)32 位,極大降低了其被暴力破解的可能性。并且在門鎖端比對判決邏輯還配置防止暴力破解的策略,防止對其攻擊和破解的方法是暴利破解,具體操作是若門鎖接收動態(tài)密碼在時間窗口內(nèi)連續(xù)3 次判決失敗(動態(tài)密碼錯誤或編碼未經(jīng)認(rèn)證)則休眠一分鐘[6],以此類推若連續(xù)發(fā)生3*n判決,則休眠2n-1 分鐘,進(jìn)一步抵御降低暴力破解。動態(tài)密碼時間信息T 的計(jì)算過程如下。
T1 代表當(dāng)前時間戳,T0 代表初始時間戳,X代表時間步長或間隙。通常T1 可以取為UTC 時間(32 位整數(shù)),T0 則直接取0,步長X通常選為30 s[5]。由于控制端和門鎖端時間不可能完全一致,當(dāng)一個處于指定步長的時間戳結(jié)尾,另一個處于某時間戳開始,收到的動態(tài)密碼則不能解析,應(yīng)該設(shè)置策略允許動態(tài)密碼通過跳步到前一個或后一個時間戳進(jìn)行驗(yàn)證,但這樣增加時間延遲窗口,進(jìn)而增加暴利破解風(fēng)險(xiǎn)。為了提高實(shí)用性,采用前后設(shè)置一個步長時延來兼容時間不一致性問題,其前提是動態(tài)密碼傳輸采用光信號和信號處理和邏輯判決采取高性能處理器,因而傳輸和處理時間可忽略。實(shí)際應(yīng)用中權(quán)衡安全性和可用性、以及門鎖時間精度,時間延遲窗口為2 個步長(60 s),這意味著門鎖端需要針對一個控制端生成4 套動態(tài)密碼逐一進(jìn)行比對,若某一個成功則控制指令有效執(zhí)行開鎖,為了降低誤開鎖概率。
動態(tài)密碼工作機(jī)制原理如圖3 所示,客觀上控制端時鐘和門鎖端高精度時鐘芯片二者提供的時鐘信息在密碼判決有效期內(nèi)一致,每個控制端必須擁有不同的共享密鑰,并且其共享密鑰必須防止其他不安全因素進(jìn)行訪問或使用,門鎖端作為服務(wù)器端,需預(yù)先存儲各控制端生成的共享密鑰,并能有效防止非法設(shè)備進(jìn)行篡改、訪問或使用。工作流程是控制端根據(jù)共享密鑰和時間信息生成隨機(jī)數(shù)并進(jìn)行截取生成動態(tài)密碼,動態(tài)密碼加載到智能終端閃光燈進(jìn)行編碼、調(diào)制和光信號發(fā)射,門鎖端接收光信號解調(diào)并解碼后,利用門鎖內(nèi)預(yù)先存儲的共享密鑰和其內(nèi)置高精度時鐘芯片時間信息依據(jù)同樣原理和方式生成的動態(tài)密碼進(jìn)行比對判決,若成功則執(zhí)行開鎖操作。
圖3 動態(tài)密碼工作機(jī)制
為降低系統(tǒng)功耗,硬件上配套要求器件均選用低功耗器件,并且控制器具有低功耗模式,無光信號時,光電探測器自動進(jìn)入待機(jī)模式,控制器關(guān)閉除光電探測器外其他部件電源同時進(jìn)入低功耗運(yùn)行模式,若光電探測到有效光信號則自動喚醒控制器,并進(jìn)入運(yùn)行模式打開各部件電源。為同時滿足光控門鎖解密高性能處理和低功耗長時間待機(jī)需求,控制器采用低功耗微控器STM32L4A6,其基于32 位Cortex-M4 內(nèi)核,低功耗運(yùn)行模式下功耗僅為36 uA/MHz,內(nèi)部集成了哈希處理器,支持SHA-256 算法,調(diào)用庫函數(shù)HASH_SHA256進(jìn)行哈希值計(jì)算可得到256 bit的報(bào)文信息,其內(nèi)部Flash 具有加密功能,可以讀保護(hù)模式防止外部編程器或仿真器窺竊內(nèi)部程序和數(shù)據(jù),并且工作電壓范圍為1.71 V 至3.6 V,可通過單節(jié)18 650 鋰電池或雙節(jié)5 號干電池直接供電工作。
在光電探測器方面,由于光控門鎖光電探測器接收光信號為手機(jī)閃光燈發(fā)出的可見光調(diào)制信號,因而需要采用硅光電探測器。由于硅PIN 光電探測器具有功耗和成本低、探測效率高的優(yōu)點(diǎn)。系統(tǒng)中選用LSSPD-1.2 硅光電探測器,其感光波段為400~1 100 nm,涵蓋可見光的光譜范圍,有效光敏面面積達(dá)1.2 mm×1.2 mm,響應(yīng)度為0.35 A/W(可見光650 nm 波段),靜態(tài)工作電流為5 mA,待機(jī)電流為12 μA。
實(shí)際應(yīng)用這能夠低功耗模式下微控器工作頻率為32 kHz,其待機(jī)電流僅1 μA 左右,考慮探測器待機(jī)電流和電路元器件功耗,低功耗模式下門鎖電控部分總功耗約30 μA 左右。門鎖驅(qū)動上采用低功耗的電荷泵門鎖結(jié)構(gòu)驅(qū)動技術(shù),電荷泵充電電流約為600 mA,在運(yùn)行模式下,電荷泵需充電時間約1.5 s,然后執(zhí)行開鎖,持續(xù)時間約0.5 s。開鎖完畢,系統(tǒng)自動進(jìn)入低功耗模式。
安全光控門鎖實(shí)物驗(yàn)證環(huán)境如圖4 所示,包括控制終端和光控門鎖端??刂贫藶橹悄苁謾C(jī),其APP 基于Android 系統(tǒng)開發(fā),用戶輸入預(yù)先設(shè)定密碼,APP 進(jìn)行加密后,驅(qū)動調(diào)制閃光燈發(fā)射動態(tài)密碼到門鎖端。門鎖內(nèi)部主要包括光接收透鏡、光電探頭、控制處理板及鎖體,門鎖端光接收鏡和光電探頭進(jìn)行閃光燈光信號接收探測及解調(diào),然后輸入到控制處理板進(jìn)行解密,若密碼正確、控制端合法且滿足時效性要求則執(zhí)行開鎖操作。門鎖在使用前需要在預(yù)設(shè)模式下完成認(rèn)證和密碼設(shè)置,拆開鎖體后,撥動預(yù)設(shè)開關(guān)將鎖體配置為預(yù)設(shè)模式,并在智能手機(jī)上安裝配套APP 軟件,點(diǎn)擊進(jìn)入預(yù)設(shè)模式,先掃描門鎖端內(nèi)置二維碼,獲取其機(jī)器碼實(shí)現(xiàn)門鎖認(rèn)證,然后發(fā)送手機(jī)IMEI 串號到門鎖端實(shí)現(xiàn)控制端認(rèn)證,再對門鎖開鎖密碼進(jìn)行設(shè)置完成預(yù)設(shè)模式操作。
圖4 安全光控門鎖實(shí)物圖
為了驗(yàn)證該安全光控門鎖的快捷性、安全性和低功耗能力。開展了門鎖開鎖時間、非法控制端入侵、動態(tài)密碼時效性、抗暴力破解能力、待機(jī)功耗等方面測試。經(jīng)測試表明門鎖開鎖時間約5 s 左右,其中低功耗喚醒時間約0.2 s,動態(tài)密碼光信號發(fā)射與探測處理時間約3 s,電荷泵充電完成執(zhí)行開鎖操作時間約2 s,取得了較好的快捷效果。非法控制端入侵測試試驗(yàn),采用12 臺未經(jīng)過認(rèn)證的智能手機(jī)安裝控制端APP 軟件對光控門鎖發(fā)送開鎖密碼,門鎖接收到光信號喚醒后均不會執(zhí)行開鎖操作。動態(tài)密碼時效性主要目的是抗非法探測,測試過程是利用光探測儀記錄有效的開鎖光信號,并將其導(dǎo)出以同樣波段LED反復(fù)發(fā)射該光信號到光控門鎖,該信號僅能在1 分鐘內(nèi)獲得有效的開鎖操作,能滿足日常門鎖動態(tài)密碼時效性要求??贡┝ζ平饽芰y試通過同波段LED 循環(huán)發(fā)送密碼字典里的動態(tài)密碼到門鎖端,經(jīng)約12 小時測試,均不能獲得合法的開鎖操作。待機(jī)功耗測試驗(yàn)證主要采用萬用表接入電路回路,選擇電流微安檔,實(shí)測待機(jī)功耗約為50 μA,相對于設(shè)計(jì)值略高,主要源于電路中電容性器件耗電、IO口高阻抗亦存在灌電流,若使用單節(jié)5 000 mAH 的18 650鋰電池待機(jī)壽命仍可到10 年以上。
基于智能終端的安全光控門鎖系統(tǒng)克服了現(xiàn)有光控門鎖系統(tǒng)便攜性和安全性的不足,并具備其快捷性和低功耗能力。該門鎖能有效抗未經(jīng)認(rèn)證的非法控制端入侵,能在一定的時效性內(nèi)有效防止探測復(fù)制而執(zhí)行非法開鎖操作,并具備強(qiáng)抗暴力破解能力。后續(xù)還需進(jìn)一步對其進(jìn)行產(chǎn)品化設(shè)計(jì),提高產(chǎn)品的可靠性和易用性,開發(fā)多平臺下控制端APP 并優(yōu)化其軟件功能與性能,滿足控制端一對多開鎖需求,采用高能量密度鋰電池進(jìn)一步提升門鎖持續(xù)工作能力。隨著人們生活水平日益提高,對生活隱私和安全保障要求越來越強(qiáng)烈,該類型安全光控門鎖作為一種實(shí)用性高的智能門鎖,能有效滿足市場需求,應(yīng)用前景廣闊。