PBOC30学习.docx

上传人:b****1 文档编号:10288531 上传时间:2023-05-24 格式:DOCX 页数:57 大小:38.34KB
下载 相关 举报
PBOC30学习.docx_第1页
第1页 / 共57页
PBOC30学习.docx_第2页
第2页 / 共57页
PBOC30学习.docx_第3页
第3页 / 共57页
PBOC30学习.docx_第4页
第4页 / 共57页
PBOC30学习.docx_第5页
第5页 / 共57页
PBOC30学习.docx_第6页
第6页 / 共57页
PBOC30学习.docx_第7页
第7页 / 共57页
PBOC30学习.docx_第8页
第8页 / 共57页
PBOC30学习.docx_第9页
第9页 / 共57页
PBOC30学习.docx_第10页
第10页 / 共57页
PBOC30学习.docx_第11页
第11页 / 共57页
PBOC30学习.docx_第12页
第12页 / 共57页
PBOC30学习.docx_第13页
第13页 / 共57页
PBOC30学习.docx_第14页
第14页 / 共57页
PBOC30学习.docx_第15页
第15页 / 共57页
PBOC30学习.docx_第16页
第16页 / 共57页
PBOC30学习.docx_第17页
第17页 / 共57页
PBOC30学习.docx_第18页
第18页 / 共57页
PBOC30学习.docx_第19页
第19页 / 共57页
PBOC30学习.docx_第20页
第20页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

PBOC30学习.docx

《PBOC30学习.docx》由会员分享,可在线阅读,更多相关《PBOC30学习.docx(57页珍藏版)》请在冰点文库上搜索。

PBOC30学习.docx

PBOC30学习

 

PBOC3.0学习

1、标准借贷记联机流程指令分析

2、标准借贷记脱机流程指令分析

3、电子现金余额重置流程指令分析

4、QPBOC脱机消费流程指令分析

 

目录:

1、PBOC3.0卡片指令集3

1.1、基本指令3

1.1.1、APPLICATIONBLOCK指令3

1.1.2、APPLICATIONUNBLOCK指令4

1.1.3、CARDBLOCK指令4

1.1.4、EXTERNALAUTHENTICATION指令5

1.1.5、GETCHALLENGE指令6

1.1.6、GETRESPONSE指令7

1.1.7、INTERNALAUTHENTICATION指令7

1.1.8、PINCHANGE/UNBLOCK指令8

1.1.9、READRECORD指令10

1.1.10、SELECT指令10

1.1.11、UPDATERECORD指令13

1.1.12、VERIFY指令13

1.1.13、GENERATEAC指令14

1.1.14、GETDATA指令16

1.1.15、GETPROCESSINGOPTION指令17

1.1.16、PUTDATA指令19

1.2、卡片个人化指令19

1.2.1、INITIALIZEUPDATE指令20

1.2.2、PERSONALAUTHENTICATE指令21

1.2.3、STOREDATA指令22

1.3、应用管理指令23

1.3.1、新增应用指令23

1.3.2、删除应用指令24

1.3.3、格式化应用指令(暂不支持)25

1.3.4、PSE目录数据文件追加说明25

1.3.5、PSE/PPSE文件控制信息更新指令26

1.3.6、PSE/PPSE删除应用入口信息27

1.3.7、PSE/PPSE修改应用优先级27

1.4、小额扩展应用专用指令28

1.4.1、READCAPPDATA命令28

1.4.2、UPDATECAPPDATACACHE命令29

1.4.3、APPENDRECORD(新增记录)命令31

1.4.4、GETTRANSPROVE命令32

2、PBOC3.0指令实例说明33

范围33

标准借记贷记联机33

标准借记贷记脱机35

电子现金余额重置35

QPBOC脱机消费36

1、PBOC3.0卡片指令集

本卡片支持《中国金融集成电路(IC)卡第五部分借记贷记应用卡片规范》附录B中列举的所有指令,除此之外,还增加了部分个人化指令和《中国金融集成电路(IC)卡规范第14部分:

非接触式IC卡小额支付扩展应用规范》中的扩展应用专用指令。

1.1、基本指令

1.1.1、APPLICATIONBLOCK指令

功能描述:

此命令是使当前被选择的应用无效的一个发卡行脚本命令。

在成功的APPLICATIONBLOCK命令之后:

