一种基于对称密码的USB认证器设计与应用
2015-08-07刘军霞王晓燕杨先文
刘军霞,王晓燕,杨先文
(1.河南省军区自动化站,郑州450003;2.河南中医学院,郑州450008;3.信息工程大学,郑州450000)
一种基于对称密码的USB认证器设计与应用
刘军霞1,王晓燕2,杨先文3
(1.河南省军区自动化站,郑州450003;2.河南中医学院,郑州450008;3.信息工程大学,郑州450000)
为了提高网络身份认证的安全性,基于一款典型的USB原型设备,设计了一种USB认证器原型系统。基于对称密码秘密共享密钥的原理,设计了一种安全应用协议。以FPGA器件为核心,给出了一种USB认证器的PCB实现方案。结合B/S应用架构,给出了一种应用协议的软件实现方案。实际应用表明该设计性能稳定,具有推广前景。
对称密码;通用串行总线;协议;原型系统;现场可编程门阵列
1 引 言
随着网络应用的日趋普及,用户身份认证的安全问题越来越重要[1]。传统的口令登录模式相对静止,口令字等信息易遭敌手截获,从而威胁到用户利益。基于对称密码[2]秘密共享密钥的原理,通过在服务器端和客户端之间预设对称密钥,设计了一种USB认证器原型系统及应用协议。软硬件实现和验证表明,基于USB认证器的登录模式过程严谨,是一种动态认证模式,对应用系统的开发具有参考价值。
2 USB认证器设计
2.1 硬件设计
文献[3]基于FreeARM7开源IP核,对USB设备控制器、单/双端口RAM、ROM、代码下载控制逻辑等模块进行了扩展,实现了一款典型的USB原型设备。通过嵌入式代码、主机驱动和通信软件的开发,形成了完整的功能验证回路,并以DES算法为原理实例,完成了USB通信功能和微处理器运行功能的验证工作。基于文献[3]的硬件实现,将其改进为一种USB认证器结构,如图1所示。其中,USB设备控制器、单/双端口RAM模块、代码下载控制逻辑的设计同文献[3],为了实现掉电存储固件程序,以及设备ID、用户口令、主密钥等关键数据,以E2PROM作为固件程序和关键数据存储器。
为了降低设计复杂度和提高硬件性能,选用AT28C256作为E2PROM存储器原型,它是一款由Atmel推出的32KB并行E2PROM存储器,具备与SRAM一样简洁高效的读写时序[4]。结合USB认证器应用特点,将AT28C256存储空间划分为4个存储区,分别为代码区、设备ID区、用户口令区和主密钥区,如图2所示。其中,代码区大小为16KB,用来存储USB认证器固件代码;设备ID区大小为32B,用来存储USB认证器唯一标识符[5];用户口令区为32B,用来存储USB认证器用户需提供的口令值;主密钥区为8B,用来存储64比特DES密码算法的密钥。
图1 USB认证器硬件结构
图2 AT28C256存储区划分
2.2 固件设计
USB认证器的固件主程序采用while无限循环设计,主要负责获取主机命令双字节,并对命令进行解析,然后调用软件模块实现相应功能,最后返回命令执行状态或结果。固件命令双字节定义如表1所示,当命令双字节位0~位3为0001时,表示用户输入口令登录USB认证器,其口令字节长度由位8~位15指示,口令字节从命令双字节后下一字节开始,口令比对成功后向主机返回OK;当命令双字节位0~位3为0010时,表示用户修改USB认证器登录口令,其口令字节长度由位8~位15指示,口令字节从命令双字节后下一字节开始,口令存储成功后向主机返回OK;当命令双字节位0~位3为0101时,表示主机需要USB认证器对某明文数据进行DES加密,其加密密钥类型由位4~位7指示,明文字节长度由位8~位15指示,明文字节从命令双字节后下一字节开始,加密完成后向主机返回密文值;当命令双字节位0~位3为0110时,表示主机需要USB认证器对某密文数据进行DES解密,其解密密钥类型由位4~位7指示,密文字节长度由位8~位15指示,密文字节从命令双字节后下一字节开始,解密完成后向主机返回明文值;当命令双字节位0~位3为1001时,表示用户更新主密钥(新的主密钥使用旧的主密钥进行加密),密态主密钥字节长度固定为8位,密态主密钥字节从命令双字节后下一字节开始,设备接收完密态主密钥后对其进行解密(使用旧的主密钥),然后将解密结果存入主密钥区,操作完成后向主机返回OK。
表1 固件命令双字节定义
2.3 应用接口设计
根据USB认证器固件程序功能,在应用端设计了如下调用接口。若函数执行正确,则返回成功码OK,否则返回对应的错误码。
其中,Login()、ChgPwd()、UpdateMKey()分别对应固件程序的口令登录、口令修改、主密钥更新操作;当edflag=true时,DESalgo()对应固件程序的DES加密操作,否则对应DES解密操作;当key=NULL时,对应使用初始密钥或主密钥进行DES加解密操作,否则对应使用临时密钥key进行DES加解密操作。
3 应用协议设计
USB认证器应用主要包括注册协议和认证协议两部分。注册协议负责新USB认证器的主密钥写入和向管理系统登记,认证协议负责登录系统时对USB认证器的合法性进行动态验证,只有合法注册过的USB认证器才能通过注册协议,进而达到对持有认证器的用户身份进行确认的目的。注册协议和认证协议的执行主体主要包括:USB认证器(U)、客户端(C)和服务器(S)。()表示以k为密钥的DES加密算法()表示对应解密算法,其中k为初始密钥I,或主密钥K,或临时密钥R。
1)注册协议
步骤1:C向U询问设备ID,U向C返回ID;
步骤4:C向S发送成功标识OK,S数据库记录(ID,K)。
2)认证协议
步骤1:通过C输入U的口令pwd;
步骤2:U判断pwd是否正确,是则向C返回ID,继续步骤3;否则认证失败,协议终止;
步骤3:C向S发送ID,S生成随机数R,根据ID查数据库得到对应K,计算T=(R),向C返回T;
4 软硬件实现与验证
4.1 USB认证器PCB实现
原型验证是验证硬件设计功能性的主要手段,也是物理验证的重要环节。为了便于USB认证器的软硬件集成验证,以FPGA器件为核心,以USB接口为通信接口,设计了一个USB认证器原型系统。原型系统的PCB原理如图3(上)所示,关键器件包括:FPGA芯片、USB收发器芯片、复位芯片、电压转换芯片、晶振芯片、存储芯片、配置芯片等。依据上述原理,采用Altium Designer Winter 09[6]完成了原型系统的PCB版图实现,在图3(下)所示实物中,FPGA器件可容纳81,264个逻辑单元的目标设计,且具有2,745Kbit存储器资源;E2PROM芯片容量为32KB。
图3 USB认证器PCB原理与实现
4.2 应用协议软件实现
应用协议的实现包括客户端和服务器端两部分,其框架如图4所示。
图4 应用协议软件实现框架
客户端软件主要负责服务器和USB认证器的信息交换,当接收到服务器传来的数据时,调用应用接口传给USB认证器进行处理;当接收到USB认证器传来的数据时,通过网络技术(如AJAX)传给服务器进行处理。为了支持B/S架构下应用集成开发,客户端软件主体采用ActiveX控件模式开发[7]。控件安装成功后,在浏览器HTML中通过<object>标签指定classid="clsid:xx…x"访问。为了完成ActiveX控件与服务器响应程序之间交互,以Javascript程序为中间件,采用AJAX技术实现客户端与服务器端交互。
服务器端软件主要负责协议的数据操作部分,根据客户端传来的参数,执行相应的协议操作,主要包括随机数生成、DES加解密、数据库读写。为了方便客户端程序的访问,服务器端软件采用动态网页模式开发,类似于USB认证器固件程序结构,动态网页程序主要负责获取客户端命令及数据参数,并对命令进行解析,然后调用软件模块实现相应的功能,最后返回命令执行状态或结果。
4.3 软硬件集成验证
基于上述实现,在某单位办公网文档流转管控系统中,采用了传统口令登录和USB认证器登录两种用户可选的身份认证模式。其中,在USB认证器模式中,认证器作为用户唯一身份标识的物理载体,克服了传统口令登录模式的安全缺陷,在系统集成验证阶段起到了较好的效果。作为下一步工作,将结合课题组前期研制的一款安全型USB设备IP核[8],设计一种针对USB认证器软硬件的量产方案和工具,以期尽早发挥实际作用和效益。
5 结束语
在网络系统中,动态身份认证是解决用户登录安全性的有效途径。提出的USB认证器设计和应用方案,避免了用户登录时在网络上传输敏感信息,是一种理论可靠和现实可行的解决方案,对其他类似系统的开发具有借鉴意义。
[1] 郑强,高能,张令臣.基于SM3算法的动态口令卡的设计与实现[J].计算机应用与软件,2013,30(2):14-17.
[2] Menezes A J,Oorschot PC,Vanstone SA.应用密码学手册[M].胡磊,王鹏,等译.北京:电子工业出版社,2005.
[3] 李峥,杨先文.FreeARM7 IP核的微处理器逻辑扩展与验证[J].单片机与嵌入式系统应用,2011(2):18-21.
[4] Atmel.AT28C256 datasheet[EB/OL].(2009-12)[2014-7-23].http://www.atmel.com/zh/cn/devices/AT28C 256.aspx.
[5] 廖洪其,凌捷,郝彦军,等.USB移动存储设备的惟一性识别方法研究[J].计算机工程与设计,2010,31(12):2778-2780,2784.
[6] 韩国栋,赵月飞,娄建安,等.Altium Designer Winter 09电路设计入门与提高[M].北京:化学工业出版社,2010.
[7] 高颖,葛飞,刘宁,等.基于COM技术的虚拟仪表ActiveX控件开发[J].微处理机,2013,34(6):42-45.
[8] 杨先文,李峥,王安,等.密码安全USB设备控制器IP的系统设计[J].华中科技大学学报(自然科学版),2010,38(9):59-62.
Design and Application of A USB Authentication Device Based on Symmetric Cryptography
Liu Junxia1,Wang Xiaoyan2,Yang Xianwen3
(1.Automatic Command Station,Henan Provincial Military Command,Zhengzhou 450003,China;2.Henan University of Traditional Chinese Medicine,Zhengzhou 450008,China;3.Information Engineering University,Zhengzhou 450000,China)
To improve the security of online identity authentication,based on a typical USB prototype device,a USB authentication device is designed.Based on the principle of secret sharing key in symmetric cryptography,a security protocol is proposed.By using many chips such as FPGA,a PCB implementation of USB authentication device is given.Combining with the B/S architecture,a software implementation of security protocol is presented.The practices show that the design has a stable performance and is good for application.
Symmetric cryptography;USB;Protocol;Prototype system;FPGA
10.3969/j.issn.1002-2279.2015.01.019
TP918
A
1002-2279(2015)01-0068-04
刘军霞(1973-),女,河南滑县人,高级工程师,主研方向:计算机网络与信息安全。
2014-07-07