View a markdown version of this page

生成 EMV MAC 以更改 PIN - AWS 支付密码学

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

生成 EMV MAC 以更改 PIN

EMV PIN 更改结合了两个操作:为发行者脚本生成 MAC 和加密新 PIN 以在 EMV 芯片卡上进行离线 PIN 更改。只有在芯片卡上存储密码的某些国家/地区才需要此命令(这在欧洲国家很常见)。这通常用于持卡人需要更改其 PIN,并且必须将新 PIN 与 MAC 一起安全地传输到信用卡以验证命令的真实性时。

注意

如果您只需要向卡发送命令而不需要更改 PIN,请考虑改用 ARPC CSU生成 EMV MAC 命令。

有关更多信息,请参阅 API 指南GenerateMacEmvPinChange中的。

生成 EMV MAC 和加密的 PIN 以更改 PIN

此操作需要两个密钥:一个用于生成 MAC 的 EMV 完整性密钥(KeyUsage: TR31 _E2_EMV_MKEY_INTEGRITY)和一个用于 PIN 加密的 EMV 机密密钥(: _E4_EMV_MKEY_MKEY_CENTRITY)。KeyUsage TR31典型的流程是,后端进程将生成 EMV PIN 更改脚本,其中包括颁发者脚本的 MAC 和加密的新 PIN。然后,命令和加密的 PIN 将发送到卡上,以更新离线 PIN。向卡发送命令超出了 AWS 支付加密的范围。

消息数据

消息数据包括发行者脚本的 APDU 命令。该服务不验证此字段的内容。

新的加密 PIN 块

新的加密 PIN 区块将发送到信用卡。必须使用 PIN 加密密钥将其作为加密值提供。

新的 PIN PEK 标识符

用于在新 PIN 传递给此 API 之前对其进行加密的密钥。

安全消息完整性密钥

用于生成 MAC 的 EMV 完整性密钥 (KeyUsage: TR31 _E2_EMV_MKEY_INTEGRITY)。

安全消息保密密钥

用于 PIN 加密的 EMV 机密密钥 (KeyUsage: TR31 _E4_EMV_MKEY_MKEY_Converity)。

MajorKeyDerivationMode

EMV 定义模式 A、B 或 C。模式 A 是最常见的, AWS 支付密码学目前支持模式 A 或模式 B。

Mode

加密模式,通常是用于密码更改操作的 CBC。

PAN

账号,通常在芯片字段 5A 或字 ISO8583 段 2 中可用,但也可以从卡系统中检索。

PanSequenceNumber

卡片序列号。如果未使用,请输入 00。

ApplicationCryptogram

这是每个会话的派生数据,通常是字段 9F26 中的最后一个 ARQC。

PinBlockLengthPosition

指定 PIN 区块长度的编码位置。通常设置为 “无”。如果您不确定,请查看您的信用卡计划规格。

PinBlockPaddingType

指定 PIN 块的填充类型。通常设置为 NO_PADDING。如果您不确定,请查看您的信用卡计划规格。

$ aws payment-cryptography-data generate-mac-emv-pin-change \ --message-data 00A4040008A000000004101080D80500000001010A04000000000000 \ --new-encrypted-pin-block 67FB27C75580EFE7 \ --new-pin-pek-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \ --pin-block-format ISO_FORMAT_0 \ --secure-messaging-confidentiality-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ --secure-messaging-integrity-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk \ --derivation-method-attributes 'EmvCommon={ApplicationCryptogram=1234567890123457,MajorKeyDerivationMode=EMV_OPTION_A,Mode=CBC,PanSequenceNumber=00,PinBlockLengthPosition=NONE,PinBlockPaddingType=NO_PADDING,PrimaryAccountNumber=171234567890123}'
{ "SecureMessagingIntegrityKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk", "SecureMessagingIntegrityKeyCheckValue": "08D7B4", "SecureMessagingConfidentialityKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "SecureMessagingConfidentialityKeyCheckValue": "C1EB8F", "Mac": "5652EEDF83EA0D84", "EncryptedPinBlock": "F1A2B3C4D5E6F7A8" }