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

发布者:静默思考最新更新时间:2014-10-23 来源: dzsc关键字:USB接口  智能卡  PKI客户端 手机看文章 扫描二维码
随时随地手机看文章
1 概 述
    计算机、网络、通信技术的迅猛发展,使人们的生活和生产方式发生了深刻变化。高科技在给人们的工作和生活带来方便、舒适的同时,也给人们增添了许多困扰。安全问题首当其冲。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客户端系统的软件设计包括计算机主机的软件设计和硬件设备中的软件设计,具体的层次结构如图1所示。

    智能卡层的软件设计,主要完成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.文件的空间结构
    每个文件在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文件的增加权限时,可用Write KEY命令增加一条记录。只有在满足某个密钥的使用权限时才可以使用该密钥,在满足某个密钥的修改权限时才可以修改该密钥。
    每种密钥具有其独立性,用于一种特定功能的密钥不可作为它用。本设计支持以下几种密钥:个人密码(PIN)、外部认证密钥、内部认证密钥、(Crypt密钥、PIN解锁密钥、PIN重装密钥、应用维护密钥等。
    ③ 安全体系。主要是对所传送的信息进行安全性的检查和处理,防止非法的窃听或侵入。安全体系包括3部分:安全状态、安全属性和安全机制。安全状态是指当前智能卡所处的一种系统状态,这种安全状态是在智能卡完成复位应答或完成某个命令后得到的;安全属性是智能卡执行特定的命令所需要的安全条件,只有满足了这个安全条件,命令才能执行;安全机制是指安全状态实现转移所采取的方法和手段,它是与安全状态和安全属性相联系的。
    ④ 命令解释。根据接收到的命令检查各项参数是否正确,执行相应的操作。
    IC卡通过USB接口与终端之间使用命令与应答的通信机制,即终端,把命令送到1C卡,IC卡接收并处理后发送响应给终端。这种机制包括两种应用协议数据单元(APDU)——命令应用数据单元与响应应用数据单元。
    命令应用数据单元包含两部分:固定的4字节命令头和长度可变的命令体,其内容为

    CLA字节代表命令的类型。
    INS字节表示命令编码,P1和P2为具体命令参数。Lc字节表示数据的长度,只有一个字节表示,取值范围为1~115。如果Lc为0,表示没有数据域。[page]
    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.2.1节和2.2.2节软件设计为PKI终端设备内软件设计,整个软件采用了Keil C51语言编写。与汇编相比,C语言在功能、结构、可读性、可维护性上有明显的优势。Keil C51提供了丰富的库函数和功能强大的集成开发调试工具,全Windows界面。最后生成标准的HEX文件,以直接写入程序存储器,如Flash中。
2.2.3应用层软件设计
    应用层(计算机主机)软件开发主要是提供底层API库函数,在此基础上实现CSP[4](Cryptographic Service Provider,加密服务提供者)软件设计,为用户提供符合微软加密服务要求的中间件。应用层软件结构如图3所示。

    应用程序不能直接与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]. CSP datasheet http://www.dzsc.com/datasheet/CSP_2363263.html.
[2]. RC2 datasheet http://www.dzsc.com/datasheet/RC2_1191068.html.
[3]. SHA datasheet http://www.dzsc.com/datasheet/SHA_2043215.html.

关键字:USB接口  智能卡  PKI客户端 引用地址:基于USB接口和智能卡的PKI客户端设计

上一篇:MCU与Audio Codec的安卓音频附件设计
下一篇:基于USB接口的无线数据传输系统的设计

推荐阅读最新更新时间:2024-03-16 13:43

基于USB接口和DSP的飞机防滑刹车测试系统
飞机防滑刹车控制器作为飞机防滑刹车系统的核心部件,其设计好坏直接影响到飞机的安全起飞和安全着陆刹车,系统性能的好坏需要通过测试设备来检验。我国对控制器的研究已有半个多世纪的时间,从机械-气压式到目前的数字式,均取得了良好的效果。而对控制盒测试的研究却处于一片空白,迄今为止仍用人工仪器对控制盒进行性能测试,不仅操作复杂,而且耗用大量的空间和时间。本文设计的刹车测试系统可以弥补此项空白。 微机技术的发展、单片机的广泛应用以及便携式电脑的出现,为测试系统的发展提供了良好的硬件平台,高速化、便携式、微型化、低成本、智能化成为测试系统的最大特点。通用串行总线(USB)以其即插即用、速度快、低成本等特点而倍受青睐,逐步取代了传统的RS232
[测试测量]
基于DSP的USB接口设计方案
  本文介绍了一种基于DSP的USB 接口设计方案,分别从接口的硬件设计、接口操作原理、软件设计流程以及中断服务程序设计要点等方面进行阐述,并利用Cypress 公司提供的USB2.0 接口芯片CY7C68001 实现了USB2.0 从机接口设计,通过硬件平台的搭建和软件程序设计,实现了PC 机与DSP 之间高速双向地传输数据。   1 引言   近年来,随着数字信号技术的发展,需要处理的数据量越来越大,处理的速度也越来越快,因此具有高速性能DSP 芯片的应用得到了广泛重视。而通过DSP 处理的数据往往要传输给PC 机进行存储和再处理,那么就必须解决DSP 与 PC 机之间的高速通信问题。本设计方案以德州仪器(TI)的C5000