——对选择(SELECT)命令,无效的应用应该返回状态字节“选择文件无效”(SW1SW2=“6283”);

——对生成应用密文(GENERATEAC)命令,一个无效的应用应该返回AAC代替AC作为响应。

——发卡行脚本命令中除APPLICATIONUNBLOCK命令可执行外,其他应返回状态字节6985

命令格式:

数据

描述

CLA

84

INS

1E

P1

00

P2

00

LC

04

DATA

4字节MAC值

LE

命令报文数据域:

命令报文的数据域中包含了根据JR/T0025.7中描述的安全报文格式编码的MAC数据。

响应报文返回的处理状态码:

SW1SW2

含义

9000

成功

6A81

卡片锁定,不支持此功能

6985

条件不满足

6988

MAC错误

6A86

P1P2参数错误

6E00

CLA指令类别错误

6700

数据域长度错误

1.1.2、APPLICATIONUNBLOCK指令

功能描述:

此命令是一个发卡行脚本命令,用来恢复当前被选择的应用。

当APPLICATIONUNBLOCK命令成功执行后,此前通过应用锁定附加在该应用上的限制被解除。

该命令一般只允许在特殊设备上执行。

命令格式:

数据

描述

CLA

84

INS

18

P1

00

P2

00

LC

04

DATA

MAC码

LE

命令报文数据域:

命令报文的数据域中包含了根据JR/T0025.7中描述的安全报文格式编码的MAC数据。

响应报文返回的处理状态码:

SW1SW2

含义

9000

成功

6A81

卡片锁定,不支持此功能

6985

条件不满足

6988

MAC错误

6A86

P1P2参数错误

6E00

CLA指令类别错误

6700

数据域长度错误

1.1.3、CARDBLOCK指令

功能描述:

此命令是一个发卡行脚本命令,用来永久地停止IC卡中所有的应用。

CARDBLOCK命令停止IC卡中所有的应用,包括那些被隐式选中的应用。

当一个CARDBLOCK命令成功后,所有随后的选择命令都将收到状态字节为“功能不支持”(SW1SW2=“6A81”)的反馈,并且不执行任何其它动作。

命令格式:

数据

描述

CLA

84

INS

16

P1

00

P2

00

LC

04

DATA

MAC码

LE

命令报文数据域:

命令报文的数据域中包含了根据JR/T0025.7中描述的安全报文格式编码的MAC数据。

响应报文返回的处理状态码:

SW1SW2

含义

9000

成功

6A81

卡片锁定,不支持此功能

6985

条件不满足

6988

MAC错误

6A86

P1P2参数错误

6E00

CLA指令类别错误

6700

数据域长度错误

1.1.4、EXTERNALAUTHENTICATION指令

功能描述:

要求IC卡中的应用认证一个密文。

是卡片对发卡行进行身份认证的一种途径。

一次交易中只执行最多一次外部认证命令。

该命令CLA=0x80时,为个人化建立安全通道时使用。

请参见个人化指令。

命令格式:

数据

描述

CLA

00

INS

82

P1

00

P2

00

LC

0A

DATA

发卡行认证数据

LE

命令报文的数据域:

按照JR/T0025的规定,本命令报文的数据域包含标签为'91'的值域,编码如下:

——前8个字节为必选的授权响应密文ARPC;

——附加的1-8个可选字节是专有数据。

在JR/T0025中,发卡行认证数据包括下列两个数据元:

——ARPC(8字节);

——授权响应码(2字节)。

响应报文返回的处理状态码:

SW1SW2

含义

9000

成功

6A81

卡片锁定,不支持此功能

6985

条件不满足

6300

验证失败

6A86

P1P2参数错误

6E00

CLA指令类别错误

6700

数据域长度错误

1.1.5、GETCHALLENGE指令

功能描述:

从卡片中获取一个随机数,支持4字节和8字节两种随机数。

命令格式:

数据

描述

CLA

00

INS

84

P1

00

P2

00

LE

04或08

响应报文:

卡片生成LE指定长度的随机数。

该随机数仅对下一个发出的命令有效。

响应报文返回的处理状态码:

SW1SW2

含义

9000

成功

6A81

卡片锁定,不支持此功能

6A86

P1P2参数错误

6E00

CLA指令类别错误

6700

数据域长度错误

1.1.6、GETRESPONSE指令

