在线客服
演示
后台演示
开发说明
我们专门研究网站加密狗(锁)、网络加密狗(锁)及其相关系统开发。
适用性
适合于所有网站,包括php,asp,.net,jsp等各种类型的网站用于硬件加密认证。
①会员、VIP登陆
②后台管理员登陆
③企业OA系统登陆
④各类缴费系统
⑤Shopex,Ecshop,CS-Cart,WordPress等各种建站系统
⑥贵金属交易平台
⑦代理商数据权限控制
⑧......
等等各种相关运用。
首页 系统介绍 技术优势 成功案例 下载 帮助 价格 付款方式 联系我们
 
达网U盾 网站安全 >

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

高科技在给人们的工作和生活带来方便、舒适的同时,也给人们增添了许多困扰。安全问题首当其冲。PKI(PublicKeyInfrastructure,公钥基础设施)被誉为现代信息社会安全的基石,也是电子商务与电子政务的关键技术。它能够为所有网络应用透明地提供加密和数字签名等密码服务所必需的密钥和证书管理功能,能够提供认证、访问控制、数据完整性、机密性和不可否认性等核心安全服务。通常
PKI系统主要由认证机构、证书库、密钥备份及恢复系统、证书作废处理系统、 PKI应用接口系统等部分组成。

PKI的基础是基于非对称加密算法的,每个用户需要有一个能够确保其安全的场所,用以存放一些个人密钥 (PrivateKey)、被其直接信任的
CA(rootCA)名字和证书,以及其他一些重要数据。智能卡(SmartCard)具有安全性高、保密性好的特点,为密钥的存储管理提供了良好的介质。智能卡具有嵌入卡片内部的
CPU和存储器,同时还有一系列的安全机制来保证内部数据的安全。利用智能卡卡上CPU的计算能力,可以在卡上进行密钥对的生成和进行卡上的签名和验证运算;同时,利用智能卡出色的安全机制,能够对存储在其中的数据提供强有力的安全保证,这样在用户私钥的整个生命周期内,都处在智能卡的保护之下。另外,为了提高设备使用的灵活性和方便性,采用了USB接口技术,充分发挥了 USB接口的即插即用、总线供电等优点,使开发的设备具有可携带性、灵活性和方便性,可以在各种场合中进行签名和验证。

2PKl客户端设备的研制
PKI客户端设备是一个全功能、可操作 PKI系统的必要组成部分。主要提供以下一些功能[1.2]:
①密钥的产生、更新和保护;
②进行加解密或数字签名操作;
③证书管理,包括证书的申请、安装、存储及验证等;
④与主机、外围设备和系统软件有良好接口,方便用户开发相应的高层软件。

2.1客户端设备的硬件实现
要实现本客户端设备,在硬件上必须具有智能卡芯片和 USB芯片。作为智能卡芯片必须具备至少 32KB用户数据区 (EEPROM)和32KB程序存储区及1KB的 RAM;另外必须具备协处理器,能够进行至少 1024位模幂运算,此外必须具备良好的物理安全性,以确保除了通过本系统外,没有其他途径可以获取智能卡中RAM、EE-PROM、ROM、寄存器的数据。而作为 USB芯片,只需具备 4个端口和满足 USB协议1.1即可。当然,如果能够把这两种芯片的功能集成在一起成一颗芯片,会进一步提高安全性和进一步降低设备的尺寸。经过反复比较筛选,我们选用了Atmel公司的同时具备 IC卡和 USB接口功能的单一芯片 AT90S6464C—USB。本芯片还具备硬件随机数发生器、硬件实现 DES和3DES算法、内置
RSA、ECC算法等。
其硬件实现只需要加一个振荡电路即可。另外,为了指示 USB的读写操作,加了一个指示灯。在读写操作时指示灯亮。

2.2客户端设备的软件设计
PKI客户端系统的软件设计包括计算机主机的软件设计和硬件设备中的软件设计,具体的层次结构如图 1所示。

智能卡层的软件设计,主要完成COS(ChipOperationSystem)软件和加密算法;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.文件的空间结构
每个文件在 EEPROM中的存放格式为COS整个的文件空间划分如下:
◆当建立完 .MF之后, COS自动将整个 EEPROM空间都分配给它。 MF的文件头长度为13字节十文件名长度 (5~16字节 )。
◆每个 DF所占空间 =DF文件头空间 (等同于 MF)+DF下所有的文件空间之和。
◆二进制结构文件的空间 =文件头空间 (13字节 )+EF所申请的空间。
◆定长记录和循环定长记录文件的空间 =文件头空间 (13字节 )+记录数 ×记录长度。
◆变长记录结构文件的空间 =文件头空间 (13字节 )+建立时申请的空间。
◆安全基本文件的空间一文件头空间 (13字节 )+密钥个数 ×(25字节 )。

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

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

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

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

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

IC卡通过 USB接口与终端之间使用命令与应答的通信机制,即终端,把命令送到 1C卡,IC卡接收并处理后发送响应给终端。这种机制包括两种应用协议数据单元 (APDU)——命令应用数据单元与响应应用数据单元。

