Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Hasilkan dan Verifikasi EMV MAC
EMV MAC adalah MAC menggunakan input dari kunci turunan EMV dan kemudian melakukan ISO9797 -3 (Retail) MAC atas data yang dihasilkan. EMV MAC biasanya digunakan untuk mengirim perintah ke kartu EMV seperti skrip buka blokir.
catatan
AWS Kriptografi Pembayaran tidak memvalidasi isi skrip. Silakan berkonsultasi dengan skema atau manual kartu Anda untuk detail tentang perintah tertentu untuk disertakan.
Untuk informasi selengkapnya, lihat MacAlgorithmEmvdi panduan API.
Buat kuncinya
$
aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E2_EMV_MKEY_INTEGRITY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{DeriveKey=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVN18"},{"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_E2_EMV_MKEY_INTEGRITY", "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.
Menghasilkan EMV MAC
Aliran tipikal adalah bahwa proses backend akan menghasilkan skrip EMV (seperti membuka blokir kartu), menandatanganinya menggunakan perintah ini (yang memperoleh kunci satu kali khusus untuk satu kartu tertentu) dan kemudian mengembalikan MAC. Kemudian perintah+MAC dikirim ke kartu yang akan diterapkan. Mengirim perintah ke kartu berada di luar cakupan Kriptografi AWS Pembayaran.
catatan
Perintah ini dimaksudkan untuk perintah ketika tidak ada data terenkripsi (seperti PIN) yang dikirim. EMV Encrypt dapat dikombinasikan dengan perintah ini untuk menambahkan data terenkripsi ke skrip penerbit sebelum memanggil perintah ini
- Data Pesan
Data pesan termasuk header dan perintah APDU. Meskipun ini dapat bervariasi berdasarkan implementasi, contoh ini adalah header APDU untuk membuka blokir (84 24 00 00 08), diikuti oleh ATC (0007) dan kemudian ARQC dari transaksi sebelumnya (999E57FD0F47CACE). Layanan tidak memvalidasi isi bidang ini.
- Mode Derivasi Kunci Sesi
Bidang ini mendefinisikan bagaimana kunci sesi dihasilkan. EMV_COMMON_SESSION_KEY umumnya digunakan untuk implementasi baru, sedangkan EMV2 000 | AMEX | MASTERCARD_SESSION_KEY | VISA dapat digunakan juga.
- MajorKeyDerivationMode
EMV Mendefinisikan Mode A, B atau C. Mode A adalah yang paling umum dan Kriptografi AWS Pembayaran saat ini mendukung mode A atau mode B.
- PANCI
Nomor rekening, biasanya tersedia di bidang chip 5A atau ISO8583 bidang 2 tetapi juga dapat diambil dari sistem kartu.
- PSN
Nomor urutan kartu. Jika tidak digunakan, masukkan 00.
- SessionKeyDerivationValue
Ini adalah data derivasi per sesi. Ini bisa berupa ARQC terakhir (ApplicationCryptogram) dari bidang 9F26 atau ATC terakhir dari 9F36 tergantung pada skema derivasi.
- Bantalan
Padding secara otomatis diterapkan dan menggunakan ISO/IEC 9797-1 metode padding 2.
$
aws payment-cryptography-data generate-mac --message-data 84240000080007999E57FD0F47CACE --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk --message-data 8424000008999E57FD0F47CACE0007 --generation-attributes EmvMac="{MajorKeyDerivationMode=EMV_OPTION_A,PanSequenceNumber='00',PrimaryAccountNumber='2235521304123282',SessionKeyDerivationMode=EMV_COMMON_SESSION_KEY,SessionKeyDerivationValue={ApplicationCryptogram='999E57FD0F47CACE'}}"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk", "KeyCheckValue": "08D7B4", "Mac":"5652EEDF83EA0D84" }