馬 超,黃貴嵩,吳啟鑫,王 永,何志琴
(貴州大學(xué) 電氣工程學(xué)院,貴州 貴陽 550025)
隨著時(shí)代的發(fā)展,現(xiàn)代社會已經(jīng)步入了一個(gè)高速發(fā)展的信息化時(shí)代。每天都有大量的數(shù)據(jù)進(jìn)行著交互和更新。用戶的信息和資料的保護(hù)是十分重要的,加密登錄必不可少。使用固定的密碼,用戶在使用時(shí)不僅記憶有難度并且會增加資料被盜的風(fēng)險(xiǎn);維護(hù)的成本也隨著系統(tǒng)規(guī)模的增加而增加。當(dāng)下主流的解決方式是采用動(dòng)態(tài)密碼,短信驗(yàn)證碼就是其中的一種應(yīng)用。其特征為一次一個(gè)密碼,使用者無法預(yù)知,每次使用的密碼均不相同,避免了他人的盜竊和猜測[1]。本系統(tǒng)在參考了動(dòng)態(tài)密碼和RBAC的權(quán)限管理使用方法后,采用了具有訪問權(quán)限的動(dòng)態(tài)密碼授權(quán)方式。通過在主機(jī)和從機(jī)的交互反饋實(shí)現(xiàn)密碼的動(dòng)態(tài)特點(diǎn),并能夠在成功登錄后只具備一定的操作權(quán)限。
本系統(tǒng)基于RBAC權(quán)限模型,采用動(dòng)態(tài)密碼登錄,由STM32F103ZET6作為主機(jī)、從機(jī)的主控芯片,主機(jī)為管理員操作,用于用戶申請?jiān)L問符合自身權(quán)限的數(shù)據(jù)。通過用戶輸入工號和隨機(jī)數(shù)字進(jìn)行加密,并將該數(shù)據(jù)通過HC-05發(fā)送至從機(jī)。并在用戶成功登錄后接受從機(jī)反饋的登錄用戶信息判斷是否符合申請要求,并進(jìn)行相關(guān)操作。從機(jī)負(fù)責(zé)用戶登錄訪問數(shù)據(jù)。用戶刷入指紋后進(jìn)行輸入密碼的操作,當(dāng)密碼正確后等待主機(jī)驗(yàn)證后即可進(jìn)行符合自身權(quán)限的數(shù)據(jù)操作。并會通過LED顯示該用戶具有的權(quán)限。
圖1 主體設(shè)計(jì)框圖
動(dòng)態(tài)密碼認(rèn)證主要分為時(shí)間同步和事件同步兩種方式[2],時(shí)間同步是在一段時(shí)間內(nèi)有效的密碼,時(shí)間不同則有效的密碼不同。事件同步是密碼觸發(fā)事件而發(fā)生變化。用戶觸發(fā)事件后就會產(chǎn)生或者改變密碼,用戶預(yù)設(shè)的基礎(chǔ)密碼與用戶觸發(fā)事件的次數(shù)通過密碼算法生成最終的密碼。本系統(tǒng)采用事件同步的方式,通過用戶輸入的隨機(jī)數(shù)字讀取密碼表相關(guān)序列數(shù)據(jù)與基礎(chǔ)密碼生成密碼。
RBAC模型由角色、用戶、會話、權(quán)限構(gòu)成。一個(gè)用戶能夠具有多個(gè)角色的特性,一個(gè)角色可以對應(yīng)多個(gè)用戶。同樣,權(quán)限與角色的關(guān)系也基本相同[3]。創(chuàng)建一個(gè)會話后,用戶分配到角色后會擁有相對應(yīng)的權(quán)限。通過該模型,能夠使管理更加高效,減小系統(tǒng)開銷,提高安全性。當(dāng)信息被盜取后會將損失降低到最小,并且按照最小權(quán)限原則能夠更好地分配到工作的范圍。
微控制器是實(shí)現(xiàn)整個(gè)控制系統(tǒng)的核心部分,STM32F103ZET6是一款基于ARM Cortex-M3內(nèi)核,具有豐富外設(shè)接口。其中包含本系統(tǒng)需要的GPIO、USART、FSMC、SPI外設(shè)接口,具有較好的代碼效率,在工程上廣泛使用。
通過使用芯片的GPIO模塊,使能接入按鍵和LED的引腳,按鍵輸入的數(shù)據(jù)為0~9以及“刪除”和“確定”按鍵,由于STM32內(nèi)部集成了下拉電阻,所以外部電路不需要外接下拉電阻。LED的顏色表明從機(jī)在用戶輸入密碼后顯示對應(yīng)的權(quán)限等級。用于顯示信息的屏幕選用2.8寸TFT液晶屏LCD,其中包含一個(gè)液晶控制芯片ILI9341控制像素格式和數(shù)據(jù)、命令信號的控制,并滿足8080通訊時(shí)序。本系統(tǒng)通過主控芯片的FSMC接口實(shí)現(xiàn)8080的通訊時(shí)序。
W25Q64為64M-bit的FLASH存儲器,使用SPI通信協(xié)議進(jìn)行操作,WP引腳起寫保護(hù)功能,本系統(tǒng)接入高電平不使用寫保護(hù)功能。HOLD引腳用于暫停通訊,接入高電平不使用通訊暫停功能。在主機(jī)中存儲用戶的基礎(chǔ)密碼、個(gè)人信息和權(quán)限信息;在從機(jī)中存儲不同權(quán)限級別可以操作的信息,并均通過主控芯片的硬件SPI接口將讀寫存儲的數(shù)據(jù)。讀取數(shù)據(jù)前需要讀取ID值以確保該模塊可以正常工作。
圖2 W25Q64接口電路
藍(lán)牙模塊和指紋模塊均由串口模塊控制。
藍(lán)牙模塊為HC-05,其采用CSR主流藍(lán)牙芯片,藍(lán)牙V2.0協(xié)議標(biāo)準(zhǔn)。自帶連接狀態(tài)指示燈,LED快閃表示沒有藍(lán)牙連接;LED慢閃表示進(jìn)入AT命令模式[4]。主機(jī)和從機(jī)的配對碼一致后即可上電自動(dòng)連接。主機(jī)生成密碼加密后使用HC-05向從機(jī)發(fā)送登錄密碼,并在用戶登錄后從機(jī)向主機(jī)反饋該用戶登錄成功的信息,并驗(yàn)證是否為該用戶。
圖3 HC-05接口電路 圖4 AS608模塊接口電路
AS608指紋識別模塊是一款高性能的光學(xué)指紋識別模塊。AS608指紋識別芯片內(nèi)置 DSP 運(yùn)算單元,集成了指紋識別算法,能高效快速采集圖像并識別指紋特征[5]。300個(gè)指紋存儲量,足以滿足小規(guī)模的員工數(shù)據(jù)存儲。并根據(jù)引腳WAK的電平狀態(tài)判斷有無手指按下。
用戶在主機(jī)輸入工號和隨機(jī)數(shù)字后,系統(tǒng)根據(jù)隨機(jī)數(shù)據(jù)的數(shù)值讀取W25Q64的密碼頁面相關(guān)序列信息,并將該信息與基礎(chǔ)密碼相結(jié)合組成新的密碼,并使用藍(lán)牙模塊發(fā)送信息至從機(jī)作為登錄密碼。并讀取由藍(lán)牙返回的用戶登錄信息,如登錄失敗則清標(biāo)志,否則根據(jù)回饋的信息判斷本次登錄的用戶是否具有登錄資質(zhì)。具有資質(zhì)是允許訪問,否則拒絕訪問。分步驗(yàn)證身份雖然增加了一定的工作量,但是對于系統(tǒng)的安全性有了較好的提升。
圖5 主機(jī)主程序流程圖
從機(jī)通過接受主機(jī)發(fā)送的密碼進(jìn)行解碼,確定用戶的個(gè)人信息和權(quán)限級別。當(dāng)用戶在從機(jī)三次輸入錯(cuò)誤時(shí)或者登錄成功后結(jié)束登錄訪問并向主機(jī)回饋信息,并接受主機(jī)發(fā)送的是否允許訪問的信息。以確定是否允許用戶訪問W25Q64中存放的權(quán)限數(shù)據(jù),并點(diǎn)亮與權(quán)限相對應(yīng)的LED小燈顯示權(quán)限等級。
本文根據(jù)RBAC的模型,構(gòu)建出圖6圖7所示的存儲框架,通過訪問W25Q64不同內(nèi)部存儲地址從而讀取具有不同權(quán)限的信息。并且可以根據(jù)每個(gè)權(quán)限下用戶數(shù)量的不同分配合理的存儲空間。存儲芯片的第一個(gè)區(qū)間放置每個(gè)權(quán)限區(qū)間所占空間以及起始基地址。同時(shí)可以快速加入或者刪除具有權(quán)限的用戶,有利于管理的高效化。
圖6 主機(jī)RBAC結(jié)構(gòu)示意
圖7 從機(jī)RBAC結(jié)構(gòu)示意
本系統(tǒng)采用事件同步的密碼認(rèn)證方式,主機(jī)通過用戶輸入工號和隨機(jī)數(shù)字觸發(fā)事件并通過隨機(jī)數(shù)字的數(shù)值讀取預(yù)先存儲到W25Q64扇區(qū)中的相關(guān)數(shù)據(jù),并與基礎(chǔ)密碼相結(jié)合生成登錄密碼,并由藍(lán)牙向從機(jī)發(fā)送本次登錄密碼。通過指紋和密碼的雙重認(rèn)證以達(dá)到“靜態(tài)+動(dòng)態(tài)”的認(rèn)證方式。
該方案通過將動(dòng)態(tài)密碼和RBAC權(quán)限模型結(jié)合起來,構(gòu)建了一個(gè)較為高效、安全的系統(tǒng),一方面密碼的隨機(jī)性增加了登錄的安全程度,另一方面權(quán)限性的授權(quán)使得操作規(guī)范化,兩者綜合提升了系統(tǒng)的復(fù)雜性,增加了盜取信息的成本??蓱?yīng)用于中小型企業(yè),有利于數(shù)據(jù)管理更加系統(tǒng)化。
圖8 生成動(dòng)態(tài)密碼流程圖
[1] 徐又又,韋政.基于STM8L單片機(jī)的動(dòng)態(tài)密碼電子鎖設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2015(25):45-50.
[2] 朱繼團(tuán).動(dòng)態(tài)密碼在保密信息系統(tǒng)中的應(yīng)用[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2004(6):41-44.
[3] 董向文.基于RBAC權(quán)限模型實(shí)現(xiàn)醫(yī)院計(jì)算機(jī)信息管理的研究[J].計(jì)算機(jī)測量與控制,2020,28(8):223-227.
[4] 雷思睿.基于STM32單片機(jī)的智慧防丟失系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].無線互聯(lián)科技,2020,17(4):48-49.
[5] 馬馨雅.基于STM32的指紋識別門禁系統(tǒng)[J].電子世界,2018(24):157.