一种基于PKI体系的USB Key认证客户端的设计研究

时间:2022-09-20 12:36:23

一种基于PKI体系的USB Key认证客户端的设计研究

摘要:由于互联网所具有的广泛性和开放性,决定了互联网不可避免地存在着信息安全隐,进行身份认证就是必须的安全措施。本论文比较分析了常见的身份认证的方式的优缺点,并在此基础上讨论了USB Key认证方式的原理、特点,以及PKI体系的认证过程,重点上从软件设计和硬件设计两个角度完成了基于PKI体系下的USB Key认证客户端,对于提高身份认证技术的安全性具有一定的借鉴意义。

关键词:身份认证;UEB Key;PKI体系;认证设计

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-930-02

Design Research of Authentication Client Based on USB Key under PKI System

ZHOU Hua-xiang

(Changsha Commerce & Tourism College, Changsha 410004, China)

Abstract: Due to universality and opening of the Internet,there're many hidden troubles of information security in the network, so, identity authentication has becomed the necessary measure to ensure the security. This paper compared and analyzed the relative merits of common classes of identity authentication, and on the basis of analysis, the authentication principle and its characteristics, and the authentication processing were also discussed, and after that, the identifying technology of USB Key with PKI system was designed from software and hardware detaily. All these design work and theory analysis is significative for enhance the security of the identifying authentication.

Key words: Identity authentication; USB Key; PKI System; Technology design

1 引言

当前,随着计算机技术的飞速发展,利用因特网高科技手段进行经济商业犯罪的现象已经屡见不鲜了,因此,如何采用更加安全的数据保护及加密技术,成为当前计算机工作者的研究热点与重点。但是很多身份认证技术由于本身算法的漏洞而不稳定或可靠,使得很多不法之徒有机可乘。因此,发展更加安全的数据加密算法和身份认证技术,是关系到社会经济稳定繁荣发展的关键,如何采用与设计更加安全的身份认证技术,成为当前计算机安全工作的重点。

现今,计算机及网络系统中最常用到的身份认证技术主要有以下几种:1)用户名密码方式认证;2)IC卡认证;3)动态口令认证;4)生物特征认证。

上述几种身份认证方式,或认证方式过于简单,或认证成本过高,或使用方法繁琐,在推广应用上都存在一定的限制因素;USB Key认证技术是一种方便、安全、经济的身份认证技术,它采用软硬件相结合、一次一密的强双因子认证模式,很好地解决了安全性与易用性之间的矛盾。

2 相关原理概述

2.1 PKI体系概述

PKI(Public Key Infrastructure)是一个用公钥密码体制来实现并提供安全服务的具有通用性的安全基础设施,具有可信任的权威认证机构CA,在公钥加密技术基础上实现证书的产生、管理、存档、发放以及证书作废管理等功能,并包括实现这些功能的硬件、软件、人力资源、相关政策和操作规范以及为PKI 体系中的各成员提供全部的安全服务。如实现通信中各实体的身份认证、数据保密性、数字完整性以及不可否认等。PKI必须具有认证机构CA、证书库、密钥备份及恢复系统、证书作废处理系统、PKI 应用接口系统等主要组成部分。

2.2 USB Key认证原理

每个USB Key硬件都具有用户PIN码,以实现双因子认证功能。USB Key内置单向散列算法(MD5) ,预先在USB Key和服务器中存储一个证明用户身份的密钥,当需要在网络上验证用户身份时,先由客户端向服务器发出一个验证请求。服务器接到此请求后生成一个随机数并通过网络传输给客户端,客户端将收到的随机数提供给插在客户端上的USB Key,由USB Key使用该随机数与存储在USB Key中的密钥进行带密钥的单向散列运算(HMACMD5)并得到一个结果作为认证证据传送给服务器,与此同时,服务器使用该随机数与存储在服务器数据库中的该客户密钥进行HMAC- MD5运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户。

3 基于pki体系usb key认证客户端设计

3.1 总体设计

本方案基于USB接口,采用高性能的智能卡进行设计,把智能卡固有的安全性能和USB总线的即插即用、总线供电等优点结合起来,集二者之所长,研制出一种携带方便的PKI客户端设备,集数据加密和数据存储两大功能为一体,在硬件级安全的基础上完成身份认证、密钥管理、证书存储等功能。其系统结构框图如图1所示。

由图1的结构可以发现,本论文研究的客户端硬件模块由智能卡和USB 读卡器组成,采用智能卡芯片作为私钥安全管理的载体,它包括私钥的安全生成、存储和使用。智能卡芯片中含有CPU ,可以通过运算来产生公私密钥对,而且还含有一定的存储空间,可以存储私钥和其它用户资料。USB 读卡器的主要功能是完成智能卡与主机的通信。

由于智能卡的存储空间毕竟有限,对于需要进行密码运算的大文件,无法一次完全导入智能卡设备中,为此,我们将一部分密码运算的功能放在主机端的软件模块,以提高运算速度。

