嗨玩手游网

PCI认证中的安全密钥交换协议之TR-31最简单使用方法说明

案例介绍

VISA PCI 安全密钥交换格式 TR-31-2018 最简单的Key Block生成方式

TR-31 KeyBlock

使用密钥变量绑定的方法(Using Key Variant Binding Method)

首先说明一下 TR-13-2018 协议中的部分术语

1. Key Block Header (KBH)

2. Key Block Protection Key (KBPK)

3. Key Block Encryption Key (KBEK)

4. Key Block Authentication key (KBAK)

下图是一个标准的KBH

KBH

本案例使用的KBPK

KBPK hex "89E88CF7931444F334BD7547FC3F380C"

需要保护的Key如下

PIN key hex "F039121BEC83D26B169BDCD5B22AAF8F"

第一步:通过KBPK 衍生 KBEK 和 KBAK

KBEK 是KBPK通过与十六进制0x45(即字符‘E’)每一个byte进行异或(XOR)而派生得到。

如下:

KBEK 为 CCADC9B2D65101B671F83002B97A7D49 = (89E88CF7931444F334BD7547FC3F380C XOR 45454545454545454545454545454545)

KBAK 是KBPK通过与十六进制0x4D(即字符‘M’)每一个byte进行异或(XOR)而派生得到。

KBAK 为 C4A5C1BADE5909BE79F0380AB1727541 = (89E88CF7931444F334BD7547FC3F380C XOR 4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D)

第二步:配置KBH,例如如下图

本例KBH

KBH 字符串为 “A0072P0TE00E0000”

第三步:生成需要加密的秘钥数据(Key data)

例如 0080 F039121BEC83D26B169BDCD5B22AAF8F 720DF563BB07

0080 : 为整个key data 长度

F039121BEC83D26B169BDCD5B22AAF8F 为前面所说的需要保护的PIN key

720DF563BB07 为随机数

第四步:使用KBEK加密 key data

加密方式为TDEA CBC 模式,其中IV为KBH前8字节“A0072P0T”,其Hex为 4130303732503054

hex key data : 0080F039121BEC83D26B169BDCD5B22AAF8F720DF563BB07

TDEA CBC 加密后的数据为

Encrypted data: F5161ED902807AF26F1D62263644BD24192FDB3193C73030

第五步:计算KBH的MAC值

MAC计算所用的key为KBAK

MAC计算的数据为 KBH + 第四步中得到的Encrypted data。

Cleartext header: hex 41303037325030544530304530303030 (KBH hex 格式)

Encrypted data: hex F5161ED902807AF26F1D62263644BD24192FDB3193C73030

所用完整的MAC数如下:

41303037325030544530304530303030F5161ED902807AF26F1D62263644BD24192FDB3193C73030

TDEA CBC IV=0x00,计算得到的MAC值为 1CEE8701 73D7ADAF

计算的MAC值

第六步:得到完整的Key block

A0072P0TE00E0000 F5161ED902807AF26F1D62263644BD24192FDB3193C73030 1CEE8701

使用工具验证一下,能正常解码

key block解码

PCI认证中的安全密钥交换协议之TR-31最简单使用方法说明

案例介绍

VISA PCI 安全密钥交换格式 TR-31-2018 最简单的Key Block生成方式

TR-31 KeyBlock

使用密钥变量绑定的方法(Using Key Variant Binding Method)

首先说明一下 TR-13-2018 协议中的部分术语

1. Key Block Header (KBH)

2. Key Block Protection Key (KBPK)

3. Key Block Encryption Key (KBEK)

4. Key Block Authentication key (KBAK)

下图是一个标准的KBH

KBH

本案例使用的KBPK

KBPK hex "89E88CF7931444F334BD7547FC3F380C"

需要保护的Key如下

PIN key hex "F039121BEC83D26B169BDCD5B22AAF8F"

第一步:通过KBPK 衍生 KBEK 和 KBAK

KBEK 是KBPK通过与十六进制0x45(即字符‘E’)每一个byte进行异或(XOR)而派生得到。

如下:

KBEK 为 CCADC9B2D65101B671F83002B97A7D49 = (89E88CF7931444F334BD7547FC3F380C XOR 45454545454545454545454545454545)

KBAK 是KBPK通过与十六进制0x4D(即字符‘M’)每一个byte进行异或(XOR)而派生得到。

KBAK 为 C4A5C1BADE5909BE79F0380AB1727541 = (89E88CF7931444F334BD7547FC3F380C XOR 4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D)

第二步:配置KBH,例如如下图

本例KBH

KBH 字符串为 “A0072P0TE00E0000”

第三步:生成需要加密的秘钥数据(Key data)

例如 0080 F039121BEC83D26B169BDCD5B22AAF8F 720DF563BB07

0080 : 为整个key data 长度

F039121BEC83D26B169BDCD5B22AAF8F 为前面所说的需要保护的PIN key

720DF563BB07 为随机数

第四步:使用KBEK加密 key data

加密方式为TDEA CBC 模式,其中IV为KBH前8字节“A0072P0T”,其Hex为 4130303732503054

hex key data : 0080F039121BEC83D26B169BDCD5B22AAF8F720DF563BB07

TDEA CBC 加密后的数据为

Encrypted data: F5161ED902807AF26F1D62263644BD24192FDB3193C73030

第五步:计算KBH的MAC值

MAC计算所用的key为KBAK

MAC计算的数据为 KBH + 第四步中得到的Encrypted data。

Cleartext header: hex 41303037325030544530304530303030 (KBH hex 格式)

Encrypted data: hex F5161ED902807AF26F1D62263644BD24192FDB3193C73030

所用完整的MAC数如下:

41303037325030544530304530303030F5161ED902807AF26F1D62263644BD24192FDB3193C73030

TDEA CBC IV=0x00,计算得到的MAC值为 1CEE8701 73D7ADAF

计算的MAC值

第六步:得到完整的Key block

A0072P0TE00E0000 F5161ED902807AF26F1D62263644BD24192FDB3193C73030 1CEE8701

使用工具验证一下,能正常解码

key block解码

更多资讯
游戏推荐
更多+