命令应用数据单元包含两部分:固定的 4字节命令头和长度可变的命令体,其内容为CLA字节代表命令的类型。 INS字节表示命令编码, P1和 P2为具体命令参数。 Lc字节表示数据的长度,只有一个字节表示,取值范围为 1~115。如果 Lc为0,表示没有数据域。 Le表示期望卡返回的数据长度,由单字节表示,取值范围为1~115。响应应用数据单元也包括两部分:可能存在的响应数据体 (应答体 )和两个状态字节 (应答尾部 ),其内容为
 

基于保密的原因,具体的命令代码和状态字节 (SWl、SW2)的编码略。

算法库的实现算法库是一个根据不同需要可扩展的函数库。目前,算法库里有:
◆对称加密算法 ——DES算法、 3DES算法、 RC2、RC4算法;
◆摘要 (散列值 )算法 ——SHA一1算法、 MD5算法;
◆非对称加密算法 ——RSA算法、 DSA算法、 ECC算法。以上算法全部在设备内实现。

2.2.2USB接口层的软件设计
USB接口层软件主要完成计算机主机和客户端设备之间的数据传输,完成主机与 IC卡之间交互的命令及响应。一方面将主机来的 USB信息包转换成符合IS07816--4标准的智能卡可识别的命令,另一方面,根据 IS07816--4标准,将智能卡的响应数据转化成 USB数据包,上传给主机。
在 USB的初始化中,完成终端设备 USB的自举过程。考虑到设备与计算机之间的数据交换具有数量少、传输速度不要求很高的特点,因而将其配置为HID类设备,实现在 WIN2000、WinMe等环境下免安装驱动程序的特点。本设备使用了 3个端点:端点 0用于控制信息的传输,端点1用于接收主机发来的数据,端点 3用于向主机发送数据。

USB的消息处理过程是:
USB发出中断请求,单片机响应中断,首先查看各中断寄存器,找出产生中断的事件,然后处理。程序的设计主要集中在中断处理服务程序上,如图 2所示。


上述 2.2.1节和 2.2.2节软件设计为 PKI终端设备内软件设计,整个软件采用了 KeilC51语言编写。与汇编相比,C语言在功能、结构、可读性、可维护性上有明显的优势。 KeilC51提供了丰富的库函数和功能强大的集成开发调试工具,全 Windows界面。最后生成标准的HEX文件,以直接写入程序存储器,如 Flash中。
2.2.3应用层软件设计
应用层 (计算机主机 )软件开发主要是提供底层 API库函数,在此基础上实现CSP[4](CryptographicServiceProvider,加密服务提供者)软件设计,为用户提供符合微软加密服务要求的中间件。应用层软件结构如图 3所示。

应用程序不能直接与 CSP进行通信。取而代之,应用程序通过调用由 Advapi32.D11和 Crypt32.dll模块所提供的一些CryptoAPI接口函数来与 CSP进行通信,从而完成相应的功能。操作系统过滤这些函数调用,并把它们通过 C2ryptoSPI(系统编程接口 )传递给相应的CSP函数。

整个软件的实现过程为:首先,根据智能卡 COS命令,完成底层 API库函数 CLlB。通过对库函数进行封装生成 PKIKEY类,即PKIKEY.CPP,PKIKEY.H,进而生成 CSP所需的 DLL文件,最后通过向微软申请认证,通过后微软将进行签名。

本设计中,可以向客户提供底层 API函数和 CSP两种中间件接口,以支持客户的二次开发。
在应用软件方面,我们设计了客户端管理工具软件和管理端管理工具软件。
客端管理工具实现的功能:证书的自动注册注销,修改用户密码等功能。
管理端管理工具实现的功能:除具有客户端管理工具的功能外,还提供了格式化设备、清空设备、解锁用户密码、修改管理员密码等功能。

2.3主要技术指标 操作系统: Windows98/Me/2000/XP,MacOS8/9,Linux. 证书及标准:
PKCS#1l,MSCAPI,PC/SC,X.509v3证书存储。
加密算法: MD5,SHA-l,DES/3DES,RC2,RC4,RSA,DSA,ECC等。
接口类型: USBV1.1A型。
功耗: <250mW。

3总结
本文提出的 PKI客户端设备已经小批量生产。它是整个 PKI体系的重要组成部分,可以实现密钥安全保管、证书管理、签名、验证签名、加/解密和身份认证等功能,具有高稳定性、高安全性、高可靠性、安装和携带方便、操作简便、运算速度快等特点;可广泛应用于要求个人身份认证、识别、数据加密、安全存储等领域,如电子商务、电子政务等,所提供的底层库函数和CSP软件以中间件方式极大地方便了客户的二次开发。总之,本设计思想先进,代表了当前该领域的发展方向,应用前景广泛。

浙ICP备10205343号-6   网站加密狗 加密锁 网页加密狗 OA系统加密 网站安全登陆 验证登陆 加密狗 Sitemap - 达网版权所有