总体的设计思路是私钥的密码运算必须在智能卡中进行,而将一部分有可能对大文件进行的运算放在主机上来完成。这样既保证了私钥的生成、保存的高度安全性,又利用了主机容量大、运算快的优势。

3.2 系统硬件设计

3.2.1 智能卡芯片的设计

智能卡芯片是USB KEY的核心,采用一个高性能的处理器芯片,除了含有一个MCU 外,还集成有专门进行密码算法的协处理器,通过它可以提高密码运算的速度。在软件结构上,我们内置了一个卡内操作系统(COS) 以管理智能卡的所有软硬件资源。COS 分为四个模块:传输层模块、文件管理层模块、安全控制模块和算法库。

从整个安全策略、用户的方便性、产品的创新性等几点出发,客户端的智能卡芯片中需要实现签名、解密、RSA 密钥对的产生、私钥的保存及证书的验证等主要功能。

验证别人的证书,需要通过信任锚来完成。信任锚就是根CA 的公钥。通过它,我们可以验证在一个PKI 系统中所有的证书。由于主机的不安全性,如果将信任锚存储在主机端,很容易被黑客替换成一个假的信任锚,这样用户就无法验证别人证书的真伪。出于这样的考虑,我们将信任锚存储在智能卡中,由于智能卡芯片的硬件特性,驻留在里面的程序具有不可修改性,这样就使数据(私钥) 的保存和使用达到了硬件的安全级别,大大提高了PKI 系统的安全。

3.2.2 USB芯片的设计

由于用户需要通过驻留在主机上的用户程序来使用存储在智能卡中的私钥,为了使用的方便,我们将硬件模块设计成一个目前流行的USB KEY模型,即通过USB 接口来实现主机软件程序与智能卡的通讯。

USB 接口的设计由一个USB 芯片来实现。它主要有两个功能,一是通过USB 协议完成与主机的通信;二是完成与智能卡的通讯。由于智能卡与外界的信息交换遵循ISO781623协议,所以USB 芯片的CPU 必须模拟一个781623 协议来实现两者的通讯。

考虑到用户在使用客户端时的不安全性,如:在用户使用完USB KEY时,可能忘记将它从主机上拔下来,这时如果远程黑客通过驻留主机的木马程序获得了用户的PIN ,就会在用户无察觉的情况下,利用USB KEY来对任意的文件进行任意次的签名,从而对合法用户造成很大损失。为此,我们在USB 芯片上设计了一个按键,每次USB 芯片检测到签名操作的命令,便要求用户手工按键,然后再将命令发送到智能卡里,由智能卡完成签名运算。这样合法用户便可以控制签名次数,将风险降到最低水平。

3.2.3 时间芯片的设计

无论证书还是私钥,都有一定的生存期,过期后必须申请新的证书和私钥。要求PKI 用户以手工操作的方式来定期更新自己的证书是不现实的,用户往往忘记自己证书过期的时间,常在认证失败时才发现问题。为此,我们在USB 芯片上加载了一个时间芯片,用它来识别证书和私钥过期的时间。

3.3 系统软件设计

系统的软件设计采用Client/Server模式,一个标准的服务流程为:客户机提出请求,通过USB接口传输给USB接口控制器,USB接口控制器通过模拟7816协议来和智能卡进行通信,智能卡的片上操作系统COS收到该请求后,进行命令解释,调度相应的功能模块进行处理,然后将运算结果返回给USB接口控制器,最终传递给客户机的应用程序,完成一次服务请求。

软件程序的流程图如图2所示。

4 结束语

USB认证设备体积小巧、功能强大、价格低廉,可提供极高安全等级的认证和加密功能,有力地促进了PKI系统的实施,同时,它也可广泛应用于要求个人身份认证、识别、数据加密、安全存储等领域,应用前景广泛。目前,对于身份认证技术的研究方兴未艾,很多新的认证方式与认证技术正在出现,为人们的数据安全提供更加可靠的安全认证与保护。

展望将来,除了对基于PKI体系的USB Key认证方式继续探讨新的数据加密算法外,其他新的认证模式也正在兴起,如基于生物特征的生物认证技术,以及目前处于研究热潮的基于线上手写签名的身份认证技术,这些都将是安全性极高的认证手段。

参考文献:

[1] 胡道元,闵京华.网络安全[M].北京:清华大学出版社,2004.

[2] 蔡金清,万振凯.统一口令网络认证系统的分析与实现[J].天津:工业大学学报,2004,23(3):74-76.

[3] 关振胜.公钥基础设施PKI与认证机构CA[M].北京:电子工业出版社,2002.

[4] 李斌,吴怡,卢家凰.网格用户身份认证方案的新构想[J].计算机工程与设计,2006,27(10):1789-1792.

[5] 王舜燕,江红.一种基于加密算法分析的PKI身份认证方案[J].鄂州大学学报,2005,12(6):12-15.

上一篇:数据挖掘在电信客户分群中的应用 下一篇:浅谈校园局域网管理技术