馬 超,黃貴嵩,吳啟鑫,王 永,何志琴
(貴州大學 電氣工程學院,貴州 貴陽 550025)
隨著時代的發展,現代社會已經步入了一個高速發展的信息化時代。每天都有大量的數據進行著交互和更新。用戶的信息和資料的保護是十分重要的,加密登錄必不可少。使用固定的密碼,用戶在使用時不僅記憶有難度并且會增加資料被盜的風險;維護的成本也隨著系統規模的增加而增加。當下主流的解決方式是采用動態密碼,短信驗證碼就是其中的一種應用。其特征為一次一個密碼,使用者無法預知,每次使用的密碼均不相同,避免了他人的盜竊和猜測[1]。本系統在參考了動態密碼和RBAC的權限管理使用方法后,采用了具有訪問權限的動態密碼授權方式。通過在主機和從機的交互反饋實現密碼的動態特點,并能夠在成功登錄后只具備一定的操作權限。
本系統基于RBAC權限模型,采用動態密碼登錄,由STM32F103ZET6作為主機、從機的主控芯片,主機為管理員操作,用于用戶申請訪問符合自身權限的數據。通過用戶輸入工號和隨機數字進行加密,并將該數據通過HC-05發送至從機。并在用戶成功登錄后接受從機反饋的登錄用戶信息判斷是否符合申請要求,并進行相關操作。從機負責用戶登錄訪問數據。用戶刷入指紋后進行輸入密碼的操作,當密碼正確后等待主機驗證后即可進行符合自身權限的數據操作。并會通過LED顯示該用戶具有的權限。

圖1 主體設計框圖
動態密碼認證主要分為時間同步和事件同步兩種方式[2],時間同步是在一段時間內有效的密碼,時間不同則有效的密碼不同。事件同步是密碼觸發事件而發生變化。用戶觸發事件后就會產生或者改變密碼,用戶預設的基礎密碼與用戶觸發事件的次數通過密碼算法生成最終的密碼。本系統采用事件同步的方式,通過用戶輸入的隨機數字讀取密碼表相關序列數據與基礎密碼生成密碼。
RBAC模型由角色、用戶、會話、權限構成。一個用戶能夠具有多個角色的特性,一個角色可以對應多個用戶。同樣,權限與角色的關系也基本相同[3]。創建一個會話后,用戶分配到角色后會擁有相對應的權限。通過該模型,能夠使管理更加高效,減小系統開銷,提高安全性。當信息被盜取后會將損失降低到最小,并且按照最小權限原則能夠更好地分配到工作的范圍。
微控制器是實現整個控制系統的核心部分,STM32F103ZET6是一款基于ARM Cortex-M3內核,具有豐富外設接口。其中包含本系統需要的GPIO、USART、FSMC、SPI外設接口,具有較好的代碼效率,在工程上廣泛使用。
通過使用芯片的GPIO模塊,使能接入按鍵和LED的引腳,按鍵輸入的數據為0~9以及“刪除”和“確定”按鍵,由于STM32內部集成了下拉電阻,所以外部電路不需要外接下拉電阻。LED的顏色表明從機在用戶輸入密碼后顯示對應的權限等級。用于顯示信息的屏幕選用2.8寸TFT液晶屏LCD,其中包含一個液晶控制芯片ILI9341控制像素格式和數據、命令信號的控制,并滿足8080通訊時序。本系統通過主控芯片的FSMC接口實現8080的通訊時序。
W25Q64為64M-bit的FLASH存儲器,使用SPI通信協議進行操作,WP引腳起寫保護功能,本系統接入高電平不使用寫保護功能。HOLD引腳用于暫停通訊,接入高電平不使用通訊暫停功能。在主機中存儲用戶的基礎密碼、個人信息和權限信息;在從機中存儲不同權限級別可以操作的信息,并均通過主控芯片的硬件SPI接口將讀寫存儲的數據。讀取數據前需要讀取ID值以確保該模塊可以正常工作。