功能描述:

从卡片中取出前一条命令执行成功后等待返回的数据。

接触式卡片,应用锁定状态时选择应用,返回的文件控制信息,也是通过该指令获取。

命令格式:

数据

描述

CLA

00

INS

C0

P1

00

P2

00

LE

所取数据的长度

响应报文:

卡片需要取回的LE指定长度数据。

1.1.7、INTERNALAUTHENTICATION指令

功能描述:

该命令引发卡片使用从终端收到的随机数、数据和卡片中储存的

私钥来计算出“签名动态应用数据”的过程

命令格式:

数据

描述

CLA

00

INS

88

P1

00

P2

00

LC

认证数据的长度

DATA

认证数据的内容

LE

加密结果:

LC字节

命令报文的数据域:

命令报文的数据域包括该应用专有的与认证有关的数据。

它是根据JR/T0025.7中定义的动态数据认证数据对象列表(DDOL)规则来编码的。

为了确保内部认证(INTERNALAUTHENTICATE)命令返回数据在256字节限制内,签名的动态应用数据加上可选的TLV格式编码的长度应该限制在JR/T0025.7中定义的范围内。

响应报文的数据域:

响应报文的数据域包括一个BER-TLV编码数据对象。

这个数据对象的编码格式为:

响应报文中的数据对象是一个标签为'80'的基本数据对象。

数据域中包括签名动态应用数据。

签名动态应用数据按照JR/T0025.7中的规则定义。

1.1.8、PINCHANGE/UNBLOCK指令

功能描述:

是一个发卡行脚本命令。

它的目的是让发卡行解锁PIN或同时既改变PIN,也解锁PIN。

当PINCHANGE/UNBLOCK命令成功后,卡片将执行下列功能:

——PIN尝试记数器的值将复位到PIN尝试限制数(最大值);

——如果有请求,脱机PIN值将被设置为新的PIN值。

为了保密,如果本命令包含有PIN数据,则该数据应该加密。

注:

脱机PIN是存储在卡中与应用相关的PIN,它用来验证在验证命令中传来的PIN数据。

命令格式:

数据

描述

CLA

84

INS

24

P1

00

P2

00、01、02

LC

数据字节数

DATA

加密PIN数据成员(如果存在)和MAC数据

当P2为“00”,PIN尝试计数器复位。

当P2为“01”,PIN尝试计数器复位同时PIN修改,PIN修改时使用当前的PIN。

当P2为“02”,PIN尝试计数器复位同时PIN修改,PIN修改是不使用当前的PIN。

命令报文的数据域:

本命令报文的数据域包括PIN加密数据,后面可以加上4到8字节的安全报文MAC数据。

如果P2等于‘00’,参考PIN解锁,PIN尝试计数器被复位到PIN尝试限制数。

命令数据域只包含MAC。

因为PIN修改/解锁命令中不包含新的PIN值,所以PIN不会更新。

P2等于‘01’或‘02’的值的处理步骤见下面描述。

A、使用当前PIN修改PIN值

如果命令中的P2参数等于“01”,命令数据域包括PIN加密数据和MAC,PIN加密数据的产生过程按照下列步骤进行:

步骤1:

发卡行确定用来给数据进行加密的安全报文加密主密钥,并分散生成卡片的安全报文加密子密钥:

ENCUDK-A和ENCUDK-B;

步骤2:

生成过程密钥Ks;

步骤3:

生成8字节PIN数据块D3:

a)生成一个8字节数据块D1;

字节1

字节2

字节3

字节4

字节5

字节6

字节7

字节8

0

0

0

0

0

0

0

0

ENCUDK-A的最右边4个字节

b)生成第2个8字节数据块D2;

字节1

字节2

字节3

字节4

字节5

字节6

字节7

字节8

0

N

P

P

P

P

P/F

P/F

P/F

P/F

P/F

P/F

P/F

P/F

F

F

N:

新PIN的数字个数(16进制)

P:

新PIN值,长度4-12个数字(2-6字节)

c)D1和D2执行异或得到D3。

步骤4:

使用当前PIN生成8字节数据块D4;

字节1

字节2

字节3

字节4

字节5

字节6

字节7

字节8

P

P

P

P

P/0

P/0

P/0

P/0

P/0

P/0

P/0

P/0

0

0

0

0

步骤5:

将数据块D3和D4执行异或得到D;

步骤6:

用Ks对D进行加密,得到PIN加密数据。

B、不使用当前PIN修改PIN值

如果命令中的P2参数等于“02”,命令数据域包括PIN加密数据和MAC,PIN加密数据的产生过程按照下列步骤进行:

步骤1:

发卡行确定用来给数据进行加密的安全报文加密主密钥,并分散生成卡片的安全报文加密子密钥:

ENCUDK-A和ENCUDK-B;

步骤2:

生成过程密钥Ks;

步骤3:

生成8字节PIN数据块D3:

a)生成一个8字节数据块D1;

字节1

字节2

字节3

字节4

字节5

字节6

字节7

字节8

0

0

0

0

0

0

0

0

ENCUDK-A的最右边4个字节

b)生成第2个8字节数据块D2;

字节1

字节2

字节3

字节4

字节5

字节6

字节7

字节8

0

N

P

P

P

P

P/F

P/F

P/F

P/F

P/F

P/F

P/F

P/F

F

F

N:

新PIN的数字个数(16进制);

P:

新PIN值,长度4-12个数字(2-6字节)。

c)D1和D2执行异或得到D。

步骤4:

用Ks对D进行加密,得到PIN加密数据。

1.1.9、READRECORD指令

功能描述:

读记录(READRECORD)命令从一个线性文件中读一条文件记录。

从IC卡返回的响应中将包含这条被读出的记录。

命令格式:

数据

描述

CLA

00

INS

B2

P1

记录号

P2

见下表

LC

DATA

LE

‘00’

P2:

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

描述

X

X

X

X

X

-

-

-

SFI

-

-

-

-

-

1

0

0

读取P1指定的记录

响应报文数据域:

任何成功的读记录(READRECORD)命令的响应报文的数据域都包含读出的记录值。

对于在1-10范围内的SFI,这个记录是一个BER-TLV结构数据对象。

它按照下表编码。

‘70’

长度

记录模板

对于不在1-10范围内的SFI的读记录命令响应报文,不在JR/T0025的描述范围内。

1.1.10、SELECT指令

功能描述:

通过文件名或AID来选择IC卡中的PSE、DDF或ADF。

成功执行该命令设定PSE、DDF或ADF的路径。

后续命令作用于与用SFI选定的PSE、DDF或ADF相联系的AEF。

从IC卡返回的响应报文包含回送FCI。

命令格式:

数据

描述

CLA

00

INS

A4

P1

见下表

P2

见下表

LC

‘05’-‘10’

DATA

所选择的PSE名、DF名或AID

LE

P1:

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

描述

0

0

0

0

0

1

0

0

通过文件名(AID)选择DF,具体方式见P2

P2:

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

描述

0

0

0

0

0

0

0

0

第一个或仅有一个

0

0

0

0

0

0

1

0

下一个

回送的FCI信息格式:

PSE的FCI:

TAG

存在方式

6F

FCI模板(包含下面全部)

必选

84

DF名

必选

A5

FCI专用数据(包含下面全部)

必选

88

目录基本文件的SFI

必选

5F2D

首选语言

可选

‘9F11’

发卡行代码表索引

可选

‘BF0C’

发卡行自定义数据(FCI)

可选

DDF的FCI:

TAG

存在方式

6F

FCI模板(包含下面全部)

必选

84

DF名

必选

A5

FCI专用数据(包含下面全部)

必选

88

目录基本文件的SFI

必选

‘BF0C’

发卡行自定义数据(FCI)

可选

ADF的FCI:

TAG

存在方式

6F

FCI模板(包含下面全部)

必选

84

DF名

必选

A5

FCI专用数据(包含下面全部)

必选

‘50’

应用标签

可选

‘87’

应用优先指示符

可选

‘9F38’

PDOL

可选

‘5F2D’

首选语言

可选

‘9F11’

发卡行代码表索引

可选

‘9F12’

应用优先名称

可选

‘BF0C’

发卡行自定义数据(FCI)

可选

‘9F4D’

日志入口(属于发行自定数据)

可选

PPSE的FCI:

标签

长度

出现条件

“6F”

FCI模板

变长

M

“84”

“2PAY.SYS.DDF01”

0E

M

“A5”

FCI专用模板

变长

M

“BF0C”

FCI发卡行自定义数据

