Fungsi khusus visa - AWS Kriptografi Pembayaran

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Fungsi khusus visa

ARQC -/ CVN18CVN22

CVN18 dan CVN22 memanfaatkan metode CSK derivasi kunci. Data transaksi yang tepat bervariasi antara kedua metode ini - silakan lihat dokumentasi skema untuk detail tentang pembuatan bidang data transaksi.

ARQC - CVN10

CVN10 adalah metode Visa lama untuk transaksi EMV yang menggunakan derivasi kunci per kartu daripada derivasi sesi (per transaksi) dan juga menggunakan muatan yang berbeda. Untuk informasi tentang isi muatan, silakan hubungi skema untuk detailnya.

Buat kunci

$ 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":"CVN10"},{"Key":"CARD_BIN","Value":"12345678"}]'

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (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" } }

Perhatikan yang mewakili kunci, misalnya KeyArn arn:aws:payment-cryptography:us-east- 2:111122223333:key/pw3s6nl62t5ushfk. Anda membutuhkannya di langkah berikutnya.

Validasi ARQC

contoh

Dalam contoh ini, kami akan memvalidasi ARQC yang dihasilkan menggunakan Visa. CVN10

Jika Kriptografi AWS Pembayaran dapat memvalidasi ARQC, http/200 dikembalikan. Jika arqc tidak divalidasi, itu akan mengembalikan respons 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" }

3DS CAVV V7

Untuk transaksi Visa Secure (3DS), CAVV (Nilai Verifikasi Otentikasi Pemegang Kartu) dihasilkan oleh penerbit Access Control Server (ACS). CAVV adalah bukti bahwa otentikasi pemegang kartu terjadi, unik untuk setiap transaksi otentikasi dan disediakan oleh pihak pengakuisisi dalam pesan otorisasi. CAVV v7 mengikat data tambahan tentang transaksi dengan persetujuan termasuk elemen seperti nama pedagang, jumlah pembelian, dan tanggal pembelian. Dengan cara ini, ini secara efektif merupakan hash kriptografi dari muatan transaksi.

Secara kriptografis, CAVV V7 menggunakan algoritma CVV tetapi masukannya semuanya adalah changed/repurposed. Please consult appropriate third party/Visa dokumentasi tentang cara menghasilkan input untuk menghasilkan muatan CAVV V7.

Buat kuncinya

$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CAVV-V7"},{"Key":"CARD_BIN","Value":"12345678"}]'

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk", "KeyAttributes": { "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY", "KeyClass": "SYMMETRIC_KEY", "KeyAlgorithm": "TDES_2KEY", "KeyModesOfUse": { "Encrypt": false, "Decrypt": false, "Wrap": false, "Unwrap": false, "Generate": true, "Sign": false, "Verify": true, "DeriveKey": false, "NoRestrictions": false } }, "KeyCheckValue": "F3FB13", "KeyCheckValueAlgorithm": "ANSI_X9_24", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00", "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00" } }

Perhatikan KeyArn yang mewakili kunci, misalnya arn:aws:payment-cryptography:us-east- 2:111122223333:key/dnaeyrjgdjjtw6dk. Anda membutuhkannya di langkah berikutnya.

Hasilkan CAVV V7

contoh

Dalam contoh ini, kami akan menghasilkan CAVV V7 untuk transaksi tertentu dengan input sebagaimana ditentukan dalam spesifikasi. Perhatikan bahwa untuk algoritme ini, bidang dapat digunakan kembali/digunakan kembali, jadi tidak boleh diasumsikan bahwa label bidang cocok dengan input.

Untuk semua parameter yang tersedia, lihat CardVerificationValue1 di panduan referensi API.

$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk --primary-account-number=171234567890123 --generation-attributes CardVerificationValue1='{CardExpiryDate=9431,ServiceCode=431}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk", "KeyCheckValue": "F3FB13", "ValidationData": "491" }

