本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
驗證身份驗證請求(ARQC)密碼編譯
驗證身份驗證請求加密 API 用於驗證 AR QC。ARQC 的生成不在 AWS 支付密碼學的範圍內,通常在交易授權時間內在 EMV 芯片卡(或數字等效信息,例如移動錢包)上進行。ARQC 對每筆交易都是唯一的,旨在以密碼方式顯示卡的有效性,以及確保交易數據與當前(預期)交易完全匹配。
AWS 支付密碼學提供了多種用於驗證 ARQC 和生成可選 ARPC 值的選項,包括 EMV 4.4 第 2 冊
ARQC 密碼編譯通常需要以下輸入(儘管這可能因實現而異):
-
PAN-在 PrimaryAccountNumber 欄位中指定
-
PAN 序列號碼(PSN)— 在字段中指定 PanSequenceNumber
-
密鑰派生方法,例如通用會話密鑰(CSK)-在 SessionKeyDerivationAttributes
-
主密鑰派生模式(例如 EMV 選項 A)-在 MajorKeyDerivationMode
-
交易資料-在欄位中指定的各種交易、終端機和卡片資料的字串,例如「金額」和「日期 TransactionData 」
-
發行者主密鑰-用於導出用於保護個別交易並在字段中指定的密碼(AC)密鑰的 KeyIdentifier 主密鑰
建築物交易數據
交易資料欄位的確切內容 (和順序) 會因實作和網路配置而異,但建議的最小欄位 (和串連順序) 在 EMV 4.4 第 2 冊第 8.1.1 節-
-
000000001700-金額-12 個位置隱含兩位數十進制
-
000000000000-其他金額-12 位隱含兩位數十進制
-
0124-四位數國家代碼
-
輸出 (部分) 交易資料
交易資料填充
交易數據應在發送到服務之前填充。大多數配置使用 ISO 9797 方法 2 填充,其中一個十六進制字符串附加十六進制 80 後跟 00,直到該字段是加密塊大小的倍數; 8 個字節或 16 個字符的 TDES 和 16 個字節或 32 個字符為 AES。替代方法(方法 1)並不常見,但只使用 00 作為填充字符。
方法 1 填充
未填充字元:00000000170000000000000008400080008000084016051700000000093800000B03011203 (74 個字元或 37 個位元組)
已填充:00000000170000000000000008400080008000084016051700000000093800000B03011203 (80 個字元或 40 個位元組)
方法二填充
未填充字元:00000000170000000000000008400080008000084016051700000000093800000B1F220103000000 (80 個字元或 40 個位元組)
已填充:00000000170000000000000008400080008000084016051700000000093800000B1F220103000000 (88 個字元或 44 個位元組)
範例
美國簽證 CVN10
在這個例子中,我們將驗證使用簽證 CVN10 生成的 ARQC。
如果 AWS 支付密碼學能夠驗證 ARQC,則返回 http/200。如果 ARQC 未被驗證,它將返回一個 http/400 響應。
$
aws payment-cryptography-data verify-auth-request-cryptogram --auth-request-cryptogram D791093C8A921769 \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk \ --major-key-derivation-mode EMV_OPTION_A \ --transaction-data 00000000170000000000000008400080008000084016051700000000093800000B03011203000000 \ --session-key-derivation-attributes='{"Visa":{"PanSequenceNumber":"01" \ ,"PrimaryAccountNumber":"9137631040001422"}}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk", "KeyCheckValue": "08D7B4" }
CVN18 簽證及簽證 CVN22
在這個例子中,我們將驗證使用簽證 CVN18 或 CVN22 生成的 ARQC。CVN18 和 CVN22 之間的密碼編譯操作相同,但交易數據中包含的數據各不相同。與 CVN10 相比,即使使用相同的輸入也會產生完全不同的密碼編譯。
如果 AWS 支付密碼學能夠驗證 ARQC,則返回 http/200。如果 ARQC 未被驗證,它將返回一個 http/400。
$
aws payment-cryptography-data verify-auth-request-cryptogram \ --auth-request-cryptogram 61EDCC708B4C97B4 --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk \ --major-key-derivation-mode EMV_OPTION_A --transaction-data 00000000170000000000000008400080008000084016051700000000093800000B1F22010300000000000 \ 00000000000000000000000000000000000000000008000000000000000 --session-key-derivation-attributes='{"EmvCommon":{"ApplicationTransactionCounter":"000B", \ "PanSequenceNumber":"01","PrimaryAccountNumber":"9137631040001422"}}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk", "KeyCheckValue": "08D7B4" }