用户掌握开机密码才可开启PC机及进入用户工作页面,并可以自己通过该密码编辑软件修改密码,用数字键代表的字符串来取代固定的数字。可以将原来的简单数字密码,变为比较复杂的由大写字符、小写字符、数字、下划线等字符组成的密码,从而使密码的破解更为困难,这样可以一举两得。
本设计的密码输入器在设计时还特别添加了保护措施,单片机上的程序是加密而不可读的,存储模块内存储的密码是经过加密处理的,不是原始密码,本密码输入器设有开机密码,只有输入正确的开机密码才能进行密码操作,而开机密码可以设定输入次数,一旦错误开机密码次数达到某一规定数值,密码输入器将自锁。
1 系统功能实现原理
图1所示为密码输入装置的原理框图。
图1 密码输入装置原理框图
单片机通过USB接口与PC机相接,单片机上安装有应用软件,PC机上有密码编辑软件。PC机开机时要求输入开机密码,只有当开机密码输入正确时,才能开启PC机进入系统。当单片机与PC机连接后,PC机显示屏上出现页面:要求在密码输入装置中输入开机密码。若开机密码不正确,程序将提示继续输入开机密码,当开机密码达到限定的输入次数时,程序自锁。
若开机密码正确,则打开用户工作页面。这时,用户可以通过该密码编辑软件修改密码,自己编辑用数字键代表的字符串来取代固定的数字。该密码输入装置与常规键盘的本质区别在于:常规键盘的按键对应于唯一的固定键码,而该输入装置的按键所对应的是该装置中存储器的一个固定地址。而这一按键的映射地址中存储的数据是该按键所关联的作为密码的字符串。这个字符串由键码组成,因而当一个按键按下等同于连续按下多个按键,因而能用一个按键实现一串密码的输入。该装置按键与密码关联的实质是在存储器中按键对应的地址写入密码数据。该装置输入密码过程的实质是从存储器中按键对应地址读取密码数据,然后通过提供的接口将密码发送至需要密码输入的设备。
密码编辑保存后就可以直接存入系统。系统可以对该密码保留记忆,下次使用该系统时就可以直接按某一个或两个键来输入一串密码。
本设计的密码输入器在设计时还特别添加了保护措施,中央处理器上的程序是加密而不可读的,存储模块内存储的密码是经过加密处理的,不是原始密码,这就保证了密码的安全性,因此在现场输入的并非真正的密码,所以即便在有很多人围观的情况下也无法获取用户的真正密码,真正的实现了密码的安全保护作用。而且系统的本身也提供了一个开机密码,只有正确输入开机密码后才能进入系统,因此即使不小心丢失该产品,他人也无法轻易使用。
选用的开发板符合USB协议可以直接与PC机相连,在PC机上对单片机进行编程,设计可以在PC机上安装应用的密码编辑软件。数字键盘按键和确认按键可利用PC机的键盘输入,显示装置即为PC机的屏幕。只需要用单片机编程出相应的安装应用软件,即可达到预期目标。
此处以EEPROM作为存储器、USB接口作为通信的媒介的密码输入装置为例。当该密码输入装置插入需要密码输入的设备(此处以普通PC为例)时,该装置表现为一个标准HID键盘。该密码输入装置完全可以像普通键盘一样直接向PC发送键码数据,同时也可以使用与之配套的PC软件,通过USB接口向该装置发送新的密码数据并命令其修改EEPROM中按键对应地址的数据。
该密码输入装置所需要的两个主要步骤的详细说明如下:
1). 按键与密码的关联
PC软件先通过图形界面从用户处获悉该用户希望某个按键对应的密码,之后软件会将其转换成HID协议中键盘的字符编码,然后通过USB接口将编码后的密码以及该密码在EEPROM中的存储位置一同发送给密码输入装置,并通知其修改EEPROM的数据。该密码输入装置得到修改的命令以及相关数据后,就会在EEPROM的指定位置储存该密码,完成按键与密码的关联。
例如,用户希望为按键“2”设置密码“123456”。“123456”对应的键盘编码是“1d 1e 1f 20 21 22”,按键“2” 的存储地址被设置为“06”。PC软件会将这些数据以及写EEPROM的命令通过USB接口发送给该密码输入装置。该装置接收到数据后就立即会将“1d 1e 1f 20 21 22”写入EEPROM的地址“06”中,完成按键“2”与密码“123456”的关联。
2). 使用关联密码的按键输入过程
当用户通过按键输入密码时,密码输入装置会从EEPROM存储器中该按键对应地址读取与之关联的密码数据串,然后通过USB接口将该串数据逐次发送给PC。此时密码输入装置对PC表现为标准HID设备(即可看成是一个标准键盘),从USB接口发送来的密码会被系统自动填充至需要输入密码的位置,从而完成密码的输入。
本发明提供的密码输入器上的一个按键或两个键的组合表示一串密码,按下不同的按键或组合键,即可输出不同的密码,最后将密码通过输出接口传给密码接收方。比如通过USB口传给PC机、或带有USB口的自动存取款机、或带有USB口的超市收款机以及带有USB口的任何需要密码的系统。密码的编辑可通过密码编辑系统,在PC机上任意编辑自己所需要的密码(密码可以由大写字符、小写字符、数字和下划线等组成),然后通过USB口将编辑好的密码存储到密码输入器上,也可在密码输入器上编辑简单的数字密码。
2 硬件平台选用及资源配置
硬件选用EVK1100,EVK1100是一个基于AVR32 AT32UC3A单片机控制器的评估套件和开发系统。它配备一系列丰富的外设、内存。图2所示为开发板与PC机连接的示意图。
--支持AT32UC3A
--JTAG连接器、Nexus、USART、USB2.0接口、TWI接口、SPI
图2 应用时连接方式及作用
3 系统软件架构
图3为进行密码编辑的流程框图。图4为进行密码编辑时的用户工作界面的设想图。
图3 密码编辑流程框图
图4 用户工作界面设想图
PC机开机时要求输入开机密码,只有当开机密码正确时,才可以打开PC机。PC机开机后,单片机与PC机相接时也需要输入开机密码才能在PC机上安装设计的应用软件。若开机密码不正确,程序将提示继续输入开机密码,当开机密码达到限定的输入次数时,程序自锁。当开机密码全部输入正确时,PC机上出现使用界面,用户可以通过该应用程序修改密码,自己编辑用数字键代表的字符串来取代固定的数字。密码编辑保存后就可以直接存入系统。系统可以对该密码保留记忆,下次使用该系统时就可以直接按某一个或两个键来输入一串密码。
本设计的密码输入器在设计时还特别添加了保护措施,中央处理器上的程序是加密而不可读的,存储模块内存储的密码是经过加密处理的,不是原始密码,这就保证了密码的安全性。
密码编辑软件即为设计中的应用软件,使其能在PC机上运行。选用的开发板符合USB协议,可以直接与PC机相连,在PC机上进行对单片机进行编程,达到设计软件的目的。数字键盘按键和确认按键可利用PC机的键盘输入,显示装置即为PC机的屏幕。只需要用单片机编程出应用软件,即可达到预期目标。
4 系统软件流程
图5 程序运行流程图
5 系统预计实现结果
设计一个通过USB口传给PC机、或带有USB口的自动存取款机、或带有USB口的超市收款机以及带有USB口的任何需要密码的系统。密码的编辑可通过密码编辑系统,在PC机上任意编辑自己所需要的密码(密码可以由大写字符、小写字符、数字和下划线等组成),然后通过USB口将编辑好的密码存储到密码输入器上,也可在密码输入器上编辑简单的数字密码。
1、从根本上解决传统密码输入所存在的安全隐患问题,保护密码,避免因为密码被盗而带来的巨大经济损失。
2、采用USB接口,与其他设备的连接很简单,可以很方便的进行扩展,可以自动扩展自ATM机,超市收款机,银行柜台等。
3、将原来的简单数字密码变为由大小写字符,下划线,数字等组成的密码,从而使密码的破解更为困难。
4、密码输入方式新颖,实现难度不大可以运用于任何带USB接口同时又需要密码输入的装置,具有很好的实用价值