智能cpu卡技术

上传人:夏** 文档编号:570187308 上传时间:2024-08-02 格式:PPT 页数:178 大小:3.09MB
返回 下载 相关 举报
智能cpu卡技术_第1页
第1页 / 共178页
智能cpu卡技术_第2页
第2页 / 共178页
智能cpu卡技术_第3页
第3页 / 共178页
智能cpu卡技术_第4页
第4页 / 共178页
智能cpu卡技术_第5页
第5页 / 共178页
点击查看更多>>
资源描述

《智能cpu卡技术》由会员分享,可在线阅读,更多相关《智能cpu卡技术(178页珍藏版)》请在金锄头文库上搜索。

1、智能智能(cpu)卡技术卡技术第4章 智能(CPU)卡技术 4.1 实训6:CPU卡的设定与读写操作 1实训目的实训目的(1) 了解CPU卡的基本组成及功能。(2) 通过最简应用系统实例了解CPU卡系统的基本工作过程。(3) 学会通过读卡器对CPU卡进行发卡、存款、扣款等基本操作。 第4章 智能(CPU)卡技术 2实训设备与器件实训设备与器件实训设备:个人计算机、接触式IC卡读写器。实训器材:标准CPU卡。 3实训步骤及要求实训步骤及要求 1) RD系列接触式IC卡读写器及CPUDEMO软件的安装(1) 按系统提示安装RD系列接触式IC卡读写器及CPUDEMO软件。(2) 按标志连接RD系列接

2、触式IC卡读写器的电源线及串口线,注意,电源+5 V与地不可接反。 第4章 智能(CPU)卡技术 2) 使用CPUDEMO软件访问SLE44C20卡(或其他的CPU卡)(1) 按使用手册的说明操作演示软件,对RD系列接触式IC卡读写器进行建立连接操作。正确连接后,在操作窗体下面的消息提示中会显示“联机”。(2) 将SLE44C20卡插入读写器卡座,进入卡操作界面。(3) 对SLE44C20卡进行读、写、擦除、建立文件操作,记录操作结果及操作条件,熟悉CPU卡的操作命令。3) 使用CPUDEMO软件发放CPU卡 第4章 智能(CPU)卡技术 发卡程序如下,相关命令解释参见4.6节。send 80

3、 0E 00 00 08 FF FF FF FF FF FF FF FF;删除MFsend 80 E0 00 00 18 FF FF FF FF FF FF FF FF 0F 01 31 50 41 59 2E 53 59 53 2E 44 44 46 3031;建立 MF00 A4 00 00 02 3F00;选择 MFsend 80 E0 02 00 07 00 01 02 0F 0F 01 1E ;建立DIR文件send 00 E2 00 08 13 61 11 4F 09 A0 00 00 00 03 86 98 07 01 50 04 50 42 4F 43;写DIR文件:中国银行s

4、end 00 E2 00 08 13 61 11 4F 09 D1 56 00 00 05 00 00 00 01 50 04 50 42 4F 43 ;写DIR 文件:建设银行send 80 E0 01 00 0D 2F 01 0F 00 A0 00 00 00 03 86 98 07 01 ;建立 ADFsend 80 E0 02 00 07 6F 02 05 0F 00 0A 00 ;建立DF下密钥文件send 80 D4 00 00 0A 01 01 00 0B 0F 01 1F 33 12 34 ;安装个人密码PIN1234 send 80 D4 00 00 18 01 01 00

5、08 0F 02 2F 33 11223344556677881122334455667788 第4章 智能(CPU)卡技术 ;安装外部认证密钥(DEAK):11223344556677881122334455667788send 80 D4 00 00 18 02 01 00 00 0F 00 F0 33 11223344556677881122334455667788;安装消费密钥DPK send 80 D4 00 00 18 01 01 00 01 0F 00 F0 FF 11223344556677881122334455667788;安装圈存密钥DLK send 80 D4 00 0

6、0 18 01 01 00 03 0F 00 F0 FF 11223344556677881122334455667788;安装圈提密钥DULK send 80 D4 00 00 18 01 01 00 02 0F 00 F0 FF 11223344556677881122334455667788第4章 智能(CPU)卡技术 ;安装TAC的密钥DTK send 80 D4 00 00 18 01 01 00 05 0F 00 F0 FF 11223344556677881122334455667788;安装应用维护密钥DAMKsend 80 D4 00 00 18 01 01 00 06 0F

7、 00 F0 FF 11223344556677881122334455667788;安装PIN解锁密钥DPUK send 80 D4 00 00 18 01 01 00 07 0F 00 F0 FF 11223344556677881122334455667788;安装PIN重装密钥DRPKsend 80 D4 00 00 18 01 01 00 04 0F 00 F0 FF 11223344556677881122334455667788 第4章 智能(CPU)卡技术 ;安装修改透支限额密钥DUK send 80 E0 02 00 07 00 15 00 0F 0F 00 1E ;建立公共

8、应用基本文件 send 00 D6 95 00 1E A0 00 00 00 03 00 00 01 03 01 00 00 19 98 08 15 00 00 00 01 20 00 10 01 20 02 12 31 55 66 ;写公共应用基本数据文件send 80 E0 02 00 07 00 16 00 0F 0F 00 27 ;建立持卡者基本数据文件 send 00 D6 96 00 27 00 00 53 41 4D 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 31 30 31 30 38 37 30 30 33 3

9、1 37 31 38 39 00 00 ;写卡持有者基本数据文件send 80 E0 02 00 07 00 18 03 0F F0 0A 17 ;建立交易明细文件 send 80 E0 02 00 07 00 01 06 00 00 00 00 ;建立电子钱包EP文件send 80 E0 02 00 07 00 02 07 00 00 00 00 ;建立电子存折ED文件 send 80 E0 01 01 02 2F 01 ;结束建立应用(DF)send 80 E0 01 00 0D 2F 02 0f 00 D1 56 00 00 05 00 00 00 01 第4章 智能(CPU)卡技术 ;

10、建立ADF 建设银行应用send 80 E0 02 00 07 6F 02 05 0F 00 0A 00 ;建立DF下密钥文件send 80 D4 00 00 0A 01 01 00 0B 0F 01 1F 33 12 34 ;安装个人密码PIN send 80 D4 00 00 18 02 01 00 08 0F 03 2F 33 11223344556677881122334455667788 ;安装外部认证密钥(DEAK):11223344556677881122334455667788send 80 D4 00 00 18 02 01 00 00 0F 00 F0 33 1234567

11、8123456781234567812345678;安装消费密钥DPK:12345678123456781234567812345678send 80 D4 00 00 18 01 01 00 01 0F 00 F0 FF 12345678123456781234567812345678;安装圈存密钥DLK send 80 D4 00 00 18 01 01 00 03 0F 00 F0 FF 12345678123456781234567812345678 第4章 智能(CPU)卡技术 ;安装圈提密钥DULK send 80 D4 00 00 18 01 01 00 02 0F 00 F0

12、FF 12345678123456781234567812345678;安装TAC的密钥DTK send 80 D4 00 00 18 01 01 00 05 0F 00 F0 FF 12345678123456781234567812345678;安装应用维护密钥DAMK send 80 D4 00 00 18 01 01 00 06 0F 00 F0 FF 12345678123456781234567812345678;安装PIN解锁密钥DPUK send 80 D4 00 00 18 01 01 00 07 0F 00 F0 FF 123456781234567812345678123

13、45678;安装PIN重装密钥DRPKsend 80 D4 00 00 18 01 01 00 04 0F 00 F0 FF 12345678123456781234567812345678 第4章 智能(CPU)卡技术 ;安装修改透支限额密钥DUK send 80 E0 02 00 07 00 15 00 0F 0F 00 1E ;建立公共应用基本文件 send 00 D6 95 00 1E A0 00 00 00 03 00 00 02 03 01 00 00 19 98 08 15 00 00 00 02 20 02 05 01 20 02 12 31 55 66 ;写公共应用基本数据文

14、件send 80 E0 02 00 07 00 16 00 0F 0F 00 27 ;建立持卡者基本数据文件 send 00 D6 96 00 27 00 00 53 41 4D 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 31 30 31 30 38 37 30 30 33 31 37 31 38 39 00 00 ;写卡持有者基本数据文件send 80 E0 02 00 07 00 18 03 0F F0 0A 17 ;建立交易明细文件send 80 E0 02 00 07 00 01 06 00 00 00 00 ;建立电子

15、钱包EP文件 send 80 E0 02 00 07 00 02 07 00 00 00 00 ;建立电子存折ED文件 send 80 E0 01 01 02 2F 02 ;结束建立应用DFsend 80 E0 00 01 02 3F 00 ;结束建立MF 第4章 智能(CPU)卡技术 4) 使用CPUDEMO软件对CPU卡中的金额进行圈存操作 表表4.1 CPU卡标准文件结构卡标准文件结构 第4章 智能(CPU)卡技术 这里假设:圈存密钥为11223344556677888877665544332211;个人密码PIN为1234。 操作流程如下: (1) 选择应用。 命令:00 A4 00

16、00 02(命令头)XX XX(ADF标识符) (2) 校验个人密码。 命令:00 20 00 00 02(命令头)12 34(PIN) (3) 圈存初始化。 命令:80 50 00 01 0B(命令头)01 (圈存密钥标识)00 00 10 00(交易金额)00 00 00 00 00 01(终端机编号) 返回:00 00 00 00(旧余额)00 00(联机交易序号)01(密钥版本号)00(算法标识)72 d5 a0 89(随机数)82 dc 98 07(MAC1) 第4章 智能(CPU)卡技术 (4) 圈存。 计算过程密钥SessionKey。SessionKey = DES/3DES(

17、KEY,Data1)KEY = 11223344556677888877665544332211Data1 = 72d5a089(随机数)0000(2字节的联机交易序号)8000(补充值)计算结果:SessionKey=c40123a4297d7dba第4章 智能(CPU)卡技术 计算MAC2。 MAC2 = MAC(DES/3DES(SessionKey, Data2,InitialData) Data2 = 00001000 (4字节的交易金额) 01 (交易类型) 000000000001 (6字节的终端编号) 20010910(4字节的交易日期)130222(3字节的交易时间)Init

18、ialData = 0000000000000000 计算结果: MAC2= 4e8b20d4 向卡片发送圈存指令。 805200000B(命令头) 20010910 (4字节的交易日期) 130222 (3字节的交易时间)4e8b20d4 (MAC2) 第4章 智能(CPU)卡技术 5) 使用CPUDEMO软件对CPU卡中的金额进行消费操作 消费交易命令的执行必须在ADF下进行,且此ADF下必须包含表4.1所示的文件和密钥。 这里假设:消费密钥为11223344556677888877665544332211;个人密码PIN为1234。 操作流程如下: (1) 选择应用。 命令:00 A4

