cpu卡学习资料docxWord文件下载.docx

上传人:b****6 文档编号:19775287 上传时间:2023-01-10 格式:DOCX 页数:27 大小:102.76KB
下载 相关 举报
cpu卡学习资料docxWord文件下载.docx_第1页
第1页 / 共27页
cpu卡学习资料docxWord文件下载.docx_第2页
第2页 / 共27页
cpu卡学习资料docxWord文件下载.docx_第3页
第3页 / 共27页
cpu卡学习资料docxWord文件下载.docx_第4页
第4页 / 共27页
cpu卡学习资料docxWord文件下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

cpu卡学习资料docxWord文件下载.docx

《cpu卡学习资料docxWord文件下载.docx》由会员分享,可在线阅读,更多相关《cpu卡学习资料docxWord文件下载.docx(27页珍藏版)》请在冰豆网上搜索。

cpu卡学习资料docxWord文件下载.docx

这不单单是密码对密码的认证,是方法认证方法,就象早期在军队中使用的密码电报,发送方将报文按一定的方法加密成密文发送出去,然后接收方收到后又按一定的方法将密文解密。

通过这种认证方式,线路上就没有了攻击点,同时卡也可以验证应用的合法性;

但是因为系统方用于认证的密钥及算法是在应用程序中,还是不能去除系统商的攻击性。

在此,我们引进了SAM卡的概念。

SAM卡是一种具有特殊性能的CPU卡,用于存放密钥和加密算法,可完成交易中的相互认证、密码验证和加密、解密运算,一般用作身份标志。

由于SAM卡的出现,我们有了一种更完整的系统解决方案。

在发卡时,我们将主密钥存入SAM卡中,然后由SAM卡中的主密钥,对用户卡的特征字节(如:

应用序列号)加密生成子密钥,将子密钥注入用户卡中。

由于应用序列号的唯一性,使每张用户卡内的子密钥都不同。

密钥一旦注入卡中,则不会在卡外出现。

在使用时,由SAM卡的主密钥生成子密钥存放在RAM区中,用于加密、解密数据。

上述的认证过程就成为如下形式:

SAM卡系统卡

SAM卡生成子密钥对随机数加密

解密Y,得结果Z

SAM卡解密Y,得结果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支持如下文件系统。

仁文件可分为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,当前应用的安全状态在被成功地选择或复位后自动清0o安全状态的改变必须通过密钥的认证来实现。

**只有当前目录下的PIN核对和外部认证才能改变安全状态。

2、安全属性即访问权限

访问权限是在建立文件的时候指定的。

它是一个区间的概念,例如,描述一个文件的读权限为XY,则表示当前应用的状态机(安全状态)M必须满足乂=<

M=〈Y。

如读权限设为2F,就表示当前的状态机(安全状态)达到2及以上就可以读这个文件。

3、密钥与安全状态的关系

每个密钥在建立的时候都定义了后续状态,即通过密钥认证后能达到的安全状态,在各种密钥中,只有PIN认证和外部认证才能改变当前目录的安全状态。

4、安全状态与访问权限的关系

(安全状态)

使用权限——密钥的使用后续状态文件读写取限

5、安全状态只在当前目录下有效,一旦选择别的应用,状态机自动跳到最低权限0。

各个目录之间的安全都是独立的。

四、复位应答

符号字节内容內容解释

TS3B正向约定

TO6CTB1和TC1存在,历史字符为12个

TB100无需额外的编程电压

TC102需2个额外的保护时间

T1-TCXX历史字符

SMARTCOS历史字符的特定意义:

T1XXSMARTCOS的版本号

T2XX卡状态字节

T386明华公司IC卡制造机构标识号

T438

T5-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)电子存折ED/电子钱包EP应用的公共应用基本数据文件

文件结构:

文件标识(SFI)'

21'

(十进制)

文件类型透明

文件大小30

文件存取控制读=自由改写=需要安全信息

字节数据元长度

I-8发卡方标识8

9应用类型标识1

10应用版本1

II-20应用序列号10

21-24应用启用日期4

25-28应用有效日期4

29-30发卡方自定义FCI数据2

2)电子存折ED/电子钱包EP应用的持卡者基本数据文件文件标识(SFI)'

22'

文件大小39

1卡类型标识1

2本行职工标识1

3-22持卡人姓名20

23-38持卡人证件号码16

39持卡人证件类型1

3)电子存折ED交易明细文件

24'

文件类型循环

文件存取控制读=戸11\1保护

