USBKey身份认证系统的设计与实现

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

U SB Key 身份认证系统的设计与实现

汪国安1,杨立身2

(1.河南大学网络中心,河南开封 475001; 2.河南理工大学网络中心,河南焦作 454000)Ξ

摘要:系统地介绍了在研制开发利用计算机的标准USB 接口及实现一种低成本、高可靠、简便易用、基于硬件(USB K ey )的身份认证系统的过程中所攻克的关键技术及实现方法,包括用于实现实时监测用户是否在线的心跳机制、USB K ey ID 的惟一性方案、加密方案、用户的公钥、用户的私钥以及扰码的加密算法及记录方法、读码、写码、通信时的安全机制等.

关 键 词:互连网;身份认证;数字签名

中图分类号:TP 309 文献标识码:A 文章编号:1007Ο7332(2005)03Ο0311Ο03

0 引 言

随着互联网的快速发展,各种新的网络应用层出不穷,如电子商务、远程教育、网上购物、信息点播等,互联网已经由原来简单地提供公共信息服务转向全方位个性化服务.伴随着这些服务的出现,一个首先必须解决的问题就是:如何能够快速、准确、方便、可靠地识别用户的身份,并且尽可能地降低认证整体的成本.这是目前信息技术领域研究的一个热门课题.

目前在实际应用中,有3种常见的认证用户身份方法:用户账号+口令密码;银行卡或智能卡(IC 卡);虹膜或指纹.虽然这些方法都可以提供认证服务,但每种方法都有自己的局限性.第1种方法使用起来简单、方便,但可靠性最差,一旦盗用者通过某种方式获得了他人的账号、密码,则该用户的切身利益将无法得到保障;后2种方法可靠性较高,但需要配备专用设备,体系结构复杂,价格过于昂贵,影响推广使用.

针对上述问题,我们利用计算机的标准接口

—USB 接口,开发设计出了一种基于USB K ey

用户的身份认证系统(图1),它具有简便易用、

可靠性高、成本低廉等特点,易于推广应用.

1 系统结构

USB K ey 通过USB 接口与计算机相连,用

户的个人信息存放在存储芯片中,可由系统进行

读写.当需要对用户进行身份认证时,系统提请

用户插入USB K ey 并读取上面记录的信息,信息经加密处理送往认证服务器,在服务器端完成解密和认证工作,结果返回给用户所请求的应用服务.

2 关键技术

为确保身份认证系统可靠运行,需要重点解决一些关键性的技术问题.

第24卷第4期2005年8月 河南理工大学学报JOURNAL OF HENAN POL YTECHN IC UN IV ERSIT Y Vol.24 No.4Aug.2005

Ξ收稿日期:2005Ο07Ο11

基金项目:河南省教育厅自然科学基金资助项目(2003520257)

作者简介:汪国安(1957Ο

),男,河南新蔡人,副教授,主要从事计算机网络及应用方面的研究.

心跳机制:用于实时监测用户是否在线,一旦失去心跳连接,立即中断服务.它包括两种类型,一是认证服务器与计算机之间的连接,二是计算机与USB K ey 之间的连接.为保证监测结果的可靠性,需采用多种心跳监测机制.

惟一性:每个USB K ey 都具有一个惟一的ID 号,该号码存在于USB K ey 芯片中,不可更改,以防止不法者假冒.

用户信息:由用户的个人编码、用户的公钥、用户的私钥以及扰码按照一定的加密方式生成、记录在存储芯片中.除了用于表明用户的身份,还可以用于安全通信、数字签名等.

读码:对USB K ey 内用户信息的读取需要获得授权,无授权者不能读取信息.

写码:对USB K ey 内用户信息的改写需要获得授权,无授权者不能改写信息.

安全通信:认证服务器与计算机之间采用安全的通信机制,防止认证信息被黑客监听.

认证:用户信息被完整地发送到服务器端,由服务器端软件负责解密并对用户身份进行认证,确保认证结果安全、可信.

3 加密方案

即使有了USB K ey ,但如果没有对加密方案进行良好的设计,在解密高手面前它还是不堪一击的.所以,设计加密方案的时候,要充分考虑到可能出现的各种问题.此外,加密方案还应当满足灵活的配置要求.

USB K ey 的基本操作:所有的软件加密原理都是生成一些信息,然后设法使这些信息不被别人复制.USB K ey 信息包括内部存储器信息及算法信息.读写这些信息的操作,可抽象归纳为以下3个基本操作.

Ⅰ X =QU ER Y (Y ),以Y 为因子返回算法计算结果X

Ⅱ X =READ (Y ),读存储器Y 地址的数值

Ⅲ WRITE (X ,Y ),将X 保存在存储器Y 地址

限制软件运行:限制软件运行的含义是同一时刻只允许一个软件运行.设计这种加密方案的关键是在软件的全部运行周期不断地要去验证加密硬件的存在,而不是仅仅在软件启动时才去验证一次.可以使用QU ER Y 和READ 基本操作来达到这种验证.

黑客常用的解除软件运行限制的手法有两种:一是修改可执行文件的映象文件,二是通过软件对硬件进行仿真.修改可执行文件的映象文件的依据是反汇编文件,由于访问加密硬件子程序的痕迹是很明显的,所以能通过逆推法找到软件判断验证的决策点,通过修改决策点的汇编指令达到解密的目的.防范这种行为的加密方案要注意:要设置很多决策点,不能把决策点放在某个单独的子程序里;把基本操作和验证编程设计成时间和空间相隔很远的不同事件;用QU ER Y 或READ 的数据去初始化软件的重要变量.

对硬件进行仿真的依据是对软件和加密硬件数据往来接口的数据流的观察结果.防范这种行为的加密方案要注意:选择动态和随机数据作为QU ER Y 因子;使用大尺寸的加密数据包,如64bits 以上;使用输入输出关系非常不明显的变换算法.

USB K ey 运行许可:USB K ey 需要经管理部门发放许可之后才能投入使用.第1步,在管理部门,使用工具软件将模块许可信息用基本操作写到加密硬件里,与此同时,该信息被记录到认证服务器的数据库中;第2步,用户运行认证服务程序,相应模块读出数据,判断自己是否得到许可.

防止未经授权修改加密锁数据:假设有人知道基本操作的接口,就有可能手动修改加密硬件中存储的数据.所以,将要保存的数据做一个校验和(CRC ),再加密后保存.加密的效果使得原始数据即使改动1bit ,输出数据也会有很大的变化,很难看得出规律.解密后的数据如果检验CRC 不匹配,则认为加密硬件保存的数据经非法改动过,是无效数据.

4 结 论

身份认证是目前信息技术领域研究的一个热门问题,这个问题解决的成功与否,直接关系到各种

2

13 河南理工大学学报(自然科学版) 2005年第24卷

相关文档
最新文档