19、00 00 02(命令头)XX XX(ADF标识符) (2) 校验个人密码。 命令:00 20 00 00 02(命令头)12 34(PIN) 第4章 智能(CPU)卡技术 (3) 消费初始化。 命令:80 50 01 01 0B(命令头)01 (消费密钥标识)00 00 00 10(交易金额)00 00 00 00 00 01(终端机编号) 返回:00 00 10 00(旧余额)00 00(脱机交易序号)00 00 00 (透支限额)01(密钥版本号)00(算法标识)e3 98 ed 60(随机数) 第4章 智能(CPU)卡技术 (4) 消费。 计算过程密钥SessionKey。 Sessi

20、onKey = DES/3DES(KEY,Data1) KEY = 11223344556677888877665544332211 Data1 = e398ed60(随机数) 0000(2字节的脱机交易序号) 0001(终端交易序号的后2个字节) 计算结果: SessionKey = e6874578af758168 第4章 智能(CPU)卡技术 计算MAC1。 MAC1 = MAC(DES/3DES(Session Key, Data2,InitialData) Data2 = 00000010(交易金额)05(交易类型)000000000001(终端编号)20010910(交易日期)13

21、0222(交易时间) InitialData = 0000000000000000 计算结果: MAC1= c7d12550 向卡片发送消费指令。 805400000F(命令头)00000001 (终端交易序号) 20010910 (4字节的交易日期)130222(3字节的交易时间)c7d12550(MAC1) 第4章 智能(CPU)卡技术 4. 实训分析与总结实训分析与总结 图4.1 CPU卡操作界面 第4章 智能(CPU)卡技术 从界面上可分为三大部分:命令输入界面、管理界面、消息界面。命令输入界面是根据ISO/IEC 7816-4标准定义的命令结构设计的输入窗口,使用时只需要在空格内填入

22、适当的内容即可。管理界面分为文件结构和操作向导两部分,从文件结构中可以看出操作的CPU卡内部的文件结构,操作向导是操作命令的结构分解,例如在操作界面选择新建文件,在命令界面就出现新建文件的命令结构供使用者填入数据。消息界面是各种命令和操作执行的结果显示,从中可以看出命令是否正确执行。 命令应用数据单元包含两部分:固定的4个字节命令头和长度可变的命令体,其内容如表4.2所示。 第4章 智能(CPU)卡技术 表表4.2 命令数据单元结构表命令数据单元结构表 CLA字节指出命令的类型。 INS字节表示命令编码,P1和P2为具体命令参数。 LC字节表示数据的长度,只用一个字节表示,取值范围为1110。

23、如果LC为0,则表示没有数据域。 LE表示期望卡返回的数据长度,由单字节表示,取值范围为1110。 响应应用数据单元也包括两部分:可能存在的响应数据体(应答体)和两个状态字节(应答尾部),如表4.3所示。 第4章 智能(CPU)卡技术 表表4.3 响应数据单元结构表响应数据单元结构表 第4章 智能(CPU)卡技术 5实训思考与练习实训思考与练习 (1) 根据书中的命令集,设计圈提的流程图和具体程序。 (2) 分析命令结构的四种情况。 (3) 比较CPU卡的读写与存储卡的读写的差异,并说明CPU卡的安全性。 第4章 智能(CPU)卡技术 4.2 CPU 卡卡 概概 述述4.2.1 CPU卡的概念

24、卡的概念 在具体的应用系统中,要求智能卡内部不仅能存储信息数据,还能对数据进行复杂的运算。例如,对数据进行加密运算,与智能卡读卡器、智能卡使用者等多方进行安全认证等。随着微电子技术的发展,在IC卡中嵌入中央处理器(CPU)已成为可能,配合卡中的ROM(用于存储指令代码)、RAM(随机存储器)、EEPROM(作为用户数据存储器),一张IC卡即构成了一台便携、微型、抗损的计算机。这样,整个卡系统的安全性有了质的飞跃,可以有效地防止伪造,完全能满足储蓄/信用卡和其他对安全性要求较高的应用场合的要求。由于卡中嵌入了带有CPU的微芯片,因此这种IC卡被称为智能卡或微处理器卡(CPU卡)。 第4章 智能(

25、CPU)卡技术 4.2.2 CPU卡的硬件构成卡的硬件构成 图4.2 CPU卡的结构示意图 第4章 智能(CPU)卡技术 CPU一般为兼容于8位字节长单片机(如MC68HC05、Intel8051等)的微处理器,其计算能力与最早的IBM/PC相当,它在COS(片内操作系统,Chip Operating System)的控制下,实现卡与外界的信息传输、加密/解密和判别处理等。 EEPROM是用户访问的存储区,用于保存卡的各种信息、密码、密钥、应用文件等,一般大小为116 KB。 第4章 智能(CPU)卡技术 ROM用于存放CPU卡上的操作系统(COS),系统启动时从中读取数据,加载操作系统,管理

26、整个卡上的计算机,一般大小为316 KB。RAM用于存放系统的中间处理结果及充当卡与读写器间信息交换的中间缓存器,一般大小为128 B1 KB。CPU卡通常采取DES、RSA等加密/解密算法提高系统的安全性能,而这些安全算法要进行大量的数学运算,8位CPU将难以承担复杂的数学运算,因此许多CPU卡中设置了专门用于加密/解密运算的协处理器CAU。图4.3为CPU卡的存储区分配示意图。 第4章 智能(CPU)卡技术 图4.3 CPU卡的存储区分配示意图 第4章 智能(CPU)卡技术 图中制造区、发行区存放制造和发行商代码、卡的序列号等;ROM代码区存放COS;保密字区存放与文件操作权限相关的各种密

27、码、密钥及相应的描述信息;文件区存放应用数据(文件);文件分配表则存储与文件对应的描述信息,如文件起始地址、长度、权限等。 由于工艺技术要求苛刻等因素,目前世界上仅有少数几家著名半导体芯片制造商能设计生产CPU卡芯片,如美国的Motorola、Atmel等,韩国的三星,德国的Siemens,荷兰的Philips和STMicroelectronics等。表4.4描述了Siemens公司的SLE44系列CPU卡的性能特征。 第4章 智能(CPU)卡技术 表表4.4 几种几种CPU卡芯片的主要特性参数表卡芯片的主要特性参数表 第4章 智能(CPU)卡技术 表表4.4 几种几种CPU卡芯片的主要特性参

28、数表卡芯片的主要特性参数表 第4章 智能(CPU)卡技术 4.2.3 CPU卡软件卡软件 CPU卡软件建立在CPU卡应用系统的硬件基础上,由主机软件和卡软件两部分构成。其中主机软件是在与智能卡相连的计算机上运行的软件,卡软件是在智能卡自身运行的软件。 1主机软件主机软件 主机软件用于个人计算机和工作站服务器,访问连接的智能卡,对智能卡进行控制操作,并把卡融入到具体的应用系统中。主机软件包括终端用户应用软件、支持将智能卡读写器连接到主机平台的系统软件、用户应用系统软件等。 主机软件通常用高级语言编写,如C、 C+、JAVA、BASIC、COBAL、PASCAL或FORTRAN等,这些高级编程语言

29、也是工作站和个人计算机上通常采用的语言。 第4章 智能(CPU)卡技术 2卡软件卡软件 卡软件是在CPU卡内部运行的软件,通常包括操作系统、实用软件和应用软件。这种软件由嵌入到智能卡上的微处理器芯片中的汇编语言编写,或者由高级语言编写后经汇编而成。 应用软件在使用智能卡的计算和数据存储功能时,觉察不到智能卡的数据完整性和数据安全性特征;而系统软件则控制和实现智能卡的数据完整性和数据安全性特征。 第4章 智能(CPU)卡技术 4.2.4 CPU卡的操作系统卡的操作系统(COS) 随着IC卡从简单的同步卡发展到异步卡,从简单的EEPROM卡发展到内带微处理器的智能卡(又称CPU卡),人们对IC卡的

30、各种要求越来越高,而卡本身所需要的各种管理工作也越来越复杂,因此就迫切地需要有一种工具来解决这一矛盾。内部带有微处理器的智能卡的出现,使得这种工具的实现变成了现实。人们利用它内部的微处理器芯片,开发了应用于智能卡内部的各种各样的操作系统,也就是将要论述的COS系统。COS的出现不仅大大地改善了智能卡的交互界面,使智能卡的管理变得容易,而且更为重要的是,使智能卡本身向着个人计算机化的方向迈出了一大步,为智能卡的发展开拓了极为广阔的道路。 第4章 智能(CPU)卡技术 COS的全称是Chip Operating System(片内操作系统),它一般是紧紧围绕着它所服务的智能卡的特点而开发的。由于不

31、可避免地受到了智能卡内微处理器芯片的性能及内存容量的影响,因此,COS在很大程度上不同于我们通常所能见到的微机上的操作系统(例如DOS、UNIX等)。首先,COS是一个专用系统而不是通用系统,一种COS一般都只能应用于特定的某种(或者是某些)智能卡中,不同卡内的COS一般是不相同的。这是因为COS一般都是根据某种智能卡的特点及其应用范围而特定设计开发的,尽管它们在所实际完成的功能上可能大部分都遵循着同一个国际标准。其次,与那些常见的微机上的操作系统相比较而言,COS在本质上更加接近于监控程序,而不是一个真正意义上的操作系统,这一点至少在目前看来仍是如此。这是因为在当前阶段,COS所需要解决的主

32、要还是对外部的命令如何进行处理、响应的问题,这其中一般并不涉及到共享、并发的管理及处理。 第4章 智能(CPU)卡技术 COS在设计时一般都是紧密结合智能卡内存储器分区的情况,按照国际标准(ISO/IEC 7816系列标准)中所规定的一些功能进行设计、开发的。但是由于目前智能卡的发展速度很快,而国际标准的制定周期相对比较长一些,因而造成了当前智能卡的国际标准还不太完善的情况,据此,许多厂家又各自都对自己开发的COS作了一些扩充。就目前而言,还没有任何一家公司的COS产品能形成一种工业标准。因此本章将主要结合现有的国际标准,重点讲述COS的基本原理以及基本功能,并适当地列举它们在某些产品中的实现

33、方式。 第4章 智能(CPU)卡技术 COS的主要功能是控制智能卡和外界的信息交换,管理智能卡内的存储器并在卡内部完成各种命令的处理。其中,与外界进行信息交换是COS最基本的要求。在交换过程中,COS所遵循的信息交换协议目前包括两类:异步字符传输的T=0协议以及异步分组传输的T=1协议。这两种信息交换协议的具体内容和实现机制在ISO/IEC 7816-3和ISO/IEC 7816-3A3标准中作了规定;而COS所应完成的管理和控制的基本功能则是在ISO/IEC 7816-4标准中作出规定的。在该国际标准中,还对智能卡的数据结构以及COS的基本命令集作出了较为详细的说明。 第4章 智能(CPU)

34、卡技术 4.2.5 CPU卡的特点卡的特点 CPU卡在智能卡家族中出现的时间最晚,但最具生命力。与前述的存储器卡和逻辑加密卡相比,CPU卡具有以下显著的优势: (1) 提高数据安全性:CPU卡可以采用多种方法提高安全性,因为它可以对存储在卡中的信息的存取作出限制,可以保护软件。 (2) 应用灵活性:CPU卡可以同时用于几种不同的应用。卡与系统的互相操作是受存放在卡中和系统中的软件控制的。可以对卡中的部分软件进行修改,其方法是对卡中的非易失性存储器的一部分重新编程。 第4章 智能(CPU)卡技术 (3) 应用与交易的合法性证实:当卡连到合法的系统以实现某项应用时,通过来自用户的数据(如生物特征或

35、PIN数据)或系统的数据(如加密/解密密钥),可在任何时候对持卡人或系统进行验证。 (4) 价格通过有效性予以补偿:CPU卡的价格比磁卡贵,但其原始价格可通过以下因素予以补偿: 发行后,CPU卡的重构能力强,并具有同时存储几种不同应用数据的能力。 减少发行收入的损失(即由欺诈性的使用和欺诈性的仿制造成的损失)。 独立方式实现功能的能力强,因此可减少依赖于系统的花费。而且CPU卡读卡器的价格也比基于投硬币的读卡器的价格便宜。 第4章 智能(CPU)卡技术 (5) 多应用能力:因为CPU卡中有一个智能微处理器,所以可实现一种以上的应用,即一卡多用,从而可比使用多张卡节省费用。 (6) 脱机能力:因

36、为CPU卡可完全合法性检查,能存储交易的详细数据,所以不必为每一笔交易与中央计算机/数据库进行通信,提高了交易速度,降低了处理费用。 由此可见,CPU卡非常适合于对数据安全性及可靠性要求十分敏感的应用。目前,金融领域的信用卡、电信领域的SIM卡(移动电话身份识别卡)等已成为CPU卡应用的几个最大领域。此外,由CPU卡支持并代表的一卡多用(多功能卡)概念越来越受到人们的重视。在我国,随着金卡工程等一系列卡基应用工程的快速实施,CPU卡必将在其中扮演极为重要的角色。展望未来,CPU卡的发展及应用必将深入社会生活的各个领域,人们必将不断感悟并享受到CPU卡带来的便利、安全、快捷的一系列优质服务。 第

37、4章 智能(CPU)卡技术 4.3 典型智能卡芯片典型智能卡芯片 4.3.1 MC68HC05SC系列芯片剖析系列芯片剖析 表表4.5 MC68HC05SC系列芯片的概况系列芯片的概况 第4章 智能(CPU)卡技术 1芯片的组成及逻辑图芯片的组成及逻辑图 图4.4 MC68HC05SC21的逻辑图 第4章 智能(CPU)卡技术 图4.5 MC68HC05SC21的CPU寄存器组成 第4章 智能(CPU)卡技术 累加器A(8位)用于保持操作数或运算结果。 变址寄存器X(8位)用于变址寻址方式,也可用作暂存寄存器。 堆栈指针SP(13位)的高7位为0000011,堆栈用于保存子程序调用时的返回地址

38、和中断处理时的机器状态,其寻址范围为00FFH00C0H,在RAM中。 程序计数器(13位)指出下一条将执行的指令地址。 条件码寄存器CC(5位)指出刚执行的指令的结果,对其各位说明如下: 半进位位(H):执行ADD或ADC指令时,从第3位到第4位的进位;第4章 智能(CPU)卡技术 中断屏蔽位(I):当I位为1时,所有中断均被禁止; 负(N):当N为1时,指出最后一次算术运算、逻辑运算或数据处理的结果为负(或第7位为逻辑1); 零(Z):当Z为1时,表示最后一次算术运算、逻辑运算或数据处理的结果为零; 进位/借位(C):当C=1时,表示最后一次算术运算产生进位或借位。 第4章 智能(CPU)

39、卡技术 图4.6 MC68HC05SC的压焊块 第4章 智能(CPU)卡技术 图4.7 存储器和寄存器的地址分配 第4章 智能(CPU)卡技术 图4.6为芯片的压焊块。用于智能卡时有6个引出端,符合标准的规定。其中VPF用于烧断熔丝,PA0为I/O端,其他4个引出端不再解释。图4.6中还有4个压焊块PB0、PB1、PB2和PB3。与PA0一起共为5个输入/输出线(见图4.4),每根线可通过编程分别设定为输入线或输出线,但用于智能卡时,PB0PB3不起作用。 存储器地址有13位,从0000H1FFFH,其地址分配如图4.7所示。访问ROM-0页还是ROM-1页由ROMPG位来控制,当ROMPG=

40、1时,访问ROM-1页。但ROM-1页仅有2304 B,其余仍按ROM-0页处理。执行擦除EEPROM操作后,被擦除的EEPROM的内容为“0”;写操作只允许字节写“1”。在EEPROM中有n个字节被称为安全字节,允许在测试方式对它进行编程,而在用户方式只能读出。 第4章 智能(CPU)卡技术 芯片有两种工作方式:测试方式和工作方式。芯片出厂前处于测试方式,对它进行测试、编程和分析都比较容易。器件出厂时,被置于用户方式,由于外界访问MCU受到限制,因此当器件出问题时,要对它的运行情况进行测试和分析特别困难,需要运用软件知识以及依靠制造厂和用户之间的紧密合作才能进行分析,而且一旦设置成用户方式后

41、就不能再回到测试方式。 第4章 智能(CPU)卡技术 2MC68HC05SC的指令系统的指令系统 MC68HC05SC的指令系统共有59条指令,6种寻址方式,指令长度可变(13字节),数据字长度为8位。 1) 寻址方式 (1) 固有的(或隐含的)寻址方式:一字节指令,操作数地址隐含在指令码中,如TAX指令,其功能是将变址寄存器(X)内容传送到累加器(A),指令码为97。 (2) 立即数寻址方式:二字节指令,第一字节为操作码,第二字节为8位立即数,如 “LDA # $ B5”指令,其功能是将立即数B5送到累加器中。其中,#表示立即数;$表示其随后的数,用十六进制表示。这条指令的指令码为A6B5,