改写=不允许

记录大小23

I-2ED或EP联机或脱机交易序号2

3-5透支限额3

6-9交易金额4

10交易类型标识1

II-16终端机编号6

17-20交易日期(终端)4

21-23交易时间(终端)3

2、安全设计如下:

1)核对口令后可以进行外部认证;

2)01号外部认证密钥用于控制电子钱包的圈存;

3)02号外部认证密钥用于控制基本文件的修改、密钥的修改;

4)核对口令后可以进行消费。

KEY文件安装如下密钥:

KEY类型标识KID使用权限后续状态该KEY作用描述

0B010F1个人密码PIN,用于个人密码校验

0801112外部认证密钥,用于电子钱包圈存

08021FF外部认证密钥,用于基本文件的修改、密钥的修改

010122无圈存密钥,用于产生圈存MAC

000201无电子钱包消费密钥,用于产生钱包消费MAC

020103无TAC密钥,用于产生圈存、消费、取现、修改透支限额的TAC

050133无应用维护密钥,用于产生应用锁定、应用解锁、卡片锁定、卡片锁定和读、更新二进制、记录命令的MAC

3、指令序列:

1)发卡过程,在卡上建立文件及安装密钥

[CreateMF]APDU命令:

80(CLA)eO(INS)00(P1)00(P2)18(Lc)ffffffffffffffff(8字节传输代码)ff(在MF下建立文件的安全属性)01(目录文件的短文件标识符)315041592e5359532e4444463031(创建的文件名称)

[CreateDF]APDU命令:

80(CLA)EO(INS)01(P1)00(P2)OD(Lc信息长度)2F01(文件标识符)ff(建立文件权限)00(COS保留)A00000000386980701

(ADF名称)

建立DF下密钥文件[CreateFile]APDU命令:

80(CLA)EO(INS)02(P1)00(P2)

07(文件信息长度)6F02(密钥文件标识)05(文件类型)FF(增加新密钥的权限)00(COS保留)09(记录数)19(记录长度):

安装个人密码PIN[WriteKey]APDU命令:

80(CLA)E8(INS)00(P1)00(P2)0A

(密钥信息长度)01(密钥标识符)01(密钥版本号)00(算法标识)0B(密钥类型)0F(使用权限)01(后续状态)2F(修改权限)33(错误计数器)1234(个人密码)

安装外部认证密钥(DEAK)[WriteKey]APDU命令:

80(CLA)E8(INS)00(P1)00(P2)18(密钥信息长度)01(密钥标识符)01(密钥版本号)00(算法标识)08

(密钥类型)11(使用权限)02(后续状态)FF(修改权限)33(错误计数器)XXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXX(密钥内容)

80(CLA)E8(INS)00(P1)00(P2)18(密钥信息长度)02(密钥标识符)01(密钥版本号)00(算法标识)08

(密钥类型)1F(使用权限)0F(后续状态)FF(修改权限)33(错误计数器)XXXX

o安装电子钱包EP的消费密钥DPK。

[WriteKey]APDU命令:

80(CLA)E8(INS)00

(P1)00(P2)18(密钥信息长度)02(密钥标识符)01(密钥版本号)00(算法标识)00(密钥类型)01(使用权限)00(后续状态)FF(修改权限)00(错误计

数器)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(密钥内容)

安装电子钱包的圈存密钥DLK[WriteKey]APDU命令:

80(CLA)E8(INS)00(P1)

00(P2)18(密钥信息长度)01(密钥标识符)01(密钥版本号)00(算法标识)01(密钥类型)22(使用权限)00(后续状态)FF(修改权限)00(错误计数器)XXXX

安装消费/取现中用来生成TAC的密钥DTK[WriteKey]APDU命令:

80(CLA)E8(INS)

00(P1)00(P2)18(密钥信息长度)01(密钥标识符)01(密钥版本号)00(算法标识)07(密钥类型)0F(使用权限)00(后续状态)FF(修改权限)00(错误计数器)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(密钥内容)

安装应用维护密钥DAMK[WriteKey]APDU命令:

80(CLA)E8(INS)00(P1)00(P2)18(密钥信息长度)01(密钥标识符)01(密钥版本号)00(算法标识)05(密钥类型)0F(使用权限)00(后续状态)FF(修改权限)00(错误计数器)XXXX

建立公共应用基本文件[CreateFile]APDU命令:

80(CLA)EO(INS)02(P1)00(P2)

