USB和智能卡

所需积分/C币:3 2013-01-09 08:03:39 232KB PDF
6
收藏 收藏
举报

基于USB和智能卡的PKI客户端设计基于USB和智能卡的PKI客户端设计
主要包括两个模块:卡内操作系统COS和算法库。这是实现PKI客户端设备的关键部 分。()卡内操作系统COS的设计 智能卡内设计了一个小型的操作系统 COSCOS的主要功能是:控制智能卡与外界信息 进行交换,管理智能卡存储器中的文件系统,并在智能卡内完成各种命令的处理。COS的 基本功能必须遵循ISO78164标准[3] COS系统是由传输管理、文件管理、安全体系、命令解释四个功能模块组成的 ①传输管理。按ISOη816—3标准,监督卡与终端之间的通信,保证数据正确地传输, 防止与终端之间通信数据被非法窃取和篡改。 ②文件管理。文件管理模块用来管理智能卡芯片内存储的各种数据,如证书、密钥和其 他用户信息等 智能卡芯片内的文件分为MF、DF和EF三种。MF(主文件)是所有文件的根文件;DF 文件是目录文件,根据DF可以区分存在于智能卡上的不同应用;EF是基本文件,用来存 储具体的数据和记录,也是COS命令所要操作的具体对象。本设计中,EF分为四种类对象 密钥、证书、认证对象和数据对象。其中认证对象中保存识别用户身份的PN码。EF的存 放分为文件头和文件体两个部分。文件头中包含文件的标识符、访问权限和文件体的指针; 而文件体中存放只体数据。 对IC卡的操作,是通过命令的方式实现的。实际上是通过命令对IC卡内文件的操作 增加功能即是增加文件,所以,下面着重就文件系统进行说明 a.文件的空间结构 每个文件在 EEPROM中的存放格式为 COS整个的文件空间划分如下: ◆当建立完MF之后,COS自动将整个 EEPROM空间都分配给它。MF的文件头长度 为13字节十文件名长度(5~16字节)。 ◆每个DF所占空间=DF文件头空间(等同于MF)DF下所有的文件空间之和。 ◆二进制结构文件的空间=文件头空间(13字节)+FF所申请的空间 ◆定长记录和循环定长记录文件的空间=文什头空间(3字节)+记录数×记录长度。 ◆变长记录结构文件的空间-文件头空间(13宁节)+建立时申请的空间。 ◆安全基本文件的空间一文件头空间(13字节)+密钥个数×(25字节) b.KEY文件及其文件中的密钥 每个DF或MF下有且只有一个KEY文件,在任何情况下密钥均无法读出。在KEY文 件中π存放多个密钥,每个密钥为一条定长记录。记录中规定了其标识、版本、算法、属性 及密钥本身等相关内容 在满足KEY文件的增加权限时,可用 WriteKeY命令增加一条记录。只有在满足某个 窣钥的使用权限时才可以使用该密钥,在满足某个密钥的修改权限时才可以修改该密钥。 每种密钥具有其独立性,用于一种特定功能的密钥不可作为它用。本设计支持以下几种 密钥:个人密码(PN)、外部认证密钥、内部认证密钥、( Crypt密钥、PIN解锁密钥、PIN重 装密钥、应用维护宓钥等。 ③安全体系。主要是对所传送的信息进行安全性的检查和处理,防止非法的窃听或侵入。 安全体系包括3部分:安全状态、安全属性和安全机制。安全状态是指当前智能卡所处的 种系统状态,这种安全状态是在智能卡完成复位应答或完成某个命令后得到的;安全属性是 智能卡执行特定的命令所需要的安全条件,只有满足了这个安全条件,命令才能执行;安全 机制是指安全状态实现转移所采取的方法和手段,它是与安全状态和安全属性相联系的。 ④命令解释。根据接收到的命令检查各项参数是否正确,执行相应的操作。 IC卡通过USB接口与终端之间使用命令与应答的通信机制,即终端,把命令送到1C 卡,IC卡接收并处理后发送响应给终端。这种机制包括两种应用协议数据单元(APDU 命令应用数据单元与响应应用数据单元。 命令应用数据单元包含两部分:固定的4字节命令头和长度可变的命令体,其内容为 CLA字节代表命令的类型。 INS字节表示命令编码,P和P2为具体命令参数。Lc字节表示数据的长度,只有一个 字节表示,取值范围为1~115。如果Lc为0,表示没有数据域 Le表示期望卡返回的数据长度,由单字节表示,取值范围为~15。 响应应用数据单元也包括两部分:可能存在的响应数据体应答体)和两个状态字节(应答 尾部),其内容为 应答体 应答尾部 响应数据体 SW1 Sw2 基于保密的原因,具体的命令代码和状态字节(SW、Sw2)的编码略。 (2)算法库的实现 算法库是一个根据不同需要可扩展的函数库。目前,算法库里有: ◆对称加密算法DES算法、3DES算法、RC2、RC4算法 ◆摘要(散列值)算法SHA一1算法、MD5算法 ◆非对称加密算法—RSA算法、DSA算法、ECC算法。 以上算法全部在设备内实现。 22.2USB接口层的软件设计 USB接口层软件主要完成计算机主机和客户端设备之间的数据传输,完成主机与IC卡 之间交互的命令及响应。一方面将主机来USB信息包转换成符合IS0786-4标准的智能 卡可识别的命令,另一方面,根据IS07816-4标准,将智能卡的响应数据转化成USB数据 包,上传给主机。 在USB的初始化中,完成终端设备USB的自举过程。考虑到设备与计算机之间的数据 交换具有数量少、传输速度不要求很高的特点,因而将其配置为HD类设备,实现在 WIN2000、 Winme等环境下免安装驱动程序的特点。本设备使用了3个端点:端点0用于控 制信息的传输,端点1用于接收主机发来的数据,端点3用J向主机发送数据。 USB的消息处理过程是:USB发出中断请求,单片机响应中断,首先查看各中断奇存 器,找出产生中断的事件,然后处坦。程序的设计主要集中在中断处理服务程序上,如图2 所 开始 USB初始化 开中断 中断服务程序 接收事件 发送事件 状态转换事件 端点1处理 端点3处理 位醒起 图2UsB情息处理流程 上述221节和222节软件设计为PKI终端设备内软件设计,整个软件采用了 Keilc51语 言编写。与汇编相比,C语言在功能、结构、可读性、可维护性上有明显的优势。KciC51 提供了丰富的库函数和功能强大的集成开发调试工具,全 Windows界面。最后生成标准的 IEX文件,以直接写入程序存储器,如 Flash中。 223应用层软件设计 应用层(计算机上机)件开发上要是提供底层AP库函数,在此基础上实现 CSP[4]( CryptographicServiceprovider,加密服务提供者)软件设计,为用户提供符合微软加密 服务要求的中间件。应用层软件结构如图3所示。 应用居 应科序人应用程日[用 H HC CryptoAPI CA門系 系统层 面务块(P面服务模块CSP习国务板块(CSP3 我温二 墨务握供 底层AP函数 硬件接口层 图3计算机软件层次结构 应用程序不能直接与CSP进行通信。取而代之,应用程序通过调用由 Advani32.dl 和(rypt32dl模块所提供的一些 CryploAPI接口函数来与CSP进行通信,从而完成相应的 功能。操作系统过滤这些函数调用,并把它们通过C2 ryploSPI(系统编程接口)传递给相应的 CSP函数。 整个软件的实现过程为:首先,根据智能卡COS命令,完成底层API库函数CLlB通 过对库函数进行封装生成 PKIKEY类,即 PKIKEY.CPP, PKIKEY.H,进而生成CSP所 需的DLL文件,最后通过向微软中请认证,通过后微软将进行签名 本设计中,可以向客户提供底层API函数和CSP两种中间件接口,以支持客户的二次 开发 在应用软件方面,我们设计了客户端管理工具软件和管理端管理工具软件。 客端管理工只实现的功能:证书的自动注册注销,修改用户密码等功能。 管理端管理工只实现的功能:除具有客户端管理工只的功能外,还提供∫格式化设备、 清空设备、解锁用户密码、修改管理员密码等功能。 23主要技术指标 操作系统: Windows98Me/2000XP, MacOs8/9, Linux 证书及标准:PKCS#1, MSCAPI,PC/SC,X.509V3证书存储。 加密算法:MD5,SHA-1,DFS/3DFS,RC2,RC4,RSA,DSA,FCC等 接口类型:USRV1.1A型。 功耗:<250mW。 3总结 本文提出的PKI客户端设备已经小批量生产。它是整个PKI体系的重要组成部分,可 以实现密钥安全保管、证书管玶、签名、验证签名、加解密和身份认证等功能,具有高稳 定性、高安全性、高可靠性、安装和携带方便、操作简便、运算速度快等特点:可广泛应用 于要求个人身份认证、识别、数据加密、安全存储等领域,如电子商务、电子政务等,所提 供的底层库函数和CSP软件以中间件方式极大地方便了客户的次开发。总之,本设计思 想先进,代表了当前该领域的发展方向,应用前景广泛 作者:刘培德尉永青刘培玉

...展开详情
试读 8P USB和智能卡
立即下载
限时抽奖 低至0.43元/次
身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
USB和智能卡 3积分/C币 立即下载
1/8
USB和智能卡第1页
USB和智能卡第2页

试读结束, 可继续读1页

3积分/C币 立即下载