个人识别码(PIN)的加密

6926阅读 0评论2012-12-06 luozhiyong131
分类:嵌入式

7.个人识别码(PIN)的加密

如果支持脱机的加密方式的PIN校验,终端使用基于非对称的加密机制来执行对PIN的加密,以确保从PINPADIC卡之间传输PIN的安全。

更明确地说,IC卡必须拥有一个和PIN加密相关的公钥对。PINPAD或终端的一个安全的组件(非PINPAD)使用公钥加密PIN,私钥则被IC卡用来校验PIN

7.1密钥和证书

如果支持脱机PIN加密,IC卡必须拥有一个唯一的公钥对,这个公钥对由一个加密用的公钥和对应的解密用的私钥组成。本规范允许以下两种可能性。

1.        IC卡拥有一对专门的ICPIN加密私钥和公钥。ICPIN加密公钥存放在IC卡上的一张公钥证书中,存放的方式和第六章中指明的动态数据认证用的IC卡公钥完全相同。ICPIN加密公钥对有一个NPE字节的ICPIN加密公钥模,满足NPENINCA248, NI为发卡行公钥模,长度见6.1。如果NPE>(NI-42),那么ICPIN加密公钥模被分成两部分,一部分包含了模最高位的NI-42个字节(ICPIN加密公钥的最左边字节),另一部分包含了剩余的,模最低位的NPE-( NI-42)个字节(ICPIN加密公钥的剩余字节)。ICPIN加密公钥指数必须等于3216+1ICPIN加密公钥证书通过使用发卡行私钥并将附录A2.1指明的数字签名方案应用于表19中的数据而获得。

 

字段名

长度

描述

格式

证书格式

1

十六进制,值为‘04

b

应用主帐号

10

主帐号(在右边补上十六进制数‘F’)

cn 20

证书失效日期

2

MMYY,在此日期后,这张证书无效

n4

证书序列号

3

由发卡行分配给这张证书的,唯一的二进制数

b

哈什算法标识

1

标识用来在数字签名方案中产生哈什结果的哈什算法1

b

ICPIN加密公钥算法标识

1

标识使用在ICPIN加密公钥上的数字签名算法1

b

ICPIN加密公钥长度

1

标识ICPIN加密公钥的模的字节长度

b

ICPIN加密公钥指数长度

1

标识ICPIN加密公钥指数的字节长度

b

ICPIN加密公钥或ICPIN加密公钥的最左边字节

NI–42

如果NPENI–42,这个字段包含了在右边补上了NI–42–NPE 个值为‘BB’的字节的整个ICPIN加密公钥。

如果NPE>NI -42,这个字段包含了ICPIN加密公钥最高位的NI–42个字节[1]

b

ICPIN加密公钥的余项

0

NPE–NI+42

这个字段只有在NPE >NI –42才出现。它包含了ICPIN加密公钥最低位的NPE–NI+42个字节

b

ICPIN加密公钥指数

13

ICPIN加密公钥指数等于3216+1

b

19 – 需发卡行签名的ICPIN加密公钥数据(即哈什算法的输入)

2.        IC卡没有专门的ICPIN加密公钥对,但拥有如6.1节所指明的用于动态数据认证的IC卡公钥对。IC卡公钥如第6章的详细说明存放在IC卡上的一张公钥证书中

PIN加密的第一步是取得终端用以加密PIN的公钥。步骤如下。

1.        如果终端已经从IC卡获得表20指明的所有数据对象,那么终端用取得用于动态数据认证的IC卡公钥完全相同的方法取得ICPIN加密公钥(见第6章)。

2.        如果终端没有获得表20指明的所有数据对象,但已经获得表8中指明的所有数据对象,那么终端按第6章的描述取得IC卡公钥。

3.        如果上面的1,2两点没有满足,那么PIN加密失败。

标签

长度

格式

-

5

RID

b

8F

1

认证中心公钥索引

b

90

NCA

发卡行公钥证书

b

92

NI–NCA+36

发卡行公钥的余项(如果有)

b

9F32

13

发卡行公钥指数

b

9F2D

NI

ICPIN加密公钥证书

b

9F2E

13

ICPIN加密公钥指数

b

9F2F

NPE–NI+42

ICPIN加密公钥的余项(如果有)

b

20 – 取得ICPIN加密公钥所需的数据对象

的加密与校验

终端和IC卡之间对加密的PIN的交换和校验按以下的步骤进行。

1.        PIN以明文格式在PINPAD中输入并按本规范第三册的第I部分中的定义构造PIN 块。

2.        终端发出GET CHALLENGE命令给IC,IC卡获得一个8字节的不可预知数。

3.        终端生成一个由N-17个字节组成的随机填充字节,N是按照7.1节的详细说明取得的用来加密PIN的公钥的字节长度(N = NPE N = NIC)。

4.        使用按照7.1指明的PIN加密公钥或IC卡公钥,终端将附录B2.1.3指明的RSA恢复函数应用到表21指明的数据上,以获得加密PIN数据。

 

 

 

字段名

长度

描述

格式

数据头

1

十六进制,值为‘7F

b

PIN

8

PIN块方式存在的PIN

b

IC卡不可预知数

8

通过GET CHALLENGE命令从IC卡获得的不可预知数

b

随机填充字节

NIC–17

由终端生成的随机填充字节

b

21 - PIN加密需加密的数据

5.        终端发出一个验证(VERIFY)命令,其中包含了上一步得到的加密PIN数据。

6.        使用IC卡私钥,IC卡将附录B2.1.2指明的RSA签名函数应用到加密PIN数据,以恢复出表21指明的明文数据。

7.        IC卡检验恢复的不可预知数是否等于由IC卡在收到(GET CHALLENGE)命令时生成的不可预知数。如果不相等,那么PIN校验失败。

8.        IC卡检验恢复的数据头是否等于‘7F’。如果不相等,那么PIN校验失败。

9.        IC卡校验恢复的PIN块中的PIN与存放在IC卡中的PIN是否相同,如果不同,那么PIN校验失败。

如果所有以上的步骤都成功执行,那么加密PIN校验成功。

为了保证这套机制安全,步骤34必须在安全的环境下执行。安全的环境可以是

l           PINPAD本身。

l           终端的一个安全组件。这种情况下,PINPINPAD到安全组件的传输必须根据11.1节中的规定以确保安全。

 


[1] 正如附录A2.1中所见,签名的数据的NI–22个字节可以从签名中恢复。因为在表7中的第一个到第八个数据元素的长度是20个字节,在签名中还剩下NI–22–20 = NI–42个字节来存放数据

上一篇:动态数据认证
下一篇:应用密文和发卡行认证