本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
驗證EMVARQC並生成 ARPC
ARQC(授權請求加密)是由EMV(芯片)卡生成的密碼編譯,用於驗證交易詳細信息以及授權卡的使用。它結合了來自卡,終端和交易本身的數據。
在後端的驗證時,相同的輸入被提供給 AWS 付款密碼學,密碼編譯在內部重新創建,並將其與交易提供的值進行比較。從這個意義上講,它類似於MAC. EMV4.4 書 2
個別信用卡方案可以指定要合併的其他交易欄位,或是這些欄位的顯示順序。其他(通常不推薦的)方案特定的派生方案也存在,並在本文檔的其他地方介紹。
若要取得更多資訊,請參閱API指南VerifyCardValidationData中的〈〉。
建立金鑰
$
aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{DeriveKey=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVN18"},{"Key":"CARD_BIN","Value":"12345678"}]'
回應會回應要求參數,包括用ARN於後續呼叫以及索引鍵檢查值 (KCV)。
{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk", "KeyAttributes": { "KeyUsage": "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS", "KeyClass": "SYMMETRIC_KEY", "KeyAlgorithm": "TDES_2KEY", "KeyModesOfUse": { "Encrypt": false, "Decrypt": false, "Wrap": false, "Unwrap": false, "Generate": false, "Sign": false, "Verify": false, "DeriveKey": true, "NoRestrictions": false } }, "KeyCheckValue": "08D7B4", "KeyCheckValueAlgorithm": "ANSI_X9_24", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "CreateTimestamp": "2024-03-07T06:41:46.648000-07:00", "UsageStartTimestamp": "2024-03-07T06:41:46.626000-07:00" } }
請注意代表密鑰的,例如 ARN:AW:支付密碼:美國東部 2:11112222333:密鑰/PW3s6n l62t5ushfk。KeyArn
在下一步中,您需要這一點。
產生一個 ARQC
由EMV卡片專門產生。ARQC因此, AWS 支付密碼學沒有用於生成這樣的有效載荷的設施。出於測試目的,可以在線上使用許多庫,這些庫可以生成適當的有效負載以及各種配置通常提供的已知值。
驗證 ARQC
如果 AWS 付款密碼編譯能夠驗證ARQC,則返回 http/200。ARPC(回應) 可以選擇性地提供,並在驗證之後包含在回應中。ARQC
$
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 00000000170000000000000008400080008000084016051700000000093800000B1F2201030000000000000000000000000000000000000000000000000000008000000000000000 --session-key-derivation-attributes='{"EmvCommon":{"ApplicationTransactionCounter":"000B", "PanSequenceNumber":"01","PrimaryAccountNumber":"9137631040001422"}}' --auth-response-attributes='{"ArpcMethod2":{"CardStatusUpdate":"12345678"}}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk", "KeyCheckValue": "08D7B4", "AuthResponseValue":"2263AC85" }