网络计算机中IC卡读写器子系统设计
读写器与NC的通信程序采用异步串行口协议,双方通信先握手取得同步,然后再进行串行口通信。读写器通过串口接收NC发来的命令,并将执行结果通过串口发回。读写器与NC的通信在不影响读写器与IC卡通信的前提下完成。
2.3 NC的驱动程序
NC通信程序驻留于NC,它与读写器的通信程序通信。这个程序符合PC/SC规范。规范规定的分层模块结构见图4。
图4中的ICC就是Integrated Circuit Card,即IC卡。IFD就是Interface Devices,即IC卡读写器。IC卡插入读写器后,通过IC卡读写器IFD与NC驱动程序的IFD Handler层通信。ICC Resource Manager层管理各种不同的IC卡读写器和IC卡资源。每一种IC卡读写器通过各自的IFD Handler接口函数与ICC Resource Manager层通信,ICC Resource Manager层根据上层软件的要求,将上层软件发来的命令分别发到相应的IFD Handler,再通过它发给IC卡读写器和IC卡。而ICC-Aware Applications层对上层应用软件提供一个通用的API接口,以满足不同的应用程序对不同的IC卡和读写器的编程要求。Service Provider层介于ICC-Aware Applications层和ICC Resource Manager层之间,要吧提供文件的存取控制和驱动程序的加密通信功能。当然,在不使用加密通信功能时,也可以不用这一层。
NC的驱动程序根据规范要求,提供符合标准的IFD Handler层接口函数,其余各部分由符合规范的中间件提供。应用程序调用间件提供的API函数发送命令。中间件把应用程序发来的命令编译成动态链接库的IFD Handler接口函数发给IC卡读写器,最终发给IC卡。最后,IC卡将返回结果通过一系列相反的过程返回给应用程序。
3 Smart IC卡开发方案
IC卡芯片具有写入数据和存储数据的能力,IC卡存储器的内容根据需要可以有条件地由外部读取,以供内部信息处理的判定。根据卡中所嵌入的集成电路的不同可以分成三类:
(1)存储器卡,卡中的集成电路为EEPROM(可以用电擦除的可编程只读存储器);
(2)逻辑加密卡,卡中的集成电路具有加密逻辑和EEPROM;
(3)CPU卡,卡中的集成电路包括中央处理器CPU、EEPROM、随机存储器RAM以及固化在只读存储器ROM中的片内操作系统COS(Chip Operating System)。
除此之外,IC卡根据读写方式不同,可分为接触式IC卡和非接触式IC卡两种。由于网络安全要求,IC卡在使用时必须一直插在读写器内。非接触IC卡由于其读写器没有专用卡座,尽管有寿命长等优点,但不适用于网络安全应用。
同时,由于CPU卡计算能力强,可以使用自己的COS操作系统,甚至使用硬件完成加密算法。而IC存储卡仅具有存储功能,安全性不如CPU卡好,的怪SNCS(Smart Network Computer System)的IC卡子系统采用接触式CPU卡。
网络计算机安全系统的IC卡设计满足标准化(国际标准)和智能化,既有安全性又有易维护性。它由硬件和软件两部分组成。
(1)硬件
采用CPU卡,它含有CPU及RAM、ROM等。具有优秀的安全性能,可能有效防止黑客对IC卡解密。
(2)软件javascript:window.open(this.src);" style="cursor:pointer;"/>
·通信程序
IC卡软件即COS(Chip Operating Systarm),它是智能卡芯片内的一个监控软件,用于接收和处理外界发给智能卡的各种信息,管理卡内的存储器,并给出相应的应答信息。它有IC卡与读写器的通信程序。该通信程序完成与读写设备之间的通信,必须满足7816-3字符帧协议。该协议含有T=0字符传送协议和T=1数据块传送协议。
·安全文件系统
COS文件系统与普通文件系统不同,它着重强调文件系统的安全性,除提供通常的字符流文件操作外,还提供记录文件的读写操作等。对每种不同的文件操作进行不同的访问权限保护。COS中的文件系统与上层应用软件的用户权限管理相结合,共同完成对IC卡文件的访问。由于IC卡的文件存储介质采用EEPROM,每次写文件操作时,必须对要写入的介质先进行擦除操作。
·安全机制
安全机制用于身份鉴别和IC卡与读写设备双方的认证工作及各种数据的加密、数据完整性检查等操作。每个用户IC卡上都有用户的一个私钥,服务器把用公钥加密后的数据经IC瞳用自己的私钥解密后将正确的信息通过网络送给服务器,由服务器根据解密的信息完成对用户权限的鉴别。
·加解密算法
加解密算法,用于对传入IC卡的数据进行加、解密,此外它还提供扩展接口,方便用户增加新的加密算法。
·命令解译
命令解译是COS的上层软件,它实现ISO7816-4的各种命令和CA命令。
根据串口窃电IC卡读写器设计技术思想,IC卡读写器采用低功耗元器件(PIC16C73B低功耗单片机和74LV125A等),同时采用分离元件取代MAX系列的RS232接口电路,实现了无需外接电源的串口IC卡读写器。经实验测试,整个电路功耗低于10mA,完全可以由串口提供电源。
本项目实现的串口IC卡读写器完全符合ISO7816-1/2/3标准以及PC/SC规范;软件实现采用分层结构,实现了T=0的字符传输协议。
经实验测试,读写器稳定可靠地实现IC卡复位应答、读IC卡读写器件状态字、读一个随机数据、读取IC卡序列号以及选择一个文件等操作;在计算机与IC卡之间,可以实现数据的透明传输。此IC卡子系统既可以工作在Linux平台上,也可以工作在Windows系列平台上。