07(Lc信息长度)0015(文件标识符)00(二进制文件类型)OF(读权限)FF(更新权限)001e(文件长度)

建立持卡者基本数据文件[CreateFile]APDU命令:

80(CLA)E0(INS)02(P1)00

(P2)07(文件信息长度)0016(文件标识符)00(二进制文件类型)OF(读权限)FF(更新权限)0027(文件长度)

建立交易明细文件[CreateFile]APDU命令:

80(CLA)E0(INS)02(P1)00(P2)

07(文件信息长度)0018(文件标识符)03(循环记录文件类型)1F(读权限)10(更新权限)0a17(文件长度)

写公共应用基本数据文件[UpdateBinary]APDU命令:

00(CLA)D6(INS)95(P1)00

(P2)1E(信息长度)A000000003000001(发卡方标识)03(应用类型标识)01(应用版本)00001998081500000001(应用序列号)20001001(应用启用日期)20021231(应用有效日期)5566(发卡方自定义FCI数据)

写卡持有者基本数据文件[UpdateBinary]APDU命令:

00(CLA)D6(INS)96(P1)00(P2)27(文件信息长度)00(卡类型标识)00(本行职工标识)53414d5000000000000000000000000000000000(持卡人姓名)31313031303837303033

313731383900(持卡人证件号码)00(持卡人证件类型)

建立电子钱包EP文件[CreateFile]APDU命令:

07(Lc)0001(文件标识符)06(文件类型)00(权限1)00(权限2)00(LEN1)00

(LEN2)

结束建立应用(DF)[CreateEnd]APDU命令:

80(CLA)E0(INS)01(P1)01(P2)

02(文件标识符长度)2F01(文件标识符)

结束建立MF[CreateEnd]APDU命令:

80(CLA)E0(INS)00(P1)01(P2)02

(文件标识符长度)3F00(文件标识符)

2)交易过程

在此,我们以圈存过程及消费过程为例:

A、圈存——将金额存入卡中

在圈存前必须先校对个人口令及01号外部认证;

选择应用[SelectFile]APDU命令:

00(CLA)A4(INS)00(P1)00(P2)02(长度)2F01(文件标识符)

校验PIN[Verify]APDU命令:

00(CLA)20(INS)00(P1)00(P2)02(长度)1234(PIN)

外部认证:

[

取随机数[GetChallenge]APDU命令:

00(CLA)84(INS)00(P1)00(P2)08

用01号外部认证密钥对随机数进行3DES加密;

外部认证[ExternalAuthentication]APDU命令:

00(CLA)82(INS)00(P1)01

(P2)08(长度)XXXXXXXXXXXXXXXX(加密后的随机数)

]

圈存:

初始化圈存[InitalizeForLoad]APDU命令:

80(CLA)50(INS)00(P1)02(P2)0B(长度)01(密钥标识符)00001000(交易金额)000000000001(终

端机编号)

如果初始化圈存成功,则应答数据域内容:

说明长度(字节)

电子存折或电子钱包旧余额4

电子存折或电子钱包联机交易序号2

密钥版本号1

算法标识1

伪随机数ICC4

MAC14

用圈存对应答内容(4字节伪随机数ICC+2字节电子存折或电子钱包联机交易序号+8000)

进行3DES加密生成过程密钥;

圈存[CreditForLoad]APDU命令:

80(CLA)52(INS)00(P1)00(P2)OB(LC)

YYYYMMDD(交易日期)HHMMSS(交易时间)XXXXXXXX(MAC2)

MAC2的计算:

初始值:

0000000000000000

密钥:

上面生成的过程密钥

生成MAC2的数据:

00001000(4字节交易金额)02(交易类型标识)000000000001

(6字节终端机编号)YYYYMMDD(交易日期)HHMMSS(交易时间)

如果圈存交易成功,电子钱包文件的联机交易序号加1,交易金额加在电子钱包的余额上,并且在交易明细文件中增加一条记录。

B、消费过程:

在消费之前先校验PIN:

00(CLA)20(INS)00(P1)00(P2)02(长度)12

34(PIN)

初始化消费[InitializeForPurchase]APDU命令:

80(CLA)50(INS)01(P1)02(P2)

OB(长度)01(消费密钥标识符)00000001(消费金额)000000000001(终端机编号)

如果初始化消费成功,则应答数据域内容:

透支限额3

消费[DebitForPurchase]APDU命令:

80(CLA)54(INS)01(P1)00(P2)OF(LC)

YYYYYYYY

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1