变长

M

“61”

目录入口

变长

M

“4F”

DF名(AID)

07-08

M

“50”

应用标签

04-10

O

“87”

应用优先指示器

01

C*

“61”

目录入口

变长

M

“4F”

DF名(AID)

07-08

M

“50”

应用标签

04-10

O

“87”

应用优先指示器

01

C*

“61”

目录入口

变长

M

“4F”

DF名(AID)

07-08

M

“50”

应用标签

04-10

O

“87”

应用优先指示器

01

C*

1.1.11、UPDATERECORD指令

功能描述:

用来修改文件中一条记录的内容,修改的内容在命令数据域中。

命令格式:

数据

描述

CLA

04

INS

DC

P1

记录号

P2

见下表

LC

更新记录+MAC的长度

DATA

记录数据和MAC

LE

P2:

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

描述

X

X

X

X

X

-

-

-

使用SFI选择EF

-

-

-

-

-

1

0

0

更新P1指定的记录

命令报文的数据域:

数据域中是要修改的新记录内容。

MAC长度为4到8字节。

算法见借记贷记应用卡片规范附录C。

1.1.12、VERIFY指令

功能描述:

卡片将命令报文数据域内的交易PIN数据和与该应用相关的参考PIN数据进行比较验证。

命令格式:

数据

描述

CLA

00

INS

20

P1

00

P2

00/80

LC

08

DATA

PIN值

LE

命令报文数据域:

明文脱机PIN(P2=80)数据块按如下格式组织。

C

N

P

P

P

P

P/F

P/F

P/F

P/F

P/F

P/F

P/F

P/F

F

F

其中:

名称

C

控制域值为

0010

N

PIN

长度值在

P

PIN

数字值在

P/F

PIN/填充位由

PIN

F

填充位值为

1111

P2=‘00’表示没有使用特别的限定符。

IC卡中处理验证命令的应用应该知道怎样明白无误的找到PIN数据。

1.1.13、GENERATEAC指令

功能描述:

用于传送交易相关数据到IC卡,IC卡计算并且返回一个密文。

生成应用的密文类型如下表:

类型

意义

应用认证密文(AAC)

拒绝交易

授权请求密文(ARQC)

请求联机授权

交易证书(TC)

批准交易

由IC卡返回的密文可能由于IC卡的内部处理过程而与命令报文中要求的密文不一样。

命令格式:

数据

描述

CLA

80

INS

AE

P1

引用控制参数

P2

00

LC

Var.

DATA

交易相关数据

LE

‘00’

GENERATEAC引用控制参数表:

b8

b7

B6

b5

b4

b3

b2

b1

意义

0

0

AAC

0

1

TC

1

0

ARQC

1

1

保留

0

未明确请求复合动态数据认证/应用密文生成

1

请求复合动态数据认证/应用密文生成

x

x

x

x

x

保留

命令报文数据域:

CDOL1/CDOL2数据列表中列出的终端数据对象连接而成。

各数据对象之间没有分隔符(标签和长度)。

它用来生成应用密文。

在发GAC命令之前,终端必须从卡片中读出CDOL列表,并且GAC命令数据域中的终端数据对象的连接顺序必须与他们在CDOL列表中的顺序一致。

响应报文数据域:

响应报文的数据域包含一个BER-TLV编码的数据对象。

这个数据对象需要按照以下两种格式之一编码。

格式1:

响应报文中的数据对象是一个标签为'80'的基本数据对象。

数据域由下表所示的数据对象连接而成,各数据对象之间没有分隔符(标签和长度)。

表GENERATEAC响应报文数据域格式1

存在性

密文信息数据

必备

应用交易计数器(ATC)

必备

应用密文(AC)

必备

发卡行应用数据

可选

格式2:

响应报文的数据对象是一个标签为'77'的结构数据对象。

数据域中可以包含多个BER-TLV编码对象,但是应包括密文信息数据、应用交易序号和由IC卡计算出的密文(可以是应用密文或专有密文)。

如果卡片不执行CDA,命令的响应报文数据域中的数据对象按照格式1编码。

如果卡片执行CDA,命令的响应报文数据域中的数据对象按照格式2编码。

表B.9密文信息数据编码

b8

b7

B6

b5

b4

b3

b2

b1

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

当前位置:首页 > 初中教育 > 学科竞赛

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2