- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
网络计算机中IC卡读写器子系统设计
随着网络的飞速发展和计算机技术的不断进步,计算机应用模式正发生着巨大的变革。网络计算机(NC)的出现标志着计算机体系结构的革新,代表着未来计算机系统的发展方向。由于网络计算机可以采用开放源码操作系统,为发展带有自主知识产权的核心技术创造了有利条件。在开放源代码的操作系统中,Linux是一种较好的选择。它源代码公开,可以根据要求自行剪裁并且稳定,对资源要求低,有大量应用软件支持。按照网络电脑的特定需求,可以开发出具有自主智能产权的CPU,从而提高网络电脑的安全。网络电脑走的是一种网络服务器集中式管理的道路,具有成本低廉、管理费用低的优势。
为此,国家863计算机软硬件技术主题发展规划提出了以下要求:组织优势力量,研究网络计算机系统的关键技术,研制网络计算机系列产品,选择若干典型应用领域的进行应用示范,以此推动国产微处理器芯片和系统软件的发展,促进我国电子政务、网络教育、金融、社区服务、企业管理等方面的信息化建设。
随着计算机网络的迅速发展,网络计算机的安全问题显得非常突出。尤其在某些特殊领域,如电子政务等,安全问题显得极端重要。目前,在计算机安全方面,有各种不同的方法,但效果都不太好。本文提出的智能IC卡技术,在网络计算机是一种全新的方法,能够很好地实现网络计算机的安全。智能IC卡(Smart IC)具有较高的安全性,以前主要用在金融、电信等领域,笔者把此技术推广应用到网络计算机,以提高安全性。智能IC卡本身含有自行研制的COS(Chip OS)和加密算法,并采用多密钥、多加密算法体系,对所有的敏感数据文件加密保护。如图1所示。
IC卡子系统是整个网络计算机系统网络安全的核心,它保存了加密算法所需要的私有密钥,供加密算法对网络上传输的数据加密使用。
1 IC卡读写器硬件开发方案
IC卡作为一种信息技术可以广泛应用于许多行业领域,如金融、电信等,不同领域均有各自不同的应用特点、应用环境和应用要求。IC卡在某一领域的应用,必须适应该领域的特点。国际上有关组织及部分针对各个领域的不同要求,制定了IC卡在某一领域应用所应参考或遵循的应用标准。不过所有智能IC卡都必须符合国际标准化组织的ISO/IEC 7816国际标准。读写器的硬件也必须遵循ISO/IEC 7816国际标准。
ISO/IEC 7816标准要求IC卡与IC卡读写器使用串行通信,时序要求非常严格。常用的MCS51系列单片机速度较慢,每个指令周期需要12个机器周期,较难达到该标准所要求的严格时序。Microchip公司的PIC系列单片机采用RISC结构,每个指令周期为4个时钟周期,并且除转移指令外,所有指令都可以在一个指令周期内完成,速度较快,能够满足该标准对时序的严格要求。所以采用一片PIC16C73单片机作为IC卡读写器的控制器。
读写器与IC卡的通信,采用半双工的ISO 7916-3字符帧协议标准。3.57MHz的晶振为IC卡和读写器提供时钟。在缺省工作方式下,IC卡和读写器的通信速率为9600bps。即时钟频率为3.57MHz,每372个时钟输入或输出一个比特位。在未来需要较高通信速度时,可以在对程序作较小改动的前提下,提高晶振频率,如采用2×3.57MHz的晶振。
IC卡读写器与NC之间的通信,可以采用USB接口、并口、串口、PS/2口等多种方案。采用USB接口可以实现即插即用和热拔插等功能。但使用USB接口,电路和协议都很复杂,并且增加USB接口器件会较大地增加系统成本。并口有较高的通信速度,但通信线路较多,硬件比较复杂,可靠性不好,且IC卡读写器并不需要太高的通信速度,故使用并口也不是理想的方案。而PS/2口一般固定给键盘和鼠标等标准外设使用,使用PS/2口就会占用这些标准外设的接口,故也不在考虑范围之内。使用串口通信虽然速度慢,但却具有硬件成本低、软件实现简单、运行可靠等优点。而通信速度完全可以满足IC卡读写器的要求。所以IC卡读写器采用了RS232串口与NC主机通信的方案。
整个系统使用5V电压供电。IC卡读写器采用低功耗设计,系统电源从RS232接口的信号线上获得。RS232接口的电压为±12V,经过电源稳压器件LP2950将12V电压变为+5V,给IC卡读写器所有器件提供电源。
IC卡读写器硬件的原理框图如图2所示。
IC卡各引脚接到单片机I/O口上,由单片机对IC卡进行读写。由于PC(NC)机的RS232接口电平与单片机的逻辑电平不同,所以需要对串口信号进行电平转换。图2中使用了电平转换器件。它把单片机的TTL逻辑电平转化为RS232接口的±12V电平,实现单片机与RS232的透明传输。转换后的信号直接接在RS232接口上。
2 IC卡读写器软件开发方案
IC卡读写器驱动程序由读写器与IC卡通信的通信程序、读写器与NC或PC通信的通信程序以及NC与读写器通信的驱动程序三部分组成。其中,NC与IC卡读写器通信的程序符合PC/SC规范,它与PC/SC规范的中间件结合,向应用程序提供符合PC/SC规范的API函数。
2.1 读写器与IC卡通信的通信程序
该通信程序采用ISO 7816-3字节协议标准编制。使用T=0,即字符协议,主要实现与IC卡的通信。由于选用的时钟为3.57MHz,在IC卡I/O口默认的9600bps通信速度下,每隔372个系统时钟脉冲,I/O状态可能变化一次。所以,为了准确读取IC卡I/O状态,在IC卡输出的每一位脉冲中间,即I/O启动186个时钟周期后,读取I/O状态。为了排除可能的干扰,在186个时钟周期的两侧再采样两点,共取样三点。三个采样点之间每两个点间隔24个时钟周期。如果三点取样值都为1,则输出为1;如果三点取样值都为0,则输出为0;如果三点取样值中有两点为1,一点为0,则输出为1;如果三点取样值中两点为0,一点为1,则输出为0。
2.2 读写器与NC的通信的通信程序
读写器与NC的通信程序采用异步串行口协议,双方通信先握手取得同步,然后再进行串行口通信。读写器通过串口接收NC发来的命令,并将执行结果通过串口发回。读写器与NC的通信在不影响读写器与IC卡通信的前提下完成。
2.3 NC的驱动程序
NC通信程序驻留于NC,它与读写器的通信程序通信。这个程序符合PC/SC规范。规范规定的分层模块结构见下图。
图中的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)软件
·通信程序: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系列平台上。