本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
針對 PIN 變更產生 EMV MAC
EMV PIN 變更結合了兩個操作:為發行者指令碼產生 MAC,以及為 EMV 晶片卡上的離線 PIN 變更加密新的 PIN。只有在 PIN 碼存放在晶片卡上的某些國家/地區 (歐洲國家/地區通用),才需要此命令。當持卡人需要變更其 PIN 碼,且新的 PIN 碼必須與 MAC 一起安全地傳輸至卡片,以驗證命令的真實性時,通常會使用此功能。
注意
如果您只需要將命令傳送至卡片,但不需要變更 PIN 碼,請考慮改用 ARPC CSU 或產生 EMV MAC 命令。
如需詳細資訊,請參閱 API 指南中的 GenerateMacEmvPinChange。
針對 PIN 變更產生 EMV MAC 和加密 PIN
此操作需要兩個金鑰:用於產生 MAC 的 EMV 完整性金鑰 (KeyUsage: TR31_E2_EMV_MKEY_INTEGRITY),以及用於 PIN 加密的 EMV 機密性金鑰 (KeyUsage: TR31_E4_EMV_MKEY_CONFIDENTIALITY)。典型的流程是後端程序會產生 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_CONFIDENTIALITY)。
- MajorKeyDerivationMode
EMV 定義了模式 A、B 或 C。模式 A 是最常見的,而 AWS 付款密碼編譯目前支援模式 A 或模式 B。
- Mode
加密模式,通常是用於 PIN 變更操作的 CBC。
- PAN
帳戶號碼,通常可在晶片欄位 5A 或 ISO8583 欄位 2 中使用,但也可以從卡片系統擷取。
- PanSequenceNumber
卡片序號。如果未使用,請輸入 00。
- ApplicationCryptogram
這是每個工作階段衍生資料,通常是欄位 9F26 的最後一個 ARQC。
- PinBlockLengthPosition
指定 PIN 區塊長度的編碼位置。通常設定為 NONE。如果您不確定,請檢查您的卡片方案規格。
- 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" }