Validasi CAVV V7

contoh

Untuk validasi, inputnya adalah CVK, nilai input yang dihitung dan CAVV yang disediakan selama transaksi untuk divalidasi.

Untuk semua parameter yang tersedia, lihat, CardVerificationValue1 di panduan referensi API.

catatan

CAVV bukan nilai yang dimasukkan pengguna (seperti CVV2) tetapi dihitung oleh penerbit ACS. Pertimbangan harus diberikan apakah harus selalu memvalidasi saat disediakan.

$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk --primary-account-number=171234567890123 --verification-attributes CardVerificationValue1='{CardExpiryDate=9431,ServiceCode=431} --validation-data 491
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk", "KeyCheckValue": "F3FB13", "ValidationData": "491" }

dCVV (Nilai Verifikasi Kartu Dinamis) - CVN17

DCVV (Dynamic Card Verification Value) adalah kriptogram dinamis khusus Visa yang digunakan untuk transaksi EMV nirkontak. Ini dikenal sebagai EMV awal dan memberikan keamanan yang ditingkatkan dengan menghasilkan nilai verifikasi unik untuk setiap transaksi. DCVV menggunakan input termasuk Primary Account Number (PAN), PAN Sequence Number (PSN), Application Transaction Counter (ATC), nomor tak terduga, dan data track. Ini masih digunakan di beberapa tempat, tetapi sebagian besar telah digantikan oleh algoritma lain seperti CVN18.

Untuk semua parameter yang tersedia, lihat DynamicCardVerificationValuedi panduan referensi API.

Buat kunci

$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"DCVV"},{"Key":"CARD_BIN","Value":"12345678"}]'

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc", "KeyAttributes": { "KeyUsage": "TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS", "KeyClass": "SYMMETRIC_KEY", "KeyAlgorithm": "TDES_2KEY", "KeyModesOfUse": { "Encrypt": false, "Decrypt": false, "Wrap": false, "Unwrap": false, "Generate": true, "Sign": false, "Verify": true, "DeriveKey": false, "NoRestrictions": false } }, "KeyCheckValue": "A8E4D2", "KeyCheckValueAlgorithm": "ANSI_X9_24", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "CreateTimestamp": "2025-02-02T11:45:30.648000-08:00", "UsageStartTimestamp": "2025-02-02T11:45:30.626000-08:00" } }

Perhatikan yang mewakili kunci, misalnya KeyArn arn:aws:payment-cryptography:us-east- 2:111122223333:key/mw7dn3qxvkfh8ztc. Anda membutuhkannya di langkah berikutnya.

Menghasilkan DCVV

contoh

Dalam contoh ini, kita akan menghasilkan dCVV untuk transaksi EMV contactless. Input termasuk PAN, Nomor Urutan PAN, Penghitung Transaksi Aplikasi, nomor tak terduga, dan data trek.

$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc \ --primary-account-number=5111112627662122 \ --generation-attributes DynamicCardVerificationValue='{ApplicationTransactionCounter=01,PanSequenceNumber=00,TrackData=12345,UnpredictableNumber=123}' \ --validation-data-length 5
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc", "KeyCheckValue": "A8E4D2", "ValidationData": "36667" }

Validasi dCVV

contoh

Dalam contoh ini, kami akan memvalidasi dCVV yang disediakan selama transaksi. Masukan yang sama yang digunakan untuk pembuatan harus disediakan untuk validasi.

Jika Kriptografi AWS Pembayaran dapat memvalidasi, http/200 dikembalikan. Jika nilai tidak divalidasi, itu akan mengembalikan respon http/400.

$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc \ --primary-account-number=5111112627662122 \ --validation-data=36667 \ --verification-attributes DynamicCardVerificationValue='{ApplicationTransactionCounter=01,PanSequenceNumber=00,TrackData=12345,UnpredictableNumber=123}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc", "KeyCheckValue": "A8E4D2" }