圖2 W25Q64接口電路
藍牙模塊和指紋模塊均由串口模塊控制。
藍牙模塊為HC-05,其采用CSR主流藍牙芯片,藍牙V2.0協議標準。自帶連接狀態指示燈,LED快閃表示沒有藍牙連接;LED慢閃表示進入AT命令模式[4]。主機和從機的配對碼一致后即可上電自動連接。主機生成密碼加密后使用HC-05向從機發送登錄密碼,并在用戶登錄后從機向主機反饋該用戶登錄成功的信息,并驗證是否為該用戶。

圖3 HC-05接口電路 圖4 AS608模塊接口電路
AS608指紋識別模塊是一款高性能的光學指紋識別模塊。AS608指紋識別芯片內置 DSP 運算單元,集成了指紋識別算法,能高效快速采集圖像并識別指紋特征[5]。300個指紋存儲量,足以滿足小規模的員工數據存儲。并根據引腳WAK的電平狀態判斷有無手指按下。
用戶在主機輸入工號和隨機數字后,系統根據隨機數據的數值讀取W25Q64的密碼頁面相關序列信息,并將該信息與基礎密碼相結合組成新的密碼,并使用藍牙模塊發送信息至從機作為登錄密碼。并讀取由藍牙返回的用戶登錄信息,如登錄失敗則清標志,否則根據回饋的信息判斷本次登錄的用戶是否具有登錄資質。具有資質是允許訪問,否則拒絕訪問。分步驗證身份雖然增加了一定的工作量,但是對于系統的安全性有了較好的提升。

圖5 主機主程序流程圖
從機通過接受主機發送的密碼進行解碼,確定用戶的個人信息和權限級別。當用戶在從機三次輸入錯誤時或者登錄成功后結束登錄訪問并向主機回饋信息,并接受主機發送的是否允許訪問的信息。以確定是否允許用戶訪問W25Q64中存放的權限數據,并點亮與權限相對應的LED小燈顯示權限等級。
本文根據RBAC的模型,構建出圖6圖7所示的存儲框架,通過訪問W25Q64不同內部存儲地址從而讀取具有不同權限的信息。并且可以根據每個權限下用戶數量的不同分配合理的存儲空間。存儲芯片的第一個區間放置每個權限區間所占空間以及起始基地址。同時可以快速加入或者刪除具有權限的用戶,有利于管理的高效化。

圖6 主機RBAC結構示意

圖7 從機RBAC結構示意
本系統采用事件同步的密碼認證方式,主機通過用戶輸入工號和隨機數字觸發事件并通過隨機數字的數值讀取預先存儲到W25Q64扇區中的相關數據,并與基礎密碼相結合生成登錄密碼,并由藍牙向從機發送本次登錄密碼。通過指紋和密碼的雙重認證以達到“靜態+動態”的認證方式。
該方案通過將動態密碼和RBAC權限模型結合起來,構建了一個較為高效、安全的系統,一方面密碼的隨機性增加了登錄的安全程度,另一方面權限性的授權使得操作規范化,兩者綜合提升了系統的復雜性,增加了盜取信息的成本。可應用于中小型企業,有利于數據管理更加系統化。

圖8 生成動態密碼流程圖
[1] 徐又又,韋政.基于STM8L單片機的動態密碼電子鎖設計[J].現代計算機(專業版),2015(25):45-50.
[2] 朱繼團.動態密碼在保密信息系統中的應用[J].現代計算機(專業版),2004(6):41-44.
[3] 董向文.基于RBAC權限模型實現醫院計算機信息管理的研究[J].計算機測量與控制,2020,28(8):223-227.
[4] 雷思睿.基于STM32單片機的智慧防丟失系統設計與實現[J].無線互聯科技,2020,17(4):48-49.
[5] 馬馨雅.基于STM32的指紋識別門禁系統[J].電子世界,2018(24):157.