新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于USB接口和智能卡的PKI 客户端设计

基于USB接口和智能卡的PKI 客户端设计

作者: 时间:2013-11-08 来源:网络 收藏

b.KEY文件及其文件中的密钥

每个DF或MF下有且只有一个KEY文件,在任何情况下密钥均无法读出。在KEY文件中可存放多个密钥,每个密钥为一条定长记录。记录中规定了其标识、版本、算法、属性及密钥本身等相关内容。

在满足KEY文件的增加权限时,可用Write KEY命令增加一条记录。只有在满足某个密钥的使用权限时才可以使用该密钥,在满足某个密钥的修改权限时才可以修改该密钥。

每种密钥具有其独立性,用于一种特定功能的密钥不可作为它用。本设计支持以下几种密钥:个人密码(PIN)、外部认证密钥、内部认证密钥、(Crypt密钥、PIN解锁密钥、PIN重装密钥、应用维护密钥等。

③ 安全体系。主要是对所传送的信息进行安全性的检查和处理,防止非法的窃听或侵入。安全体系包括3部分:安全状态、安全属性和安全机制。安全状态是指当前所处的一种系统状态,这种安全状态是在完成复位应答或完成某个命令后得到的;安全属性是执行特定的命令所需要的安全条件,只有满足了这个安全条件,命令才能执行;安全机制是指安全状态实现转移所采取的方法和手段,它是与安全状态和安全属性相联系的。

④ 命令解释。根据接收到的命令检查各项参数是否正确,执行相应的操作。

IC卡通过与终端之间使用命令与应答的通信机制,即终端,把命令送到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 层的软件设计

层软件主要完成计算机主机和客户端设备之间的数据传输,完成主机与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体系的重要组成部分,可以实现密钥安全保管、证书管理、签名、验证签名、加/解密和身份认证等功能,具有高稳定性、高安全性、高可靠性、安装和携带方便、操作简便、运算速度快等特点;可广泛应用于要求个人身份认证、识别、数据加密、安全存储等领域,如电子商务、电子政务等,所提供的底层库函数和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.


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