CPU卡综述
概述
CPU卡:也称智能卡, 卡内 的集成电路中带有微处理器CPU、 存储单元 (包括随机 存储器 RAM、 程序存储器 ROM(FLASH)、用户数据存储器EEPROM)以及芯片 操作系统 COS。装有COS的CPU卡相当于一台微型计算机,不仅具有 数据存储 功能,同时具有命令处理和数据安全保护等功能。 由于没有掌握关键的生产工艺,原来我国设计的CPU卡芯片一直在国外生产。目前我国自主设计、制造的CPU卡容量达到了128K。 CPU卡可适用于金融、保险、交警、政府行业等多个领域,具有用户空间大、读取速度快、支持一卡多用等特点,并已经通过 中国人民银行 和国家商秘委的认证IC卡
要了解什么是CPU卡,就必须从IC卡说起。IC卡是 集成电路卡 ( Integrated Circuit Card )的简称,是镶嵌 集成电路芯片 的塑料卡片,其外形和尺寸都遵循国际标准(ISO)。芯片一般采用不易挥发性的 存储器 (ROM、EEPROM)、保护逻辑电路、甚至带 微处理器 CPU。
带有CPU的IC卡才是真正的智能卡。按照嵌入集成电路芯片的形式和芯片类型的不同IC卡大致可分为接触式,非接触式、 双界面卡 。
CPU卡的分类
CPU卡既有 接触式 也有 非接触式 的。(如图)
非加密 存储器 卡: 卡内 的 集成电路芯片 主要是EEPROM,具有 数据存储 功能,不具有 数据处理 功能和硬件加密功能。
逻辑加密存储器卡: 在非加密存储器卡的基础上增加了加密逻辑电路,加密逻辑电路通过校验密码方式来保护卡内的数据对于外部访问是否开放,但只是低层次的安全保护,无法防范恶意性的攻击。
CPU卡的标准化
目的
由于当前世界各国经济正在向国际化方向发展,全球化的金融服务系统纷纷建立起来,这就带来了一个卡的互操作性问题。同一张卡,在不同的国家、不同的环境下都要能够使用。要解决这个问题,只有制定一系列 国际标准 ,使CPU卡及其接口设备制造商按照统一的标准,制造统一接口规格的产品,以保证不同国家、不同行业都采用统一的CPU卡软硬件技术规范开发应用系统,这样才能实现不同厂家生产的CPU卡之间的互换性和接口设备的共享。CPU卡标准
国际标准化组织 从1987年开始,相继制定和颁布了CPU卡的国际标准。有关CPU卡本身的标准有:
● ISO 10536:识别卡-非接触式的集成电路卡
● ISO 7816:识别卡-带触点的集成电路卡
● ISO7816-1:规定卡的物理特性。卡的物理特性中描述了卡应达到的防护紫外线的能力、X光照射的剂量、卡和触点的机械强度、抗电磁干扰能力等等。
● ISO7816-2:规定卡的尺寸和位置。
● ISO7816-3:规定卡的电信号和 传输协议 。传输协议包括两种: 同步传输 协议和 异步传输 协议
● ISO7816-4:规定卡的行业间交换用命令。包括:在卡与读写间传送的命令和应答信息内容;在卡中的文件、 数据结构 及访问方法;定义在卡中的文件和数据访问权限及安全结构。 CPU卡片基本特性:
● 符合ISO 14443 TypeA和ISO 7816接口的双界面CPU 卡
● 硬件DES/3DES 协处理器
● 硬件RSA 协处理器
● 硬件SM1协处理器
● 硬件真随机数发生器
CPU卡功能要求:
● 支持PBOC2.0 借记贷记应用
● 支持PBOC2.0 基于借贷记的小额支付应用
● 支持PBOC2.0非接触式IC卡支付应用(即QPBOC)
● 支持PBOC2.0 电子钱包的应用
● 支持DDA/CDA 认证 [1]
金融领域CPU卡应用的标准
中国金融 集成电路(IC)卡规范:1998年3月 中国人民银行 等近十家金融单位在 采用国际标准 和国外先进技术的原则下,以ISO标准和Europay、Mastercard、Visa三大组织研制的EMV96为基础,结合国内CPU卡的应用实际需要,对我国金融CPU卡的基本应用作出了具体规定。● ISO 9992:金融交易卡-集成电路卡与受卡接受设备之间的信息
● ISO 14443:识别卡- 非接触卡 规范(距离10cm)
● ISO 10202:金融交易卡-使用集成电路卡的金融交易系统的安全结构
● EMV:支付系统的集成电路卡规范和支付系统的集成电路卡终端规范
ISO和其它组织还有很多标准和规范涉及到CPU卡的应用,可根据需要查阅有关的标准。
CPU卡的操作系统COS
概述
COS的全称是Chip Operating System(片内 操作系统 ),它一般是紧紧围绕着它所服务的智能卡的特点而开发的。由于不可避免地受到了智能 卡内 微处理器芯片的性能及内存容量的影响,因此,COS在很大程度上不同于我们通常所能见到的微机上的操作系统(例如DOS、UNIX等)。COS的特点
首先 ,COS是一个专用系统而不是通用系统。即:一种COS一般都只能应用于特定的某种(或者是某些)智能卡,不同 卡内 的COS一般是不相同的。因为coS一般都是根据某种智能卡的特点及其应用范围而特定设计开发的,尽管它们在所实际完成的功能上可能大部分都遵循着同一个国际标准。
其次 ,与那些常见的微机上的 操作系统 相比较而言,COS在本质上更加接近于 监控程序 、而不是一个通常所谓的真正意义上的操作系统,这一点至少在目前看来仍是如此。因为在当前阶段,COS所需要解决的主要还是对外部的命令如何进行处理、响应的问题,这其中一般并不涉及到共享、并发的管理及处理,而且就智能卡在目前的应用情况而言,并发和共享的工作也确实是不需要的。
COS的基本原理和主要功能
COS在设计时一般都是紧密结合智能卡 内存储器 分区的情况,按照国际标准(ISO /IEC 7816系列标准)中所规定的一些功能进行设计、开发。但是由于目前智能卡的发展速度很快,而国际标准的制定周期相对比较长一些,因而造成了当前的智能卡国际标准还不太完善的情况,据此,许多厂家又各自都对自己开发的COS作了一些扩充。就目前而言,还没有任何一家公司的COS产品能形成一种工业标准。因此这里将主要结合现有的(指1994年以前)国际标准,重点讲述COS的基本原理以及基本功能,在其中适当地列举它们在某些产品中的实现方式作为例子。
COS的主要功能是控制智能卡和外界的信息交换 ,管理智能 卡内 的 存储器 并在卡内部完成各种命令的处理。其中,与外界进行信息交换是COS最基本的要求。在交换过程中,COS所遵循的信息交换协议目前包括两类:异步 字符 传输的 T=0协议以及异步分组传输的T=l协议。这两种信息交换协议的具体内容和实现机制在ISO/IEC7816—3和ISO/IEC7816—3A3标准中作了规定;而COS所应完成的管理和控制的基中功能则是在ISO/IEC7816—4标准中作出规定的。在该国际标准中,还对智能卡的 数据结构 以及COS的基本命令集作出了较为详细的说明。 至于ISO/IEC7816—1和2,则是对智能卡的物理参数、外形尺寸作了规定,它们与COS的关系不是很密切。
CPU卡生产流程
一张卡从制造出来到销毁的整个过程称为生命周期。IC卡的生命周期一般可分为:1.芯片制造:IC卡厂家通过特定的 制造工艺 在硅片上整齐地排列上一个个电路。
2.模块封装:将许多各种芯片安装在已制造好的有8个触点的印刷电路板上。
3.卡片制造:将卡的 操作系统 等卡片控制系统掩模到模块中。
4.卡片封装:将掩模好的模块镶嵌到塑料基片中。
5.卡片初始化:设置卡片的基本参数。
6.安装发行 密钥 :将发行单
7.卡片个人化:建立应用文件并写入持卡人基本资料。
8.卡片应用:持卡人用卡完成各种卡的功能。 卡片应用:持卡人用卡完成各种卡的功能。
IC卡按照接口方式可分为接触式卡、非接触式卡、复合卡;按器件技术可分为非加密存储卡、加密存储卡和CPU卡。
加密存储卡是对持卡人的认证,只有输入正确的密码才能访问或者修改卡中的数据,最典型的是手机SIM卡的PIN码;当设置PIN码后,开机必须输入PIN码,如果连续几次输入错误,就必须更高权限的PUK码来修改PIN码,如果PUK码也连续输错,那就只有换卡了。
加密存储卡保证了对持卡人的认证,但是,在保证系统安全性上还不够。
1. 密码输入是采用透明传输,在伪造的ATM机或者网络上,这个密码很容易被截取;
2. 逻辑加密卡无法认证应用是否合法;
3. 对于系统集成商来说,密码和加密算法是透明的;
由此,引入了CPU卡;
CPU卡在三个方面保证了安全:
1. 对人:持卡者合法性认证:持卡者需要输入口令。
2. 对卡:卡的合法性认证;内部认证。
3. 对系统:系统的合法性认证;外部认证。
卡的合法性认证:
CPU卡发送随机数给卡(如地铁卡),卡收到随机数后用加密算法加密,将加密后的值传给CPU卡,CPU卡解密并与发送的随机数比较,如果相等,则认为卡合法。
系统的合法性认证(例如手持POS是否是合法的经过认证的厂商生产的):
CPU卡发送随机数给POS自带的卡或者模块,POS自带的卡或者模块将随机数加密后,传回CPU卡,CPU卡解密并与发送的随机数比较,如果相等,则认为系统合法。这个过程在开机时做。
在加密和解密过程中,涉及到两个因素,一个是加解密算法、一个是密钥。加解密算法是公开的,在CPU卡中,有操作系统叫COS:Chip OS;由卡的生产商提供,并提供加解密算法。卡的生产商必须经过专门的机构认证。密钥则有发卡机构掌握,层层发卡,权限不同。
SAM卡:全称是Security Access module;是一种特殊的CPU卡;存储了密钥和加解密算法。
目前SAM卡分了很多种:
PSAM卡:终端安全控制模块,一般用于小额支付扣款中;
ESAM:厂商(系统)的SAM卡,用于设备的认证;
ISAM:用于充值;
在具体的实现中,会比较多样化。例如,有的设备认证并不是用ESAM卡,而是采用专用的模块。这样,就存在一个问题,即密钥用软件实现,可能会存在密钥泄露的问题;一种解决的方法是存储多组密钥,在随机数中指定采用一组密钥。
普通卡的发行一般采用密钥对唯一的物理卡号加密的方式。