MasterCard PIN 更改发行人脚本失败,Thales HSM 用于 MAC 生成。电磁阀

MasterCard PIN change issuer script fails, Thales HSM used for MAC generation. EMV

我使用 Thales Payshield 9000 HSM。到目前为止,所有的命令都有效,一切都达到了我想要的。

现在问题出在尝试更改 ATM 密码时。检查 MasterCard 文档时,已生成引脚更改脚本并且格式看起来正常。

我们的密码更改脚本如下所示:86158424000210PPPPPPPPPPPPPPPPMMMMMMMMMMMMMMMM 其中 16 个 P 字母是在 DE125 中发送的密码块,16 个 M 字母代表 MAC。 (我屏蔽了它们,但下面将使用示例中的数据)

从我这边看,使用这个脚本一切正常。现在我怀疑问题出在 MAC 代。

要生成 MAC,我们使用以下 HSM 命令:

因此,当执行这两个命令时,我收到了 16HEX 符号 MAC,这正是我所需要的。所以脚本是这样准备的:8424000210 B3E1229A502C8926 422A8FF11056ACD4: header => 8424000210, pinBlock => B3E1229A502C8926 and MAC => 422A8FF11056ACD4

当我去 ATM 更改 PIN 时,我的 PIN 从未更改过,我收到了撤销消息。

还有谁能解释一下这些标志是什么,我不确定我应该使用哪些(命令 M6):

所以问题是:


已更新

我设法使 KU 命令正常工作,它给我带来了响应,但 PIN 更改本身并未成功完成。下面我将向您展示我对 KU 命令生成的请求:

{ "mode_flag": "3", "scheme_id": "1", "mk_smi": "U25A22A6553A7F68ABACBD1E04BBD8889", "pan": "7891234567891200", "integrity_session_data": "55BFDC4F2903A392", "plaintext_message_data_length": "0018", "plaintext_message": "8424000210345755BFDC4F2903A392B3E1229A502C892680", "delimiter": ";", "confidentiality_session_data": "55BFDC4F2903A392", "offset": "000F", "cipher_text_message_data_length": "0008", "cipher_text_message_data": "B3E1229A502C8926", "delimiter2": ";", "source_pin_encryption_key_type": "0", "source_pin_encryption_key": "UBAAAA3488AA6AA564AAC8AA3AAC1AAA2", "source_pin_block_format_code": "01", "destination_pin_block_format_code": "35", "pan2": "891234567891" }

密钥和敏感数据被屏蔽,因此此处使用 PAN:5678912345678912 和序列号 000。对于第一个 pan 参数,使用了最后 14 个 PAN 数字 + 来自序列号的最后两个数字。对于 pan2 参数,仅使用最后 12 个 PAN 数字,不包括校验位。

我是否使用了正确的偏移标志来用新的加密密码块替换明文数据中的密码块?

回答你的问题,M6 不是你应该为脚本生成调用的。它纯粹是为了与接受设备或其他主机通信时的消息完整性。这就是为什么甚至没有派生卡片所需密钥的选项。

对于 EMV 卡,有单独的命令集用于验证 ARQC、生成 ARPC 以及生成发卡行脚本。

为了生成发行者脚本,请查看 KY 命令,您应在其中提供主密钥以确保完整性和机密性以及其他参数(包括 PAN、PSN、ATC , 等) 是会话密钥派生所必需的。 PIN 更改命令有一种特定模式,其中 PINblock 在 ZPK 或 TPK 下提供。

您应该准确检查您为卡设置的安全参数,因为有不同的算法可用于派生会话密钥(验证您的卡应用程序设置是什么)。卡片也可能支持不同的 MAC 长度,您也应该注意这一点。

我遇到了同样的问题。 我可能是错的,但与其他人交谈时我被告知 KU 是用于 CVN10 的那个。 现在,我还被告知只使用 KU 命令,因为它可以完成所需的一切。 这意味着它将使用存储在芯片上的密码转换来自 ATM 的新密码块。 我唯一看到的是你使用的目标 pinblock 是 35,现在是 Europay > MC Pay,但我认为你必须使用 34,这是离线清除 pin 的默认值。