PBOC2.0培训课件二:应用选择、初始化、读数据

更新时间:2023-09-16 22:27:01 阅读量: 高中教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1. 应用选择(M)

卡片的文件结构

IC 卡操作系统(COS)的文件系统是三层的物理结构,即由主控文件(MF,Master File)、专有文件(DF,Dedicated File)和基本文件(EF,Elementary File)组成一个类似于DOS的层次结构。

MF主控文件是整个文件系统的根。通过个人化建立起来的主控文件包括文件控制参数和文件安全属性等信息。

DIR文件就一个AEF文件(亦即EF),通过Read Record命令读到

一个ADF是一个应用或者是一组应用(贷记,借记,电子现金) EF基本文件存储了各种应用的数据和管理信息

卡片支持的应用选择方式:1.目录选择(可选) 2.AID选择(必须)

目录选择法:

在IC卡上,支付系统环境起始于一个名为“ 1PAY.SYS.DDF01” 的目录定义文件(DDF)。 支付系统目录是一个线性EF文件,用1到10的短文件标识符(SFI)标识。 从记录号1开始读直到返回6a83,

该目录附属于DDF,目录的SFI包含在DDF的文件控制信息中。

支付系统目录中的每一个记录都是一个结构数据对象,其值由如下所示的一个或多个目录的入口组成。

每个记录的格式:

BuildListByDDF(char *DDF) {

选择PSE(DDF); 读取SFI

While(读SFI中的记录不返回6A83) {

If(取tag70成功) {

If(取tag61成功)

{

If(取到的入口是4F )

{

对比终端AID,如果一致(部分匹配或完全匹配),就加入候选列表;

} }

实例命令:

}

else If(取到的入口是9D) { }

BuildListByDDF(9D的DDF值);//注意这里递归

}

C:00A404000E315041592E5359532E4444463031 R: 6F 15

84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 03 88 01 01 90 00

C:00b2010c00

R: 70 28 61 26 4F 08 A0 00 00 03 33 01 01 01 50 0A 50 42 4F 43 20 44 45 42 49 54 9F 12 0A 50 42 4F 43 20 44 45 42 49 54 87 01 01 90 00

C:00a4040008 A0 00 00 03 33 01 01 01

R:6F 45 84 08 A0 00 00 03 33 01 01 01 A5 39 87 01 01 5F 2D 02 7A 68 50 0A 50 42 4F 43 20 44 45 42 49 54 9F 11 01 01 9F 12 0A 50 42 4F 43 20 44 45 42 49 54 9F 38 09 9F 7A 01 9F 02 06 5F 2A 02 BF 0C 05 9F 4D 02 0B 0A 90 00

AID选择法

AID=RID(5B)+PIX(最大11B)

终端按照终端应用列表中包含的每个应用都向卡片发送一个SELECT命令。如果卡片响应表示卡也支持该应用,则终端把该应用加入到候选列表。

步骤:卡片收到终端发来选择(SELECT)命令,命令包括终端支持的应用列表中的 AID。卡片检查是否卡片中有匹配的 AID 应用(卡片 AID 长度可以长于终端 AID,但仍然认为匹配)。

AID匹配的例子

——如果 AID 匹配,卡片响应选择(SELECT)命令指明卡片支持此应用(SW1 SW2=“9000”);

——如果卡片找不到匹配的 AID,卡片响应状态字 SW1 SW2=“6A82”指明应用没找到;

——如果卡片锁定或不支持选择(SELECT)命令,卡片响应状态字 SW1 SW2=“6A81”指明交易应被中止

——如果匹配的卡片 AID 长度比终端 AID 长,卡片在选择(SELECT)命令响应信息中返回完整的 AID 给终端。 如果两者的AID相同,也返回完整的AID给终端。 ——卡片接收终端发来的第 2 个选择(SELECT)命令,参数 P2 设置为“02”表明卡片要选择有同样 AID 的下一个应用;

——卡片选择下一个应用并在选择(SELECT)命令响应中提供这一应用给终端; ——当卡片不再有应用有此 AID,卡片响应“6A82”表明所有匹配的应用都已经选择。

实例命令:

C:00a4040008 A0 00 00 03 33 01 01 01

R:6F 45 84 08 A0 00 00 03 33 01 01 01 A5 39 87 01 01 5F 2D 02 7A 68 50 0A 50 42 4F 43 20 44 45 42 49 54 9F 11 01 01 9F 12 0A 50 42 4F 43 20 44 45 42 49 54 9F 38 09 9F 7A 01 9F 02 06 5F 2A 02 BF 0C 05 9F 4D 02 0B 0A 90 00

C:00a4040007 A0 00 00 03 33 01 01

R:6F 45 84 08 A0 00 00 03 33 01 01 01 A5 39 87 01 01 5F 2D 02 7A 68 50 0A 50 42 4F 43 20 44 45 42 49 54 9F 11 01 01 9F 12 0A 50 42 4F 43 20 44 45 42 49 54 9F 38 09 9F 7A 01 9F 02 06 5F 2A 02 BF 0C 05 9F 4D 02 0B 0A 90 00

2. 应用初始化(M)

PDOL:

9F 38 09

9F 7A 01 电子现金指示器(0-不支持 1-支持) 9F 02 06 授权金额 5F 2A 02 货币代码

C:80A80000Lc 80Lc+Data

R:80 Lc+AIP(2B)+AFL(4B一组) 00a4040008A000000333010101 80 12 7C 00

08 01 02 00

10 01 04 01 用于静态数据认证的记录数

20 01 03 00 28 01 01 00 90 00

3. 读应用数据(M)

08 01 02 00 08 SFI 01~02

00

10 01 04 01 存放认证用静态数据记录的个数 20 01 03 00

28 01 01 00

SFI+记录号范围+是否用于数据认证

静态数据认证:

第一步,

CA(认证中心)公钥+发卡行公钥证书+RSA算法 = 发卡行公钥 第二步,

发卡行公钥+签名的静态应用数据+RSA算法 = 数据A

数据A主要包括两部分重要的数据, 一部分我把它叫做数据A1, 另外一部分叫哈希结果A. 第三步,

A1+终端在读数据阶段读到的需要参与认证的静态数据+Hash算法 = 哈希结果B

本文来源:https://www.bwwdw.com/article/7yoh.html

Top