42、即A6为操作码,B5为立即数,这两个字节在存储器中是相邻存放的。 第4章 智能(CPU)卡技术 (3) 直接寻址方式: 二字节指令,第一字节为操作码,第二字节为存储器地址。因为地址只有8位,所以寻址的地址范围限于00HFFH。这两个字节在存储器中是相邻存放的。 (4) 扩展寻址方式:三字节指令,第一字节为操作码,第二字节和第三字节为地址码。因为地址有16位,所以可对整个存储器进行寻址。这三个字节在存储器中是相邻存放的。 (5) 变址寻址方式:二字节或三字节指令(指令中分别包含一字节或二字节偏移值),访问存储器的地址=变址寄存器的内容(X)+偏移值。 (6) 相对寻址方式:二字节指令,通常应用于

43、转移指令中,转移地址=(PC)+偏移值。 第4章 智能(CPU)卡技术 2) 指令系统 表表4.6 MC68HC05SC的指令集的指令集 第4章 智能(CPU)卡技术 续表续表 第4章 智能(CPU)卡技术 续表 第4章 智能(CPU)卡技术 续表 第4章 智能(CPU)卡技术 4.3.2 芯片安全的实现芯片安全的实现 为了保证智能卡的安全应用,芯片制造商与卡的发行商要明确各自的职责。芯片制造商在设计芯片时要考虑制造安全;卡的发行商要保证应用安全。 1. 芯片安全的设计实现芯片安全的设计实现 MCU包含有CPU、RAM、ROM和EEPROM等,ROM中存放操作系统及固定数据;EEPROM中存放

44、密码和数据,有时还存放部分与应用有关的程序;RAM中仅存放一些中间结果。外界对卡发布的命令需要通过操作系统才能对CPU起作用,而操作系统在ROM中,是不可能改变的,因此为安全应用提供了可靠的基础。 第4章 智能(CPU)卡技术 (1) 将RAM、ROM和EEPROM分成若干个存储区,根据安全需要可对各分区进行读保护,即在一定条件下,某些分区不允许读出,或虽允许从存储器中读出,但不能送到卡的触点上,以防被不正当窃取。对EEPROM的各个分区还可分别进行写入/擦除保护。 (2) 对程序的失控采取预防性保护措施,设置多重“非正常运行状态”监视手段,以使该装置在非正常情况下停机(或采取其他保护措施)。

45、例如,MC68HC05SC27和MC68HC05SC28设置“Watchdog”监视程序是否“逃逸(runaway)”,并强迫它回到正确的程序流中。 第4章 智能(CPU)卡技术 (3) 在每个芯片的存储器中写入各不相同的序列号(跟踪数据)和密码;软件能对卡、持卡人、读写设备进行相互鉴别,使得任一方都不能进行伪造,甚至包括每一笔交易数据在内。 此外还应不断探索新方法,以便应对潜在的盗用者。 第4章 智能(CPU)卡技术 2芯片安全的制造环节芯片安全的制造环节 同样,出自安全考虑,制造商也采取了种种严密的措施。 (1) 封闭的制造环境和流程,不准无关人员进入制造地区,各个工序之间严格保持独立,对

46、产品(每个模片)进行严格的跟踪管理:或者发送给客户,或者在内部安全地销毁。其目的是防止伪造和丢失。 (2) 限制接触载有客户的软件和保密规范的计算机系统和软件。每个装置可设置单独的密码。 第4章 智能(CPU)卡技术 (3) 将测试合格的芯片制成器件(模块或卡)后,可运送给发行商。为保证运送过程的安全,发行商可将其自定义的密钥及算法告诉制造商,制造商按算法运算后,将结果作为“运输密钥”写入EEPROM中;发行商收到卡后,按照同一算法进行验证,通过后,才允许卡进一步工作,否则卡将自锁。 在此将运输密钥介绍如下: Transport Key=TK =f (TD,CP,MP)其中,TD是跟踪数据,C

47、P是发行商的PIN,MP是制造商的PIN。 第4章 智能(CPU)卡技术 (1) 在制造商处生成TK,并将TK、TD写EEPROM,经过最后的测试后,断开熔丝,将器件运送给发行商,其过程如图4.8所示。 图4.8 运输密钥的生成(在制造商处) 第4章 智能(CPU)卡技术 (2) 器件送到发行商处以后,在第一次加电时,从器件中读出TD,送给读卡器(Reader)。根据同一算法,在读卡器中得到TK,并将TK送到器件,在器件内将器件的TK和读卡器的TK进行比较,如相等,则表示通过,其过程如图4.9所示。仅当验证通过后,才允许对卡进行进一步的操作。 第4章 智能(CPU)卡技术 图4.9 运输密钥的

