基于USB接口和智能卡的PKI 客户端设计
计算机、网络、通信技术的迅猛发展,使人们的生活和生产方式发生了深刻变化。高科技在给人们的工作和生活带来方便、舒适的同时,也给人们增添了许多困扰。安全问题首当其冲。PKI(Public Key Infrastructure,公钥基础设施)被誉为现代信息社会安全的基石,也是电子商务与电子政务的关键技术。它能够为所有网络应用透明地提供加密和数字签名等密码服务所必需的密钥和证书管理功能,能够提供认证、访问控制、数据完整性、机密性和不可否认性等核心安全服务。通常PKI系统主要由认证机构、证书库、密钥备份及恢复系统、证书作废处理系统、PKI应用接口系统等部分组成。
PKI的基础是基于非对称加密算法的,每个用户需要有一个能够确保其安全的场所,用以存放一些个人密钥(Private Key)、被其直接信任的CA(root CA)名字和证书,以及其他一些重要数据。智能卡(Smart Card)具有安全性高、保密性好的特点,为密钥的存储管理提供了良好的介质。智能卡具有嵌入卡片内部的CPU和存储器,同时还有一系列的安全机制来保证内部数据的安全。利用智能卡卡上CPU的计算能力,可以在卡上进行密钥对的生成和进行卡上的签名和验证运算;同时,利用智能卡出色的安全机制,能够对存储在其中的数据提供强有力的安全保证,这样在用户私钥的整个生命周期内,都处在智能卡的保护之下。另外,为了提高设备使用的灵活性和方便性,采用了USB接口技术,充分发挥了USB接口的即插即用、总线供电等优点,使开发的设备具有可携带性、灵活性和方便性,可以在各种场合中进行签名和验证。
2 PKl客户端设备的研制
PKI客户端设备是一个全功能、可操作PKI系统的必要组成部分。主要提供以下一些功能[1.2]:
① 密钥的产生、更新和保护;
② 进行加解密或数字签名操作;
③ 证书管理,包括证书的申请、安装、存储及验证等;
④ 与主机、外围设备和系统软件有良好接口,方便用户开发相应的高层软件。
2.1 客户端设备的硬件实现
要实现本客户端设备,在硬件上必须具有智能卡芯片和USB芯片。作为智能卡芯片必须具备至少32 KB用户数据区(EEPROM)和32 KB程序存储区及1 KB的RAM;另外必须具备协处理器,能够进行至少1024位模幂运算,此外必须具备良好的物理安全性,以确保除了通过本系统外,没有其他途径可以获取智能卡中RAM、EE-PROM、ROM、寄存器的数据。而作为USB芯片,只需具备4个端口和满足USB协议1.1即可。当然,如果能够把这两种芯片的功能集成在一起成一颗芯片,会进一步提高安全性和进一步降低设备的尺寸。经过反复比较筛选,我们选用了Atmel公司的同时具备IC卡和USB接口功能的单一芯片AT90S6464C—USB。本芯片还具备硬件随机数发生器、硬件实现DES和3DES算法、内置RSA、ECC算法等。
其硬件实现只需要加一个振荡电路即可。另外,为了指示USB的读写操作,加了一个指示灯。在读写操作时指示灯亮。
2.2 客户端设备的软件设计
PKI客户端系统的软件设计包括计算机主机的软件设计和硬件设备中的软件设计。
智能卡层的软件设计,主要完成COS(Chip Operation System)软件和加密算法;USB接口层的软件设计,主要完成主机和智能卡之间的信息传递;应用层的软件设计,主要完成底层的API函数和CSP软件,为用户提供开发接口支持。下面详细介绍各部分的设计。
2.2.1 智能卡层软件设计
主要包括两个模块:卡内操作系统COS和算法库。这是实现PKI客户端设备的关键部分。
1)卡内操作系统COS的设计
智能卡内设计了一个小型的操作系统COS. COS的主要功能是:控制智能卡与外界信息进行交换,管理智能卡存储器中的文件系统,并在智能卡内完成各种命令的处理。COS的基本功能必须遵循ISO7816—4标准[3]。
COS系统是由传输管理、文件管理、安全体系、命令解释四个功能模块组成的。
① 传输管理。按ISO7816—3标准,监督卡与终端之间的通信,保证数据正确地传输,防止与终端之间通信数据被非法窃取和篡改。
②文件管理。文件管理模块用来管理智能卡芯片内存储的各种数据,如证书、密钥和其他用户信息等。
智能卡芯片内的文件分为MF、DF和EF三种。MF(主文件)是所有文件的根文件;DF文件是目录文件,根据DF可以区分存在于智能卡上的不同应用;EF是基本文件,用来存储具体的数据和记录,也是COS命令所要操作的具体对象。本设计中,EF分为四种类对象:密钥、证书、认证对象和数据对象。其中认证对象中保存识别用户身份的PIN码。EF的存放分为文件头和文件体两个部分。文件头中包含文件的标识符、访问权限和文件体的指针;而文件体中存放具体数据。
对IC卡的操作,是通过命令的方式实现的。实际上是通过命令对IC卡内文件的操作。增加功能即是增加文件,所以,下面着重就文件系统进行说明。
a.文件的空间结构
COS整个的文件空间划分如下:◆当建立完.MF之后,COS自动将整个EEPROM空间都分配给它。MF的文件头长度为13字节十文件名长度(5~16字节)。
◆每个DF所占空间=DF文件头空间(等同于MF)+DF下所有的文件空间之和。
◆二进制结构文件的空间=文件头空间(13字节)+EF所申请的空间。
◆定长记录和循环定长记录文件的空间=文件头空间(13字节)+记录数×记录长度。
◆变长记录结构文件的空间=文件头空间(13字节)+建立时申请的空间。
◆安全基本文件的空间一文件头空间(13字节)+密钥个数×(25字节)。
评论