您好,欢迎访问三七文档
CPU基础知识第一部分CPU基础知识一、为什么用CPU卡IC卡从接口方式上分,可以分为接触式IC卡、非接触式IC卡及复合卡。从器件技术上分,可分为非加密存储卡、加密存储卡及CPU卡。非加密卡没有安全性,可以任意改写卡内的数据,加密存储卡在普通存储卡的基础上加了逻辑加密电路,成了加密存储卡。逻辑加密存储卡由于采用密码控制逻辑来控制对EEPROM的访问和改写,在使用之前需要校验密码才可以进行写操作,所以对于芯片本身来说是安全的,但在应用上是不安全的。它有如下不安全性因素:1、密码在线路上是明文传输的,易被截取;2、对于系统商来说,密码及加密算法都是透明的。3、逻辑加密卡是无法认证应用是否合法的。例如,假设有人伪造了ATM,你无法知道它的合法性,当您插入信用卡,输入PIN的时候,信用卡的密码就被截获了。再如INTENET网上购物,如果用逻辑加密卡,购物者同样无法确定网上商店的合法性。正是由于逻辑加密卡使用上的不安全因素,促进了CPU卡的发展。CPU卡可以做到对人、对卡、对系统的三方的合法性认证。二、CPU卡的三种认证CPU卡具有三种认证方法:持卡者合法性认证——PIN校验卡合法性认证——内部认证系统合法性认证——外部认证持卡者合法性认证:通过持卡人输入个人口令来进行验证的过程。系统合法性认证(外部认证)过程:系统卡,送随机数X[用指定算法、密钥]对随机数加密[用指定算法、密钥]解密Y,得结果Z比较X,Z,如果相同则表示系统是合法的;卡的合法性认证(内部认证)过程:系统卡送随机数X用指定算法、密钥]对随机数加密[用指定算法、密钥]解密Y,得结果Z比较X,Z,如果相同则表示卡是合法的;在以上认证过程中,密钥是不在线路上以明文出现的,它每次的送出都是经过随机数加密的,而且因为有随机数的参加,确保每次传输的内容不同。如果截获了没有任何意义。这不单单是密码对密码的认证,是方法认证方法,就象早期在军队中使用的密码电报,发送方将报文按一定的方法加密成密文发送出去,然后接收方收到后又按一定的方法将密文解密。通过这种认证方式,线路上就没有了攻击点,同时卡也可以验证应用的合法性;但是因为系统方用于认证的密钥及算法是在应用程序中,还是不能去除系统商的攻击性。在此,我们引进了SAM卡的概念。SAM卡是一种具有特殊性能的CPU卡,用于存放密钥和加密算法,可完成交易中的相互认证、密码验证和加密、解密运算,一般用作身份标志。由于SAM卡的出现,我们有了一种更完整的系统解决方案。在发卡时,我们将主密钥存入SAM卡中,然后由SAM卡中的主密钥,对用户卡的特征字节(如:应用序列号)加密生成子密钥,将子密钥注入用户卡中。由于应用序列号的唯一性,使每张用户卡内的子密钥都不同。密钥一旦注入卡中,则不会在卡外出现。在使用时,由SAM卡的主密钥生成子密钥存放在RAM区中,用于加密、解密数据。上述的认证过程就成为如下形式:系统合法性认证(外部认证)过程:SAM卡系统卡送随机数XSAM卡生成子密钥对随机数加密解密Y,得结果Z比较X,Z,如果相同则表示系统是合法的;卡的合法性认证(内部认证)过程:SAM卡系统卡送随机数X用指定算法、密钥]对随机数加密SAM卡解密Y,得结果Z比较X,Z,如果相同则表示卡是合法的;这样在应用程序中的密钥,就转移到了SAM卡中,认证成为卡——卡的认证,系统商不再存在责任。三、线路保护卡与外界进行数据传输时,若以明文方式传输,数据易被载获和分析。同时,也可以对传输的数据进行窜改,要解决这个问题,CPU卡提供了线路保护功能。线路保护分为两种,一是将传输的数据进行DES加密,以密文形式传输,以防止截获分析。二是对传输的数据附加MAC(安全报文鉴别码),接收方收到后首先进行校验,校验正确后才予以接收,以保证数据的真实性与完整性。四、硬件结构图EEPROM用于存放用户数据;ROM中用于存放COS操作系统,而RAM区中用于存放COS运行时的中间变量。COS(chipoperationsystem),就是芯片操作系统,类似于DOS和WINDWOS,没有COS的CPU卡就象没有DOS和WINDOWS的PC机一样无法使用。COS是在芯片出厂时由芯片供应商固化到ROM区的,这个过程就称之为掩膜。COS是CPU卡的核心部分,它和硬件一起实现CPU卡的安全性。第二部分SmartCOS简介SmartCOS是由明华公司自主开发的芯片操作系统,于1999年6月通过了人行认证。COS主要分为四部分:一、SMARTCOS的文件系统CPU卡是以文件方式来管理SmartCOS支持如下文件系统。1、文件可分为MF文件、DF文件、EF文件MF:主控文件,是整个文件系统的根,是唯一的,相当于根目录;DF:专用文件,相当于子目录,可用于存储某个应用的所有文件,DF下不可再建立DF。一个DF可以是一个应用,也可以多个DF用于同一个应用。EF:基本文件,用于存储各种应用数据和管理信息。2、EF从存储内容上分为两种:安全基本文件:用于存放密钥,每个目录下只能建立一个安全基本文件,密钥文件不能通过文件选择来选取,密钥内容不可以读出,但在满足条件时可使用和修改。工作基本文件:用于存放应用的实际数据,个数及大小只受空间限制。在满足条件时可读写。3、基本文件结构基本文件的结构可分为以下四种:二进制文件:数据以字节为单位进行读写,每次读写的长度不能超过110字节;可用于存储无序的数据。线性定长记录文件:每条记录为固定长度,可以通过记录号访问记录,记录范围不超过254;每条记录的长度不超过110字节,密钥文件就是线性定长记录文件,其每条记录长度固定为25外字节。可用于存放有规律定长的数据。线性变长记录文件:每条记录的长度可以各不相同,但最大长度不能超过110字节,可以通过记录号来访问。循环定长记录文件结构:相当于一个环形记录队列,按照先进先出的原则存储,最新写入的记录号为1,上一次写入的记录号为2,以此类推,记录写满后自动覆盖最早的记录。4、文件结构图在MF下可建立EF和DF;在DF下不可再建立DF,只能建立EF;KEY文件:用于控制MF下的文件的创建及读写数据文件密钥文件:用于控制DF下的文件的创建及访问数据文件(如钱包文件等)5、文件空间的计算MF的头文件长度为10个字节+文件名长度(5-16个字节)DF的头文件长度为10个字节+文件名长度EF文件所占空间:定义记录和循环记录文件的空间=文件头空间(10字节)+记录数*记录长度变长记录结构文件的空间=文件头空间(10个字节)+建立时申请的空间密钥文件所占空间=文件头空间(10个字节)+密钥个数*25个字节钱包文件的空间=文件头(10个字节)+文件体(17个字节)存折文件的空间=文件头(10个字节)+文件体(20个字节)建立了文件系统,那么怎样才能保证文件的安全,下面讲述安全系统。二、SMARTCOS的安全系统1、状态机即安全状态:是指卡在当前所处的一种安全级别,具有(0---F)16种安全状态。复位后自动设为0,当前应用的安全状态在被成功地选择或复位后自动清0。安全状态的改变必须通过密钥的认证来实现。**只有当前目录下的PIN核对和外部认证才能改变安全状态。2、安全属性即访问权限访问权限是在建立文件的时候指定的。它是一个区间的概念,例如,描述一个文件的读权限为XY,则表示当前应用的状态机(安全状态)M必须满足X=〈M=〈Y。如读权限设为2F,就表示当前的状态机(安全状态)达到2及以上就可以读这个文件。3、密钥与安全状态的关系每个密钥在建立的时候都定义了后续状态,即通过密钥认证后能达到的安全状态,在各种密钥中,只有PIN认证和外部认证才能改变当前目录的安全状态。4、安全状态与访问权限的关系(安全状态)使用权限--------密钥的使用------------后续状态------------文件读写取限5、安全状态只在当前目录下有效,一旦选择别的应用,状态机自动跳到最低权限0。各个目录之间的安全都是独立的。四、复位应答符号字节内容内容解释TS3B正向约定T06CTB1和TC1存在,历史字符为12个TB100无需额外的编程电压TC102需2个额外的保护时间T1-TCXX历史字符SMARTCOS历史字符的特定意义:符号字节内容内容解释T1XXSMARTCOS的版本号T2XX卡状态字节T386明华公司IC卡制造机构标识号T438T5-TCXX卡唯一序号卡状态字节描述如下:B7B6B5B4B3B2B1B0状态011XXXXXX001XXXXXXXXXXXX该卡已初始化,并成功该卡未被初始化该卡初始化过程被锁000000XX该卡未个人化0010XXXX该卡个人化未结束0110XXXX该卡个人化成功0001XXXX该卡个人化没有成功,卡被锁0111XXXX该卡个人化成功,卡被锁。卡片状态字节中有关于初始化、个人化的概念,我们从卡片的生命周期来看这两个概念,卡片的生命周期一般包括如下几部分:芯片芯片生产商掩膜COS芯片生产商封装成卡片卡片生产商卡片的初始化(COS启用)卡片生产商传输密码保护卡片的个人化卡片发行商卡片的使用卡片的使用者卡片的回收卡片发行商初始化过程就是激活COS,定义COS版本,经过这个过程COS才可以使用。个人化过程是指建立文件,写入用户数据等操作。卡片生产商在进行初始化后交付卡片发行商使用时,有传输密码保护。IC卡必须支持T=0或T=1的协议,但不是同时支持这两种协议,而终端则必须同时支持T=0和T=1的协议。T=0通讯协议是异步半双工字符传输协议;T=1通讯协议是异步半双工块传输协议;在ISO7816-3标准中,具体规定了这两种协议;IC卡所用的协议在TD1中指定,如果在复位应答信息中没有TD1,则表示用T=0的协议进行通讯。在复位应答后,IC卡和终端之间即用IC卡指定的协议进行通讯。五、指令解析在此,我们以一个电子钱包的应用为例,讲解SmartCOS的指令。1、文件结构:在人行规范中定义了如下文件结构:1)电子存折ED/电子钱包EP应用的公共应用基本数据文件文件结构:文件标识(SFI)‘21’(十进制)文件类型透明文件大小30文件存取控制读=自由改写=需要安全信息字节数据元长度1-8发卡方标识89应用类型标识110应用版本111-20应用序列号1021-24应用启用日期425-28应用有效日期429-30发卡方自定义FCI数据22)电子存折ED/电子钱包EP应用的持卡者基本数据文件文件标识(SFI)‘22’(十进制)文件类型透明文件大小39文件存取控制读=自由改写=需要安全信息字节数据元长度1卡类型标识12本行职工标识13-22持卡人姓名2023-38持卡人证件号码1639持卡人证件类型13)电子存折ED交易明细文件文件标识(SFI)‘24’(十进制)文件类型循环文件存取控制读=PIN保护改写=不允许记录大小23字节数据元长度1-2ED或EP联机或脱机交易序号23-5透支限额36-9交易金额410交易类型标识111-16终端机编号617-20交易日期(终端)421-23交易时间(终端)32、安全设计如下:1)核对口令后可以进行外部认证;2)01号外部认证密钥用于控制电子钱包的圈存;3)02号外部认证密钥用于控制基本文件的修改、密钥的修改;4)核对口令后可以进行消费。KEY文件安装如下密钥:KEY类型标识KID使用权限后续状态该KEY作用描述0B010F1个人密码PIN,用于个人密码校验0801112外部认证密钥,用于电子钱包圈存08021FF外部认证密钥,用于基本文件的修改、密钥的修改010122无圈存密钥,用于产生圈存MAC000201无电子钱包消费密钥,用于产生钱包消费MAC020103无TAC密钥,用于产生圈存、消费、取现、修改透支限额的TAC050133无应用维护密钥,用于产生应用锁定、应用解锁、卡片锁定、卡片锁定和读、更新二进制、记录命令的MAC3、指令序列:1)发卡过程,在卡上建立文件及安装密钥[CreateMF]APDU命令:80(CLA)e0(INS)00(P1)00(P2)18(Lc)ffffffffffffffff(8字节
本文标题:CPU基础知识
链接地址:https://www.777doc.com/doc-2906854 .html