48、验证(在发行商处) 第4章 智能(CPU)卡技术 3芯片的应用安全芯片的应用安全 智能卡用户应对他们所控制的那部分系统(如固化在芯片上的软件以及系统的软件和硬件)采取适当的保密措施。软件保密战略包括从非常简单的到极为复杂的密码算法演算和鉴别过程,这些程序中有许多是个别用户的应用产品所独享和专用的,但也有一些简单的、普遍适用的、体现保密意识的软件开发手段。 (1) 考虑软件运行到关键部分时电源(意外和人为)中断后造成的后果。 (2) 在软件设计中加上计数功能,限制输入错误密码的次数。 (3) 在软件中加入一些程序,以保证在系统被重新设置后的特定时间里,某些特别敏感的事情(如向EEPROM写入新的

49、数据或指令)不会不受限制地发生。 第4章 智能(CPU)卡技术 (4) 降低软件的可读性。 (5) 采用以时间为基准的子程序。 (6) 通过防止从EEPROM执行程序的方法,限制应用程序自我修改的能力。 (7) 在软件中加入“测试”命令,以便在无需输出任何软件内容的条件下对出现的问题进行调查。 (8) 控制在开发过程之中和之后了解软件和硬件的任何细节的途径。 第4章 智能(CPU)卡技术 4.4 卡操作系统卡操作系统COS 4.4.1 COS的体系结构的体系结构 依赖于上一节中所描述的智能卡的硬件环境,可以设计出各种各样的COS。但是,所有的COS都必须能够解决至少三个问题,即文件操作、鉴别与

50、核实、安全机制。事实上,鉴别与核实和安全机制都属于智能卡安全体系的范畴,所以,智能卡的COS中最重要的两方面就是文件与安全。但再具体地分析一下,则我们实际上可以把从读写设备(即接口设备IFD)发出命令到卡给出响应的一个完整过程划分为四个阶段,也可以说是四个功能模块:传送管理器(TM)、安全管理器(SM)、应用管理器(AM)和文件管理器(FM)。其中,传送管理器用于检查信息是否被正确地传送。这一部分主要和智能卡所采用的通信协议有关;安全管理器主要是对所传送的信息进行安全性检查或处理,防止非法的窃听或侵入; 第4章 智能(CPU)卡技术 应用管理器则用于判断所接收的命令执行的可能性;文件管理器通过

51、核实命令的操作权限,最终完成对命令的处理。对于一个具体的COS命令而言,这四个阶段并不一定都是必须具备的,有些阶段可以省略,或者是并入另一阶段中;但一般来说,具备这四个阶段的COS是比较常见的。以下我们将按照这四个阶段对COS进行较为详细的论述。 第4章 智能(CPU)卡技术 在这里需要注意的是,智能卡中的“文件”概念与我们通常所说的“文件”是有区别的。尽管智能卡中的文件内存储的也是数据单元或记录,但它们都是与智能卡的具体应用直接相关的。 一般而言,一个具体的应用必然要对应于智能卡中的一个文件,因此,智能卡中的文件不存在通常所谓的文件共享的情况。而且,这种文件不仅在逻辑上必须是完整的,在物理组

52、织上也都是连续的。此外,智能卡中的文件尽管也可以拥有文件名(File Name),但对文件的标识依靠的是与卡中文件一一对应的文件标识符(File Identifier),而不是文件名。智能卡中的文件名是允许重复的,它在本质上只是文件的一种助记符,并不能完全代表某个文件。 第4章 智能(CPU)卡技术 4.4.2 COS的功能模块的功能模块 归纳起来,CPU卡操作系统至少应具备四种基本功能:硬件资源管理功能;通信传输管理功能;应用控制管理功能;安全控制管理功能。 其中每一种功能又由若干子功能组成。如按ISO的OSI参考模型分类,硬件资源管理功能属于物理层;通信传输管理功能属于数据链路层;应用控制

53、管理功能和安全控制管理功能则属于应用层。 第4章 智能(CPU)卡技术 1硬件资源管理功能硬件资源管理功能 表表4.7 CPU卡硬件功能表卡硬件功能表 第4章 智能(CPU)卡技术 硬件资源管理的目的就是由它统一组织、协调、指挥这些硬件的运行,为高层应用提供相应的程序接口, 使高层应用编程更容易,实现更简单、可靠。它类似于PC机上的BIOS(基本输入输出接口)功能,但比它的管理层次更高。下面重点介绍用户存储器的组织管理。 1) 用户存储器的数据结构 按ISO/IEC 7816标准,用户存储器的数据结构有线性固定结构(Linear Fixed)、线性可变结构(Linear Variable)、环

54、型结构(Cyclic)、透明结构(Transparent)四种。用户可以根据应用数据的特点、更新速率等因素,决定选用哪种数据结构。第4章 智能(CPU)卡技术 (1) 线性固定结构:典型结构如定长度记录,其中每一记录的存储位置均由一个惟一的记录号标识,可以随机读写。按有关ISO/IEC标准,记录号的范围为1253。 (2) 线性可变结构:如可变长度记录,其中每一记录的存储位置均由一个惟一的记录号标识,可以随机读写。按有关ISO/IEC标准,记录号的范围为1254。 (3) 环型结构:这种结构类似首尾连起来的定长度记录,不允许随机写。其中记录以某一固定顺序存放,因为记录数量有限,若超过限制数量,

55、则新写入的数据将覆盖掉旧的数据。 (4) 透明结构:二进制数据使用这种数据结构时,一般由用户寻址、管理该数据,操作系统只负责存储空间的分配。透明数据结构适用于声音、图像等超文本(Hyper Text)信息的存储。 第4章 智能(CPU)卡技术 2) 用户存储器的文件组织形式 按ISO/IEC 7816标准的规定,CPU卡中的数据在用户存储器中以树型文件结构的形式组织存放。文件分成三种层次级别:一是主文件(Master File),形成文件系统的根,类似于DOS中的根目录;二是专用文件(Dedicated File),在主文件下,类似于DOS中的目录;三是子专有文件(Child-DF),在DF之

56、下的专有文件,类似于DOS中的子目录。当然,DF之下还可以有DF,这主要依赖于用户存储器的大小。此外,还有元文件(Elementary File),主要存储实际应用数据和相应的系统管理信息,元文件可以存在于任何一个文件层次上。CPU卡文件的树型结构见图4.10。 第4章 智能(CPU)卡技术 图4.10 CPU卡的树型组织文件 第4章 智能(CPU)卡技术 在CPU卡的文件结构中,主文件只能有一个并且随操作系统一起生成,用户无法控制;在文件存取过程中,不能越层存取,若想读写子专有文件下的元文件必须经过其高层文件层次;某一专有文件的大小在申请生成时预定且不可修改,也有的操作系统可以在使用中动态地

57、修改该专有文件的大小,当然其前提是有足够的存储空间。 第4章 智能(CPU)卡技术 3) 文件类型及其特性 CPU卡操作系统的文件有三种层次级别。每一层次级别的文件还分不同的种类,具有不同的用途。 (1) 主文件:系统中必须存在惟一一个主文件,主文件组成CPU卡文件系统的根。主文件中含有系统文件控制信息及可分配的存储空间,其下可以建立各种文件。 虽然系统允许在根下直接生成各种应用文件,但最佳的文件组织方法是每一种应用均分配一个专有文件,在相应应用的专有文件下再具体组织安排各种应用数据。这样做的优点是不同应用之间的相互干扰小、便于应用设计、安全性更高等,有利于“一卡多用”。主文件一般用来存储不同

58、应用之间的共享数据,如卡序列号、持卡人数据等信息。 第4章 智能(CPU)卡技术 在初始化时,主文件还可以被赋予一些安全特性,如禁止使用操作系统的某些命令等。这样做的目的是为了在从IC卡生产到最终应用的环节过多时的安全管理,便于跨部门甚至跨行业“一卡多用”的安全实施。 CPU卡一旦插入读写设备,主文件就立即被激活直到卡被拔出。在卡的生存期内,主文件不能被删除。 第4章 智能(CPU)卡技术 (2) 专有文件:专有文件含有文件控制信息及可分配的存储空间,其下可以建立各种文件。 一个专有文件将被用来存储某一应用的所有数据。每一应用的应用顺序均由该专有文件的状态机控制,使不同应用之间具有较强的独立性

59、并且更安全。 专有文件在用户存储器中占据着一块静态存储器,一旦专有文件建立,其存储器的大小就不能变动,但在该专有文件下的元文件则可以重新分配存储器的大小,也可以被删除。专有文件下还可以再建立专有文件。此时,较高层的专有文件称为父专有文件(Parent-DF),较低层的称为子专有文件(Child-DF)。 第4章 智能(CPU)卡技术 父专有文件无论在逻辑上(操作系统管理),还是在物理上(用户存储器)均相互隔离。不同的专有文件均可使用主文件下的公共资源。父专有文件的建立一般分成两个步骤:先逻辑创建,即在操作系统中作一创建登记;再物理创建,实际分配一定数量的用户存储器。分步创建的优点是可以独立于时

60、间和存储器位置生成具体应用。某一具体的父专有文件不能在其他专有文件或主文件中删除,该父专有文件的删除条件在其应用控制文件(ACF)中定义,只有满足该条件时才删除。该父专有文件被删除之后,其下的子专有文件、元文件也同时被删除,释放的存储器块可由其他父专有文件使用。 第4章 智能(CPU)卡技术 子专有文件可以是某一子应用,子专有文件可有其自已的应用控制文件。某一具体的子专有文件不能在其他专有文件或主文件中删除。该子专有文件的删除条件在应用控制文件中定义,只有满足该条件时才可删除。该子专有文件被删除之后,其下的专有文件(若还有)、元文件也同时被删除,释放的存储器块可由其他子专有文件使用。 第4章

61、智能(CPU)卡技术 (3) 元文件:含有实际应用数据或文件控制信息,其下不可建立任何文件。 元文件分为三类:一类存储实际的应用数据,称为工作元文件(WEF);另一类存储相应的系统管理信息,称为系统管理元文件(SMEF);在ISO/IEC 7816标准中还定义有一种公共元文件(PEF)。 工作元文件(Working Elementary File)主要用于存储应用数据,若条件满足则可被读、写、删除等,它可以存在于任何文件结构中,可以是任何一种文件结构,具有内部数据校验(如检查和)措施。 第4章 智能(CPU)卡技术 系统管理元文件(System Management EF)采取内部保密文件(I

62、SF,Internal Secret Files)和应用控制文件(ACF,Application Control Files)两种形式。内部保密文件主要用于存储系统或应用保密数据,如加密密钥、个人密码等,可被输入、修改、覆盖,但不可读,不能部分删除;采用线性可变文件结构,可以存于任何文件层次。应用控制文件主要用于存储应用状态机应用顺序控制数据,不能删除,每一文件层次必须有一ACF;也采用线性可变文件结构。 公共元文件(Public EF)主要用于存储系统或应用的公共数据,可以无条件存取。 第4章 智能(CPU)卡技术 (4) 文件属性:每一种文件均具有相应属性(Attributs),CPU卡的

63、文件属性一般有四种:文件名(File Name)/文件标识(File Identifer)、安全状态(Security Status)、操作模式(Operation Mode)和注释(Notation)。 文件名/文件标识:每一文件可以通过其文件名或文件标识来寻址。按ISO/IEC 7816标准,文件类型不同,文件标识的编码也不相同。正确识别、寻址一个文件需要一个从主文件或当前专有文件到该文件的完整的标识路径。从主文件开始的路径称为绝对路径(Absolute Path),可以惟一确定某一文件,这一点和DOS操作系统中的有关概念十分相似。 第4章 智能(CPU)卡技术 在ISO/IEC 7816

