Hasilkan MAC - AWS Kriptografi Pembayaran

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

Hasilkan MAC

Generate MAC API digunakan untuk mengautentikasi data terkait kartu, seperti melacak data dari strip magnetik kartu, dengan menggunakan kunci kriptografi yang dikenal untuk menghasilkan MAC (Message Authentication Code) untuk validasi data antara pihak pengirim dan penerima. Data yang digunakan untuk menghasilkan MAC termasuk data pesan, kunci enkripsi MAC rahasia dan algoritma MAC untuk menghasilkan nilai MAC yang unik untuk transmisi. Pihak penerima MAC akan menggunakan data pesan MAC yang sama, kunci enkripsi MAC, dan algoritma untuk mereproduksi nilai MAC lain untuk perbandingan dan otentikasi data. Bahkan jika satu karakter pesan berubah atau kunci MAC yang digunakan untuk verifikasi tidak identik, nilai MAC yang dihasilkan berbeda. API mendukung ISO 9797-1 Algoritma 1 dan ISO 9797-1 Algoritma 3 MAC (menggunakan kunci MAC statis dan kunci DUKPT turunan), kunci enkripsi HMAC dan EMV MAC untuk operasi ini.

Nilai masukan untuk message-data harus data HexBinary.

Untuk informasi selengkapnya tentang semua opsi untuk API ini, lihat GenerateMacdan VerifyMac.

Parameter opsional mac-length memungkinkan Anda untuk memotong nilai output (meskipun ini juga dapat dilakukan dalam kode Anda). Panjang 8 mengacu pada 8 byte atau 16 karakter hex.

Kunci MAC dapat dibuat dengan Kriptografi AWS Pembayaran dengan menelepon CreateKeyatau diimpor dengan menelepon ImportKey.

catatan

Algoritma CMAC dan HMAC tidak memerlukan padding. Semua yang lain mengharuskan data dimasukkan ke ukuran blok algoritme, yang merupakan kelipatan 8 byte (16 karakter hex) untuk TDES dan 16 byte (32 karakter hex) untuk AES.

Menghasilkan HMAC

Dalam contoh ini, kita akan menghasilkan HMAC (Hash Based Message Authentication Code) untuk otentikasi data kartu menggunakan algoritma HMAC_SHA256 HMAC dan kunci enkripsi HMAC. Kuncinya harus KeyUsage disetel ke TR31_M7_HMAC_KEY dan KeyModesOfUse keGenerate. Panjang hash (misalnya 256) didefinisikan ketika kunci dibuat dan tidak dapat dimodifikasi.

Parameter panjang mac-opsional akan memangkas output MAC, meskipun ini dapat dilakukan di luar layanan juga. Nilai ini dalam byte, sehingga nilai 16 akan mengharapkan string hex dengan panjang 32.

contoh
$ aws payment-cryptography-data generate-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 \ --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ --generation-attributes Algorithm=HMAC
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6", "KeyCheckValue": "2976E7", "Mac": "ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C" }

Hasilkan MAC menggunakan ISO 9797-1 Algoritma 3

Dalam contoh ini, kami akan menghasilkan MAC menggunakan ISO 9797-1 Algorithm 3 (Retail MAC) untuk otentikasi data kartu. Kuncinya harus KeyUsage disetel ke TR31_M3_ISO_9797_3_MAC_KEY dan KeyModesOfUse keGenerate.

contoh
$ aws payment-cryptography-data generate-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h \ --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ --generation-attributes="Algorithm=ISO9797_ALGORITHM3"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h", "KeyCheckValue": "2976EA", "Mac": "A8F7A73DAF87B6D0" }

Hasilkan MAC menggunakan CMAC

CMAC paling sering digunakan ketika kuncinya adalah AES tetapi juga mendukung TDES. Dalam contoh ini, kami akan menghasilkan MAC menggunakan CMAC (ISO 9797-1 Algorithm 5) untuk otentikasi data kartu dengan kunci AES. Kuncinya harus KeyUsage disetel ke TR31_M6_ISO_9797_5_CMAC_KEY dan KeyModesOfUse keGenerate.

contoh
$ aws payment-cryptography-data generate-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ --generation-attributes Algorithm="CMAC"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyCheckValue": "C1EB8F", "Mac": "1F8C36E63F91E4E93DF7842BF5E2E5F7" }

Hasilkan MAC menggunakan DUKPT CMAC

Dalam contoh ini, kita akan menghasilkan MAC menggunakan DUKPT (Derived Unique Key Per Transaction) dengan CMAC untuk otentikasi data kartu. Kunci harus KeyUsage disetel ke TR31_B0_BASE_DERIVATION_KEY dan KeyModesOfUse DeriveKey disetel ke true. Kunci DUKPT memperoleh kunci unik untuk setiap transaksi menggunakan Kunci Derivasi Dasar (BDK) dan Nomor Seri Kunci (KSN).

contoh
$ aws payment-cryptography-data generate-mac --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" --generation-attributes="DukptCmac={KeySerialNumber="932A6E954ABB32DD00000001",Direction=BIDIRECTIONAL}"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6", "KeyCheckValue": "C1EB8F" }