gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 04:55:27 25 4
gpt4 key购买 nike

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

现在的问题是在尝试更改 ATM 中的密码时。检查万事达卡文档时,会生成引脚更改脚本并且格式看起来没问题。



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

有了这个脚本,我这边看起来一切正常。现在我怀疑问题出在 MAC 生成上。

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

  • HA(生成 TAK(它是一个随 secret 钥,每次(每次 PIN 更改操作)我调用此命令时, key 都不同))- 输入是: key = PVK key (U+32Hex symbols under LMK)delimiter = ';'keySchemeTmk = 'U'keySchemeLmk = 'U' ;然后收到TAK key
  • M6(生成 MAC) - 输入是: modeFlag = 0 , inputFormatFlag = 2 , macSize = 1 , macAlgorithm = 3 , paddingMethod = 0 , keyType = '003' , key = 'Tak key from HA command' , messagelength = '0030' , message = '8424000210345755BFDC4F2903A392B3E1229A502C892680' , 8424000210 B3E1229A502C8926 422A8FF11056ACD4 上面的命令 + QCtransactionCounter 上面的命令截图 + QCtransactionCounter 类似的应用程序信息块 + 上面的命令截图这是截图中的示例)

  • 因此,当执行这两个命令时,我会收到 16 个十六进制符号 MAC,这正是我需要的。所以脚本是这样准备的: header => 8424000210 : pinBlock => B3E1229A502C8926 , MAC => 422A8FF11056ACD4{
    "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"
    }

    当我去 ATM 并更改 Pin 码时,我的 pin 码永远不会更改,并且我收到了撤销消息。

    任何人都可以解释那些标志是什么,我不确定我应该使用哪些标志(命令 M6):


    所以问题是:
  • HSM 命令 M6 是否正确命令为 PIN 更改/解锁脚本生成 MAC?它需要 TAK key ,而 MasterCard 文档明确指出应该使用 SMI key 完成。
  • 尝试检索 MAC 哈希时,我的 M6 命令配置是否不正确?


  • 更新


    我设法让 KU 命令工作,它给我带来了响应,但 PIN 更改本身没有成功完成。下面我将向您展示我对 KU 命令生成的请求:
    5678912345678912
    key 和敏感数据被屏蔽,因此在此处使用 PAN: 000 和序列号 pan 。对于第一个 pan2 参数,使用的最后 14 个 PAN 数字 + 序列号的最后两个数字。对于 ojit_code 参数,仅使用最后 12 个 PAN 数字,不包括校验位。

    我是否使用正确的 Offset 标志来用新的加密 pin 块替换明文数据中的 PIN 块?

    最佳答案

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

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

    对于发行人脚本生成目的,请查看 KY 命令,您应在其中提供完整性和 secret 性的主 key 以及 session key 派生所需的其他参数(包括 PAN、PSN、ATC 等)。 PIN 更改命令有一种特定模式,其中 PINblock 在 ZPK 或 TPK 下提供。

    您应该精确检查您为卡设置的安全参数,因为有不同的算法可用于导出 session key (验证您的卡应用程序设置是什么)。卡也可能支持不同的 MAC 长度,您也应该注意它。

    关于cryptography - MasterCard PIN 更改发行者脚本失败,用于 MAC 生成的 Thales HSM。电磁阀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57786051/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com