64、标准中规定,每一文件均由一个长度为2 B的文件标识参考确定,但在专有文件中也可以使用文件名来标识该文件,主要是为了便于应用设计人员设计该卡,特别是将父专有文件以文件名来标识,更容易区分、理解“一卡多用”。此外,在某一张卡上文件名一定要能惟一确定某一文件。其实,以名字命名该文件时操作系统同时在内部也自动分配给它一个标识,并通过标识来管理该文件。 不同文件类型的标识具有不同的编码。按ISO/IEC 7816标准,文件标识的第一个字节为文件限定符(File Qualifier),主要用于区别文件类型(如主文件、专有文件等);第二个字节为文件索引(File Index)。其中规定: 第4章 智能(CP

65、U)卡技术 主文件:其标识确定为“3F00H”(十六进制)。 父专有文件(在标准中没有作具体规定):一般的操作系统中,文件名最长为8 B字符串(第一个字节不能为“20 H”),若文件名不足8 B,操作系统将在其后以“20H”补足剩余字节,所有父专有文件的名字不能相同。 子专有文件:子专有文件的文件标识为2 B。同一父专有文件下的子专有文件的标识不能相同,但不同父专有文件下的子专有文件的标识则可以相同。 第4章 智能(CPU)卡技术 元文件:文件标识为2 B。其中第一个字节为文件限定符,第二个字节为文件索引,在ISO/IEC 7816中都没有作十分明确的规定,其目的是为了整个系统设计留有选择的余

66、地。一般文件限定符可以根据情况自定,当然最好不与标准冲突。文件索引也可自定,一种典型的编码格式见表4.8。 第4章 智能(CPU)卡技术 表表4.8 一种元文件的典型编码一种元文件的典型编码 第4章 智能(CPU)卡技术 安全状态:主要用于定义不同命令在不同状态下(由某一应用的状态机决定)对该文件的存取权限。 操作模式:用于定义文件的静态存取特性。主要的特性有:可删除性(Erasable);读/写特性(R/W);存取特性(Access);一次写入、多次读出特性(WORM);只读特性(RO);只写特性(WO);可计算性(Compute),即定义该文件是否可被某些命令存取执行。 注释:含有某一文件

67、的简短的说明信息,如版本号等。 在ISO/IEC 7816标准中,对诸如文件属性等的定义十分简单,很不具体,其目的就是给系统设计人员留有充分的发挥空间。当具体设计某一IC卡的应用系统时,必须按CPU卡供应商的技术说明书操作。 第4章 智能(CPU)卡技术 2通信传输管理功能通信传输管理功能 IC卡必须与相应的读写设备(IFD)通信。从这个角度来讲,CPU卡操作系统的作用就是从读写设备(IFD)接收命令、执行命令,并将结果返回读写设备(IFD)。所以,通信传输管理功能模块在操作系统中具有十分重要的作用。通信传输管理功能模块主要实现以下几种功能: (1) 实现某一通信协议的数据链路层的传输管理功能

68、; (2) 实现ISO/IEC 7816标准规定的ATR(复位响应)等功能; (3) 为操作系统中的其他功能模块提供相应的接口。 第4章 智能(CPU)卡技术 按ISO/IEC 7816标准,IC卡和读写设备之间的通信协议有多种,一般一种特写的卡只支持某一种通信协议。下面以符合ISO/IEC 7816-3标准的T=1块传输协议的CPU卡为例,介绍通信传输管理功能(支持其他通信协议的卡的通信传输管理功能与此相似)。 ICC上电之后,IFD将向ICC发送命令数据,在这样一次典型的通信过程中,通信传输管理功能模块主要从事六个步骤的具体工作,见图4.11。 IFD和ICC之间的通信由IFD启动,IFD

69、还负责给卡供电。通信为半双工方式(Half Duplex),即同时只能有一方在传输信息。 第4章 智能(CPU)卡技术 图4.11 通信传输管理功能模块的执行步骤 第4章 智能(CPU)卡技术 第一步:复位响应(ATR,Answer To Reset)。在ICC正确插入IFD之后,通信传输管理功能模块将向IFD发送一个复位响应(ATR)信息。ATR中含有卡标识数据,如I/O缓冲区的大小、通信速率转换因子(Conversions Factor)等信息。该信息通知IFD该ICC的操作特性,以便IFD正确选择相应的操作参数与ICC进行通信。ICC每次硬复位(卡插入IFD)都将发送一个ATR给IFD。

70、 第二步:数据收发。具体监控、执行传输协议,收发数据。 第三步:链接模式传输管理。因为T=1协议传输完整的信息,其大小可能超过I/O缓冲区的大小。为避免出现传输问题,通信传输管理功能模块将一个完整的信息分块传输。 第4章 智能(CPU)卡技术 第四步:传输检查。通过检查某一字节的奇偶校验位、某一块的检查和或长度,发现传输错误并通知IFD。在这种情况下,IFD将重发错误数据。反之,若IFD通知ICC数据发送出错,ICC将执行数据重发操作。 第五步:数据传递。若经过上面步骤后数据正确接收,通信传输管理功能模块将接收数据传递给下一功能模块(如安全控制管理模块)作进一步处理,反之亦然。 第六步:传输结

71、束处理。若正确传输后无任何其他动作,通信传输管理功能模块将MPU置于相应的节电方式(如睡眠方式(Sleep Mode)以节省功耗。 反之,ICC向IFD发送有关数据信息,也将执行以上若干类似步骤的操作。 第4章 智能(CPU)卡技术 3应用控制管理功能应用控制管理功能 为适应CPU卡的应用,特别是对安全性要求较高的应用,在CPU卡的操作系统中还提供了应用控制管理功能模块。在以上对用户存储器的文件组织方式的描述中曾经提到每一文件层次(如MF,DF等)均有一个应用控制文件,在该文件中就定义有应用控制管理数据。 应用控制管理功能模块主要具有两个功能:一是提供对某一应用(处于某一文件层次)的顺序流程控

72、制;二是提供在不同的应用顺序状态下的命令执行权限。这两个功能虽然可以分开讨论,但在具体实施时却密不可分。 第4章 智能(CPU)卡技术 1) 应用顺序流程控制 应用顺序流程控制定义了某一应用的顺序流程,即状态机。例如,有一个较简单的应用分四步执行,同时该应用具有三个状态。启动该应用需满足条件1,然后进入状态1,执行相应操作;若在状态1下的操作满足了条件2,则进入状态2并执行相应操作;若在状态2下的操作满足了条件3,则进入状态3并执行相应操作。那么,此应用的流程如图4.12所示。 可见,所谓应用顺序流程控制,就是定义了某一应用的具体执行过程及相应条件。一旦确定了应用流程,某一应用就必须而且只能按

73、其要求执行,如在上图中不可以从状态1直接跳跃到状态3去执行某一操作。 第4章 智能(CPU)卡技术 图4.12 应用流程图 第4章 智能(CPU)卡技术 2) 命令执行权限 进一步提高应用的安全性,在应用顺序流程中还定义了在某一应用的不同状态下对命令的执行权限。如一数据文件,在该文件建立时定义了其存取特性(如可读写但不能删除),通过在该应用的顺序流程中定义读、写命令还可以进一步限制对该文件的存取。扩展上面的例子,假设在该应用中有一数据文件存储有重要数据,该文件的属性定义为可读写,但根据应用需求,读写操作只能在状态3执行,状态2只能进行读操作,这就可以通过禁止在状态2执行写命令而允许读命令,在状

74、态3同时允许执行读、写命令的方法实现,如图4.13所示。 第4章 智能(CPU)卡技术 至此,从应用顺序控制的角度可以认为,在建立某一文件时定义的属性为该文件的静态属性,而结合具体应用定义的命令执行权限则为该文件的动态属性。由此可见,利用这种机制对数据文件的存取限期安全又灵活 第4章 智能(CPU)卡技术 图4.13 命令权限限制示意图 第4章 智能(CPU)卡技术 4安全控制管理功能安全控制管理功能 安全控制管理就是对CPU卡中的静态、动态数据进行安全控制及管理。它可以具体分为两种功能:一是安全传输控制,即对传输数据的安全保护;二是对内部静态安全数据(如加密密钥、各种认证授权操作等)的控制管

75、理。第4章 智能(CPU)卡技术 1) 安全传输控制 为防止有关信息(命令、数据)在IFD和ICC之间的传输过程中被恶意截取、篡改,提高动态传输信息的安全性和可靠性,在CPU卡的操作系统中提供了安全传输控制机制。其主要原理为:或者通过将传输的信息加密,使非法截取的信息无实际应用意义;或者将待传输的信息(或部分信息)进行加密,并将该加密信息附加在传输的明文之后再进行传输,使恶意篡改信息变为不可能;再就是将以上两种方法共同使用,既可防止对传输信息的非法截取,又可防止对传输信息的非法篡改。 第4章 智能(CPU)卡技术 在CPU卡的操作系统中,一般具有四种信息传输方式:明文传输方式(Plaintex

76、t Transmit Mode)、认证传输方式(Authentic Transmit Mode)、加密传输方式(Encipher Transmit Mode)和混合传输方式(Mixed Transmit Mode)。 其中,明文传输方式对传输的信息不作任何处理,其他三种信息传输方式则分别实现三种安全控制传输机制。这三种传输方式的具体工作原理将在下一节中结合密码技术详细介绍。 在具体应用中,设计人员可以根据不同的应用对安全性的特殊要求灵活采用不同的信息传输方式。因为并非所有的信息都需要安全传输(将增加时间和空间开销),所以大多数的CPU卡操作系统均可对每一次传输设定一种传输方式。例如,可以一次传

77、输采用认证传输方式,而下一次采用明文传输方式,再下一次则采用混合传输方式,十分灵活。 第4章 智能(CPU)卡技术 2) 内部安全控制管理 内部安全控制管理的功能主要有两个:一是对数据及功能(如某一命令)的存取执行权限控制;二是对内部静态保密数据(如加密密钥等)的安全管理。 (1) 对数据及功能的存取执行权限控制。以IC卡为中心,在卡的应用中主要存在两种认证授权过程:IC卡持卡人认证和IC卡与终端机认证。IC卡验证持卡人身份的合法性这一过程通过个人识别号(PIN)来完成;而IC卡和应用终端之间的认证则通过相应的认证过程来完成。第4章 智能(CPU)卡技术 IC卡应用中存在的两种认证授权过程如下

78、: 个人识别号(PIN,Personal Identification Number):PIN是IC卡中的保密数据。PIN的主要用途是保证只有合法持卡人才能使用该卡或该卡中的某一项或几项功能,以防止拾到该卡的人恶意使用或非法伪造。卡应用发行部门将每一张IC卡均初始化为一个PIN并将它经安全渠道分发给相应持卡人。使用时首先要求持卡人输入PIN,若输入的PIN和该卡中存储的PIN相同则证明此持卡人合法,可以使用该卡。 第4章 智能(CPU)卡技术 一般较简单的IC卡中只有一个PIN,在较复杂的卡(如CPU卡)中可以存在几个PIN,如多功能卡中的每一功能就可具有一个PIN。简单IC卡中PIN的位数较

79、短(如4位二进制),在较复杂的CPU卡中PIN的位数较长(如18位十进制)。为进一步提高使用PIN的安全性,每一个PIN还配有一错误计数器(Error Counter)。该计数器用以记录、限制PIN输入错误的次数,若一次连续的输入错误次数超过卡中规定次数则卡自锁;而在该限制次数内只要PIN输入正确一次就可使用该卡,且错误计数器复位,即下次使用输入PIN时还具有卡中规定的最大的试探次数。一旦卡自锁,简单的IC卡就不可再用,而复杂的CPU卡还可通过个人解锁码(PUC,Personal Unblocking Code)将卡打开。一般,一个PUC只用于一个PIN,并且也可以有错误计数器。若合法持卡人忘

80、记PIN而将卡锁住,则使用PUC将卡打开时还可以输入一个新的PIN。第4章 智能(CPU)卡技术 在CPU卡的操作系统中,PIN还可以有以下几种属性。可修改性(Modifiable):PIN建立之后可以修改。不可修改性(Non-Modifiable):一旦PIN建立之后就不可修改。临时失效性(Temp-Deactivated):通过命令可使某一PIN临时失效,不起作用,还可以通过另一命令再将其激活等。另外,在CPU卡操作系统中,PIN也可按以下两种形式出现。全局PIN(Global PIN):处于系统的较高层次(如主文件)中,一旦因错误计数溢出等原因自锁,也同时锁住使用该PIN的其他应用层次。

81、局部PIN(Local PIN):处于某一具体应用层次中,一旦因错误计数溢出等原因自锁,则仅锁住该应用层次。 第4章 智能(CPU)卡技术 表表4.9 PIN功能简单汇总表功能简单汇总表 第4章 智能(CPU)卡技术 安全认证:IC卡和应用终端之间的认证授权的用途就是相互确认合法性,目的在于防止伪造应用终端及相应的IC卡。它一般有三种认证方式:内部认证(Internal Authentication):应用终端验证IC卡的合法性;外部认证(External Authentication):IC卡验证应用终端的合法性;相互认证(Mutual Authentication):IC卡和应用终端相互验

82、证合法性。 由以上论述可见,在对安全性要求较高的应用(如金融应用)中,只有综合使用PIN和安全认证才能提供较为完善的安全保护。而在一般的IC卡的应用中,可以根据具体情况优化选择各种安全措施,以达到实现较高性价比的目的。 第4章 智能(CPU)卡技术 (2) 对内部静态保密数据的安全管理。内部静态保密数据主要指存储于IC卡内部的PIN、PUC、加密密钥、解密密钥等重要数据。称其为内部是因为它们在应用周期(并非整个生存周期)中一旦建立就不会在IC卡外出现,而只能在卡的内部使用。这样做的目的是为了进一步提高IC卡的安全性。 在CPU卡操作系统中,专门提供ISF元文件存储这些保密数据。一般每一文件层次

83、(每一应用,某一DF)均有一个ISF元文件存储相应层次(相应应用)的有关保密数据。 不同种类的保密数据(如PIN,加密密钥)具有不同的属性及应用特性。内部静态安全数据管理的主要功能就是当某一应用需要某一保密数据时检查其合法性、可获得性等,并具体执行相应的操作。 第4章 智能(CPU)卡技术 4.4.3 CPU卡操作系统的信息结构卡操作系统的信息结构 图4.14 IFD和ICC之间的信息传输 第4章 智能(CPU)卡技术 按ISO/IEC 7816的有关标准定义,一个应用协议数据单元(APDU)或者含有命令信息(Command Message),或者含有响应信息(Response Message

84、),可以从IFD传输到ICC,反之亦然。其中,APDU可以理解为IFD和ICC之间一次通信传输的最小信息单位,如某一命令等。 按ISO/IEC 7816的有关标准,信息结构有两种:命令信息结构和响应信息结构。 第4章 智能(CPU)卡技术 1命令信息结构命令信息结构 表表4.10 命令信息结构命令信息结构 命令信息结构由两部分组成:4 B的命令头(Header),必备部分;紧接命令头为一长度可变的数据体(Body),可选。 第4章 智能(CPU)卡技术 表表4.11 命令信息结构的字段含义命令信息结构的字段含义 第4章 智能(CPU)卡技术 依据不同的命令,其信息结构也不相同,一般有以下四种结

85、构。 结构1:没有LC、LE及Data字段,既没有随命令一起发送的数据,也没有响应数据。 第4章 智能(CPU)卡技术 结构2:LE为空,即没有响应数据。 结构3:LC为空,即没有数据字段。 结构4:所有字段均存在。第4章 智能(CPU)卡技术 2响应信息结构响应信息结构 表表4.12 响响 应应 信信 息息 表表 第4章 智能(CPU)卡技术 表4.13 命令-响应对信息结构的组合第4章 智能(CPU)卡技术 4.4.4 智能卡操作系统命令智能卡操作系统命令 1面向数据管理的命令面向数据管理的命令 (1) 创建文件命令(Create File Command);(2) 关闭文件命令(Clos

86、e File Command);(3) 读二进制数据命令(Read Binary Command);(4) 写二进制数据命令(Write Binary Command);(5) 删除二进制数据命令(Erase Binary Command);(6) 读记录命令(Read Record Command);(7) 写记录命令(Write Record Command);(8) 删除记录命令(Erase Record Command);(9) 选择文件命令(Select File Command)等。 第4章 智能(CPU)卡技术 2面向通信传输的命令面向通信传输的命令 在ISO/IEC 7816标

87、准中还特别定义了两个面向通信传输的命令:(1) 获取响应命令(Get Response Command);(2) 包装命令(Envelope Command)。 在标准的命令说明中指出,当不能用已知协议传输命令或响应数据信息时可以使用这两个命令进行有关信息的传输。这两个命令均由IFD初始启动,获取响应命令用于从ICC到IFD方向信息的传输,包装命令用于从IFD到ICC方向信息的传输。 第4章 智能(CPU)卡技术 3面向安全控制管理的命令面向安全控制管理的命令(1) 内部认证命令(Internal Authenticate Command);(2) 外部认证命令(External Authen

88、ticate Command);(3) 相互认证命令(Mutual Authenticate Command);(4) 生成随机数命令(Create Random Number Command);(5) PIN校验命令(PIN Verify Command)。 安全数据控制管理指令类是一小类指令,主要用于密钥、PIN、PUC等安全数据的生成、删除、状态查询等,在不同的操作系统的具体实现上差别很大。 第4章 智能(CPU)卡技术 4部分标准指令部分标准指令(见表见表4.14) 表表4.14 标标 准准 指指 令令 表表 第4章 智能(CPU)卡技术 4.5 智能卡安全技术智能卡安全技术 4.5.

89、1 对智能卡安全的威胁对智能卡安全的威胁 在众多智能卡安全问题中,有下列基本安全问题需要解决: (1) 智能卡和接口设备之间的信息流安全,这些流通的信息可以被截取分析,从而可被复制或插入假信号。 (2) 模拟智能卡(或伪造智能卡)与接口设备之间的交换信息,使接口设备无法判断出是合法的还是模拟的智能卡。 (3) 在交易中更换智能卡,在授权过程中使用的是合法的智能卡,而在交易数据写入之前更换成另一张卡,因此将交易数据写入替代卡中。 第4章 智能(CPU)卡技术 (4) 修改信用卡中控制余额更新的日期。信用卡使用时需要输入当天日期,以供卡判断是否是当天第一次使用,即是否应将有效余额项更新为最高授权余

90、额(也即是允许一天内支取的最大金额)。如果修改控制余额更新的日期(上次使用的日期),并将它提前,则输入当天日期后,接口设备会误认为是当天第一次取款,于是将有效余额更新为最高授权余额,因此利用窃来的卡可取得最高授权的金额,其危害性还在于(在银行提出新的黑名单之前)可重复多次作弊。 (5) 商店雇员的作弊行为。接口设备写入卡中的数据不正确,或雇员私下将一笔交易写成两笔交易,因此接口设备不允许被借用、私自拆卸或改装。 第4章 智能(CPU)卡技术 在第1章中,我们曾针对上述对智能卡安全的威胁,从硬件、软件两个方面提出了多种安全措施,其中由软件方式实现的安全措施主要有: (1) 加密技术:即重要数据加

91、密后传送。 (2) 认证技术:即对持卡人、卡和接口设备的合法性的相互认证。 第4章 智能(CPU)卡技术 4.5.2 加密技术加密技术 密码学是一门历史悠久、博大精深的学说,含密码编码学、密码分析学和密钥管理学三个部分。 通常,我们将一个加密/解密系统所采用的基本工作方式称为密码体制,即密码编码。密码体制一般由两个基本要素构成:密码算法和密钥。前者是公式、法则或程序,可以是公开的;后者则是实现加密、解密时参与运算的参数,改变密钥也就改变了明文与密文的关系。要保证信息的秘密,必须严防密钥泄露,为此,密钥管理已成为现代密码学的重要分支。而密码分析即密码破译,是指非授权者由所获密文推导获取加密算法和

92、密钥,从而读懂密文的过程。 第4章 智能(CPU)卡技术 1) 对称密钥密码算法或秘密密钥密码算法对称密钥密码算法或秘密密钥密码算法(DES) 计算机通信网的发展对信息安全保密的要求日益增长,未来的数据传输和存储都要求有密码保护。为了实现同一水平的安全性和兼容性,提出了数据加密标准化。为此美国商业部所属国家标准局(NBS)于1972年开始了一项计算机数据保护标准的发展规则。NBS在1973年5月13日的联邦记录(FR,1973)中公布了一项公告,征求在传输和存储数据中保护计算机数据的密码算法的建议,这一举措最终导致了数据加密标准(DES)的研制。DES是由美国IBM公司研制的一种分组密码,它于

93、1975年3月17日首次被公布在联邦记录中,在做了大量的公开讨论后于1977年1月15日被正式批准并作为美国联邦信息处理标准,即FIPS-46,同年7月15日开始生效。每隔5年由美国国家保密局(NSA)做出评估,并重新批准它是否继续作为联邦加密标准。美国目前已经制定了新的数据加密标准,称为AES。 第4章 智能(CPU)卡技术 DES使用长度为56比特的密钥,加密长度为64比特的明文,获得长度为64比特的密文,它的加密工作程序如下: (1) 给定一个明文x,通过一个固定的初始转换IP置换x的比特获得x0,记作x0IP(x)L0R0这里,L0是x0的前32比特,R0是x0的后32比特。 第4章

94、智能(CPU)卡技术 (2) 进行16轮完全相同的运算(数据与密钥结合)。计算LiRi(1i16)的规则如下:LiRi-1RiLi-1 f(Ri-1,ki)这里, 表示两个比特串的异或;f是一个函数(f将在下面描述);k1,k2,k16都是密钥的函数,长度均为48比特(实际上,每一个屡ki是来自密钥屡按比特的一个置换选择),k1, k2,k16构成了密钥方案。一轮DES算法加密如图4.15所示。 第4章 智能(CPU)卡技术 图4.15 一轮DES算法加密图 第4章 智能(CPU)卡技术 (3) 对比特串R16L16应用初始置换IP的逆置换IP-1,获得密文y,即 y=IP-1(R16L16)

