APP下载

基于STM32的授权动态密码系统设计*

2021-03-15黄贵嵩吴启鑫何志琴

现代机械 2021年1期
关键词:指纹识别蓝牙密码

马 超,黄贵嵩,吴启鑫,王 永,何志琴

(贵州大学 电气工程学院,贵州 贵阳 550025)

0 引言

随着时代的发展,现代社会已经步入了一个高速发展的信息化时代。每天都有大量的数据进行着交互和更新。用户的信息和资料的保护是十分重要的,加密登录必不可少。使用固定的密码,用户在使用时不仅记忆有难度并且会增加资料被盗的风险;维护的成本也随着系统规模的增加而增加。当下主流的解决方式是采用动态密码,短信验证码就是其中的一种应用。其特征为一次一个密码,使用者无法预知,每次使用的密码均不相同,避免了他人的盗窃和猜测[1]。本系统在参考了动态密码和RBAC的权限管理使用方法后,采用了具有访问权限的动态密码授权方式。通过在主机和从机的交互反馈实现密码的动态特点,并能够在成功登录后只具备一定的操作权限。

1 总体方案设计

本系统基于RBAC权限模型,采用动态密码登录,由STM32F103ZET6作为主机、从机的主控芯片,主机为管理员操作,用于用户申请访问符合自身权限的数据。通过用户输入工号和随机数字进行加密,并将该数据通过HC-05发送至从机。并在用户成功登录后接受从机反馈的登录用户信息判断是否符合申请要求,并进行相关操作。从机负责用户登录访问数据。用户刷入指纹后进行输入密码的操作,当密码正确后等待主机验证后即可进行符合自身权限的数据操作。并会通过LED显示该用户具有的权限。

图1 主体设计框图

1.1 动态密码原理

动态密码认证主要分为时间同步和事件同步两种方式[2],时间同步是在一段时间内有效的密码,时间不同则有效的密码不同。事件同步是密码触发事件而发生变化。用户触发事件后就会产生或者改变密码,用户预设的基础密码与用户触发事件的次数通过密码算法生成最终的密码。本系统采用事件同步的方式,通过用户输入的随机数字读取密码表相关序列数据与基础密码生成密码。

1.2 RBAC模型

RBAC模型由角色、用户、会话、权限构成。一个用户能够具有多个角色的特性,一个角色可以对应多个用户。同样,权限与角色的关系也基本相同[3]。创建一个会话后,用户分配到角色后会拥有相对应的权限。通过该模型,能够使管理更加高效,减小系统开销,提高安全性。当信息被盗取后会将损失降低到最小,并且按照最小权限原则能够更好地分配到工作的范围。

2 系统硬件设计

2.1 主控模块

微控制器是实现整个控制系统的核心部分,STM32F103ZET6是一款基于ARM Cortex-M3内核,具有丰富外设接口。其中包含本系统需要的GPIO、USART、FSMC、SPI外设接口,具有较好的代码效率,在工程上广泛使用。

通过使用芯片的GPIO模块,使能接入按键和LED的引脚,按键输入的数据为0~9以及“删除”和“确定”按键,由于STM32内部集成了下拉电阻,所以外部电路不需要外接下拉电阻。LED的颜色表明从机在用户输入密码后显示对应的权限等级。用于显示信息的屏幕选用2.8寸TFT液晶屏LCD,其中包含一个液晶控制芯片ILI9341控制像素格式和数据、命令信号的控制,并满足8080通讯时序。本系统通过主控芯片的FSMC接口实现8080的通讯时序。

2.2 数据存储模块

W25Q64为64M-bit的FLASH存储器,使用SPI通信协议进行操作,WP引脚起写保护功能,本系统接入高电平不使用写保护功能。HOLD引脚用于暂停通讯,接入高电平不使用通讯暂停功能。在主机中存储用户的基础密码、个人信息和权限信息;在从机中存储不同权限级别可以操作的信息,并均通过主控芯片的硬件SPI接口将读写存储的数据。读取数据前需要读取ID值以确保该模块可以正常工作。

图2 W25Q64接口电路

2.3 串口模块

蓝牙模块和指纹模块均由串口模块控制。

蓝牙模块为HC-05,其采用CSR主流蓝牙芯片,蓝牙V2.0协议标准。自带连接状态指示灯,LED快闪表示没有蓝牙连接;LED慢闪表示进入AT命令模式[4]。主机和从机的配对码一致后即可上电自动连接。主机生成密码加密后使用HC-05向从机发送登录密码,并在用户登录后从机向主机反馈该用户登录成功的信息,并验证是否为该用户。

图3 HC-05接口电路 图4 AS608模块接口电路

AS608指纹识别模块是一款高性能的光学指纹识别模块。AS608指纹识别芯片内置 DSP 运算单元,集成了指纹识别算法,能高效快速采集图像并识别指纹特征[5]。300个指纹存储量,足以满足小规模的员工数据存储。并根据引脚WAK的电平状态判断有无手指按下。

3 系统软件设计

3.1 主机软件流程图(图5)

用户在主机输入工号和随机数字后,系统根据随机数据的数值读取W25Q64的密码页面相关序列信息,并将该信息与基础密码相结合组成新的密码,并使用蓝牙模块发送信息至从机作为登录密码。并读取由蓝牙返回的用户登录信息,如登录失败则清标志,否则根据回馈的信息判断本次登录的用户是否具有登录资质。具有资质是允许访问,否则拒绝访问。分步验证身份虽然增加了一定的工作量,但是对于系统的安全性有了较好的提升。

图5 主机主程序流程图

从机通过接受主机发送的密码进行解码,确定用户的个人信息和权限级别。当用户在从机三次输入错误时或者登录成功后结束登录访问并向主机回馈信息,并接受主机发送的是否允许访问的信息。以确定是否允许用户访问W25Q64中存放的权限数据,并点亮与权限相对应的LED小灯显示权限等级。

3.2 RBAC权限模型

本文根据RBAC的模型,构建出图6图7所示的存储框架,通过访问W25Q64不同内部存储地址从而读取具有不同权限的信息。并且可以根据每个权限下用户数量的不同分配合理的存储空间。存储芯片的第一个区间放置每个权限区间所占空间以及起始基地址。同时可以快速加入或者删除具有权限的用户,有利于管理的高效化。

图6 主机RBAC结构示意

图7 从机RBAC结构示意

3.3 动态密码子程序

本系统采用事件同步的密码认证方式,主机通过用户输入工号和随机数字触发事件并通过随机数字的数值读取预先存储到W25Q64扇区中的相关数据,并与基础密码相结合生成登录密码,并由蓝牙向从机发送本次登录密码。通过指纹和密码的双重认证以达到“静态+动态”的认证方式。

4 结束语

该方案通过将动态密码和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.

猜你喜欢

指纹识别蓝牙密码
蓝牙音箱的直线之美
密码里的爱
密码抗倭立奇功
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
基于单片机指纹识别电子寄存柜设计
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出
指纹识别技术综述
密码藏在何处
基于大容量指纹识别的实时身份认证系统