网络计算机中IC卡读写器子系统设计
摘要:针对网络计算机安全问题,提出了一种完整的智能IC卡读写器子系统设计方案。此方案讨论了基于单片机的IC卡读写器硬件和软件设计、基于PC/SC行业规范的读写器驱动程序设计和IC卡的软硬件选取。
关键词:网络计算机 安全 单片机 智能IC卡 IC卡读写器 PC/SC ISO7816
随着网络的飞速发展和计算机技术的不断进步,计算机应用模式正发生着巨大的变革。网络计算机(NC)的出现标志着计算机体系结构的革新,代表着未来计算机系统的发展方向。由于网络计算机可以采用开放源码操作系统,为发展带有自主知识产权的核心技术创造了有利条件。在开放源代码的操作系统中,Linux是一种较好的选择。它源代码公开,可以根据要求自行剪裁并且稳定,对资源要求低,有大量应用软件支持。按照网络电脑的特定需求,可以开发出具有自主智能产权的CPU,从而提高网络电脑的安全。网络电脑走的是一种网络服务器集中式管理的道路,具有成本低廉、管理费用低的优势。
为此,国家863计算机软硬件技术主题发展规划提出了以下要求:组织优势力量,研究网络计算机系统的关键技术,研制网络计算机系列产品,选择若干典型应用领域的进行应用示范,以此推动国产微处理器芯片和系统软件的发展,促进我国电子政务、网络教育、金融、社区服务、企业管理等方面的信息化建设。
随着计算机网络的迅速发展,网络计算机的安全问题显得非常突出。尤其在某些特殊领域,如电子政务等,安全问题显得极端重要。目前,在计算机安全方面,有各种不同的方法,但效果都不太好。本文提出的智能IC卡技术,在网络计算机是一种全新的方法,能够很好地实现网络计算机的安全。智能IC卡(Smart IC)具有较高的安全性,以前主要用在金融、电信等领域,笔者把此技术推广应用到网络计算机,以提高安全性。智能IC卡本身含有自行研制的COS(Chip OS)和加密算法,并采用多密钥、多加密算法体系,对所有的敏感数据文件加密保护。如图1所示。
javascript:window.open(this.src);" style="cursor:pointer;"/>
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的晶振。
javascript:window.open(this.src);" style="cursor:pointer;"/>
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。如图3所示。
javascript:window.open(this.src);" style="cursor:pointer;"/>