95、 注意:注意: 最后一次迭代后,左边和右边未交换,而将R16L16作为IP-1的输入,目的是为了使算法可同时用于加密和解密。 函数f(A,J)的第一个变量A是一个长度为32的比特串,第二个变量J是一个长度为48的比特串,输出是一个长度为32的比特串。f的计算过程如下: 将f的第一个变量A根据一个固定的扩展函数E扩展成一个长度为48的比特串。 第4章 智能(CPU)卡技术 计算E(A)J,并将所得结果分成8个长度为6的比特串,记为BB1B2B3B4B5B6 B7B8。 使用8个S盒,即S1,S2,S8。每一个Si是一个固定的416阶矩阵,它的元素来自015这16个整数。给定一个长度为6的比特串,

96、比方说Bjblb2b3b4b5b6,我们按下列办法计算S(bj):用两个比特b1b6对应的整数r(0r3)来确定Sj的行(所谓两个比特b1b6对应的整数r是指r的二进制表示为b1b6 ,以下的含义类同),用4个比特b2b3b4b5对应的整数c(0c15)来确定Sj的列,Sj(Bj)的取值就是Sj的第r行第c列的整数所对应的二进制表示,记Cj= Sj (Bj),1j8。将长度为32的比特串C:C1C2C3C4C5C6C7C8通过一个固定的置换户置换,将所得结果户P(C)记为f(A, J)。 第4章 智能(CPU)卡技术 表表4.15 初始置换初始置换IP 第4章 智能(CPU)卡技术 表表4.1

97、6 逆置换逆置换IP-1表表 第4章 智能(CPU)卡技术 这意味着J的第58 bit是IP(x)的第1 bit,x的第50 bit是IP(x)的第2 bit等。初始置换IP及其逆置换IP-1没有密码意义,因为J与IP(x)(或y与IP-1(y)的一一对应关系是已知的。它们的作用在于打乱原来输入x的ASCII码字划分的关系,并将原来明文的检验位x8,x1,x64变成IP的输出的一个字节。第4章 智能(CPU)卡技术 表表4.17 扩展函数扩展函数E 第4章 智能(CPU)卡技术 表表4.18 置换置换P表表 第4章 智能(CPU)卡技术 密钥方案的计算:每一轮都使用不同的、从初始密钥(又称种子

98、密钥)到导出的48 bit密钥ki,ki是一个长度为64的比特串,实际上它只有56 bit密钥,在第8,16,64位为校验比特,共8个,这主要是为了检错。在位置8,16,64的比特是按下述办法给出的:使得每一个字节含有奇数个1,因此在每一个字节中的一个错误能被检测出。在密钥方案的计算中,不考虑校验比特。密钥方案的计算过程如下: 在给定的一个64 bit的密钥中,删掉8个校验比特并利用一个固定的选择换位PC-1(置换规则见表4.20)置换密钥剩下的56 bit,记PC-1(k)=C0D0,这里C0是PC-1(k)的前28 bit,D0是PC-1(k)的后28 bit。 第4章 智能(CPU)卡技

99、术 对每一个i,1i16,计算CiLSi(Ci-1)DiLSi (Dj-1)kiPC-2 (CiDi) 其中,LSi表示一个或两个位置的左循环移位,当i1,2,9,16时,移一个位置,当i3,4,5,6,7,8,10,11,12,13,14,15时,移两个位置。PC-2(置换规则见表4.21)是缩小换位。 第4章 智能(CPU)卡技术 表表4.19 S盒结构表盒结构表 第4章 智能(CPU)卡技术 表表4.19 S盒结构表盒结构表 第4章 智能(CPU)卡技术 表4.20 选择换位PC-1 第4章 智能(CPU)卡技术 表4.21 缩小选择换位PC-2 第4章 智能(CPU)卡技术 2) 非对

100、称密钥密码算法或公共密钥密码算法非对称密钥密码算法或公共密钥密码算法(RSA) 公钥密码的观点是由Diffie和Hellman于1976年在他们的论文“密码学的新方向”一文中首次提出的。他们指明了Shannon在1949年发表的论文“保密通信的信息理论”中所提出的将密码建立在解某些已知的数学难题之上的具体实现途径。Rivest,Shamir和Adleman于1977年提出了第一个比较完善的公钥密码体制,它既可用于加密,又可用于签名,这就是著名的RSA公钥密码体制。私钥密码体制的缺陷之一是通信双方在进行通信之前需通过一个安全信道事先交换密钥。这在实际应用中通常是非常困难的,而公钥密码体制可使通信

101、双方无需事先交换密钥就可建立起保密通信。公钥算法要比私钥算法慢得多。在实际通信中,一般利用公钥密码体制来保护和分配(交换)密钥,而利用私钥密码体制加密消息。公钥密码体制主要用于认证(比如数字签名、身份识别等)和密钥管理等。公钥密码体制的出现为解决私钥密码体制的密钥分配开辟了一条广阔的道路。 第4章 智能(CPU)卡技术 目前国际上已经提出了许多种公钥密码体制,但比较流行的和被人们认可的公钥密码主要有两类:一类是基于大整数因子分解问题的,其中最典型的代表是RSA公钥密码体制;另一类是基于离散对数问题的,比如EIGamal公钥密码体制和影响比较大的椭圆曲线公钥密码体制。由于分解大整数的能力日益增强

102、,对RSA公钥密码的安全带来了一定的威胁,512 bit模长的RSA体制已经不安全。人们建议使用1024 bit模长,要保证20年的安全就要选择1280 bit模长,增大模长带来了实现上的难度,而基于离散对数问题的公钥密码在目前技术下有512 bit模长就能够保证其安全性。特别是椭圆曲线上的离散对数的计算要比有限域上的离散对数的计算更困难,能设计出密钥更短的公钥密码体制,因而受到了国际上广泛的关注,RSA等一些公司声称他们已经开发出了符合IEEE P1363标准的椭圆曲线公钥密码。 第4章 智能(CPU)卡技术 RSA算法的安全性基于分解大整数的困难性。在RSA体制中使用了这样一条基本事实:一

103、般地说,分解两个大素数之积是一件很困难的事情。 算法概述:设npq,其中p和q是两个不同的大素数,Zn0,1,2,n-1,Zn*=xZn gcd(x,n)1,Zn上有两种运算,分别为模n加法运算和模n乘法运算。设e,dZn*,并且edlmod(p-1)(g-1)。公开e(e作为公开密钥)和n,保密d(d作为秘密密钥)、p和q。加密变换为yxemodn,xZn。解密变换为xydmodn,yZn。 第4章 智能(CPU)卡技术 下面是Alice使用RSA(当然可以是任意一个公钥密码体制)发送信息给Bob的过程:(1) Alice首先获得Bob的公钥e。(2) Alice用Bob的公钥e加密信息,然

104、后发送给Bob。(3) 最后Bob用自己的私钥d解密Alice发送的信息。 第4章 智能(CPU)卡技术 4.5.3 认证技术认证技术 1信息验证码信息验证码(MAC,Message Authentication Code) 信息验证是为了防止信息被篡改,保护信息的完整性的,要求在接收时能发现被篡改的数据,例如可采用一定的算法产生附加的校验码,在接收点进行检验。采用信息验证码,也称电文识别码MAC或报文鉴别码,可解决此问题。 信息验证码MAC是利用密钥对数据加密处理而形成的,篡改者由于不知道密钥,也就不能针对性地伪造MAC,对数据的非法修改将很容易被发现,能保证信息的完整性。第4章 智能(CP

105、U)卡技术 图4.16 MAC的产生原理 第4章 智能(CPU)卡技术 MAC是针对信息,即电文的所有元素(信息主体和信息头)产生的,故需将电文分割为每段64位的若干信息段。首先用64位长MAC密钥对电文的第一个64位明文信息进行DES加密运算,所得64位结果与下一个64位明文信息异或后,再经MAC密钥加密,形成下一64位结果。如此反复,直至全部电文处理完毕。对所得最终64位结果取其前32位(4B,每字节8位)作MAC处理。 该32位MAC附于信息之后存储或发送。取出或接收时对该信息同法生成又一MAC,与原MAC对比。若相同,则说明信息无误;否则,表示可能被篡改。 第4章 智能(CPU)卡技术

106、 2数字签名数字签名(Digital Signiture) 数字签名要求:收方能确认发方的签名;发方签名后,不能否认自己的签名;发生矛盾时,公证人(第三方)能仲裁收发方的问题。为实现数字签名,一般要求用公共密钥解决。数字签名中很常用的就是散列(HASH)函数(也称消息摘要(Message Digest)、哈希函数或杂凑函数等),其输入为一可变长输入,返回一固定长度串,该串被称为输入的散列值(消息摘要)。日常生活中,通常通过对某一文档进行签名来保证文档的真实有效性,这可以对签字方进行约束,防止其抵赖行为,并把文档与签名同时发送以作为日后查证的依据。第4章 智能(CPU)卡技术 把HASH函数和公

107、钥算法结合起来,可以在提供数据完整性的同时,也可以保证数据的真实性。完整性保证传输的数据没有被修改,而真实性则保证是由确定的合法者产生的HASH,而不是由其他人假冒的。将这两种机制结合起来就可以产生所谓的数字签名(Digital Signature)。 具体算法为:将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要(Message Digest)值,在数学上保证,只要改动报文的任何一位,重新计算出的报文摘要就会与原先值不符,这样就保证了报文的不可更改;然后把该报文的摘要值用发送者的私人密钥加密,然后将该密文同原报文一起发送给接收者,所产生的报文即称数字签名。接收方收到数字签名后,用同

108、样的HASH算法对报文计算摘要值,然后与用发送者的公开密钥进行解密解开的报文摘要值相比较。如相等则说明报文确实来自发送者,因为只有用发送者的签名私钥加密的信息才能用发送者的公钥解开,从而保证了数据的真实性。 第4章 智能(CPU)卡技术 数字签名相对于手写签名在安全性方面具有如下好处:数字签名不仅与签名者的私有密钥有关,而且与报文的内容有关,因此不能将签名者对一份报文的签名复制到另一份报文上,同时也能防止篡改报文的内容。 第4章 智能(CPU)卡技术 3数字证书数字证书(Digital Certificate) 身份认证是信息系统安全的第一道门户,认证的方法有用password或个人身份号PI

109、N进行认证、利用生物特征认证、数字证书认证。前两种是大家比较熟悉的认证方法,这里对数字证书加以说明。 对数字签名和公开密钥加密技术来说,都会面临公开密钥的分发问题,即如果把一个用户的公钥以一种安全可靠的方式发送给需要的另一方,则要求管理这些公钥的系统必须是值得信赖的。在这样的系统中,如果Alice想要给Bob发送一些加密数据,则Alice需要知道Bob的公开密钥;如果Bob想要检验Alice发来的文档的数字签名,则Bob需要知道Alice的公开密钥。所以,必须有一项技术来解决公钥与合法拥有者身份的绑定问题。假设有一个人自称某一个公钥是自己的,必须有一定的措施和技术来对其进行验证。 第4章 智能