[嵌入式]
PIC单片机的USB接口的应用 一个简单的USB CDC 测试程序
单片机的USB接口,通常用法, 1)HID 是Human Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。不过HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。(参考百度 https://baike.baidu.com/item/USB-HID ) 2)CDC 虚拟串口,可与PC机直接联机通讯,如同RS232。 3)USB MSC (Mass Storageclass) MSC是一种计算机和 移动设备 之间的传输协议,它允许一个通用串行总线(USB)设备来访问主机的计算设备,使两者之间进行文件传输。设备包括: 移动硬盘 ,移动光驱,U盘,S
[单片机]
PIC单片机的<font color='red'>USB接口</font>的应用 一个简单的USB CDC 测试程序
2013智能卡出货量奇高 盘点产业国内发展形势
    国外调查机构MarketReportsChina近日公布了一份中国智能卡行业发展调查报告,报告预测了2013年-2017年中国智能卡市场发展。报告显示,全球智能卡在2012年的出货量超过40亿张,在全球经济不景气的情况下,智能卡的出货量仍然保持一个稳定增长,欧洲地区主要由金雅拓、ST、英飞凌、NXP等巨头推动市场发展。欧洲许多地区仍然在使用磁条卡,EMV迁移带来的银行卡更换将推动智能卡巨大需求。      随着亚太地区智能卡行业的快速发展,中国、印度、日本、韩国和其他东南亚国家拥有巨大的智能卡需求。其中,中国智能卡市场最大,几乎占全球智能卡市场的三分之一。本文重点介绍智能卡在国内的发展状况及其在国外的应用形势。      
[安防电子]
俄罗斯电子厂商启动智能卡IC生产线
俄罗斯电信和消费电子设备提供商JSC Sitronics启动了一个智能卡0.18微米IC新生产线。早在2006年7月,Sitronics就和意法半导体在合作设计,行销以及销售IC领域达成了一项合作协议。Sitronics向其位于莫斯科附近Zelenograd的技术中心斥资超过3亿美元来开发微电子生产。在过去的三年中,Sitronics共对此项工程投资了2亿美元。最新的投产计划是大范围的智能卡芯片。来自10个不同国家的超出40个供应商都参与了这项计划。该公司计划开始生产使用Icron0.13微米制造工艺的IC,紧接着会在2009年推出90nm IC。   Sitronics领导建造了“莫斯科科技群社区”,其中包括现代化的生产设备基础
[焦点新闻]
可监测人体脉搏波及心率的健康鼠标
  脉搏波的波形特征与心血管疾病密切相关,为此用户需要一种简单、实时的便携装置。通过安装在正常使用鼠标时大拇指触摸到的鼠标位置的反射式脉搏波光电传感器采集脉搏波信号,信号经过滤波、放大和A/D转换后,利用单片机对脉搏波信号处理并得出心率数据,最后通过USB接口连接电脑端软件显示。将鼠标和反射式光电传感器结合制成成品之后,经过实际测试,传感器能够很好的测得手指脉搏波并输出。这种可监测人体脉搏波及心率的健康鼠标可以在用户使用鼠标的不经意状态时检测并记录脉搏波及心率。   人体脉搏波中蕴藏着丰富的生理病理信息,大量的临床实测结果证实,脉搏波的特征与心血管疾病有着密切的关系。脉搏波所表现出来的形态、强度、速率与节律等方面的综合信息的确在
[单片机]
基于单片机和CH371USB接口芯片实现虚拟示波器的设计
一、引言 对于学校教学实验以及某些特定需求来说,目前市场上的模拟及也许并不适用,价格高昂、体积较大且很多专业功能并不实用。而现在电脑的普及程度也达到了相当的规模,利用电脑以及附加的数采模块实现一个灵活便捷的能够满足大多数的工作、学习和开发需要,并且可以通过较低代价的硬件和软件升级实现相当复杂的信号处理功能,能够以较低的成本、较小的体积实现配置灵活的智能仪器组合;完全可以与便携电脑结合,构成便携式检测维修工作站。目前已经有计算机并口通信的数据采集器,但是USB的应用日趋广泛和深入,如果将USB功能融合在里面则可以实现更高的数据传输率、更方便的使用方式,更为优越的体现出的性能。 二、 此虚拟的数据采集器由以下功能模块组成:前端信号
[单片机]
基于单片机和CH371<font color='red'>USB接口</font>芯片实现虚拟示波器的设计
基于USB接口的虚拟示波器的开发实现
为了克服虚拟示波器应用中的一些缺点,在虚拟示波器中采用了一种新的总线接口标准——USB接口。主要介绍了基于USB的虚拟示波器的独特优点,着重说明了系统整体设计、外插硬件设计、USB驱动软件设计和客户应用软件设计。 关键词:虚拟示波器,USB,Windows驱动模型,快速傅里叶变换 1 系统总体设计   USB规范中将USB分为5个部分:控制器、控制器驱动程序、USB芯片驱动程序、USB设备以及针对不同USB设备的客户驱动程序。根据设备对系统资源需求的不同,在USB规范中规定了四种不同的数据传输方式:等时传输方式(isochronous)、中断传输方式(interrupt)、控制传输方式(control)和批(bulk)传输
[模拟电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved