基于USB接口和智能卡的PKI 客户端设计
b.KEY文件及其文件中的密钥
每个DF或MF下有且只有一个KEY文件,在任何情况下密钥均无法读出。在KEY文件中可存放多个密钥,每个密钥为一条定长记录。记录中规定了其标识、版本、算法、属性及密钥本身等相关内容。
在满足KEY文件的增加权限时,可用Write KEY命令增加一条记录。只有在满足某个密钥的使用权限时才可以使用该密钥,在满足某个密钥的修改权限时才可以修改该密钥。
每种密钥具有其独立性,用于一种特定功能的密钥不可作为它用。本设计支持以下几种密钥:个人密码(PIN)、外部认证密钥、内部认证密钥、(Crypt密钥、PIN解锁密钥、PIN重装密钥、应用维护密钥等。
③ 安全体系。主要是对所传送的信息进行安全性的检查和处理,防止非法的窃听或侵入。安全体系包括3部分:安全状态、安全属性和安全机制。安全状态是指当前智能卡所处的一种系统状态,这种安全状态是在智能卡完成复位应答或完成某个命令后得到的;安全属性是智能卡执行特定的命令所需要的安全条件,只有满足了这个安全条件,命令才能执行;安全机制是指安全状态实现转移所采取的方法和手段,它是与安全状态和安全属性相联系的。
④ 命令解释。根据接收到的命令检查各项参数是否正确,执行相应的操作。
IC卡通过USB接口与终端之间使用命令与应答的通信机制,即终端,把命令送到1C卡,IC卡接收并处理后发送响应给终端。这种机制包括两种应用协议数据单元(APDU)——命令应用数据单元与响应应用数据单元。CLA字节代表命令的类型。
INS字节表示命令编码,P1和P2为具体命令参数。Lc字节表示数据的长度,只有一个字节表示,取值范围为1~115。如果Lc为0,表示没有数据域。
Le表示期望卡返回的数据长度,由单字节表示,取值范围为1~115。
响应应用数据单元也包括两部分:可能存在的响应数据体(应答体)和两个状态字节(应答尾部),其内容为
基于保密的原因,具体的命令代码和状态字节(SWl、SW2)的编码略。
(2)算法库的实现
算法库是一个根据不同需要可扩展的函数库。目前,算法库里有:
◆对称加密算法——DES算法、3DES算法、RC2、RC4算法;
◆摘要(散列值)算法——SHA一1算法、MD5算法;
◆非对称加密算法——RSA算法、DSA算法、ECC算法。
以上算法全部在设备内实现。
2.2.2 USB接口层的软件设计
USB接口层软件主要完成计算机主机和客户端设备之间的数据传输,完成主机与IC卡之间交互的命令及响应。一方面将主机来的USB信息包转换成符合IS07816--4标准的智能卡可识别的命令,另一方面,根据IS07816--4标准,将智能卡的响应数据转化成USB数据包,上传给主机。
在USB的初始化中,完成终端设备USB的自举过程。考虑到设备与计算机之间的数据交换具有数量少、传输速度不要求很高的特点,因而将其配置为HID类设备,实现在WIN2000、Win Me等环境下免安装驱动程序的特点。本设备使用了3个端点:端点0用于控制信息的传输,端点1用于接收主机发来的数据,端点3用于向主机发送数据。
USB的消息处理过程是:USB发出中断请求,单片机响应中断,首先查看各中断寄存器,找出产生中断的事件,然后处理。程序的设计主要集中在中断处理服务程序上。
上述2.2.1节和2.2.2节软件设计为PKI终端设备内软件设计,整个软件采用了Keil C51语言编写。与汇编相比,C语言在功能、结构、可读性、可维护性上有明显的优势。Keil C51提供了丰富的库函数和功能强大的集成开发调试工具,全Windows界面。最后生成标准的HEX文件,以直接写入程序存储器,如Flash中。
2.2.3应用层软件设计
应用层(计算机主机)软件开发主要是提供底层API库函数,在此基础上实现CSP[4](Cryptographic Service Provider,加密服务提供者)软件设计,为用户提供符合微软加密服务要求的中间件。
应用程序不能直接与CSP进行通信。取而代之,应用程序通过调用由Advapi32.d11和Crypt32.dll模块所提供的一些CryptoAPI接口函数来与CSP进行通信,从而完成相应的功能。操作系统过滤这些函数调用,并把它们通过C2ryptoSPI(系统编程接口)传递给相应的CSP函数。
整个软件的实现过程为:首先,根据智能卡COS命令,完成底层API库函数CLlB。通过对库函数进行封装生成PKIKEY类,即PKIKEY.CPP,PKIKEY.H,进而生成CSP所需的DLL文件,最后通过向微软申请认证,通过后微软将进行签名。
本设计中,可以向客户提供底层API函数和CSP两种中间件接口,以支持客户的二次开发。
在应用软件方面,我们设计了客户端管理工具软件和管理端管理工具软件。
客端管理工具实现的功能:证书的自动注册注销,修改用户密码等功能。
管理端管理工具实现的功能:除具有客户端管理工具的功能外,还提供了格式化设备、清空设备、解锁用户密码、修改管理员密码等功能。
2.3 主要技术指标
操作系统:Windows 98/Me/2000/XP,Mac OS 8/9,Linux.
证书及标准:PKCS#1l,MS CAPI,PC/SC,X.509 v3证书存储。
加密算法:MD5,SHA - l,DES/3DES,RC2,RC4,RSA,DSA,ECC等。
接口类型:USB V1.1 A型。
功耗:250 mW。
3 总 结
本文提出的PKI客户端设备已经小批量生产。它是整个PKI体系的重要组成部分,可以实现密钥安全保管、证书管理、签名、验证签名、加/解密和身份认证等功能,具有高稳定性、高安全性、高可靠性、安装和携带方便、操作简便、运算速度快等特点;可广泛应用于要求个人身份认证、识别、数据加密、安全存储等领域,如电子商务、电子政务等,所提供的底层库函数和CSP软件以中间件方式极大地方便了客户的二次开发。总之,本设计思想先进,代表了当前该领域的发展方向,应用前景广泛。
参考文献:
[1].CSPdatasheethttp://www.dzsc.com/datasheet/CSP_2363263.html.
[2].RC2datasheethttp://www.dzsc.com/datasheet/RC2_1191068.html.
[3].SHAdatasheethttp://www.dzsc.com/datasheet/SHA_2043215.html.
评论