110、(CPU)卡技术 4.6 CPU卡的应用系统卡的应用系统 4.6.1 电子钱包系统的组成结构电子钱包系统的组成结构 图4.17 电子钱包系统结构图 第4章 智能(CPU)卡技术 (1) 主机系统:完成卡管理、帐务管理、业务批处理、特约商户管理、特约储蓄管理、终端管理等。 (2) 前置机:管理传输密钥、拆介及装配通信数据包、检查交易合法性、记录交易流水和日志、交易数据导向等。 (3) POS:可采用VeriFone 395D+P950+SC542作为直接处理交易的终端,并根据商户和储蓄网点分别开放不同的交易处理功能。商户POS功能包括消费、卡查明细及余额。储蓄POS功能包括启用、取消启用、存/取

111、款、卡查明细及余额、取消存款等。 (4) IC卡:选用CPU卡进行安全使用。 第4章 智能(CPU)卡技术 4.6.2 电子钱包中的文件结构电子钱包中的文件结构 图4.18 文件结构图 第4章 智能(CPU)卡技术 电子钱包中的基本数据文件格式如下: (1) 电子存折/电子钱包(ED/EP)应用的公共应用基本数据文件结构见表4.22,该文件可自由读,但需要安全信息才能修改,即可任意读取卡中余额,但要通过校验方可消费。 第4章 智能(CPU)卡技术 表4.22 ED/EP应用的公共应用基本数据文件结构 第4章 智能(CPU)卡技术 (2) 电子存折/电子钱包(ED/EP)应用的持卡者基本数据文件

112、结构见表4.23。 表表4.23 ED/EP应用的持卡者基本数据文件结构应用的持卡者基本数据文件结构 第4章 智能(CPU)卡技术 (3) 电子存折/电子钱包(ED/EP)交易明细文件结构见表4.24。 表4.24 ED/EP的交易明细文件结构 第4章 智能(CPU)卡技术 (4) KEY文件中必须安装用户PIN,用户的消费、圈存(将存折中的金额存入电子钱包中)、圈提(将电子钱包中的金额存入存折中)密钥以及发卡方维护用的应用维护、PIN解锁、PIN重装、修改透支限额密钥,见表4.25。 表4.25 ED/EP的KEY文件 第4章 智能(CPU)卡技术 4.6.3 电子钱包的发卡流程电子钱包的发

113、卡流程 对于不同的COS,其命令也不同,但结构不变,我们以明华澳汉科技有限公司的SmartCOS为例,叙述如何利用COS提供的各种命令来发卡,即在卡中建立上述电子钱包的文件结构。SmartCOS的发卡流程如图4.19所示。 第4章 智能(CPU)卡技术 图4.19 CPU卡文件建立流程图 第4章 智能(CPU)卡技术 (1) 建立 MF: 80 E0 00 00 18 (命令头) FF FF FF FF FF FF FF FF (8字节传输代码) 0F (在MF下建立文件的权限) 01(DIR文件的短文件标识符) 31 50 41 59 2E 53 59 53 2E 44 44 46 30 3

114、1(MF的文件名称) (2) 建立DIR文件: 80 E0 02 00 07 (命令头)00 01(文件标识符)02(文件类型) 0F(读权限)0F(写权限)01(记录数)1E(记录长度) (3) 写DIR文件(下划线表示该语句中的重要数据,下同): 00 E2 00 08 13 (命令头)61 11 4F 09 A0 00 00 00 03 86 98 07 01 (ADF名称)50 04 50 42 4F 43 第4章 智能(CPU)卡技术 (4) 建立ADF: 80 E0 01 00 0D (命令头)2F 01(文件标识符)0F(建立文件权限) 00(保留) A0 00 00 00 03

115、 86 98 07 01(ADF名称) (5) 建立DF下密钥文件: 80 E0 02 00 07(命令头)6F 02(密钥文件标识)05(文件类型)0F(增加新密钥的权限)00(保留) 0A(密钥个数)00(保留,系统自动设置为19) (6) 安装个人密码PIN: 80 D4 00 00 0A(命令头)01(密钥标识符)01(密钥版本号)00(算法标识)0B(密钥类型)0F(使用权限) 01(后续状态)1F(修改权限)33(错误计数器)12 34(个人密码)第4章 智能(CPU)卡技术 (7) 安装外部认证密钥(DEAK): 80 D4 00 00 18(命令头)01(密钥标识符) 01(密

116、钥版本号) 00(算法标识) 08(密钥类型) 0F(使用权限) 02(后续状态) 2F(修改权限) 33 (错误计数器)XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX(密钥内容) (8) 安装消费密钥DPK: 80 D4 00 00 18 (命令头) 02 (密钥标识符) 01 (密钥版本号)00(算法标识) 00 (密钥类型) 0F(使用权限) 00(后续状态) F0(修改权限) 33 (错误计数器)XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX(密钥内容) 第4章 智能(CPU)卡技术 (9) 安装

117、圈存密钥DLK:80 D4 00 00 18 (命令头) 01(密钥标识符) 01(密钥版本号) 00(算法标识) 01(密钥类型) 0F(使用权限) 00(后续状态) F0(修改权限) FF (错误计数器)XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX(密钥内容)(10) 安装圈提密钥DULK:80 D4 00 00 18 (命令头) 01(密钥标识符) 01(密钥版本号) 00(算法标识) 03(密钥类型) 0F(使用权限) 00(后续状态) F0(修改权限) FF (错误计数器)XX XX XX XX XX XX XX XX XX XX X

118、X XX XX XX XX XX(密钥内容)第4章 智能(CPU)卡技术 (11) 安装TAC的密钥DTK: 80 D4 00 00 18 (命令头) 01(密钥标识符) 01(密钥版本号) 00(算法标识) 02(密钥类型) 0F(使用权限) 00(后续状态) F0(修改权限) FF (错误计数器)XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX(密钥内容) (12) 安装应用维护密钥DAMK: 80 D4 00 00 18 (命令头) 01(密钥标识符) 01(密钥版本号) 00(算法标识) 05(密钥类型) 0F(使用权限) 00(后续状态)

119、 F0(修改权限) FF (错误计数器)XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX(密钥内容) 第4章 智能(CPU)卡技术 (13) 安装PIN解锁密钥DPUK: 80 D4 00 00 18 (命令头) 01(密钥标识符) 01(密钥版本号) 00(算法标识) 06(密钥类型) 0F(使用权限) 00(后续状态) F0(修改权限) FF (错误计数器)XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX(密钥内容) (14) 安装PIN重装密钥DRPK: 80 D4 00 00 18 (命令头)

120、01(密钥标识符) 01(密钥版本号) 00(算法标识) 07(密钥类型) 0F(使用权限) 00(后续状态) F0(修改权限) FF (错误计数器)XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX(密钥内容) 第4章 智能(CPU)卡技术 (15) 安装修改透支限额密钥DUK: 80 D4 00 00 18 (命令头) 01(密钥标识符) 01(密钥版本号) 00(算法标识) 04(密钥类型) 0F(使用权限) 00(后续状态) F0(修改权限) FF (错误计数器)XX XX XX XX XX XX XX XX XX XX XX XX XX X

121、X XX XX(密钥内容) (16) 建立公共应用基本文件: 80 E0 02 00 07 (命令头) 00 15 (文件标识符)00 (二进制文件类型)0F(读权限)0F(更新权限)00 1e(文件长度) 第4章 智能(CPU)卡技术 (17) 写公共应用基本数据文件: 00 D6 95 00 1E (命令头) A0 00 00 00 03 00 00 01(发卡方标识)03(应用类型标识)01(应用版本) 00 00 19 98 08 15 00 00 00 01(应用序列号) 20 00 10 01 (应用启用日期)20 02 12 31(应用有效日期)55 66 (发卡方自定义FCI数

122、据) (18) 建立持卡者基本数据文件: 80 E0 02 00 07 (命令头) 00 16 (文件标识符)00 (二进制文件类型)0F(读权限)0F(更新权限) 00 27(文件长度) 第4章 智能(CPU)卡技术 (19) 写卡持有者基本数据文件: 00 D6 96 00 27 (命令头) 00(卡类型标识) 00(本行职工标识) 53 41 4D 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00(持卡人姓名) 31 31 30 31 30 38 37 30 30 33 31 37 31 38 39 00(持卡人证件号码) 00 (持卡

123、人证件类型) (20) 建立交易明细文件: 80 E0 02 00 07 (命令头) 00 18(文件标识符) 03(循环记录文件类型)0F(读权限)F0(更新权限)0A 17(文件长度) 第4章 智能(CPU)卡技术 (21) 建立电子钱包EP文件: 80 E0 02 00 07 (命令头) 00 01(文件标识符)06(文件类型)00(保留)00(保留)00(保留)00(保留) (22) 建立电子存折ED文件: 80 E0 02 00 07 (命令头) 00 02(文件标识符)07(文件类型)00(保留)00(保留)00(保留)00(保留) (23) 结束建立DF: 80 E0 01 01

124、 02 (命令头) 2F 01(文件标识符) (24) 结束建立MF: 80 E0 00 01 02 (命令头) 3F 00(文件标识符) 第4章 智能(CPU)卡技术 4.6.4 电子钱包的消费交易流程电子钱包的消费交易流程 图4.20 消费交易流程 第4章 智能(CPU)卡技术 金融消费卡可以在终端进行联机或者脱机运行。不论是联机或脱机,都要用到安全存取模块PSAM,安全存取模块是对金融消费卡系统安全控制的一种机制。用户插入IC卡后,终端对IC卡进行初始化,并从IC卡中读取初始化数据,如卡的标识、应用类型、应用版本号、应用序列号、日期等数据。之后终端机对IC卡发出的初始数据进行检查,查看I

125、C卡是否在黑名单上,终端是否支持卡方标识符、应用类型和应用版本等。如果通过验证,终端向IC卡发出消费初始化命令,IC卡处理机产生随机数、用户卡交易序号、密码版本、算法标识等信息,并按标准生成一个校验码MAC1,终端收到校验码MAC1后,用于验证消费过程和IC卡的合法性。接下来终端对IC卡进行扣款处理,同时产生报文认证码MAC2,MAC2发到IC卡,IC卡用MAC2对主机合法性进行验证。这样,交易过程就得到了安全控制。 第4章 智能(CPU)卡技术 思思 考考 题题 4.1 什么是CPU卡?CPU卡芯片由哪几部分组成?4.2 为什么说CPU卡才是真正意义上的智能卡?4.3 试比较CPU卡与逻辑加密卡的主要差别。 4.4 对智能卡安全的威胁主要来自哪些方面? 第4章 智能(CPU)卡技术 4.5 说明智能卡与读写设备之间相互认证的方法,即读写器如何确定卡是真实的而不是伪造的,卡又如何确定读写器的真实性。 4.6 DES加密算法属于何种密码体制?请简单描述其加密、解密过程。 4.7 什么是数字签名? 4.8 什么是COS? 4.9 COS的文件分为哪几种类型? 4.10 COS应具备哪四种基本功能?

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号