Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kunci ekspor
Daftar Isi
Ekspor kunci simetris
penting
Pastikan Anda memiliki versi terbaru AWS CLI sebelum memulai. Untuk memutakhirkan, lihat Menginstal file AWS CLI.
Ekspor kunci menggunakan teknik asimetris () TR-34
TR-34 menggunakan kriptografi asimetris RSA untuk mengenkripsi dan menandatangani kunci simetris untuk pertukaran. Enkripsi melindungi kerahasiaan, sementara tanda tangan memastikan integritas. Saat Anda mengekspor kunci, Kriptografi AWS Pembayaran bertindak sebagai host distribusi kunci (KDH), dan sistem target Anda menjadi perangkat penerima kunci (KRD).
catatan
Jika HSM Anda mendukung TR-34 ekspor tetapi tidak TR-34 mengimpor, kami sarankan Anda terlebih dahulu membuat KEK bersama antara HSM dan Kriptografi AWS Pembayaran Anda menggunakan. TR-34 Anda kemudian dapat menggunakan TR-31 untuk mentransfer kunci yang tersisa.
-
Inisialisasi proses ekspor
Jalankan get-parameters-for-export untuk menghasilkan key pair untuk ekspor kunci. Kami menggunakan key pair ini untuk menandatangani TR-34 payload. Dalam TR-34 terminologi, ini adalah sertifikat penandatanganan KDH. Sertifikat berumur pendek dan hanya berlaku untuk durasi yang ditentukan dalam
ParametersValidUntilTimestamp.catatan
Semua sertifikat dalam pengkodean base64.
contoh
$aws payment-cryptography get-parameters-for-export \--signing-key-algorithmRSA_2048 \--key-material-typeTR34_KEY_BLOCK{ "SigningKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFTZ0F3SUJ...", "SigningKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS....", "SigningKeyAlgorithm": "RSA_2048", "ExportToken": "export-token-au7pvkbsq4mbup6i", "ParametersValidUntilTimestamp": "2023-06-13T15:40:24.036000-07:00" } -
Impor AWS Sertifikat Kriptografi Pembayaran ke sistem penerima Anda
Impor rantai sertifikat dari langkah 1 ke sistem penerima Anda.
-
Siapkan sertifikat sistem penerimaan Anda
Untuk melindungi muatan yang ditransmisikan, pihak pengirim (KDH) mengenkripsinya. Sistem penerima Anda (biasanya HSM Anda atau HSM mitra Anda) perlu menghasilkan kunci publik dan membuat sertifikat kunci X.509 publik. Anda dapat menggunakan AWS Private CA untuk menghasilkan sertifikat, tetapi Anda dapat menggunakan otoritas sertifikat apa pun.
Setelah Anda memiliki sertifikat, impor sertifikat root ke Kriptografi AWS Pembayaran menggunakan ImportKey perintah. Atur
KeyMaterialTypekeRootCertificatePublicKeydanKeyUsageTypekeTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE.Kami menggunakan
TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATUREsebagaiKeyUsageTypekarena ini adalah kunci root yang menandatangani sertifikat daun. Anda tidak perlu mengimpor sertifikat daun ke dalam Kriptografi AWS Pembayaran — Anda dapat meneruskannya secara inline.catatan
Jika sebelumnya Anda mengimpor sertifikat root, lewati langkah ini. Untuk sertifikat perantara, gunakan
TrustedCertificatePublicKey. -
Ekspor kunci Anda
Panggil ExportKey API dengan
KeyMaterialTypeset keTR34_KEY_BLOCK. Anda perlu menyediakan:-
KeYarn dari akar CA dari langkah 3 sebagai
CertificateAuthorityPublicKeyIdentifier -
Sertifikat daun dari langkah 3 sebagai
WrappingKeyCertificate -
KeYarn (atau alias) dari kunci yang ingin Anda ekspor sebagai
--export-key-identifier -
Token ekspor dari langkah 1
contoh
$aws payment-cryptography export-key \--export-key-identifier"example-export-key" \--key-material'{"Tr34KeyBlock": { \ "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/4kd6xud22e64wcbk", \ "ExportToken": "export-token-au7pvkbsq4mbup6i", \ "KeyBlockFormat": "X9_TR34_2012", \ "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFXZ0F3SUJBZ0lSQ..."} \ }'{ "WrappedKey": { "KeyMaterial": "308205A106092A864886F70D010702A08205923082058...", "WrappedKeyMaterialFormat": "TR34_KEY_BLOCK" } } -
Kunci ekspor menggunakan teknik asimetris (ECDH)
Elliptic Curve Diffie-Hellman (ECDH) menggunakan kriptografi asimetris ECC untuk membuat kunci bersama antara dua pihak tanpa memerlukan kunci yang telah dipertukarkan sebelumnya. Kunci ECDH bersifat sementara, jadi Kriptografi AWS Pembayaran tidak menyimpannya. Dalam proses ini, satu kali KBPK/KEKditurunkan menggunakan ECDH. Kunci turunan itu segera digunakan untuk membungkus kunci yang ingin Anda transfer, yang bisa berupa KBPK lain, BDK, kunci IPEK, atau jenis kunci lainnya.
Saat mengekspor, Kriptografi AWS Pembayaran disebut sebagai Pihak U (Inisiator) dan sistem penerima dikenal sebagai Party V (Responder).
catatan
ECDH dapat digunakan untuk menukar jenis kunci simetris apa pun, tetapi ini adalah satu-satunya pendekatan yang dapat digunakan untuk mentransfer AES-256 kunci jika KEK belum ditetapkan.
-
Hasilkan Pasangan Kunci ECC
Panggilan
create-keyuntuk membuat key pair ECC untuk proses ini. API ini menghasilkan key pair untuk impor atau ekspor kunci. Saat pembuatan, tentukan jenis kunci apa yang dapat diturunkan menggunakan kunci ECC ini. Saat menggunakan ECDH untuk menukar (membungkus) kunci lainnya, gunakan nilai.TR31_K1_KEY_BLOCK_PROTECTION_KEYcatatan
Meskipun ECDH tingkat rendah menghasilkan kunci turunan yang dapat digunakan untuk tujuan apa pun, Kriptografi AWS Pembayaran membatasi penggunaan kembali kunci yang tidak disengaja untuk berbagai tujuan dengan mengizinkan kunci hanya digunakan untuk satu jenis kunci turunan.
$aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=ECC_NIST_P256,KeyUsage=TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT,KeyClass=ASYMMETRIC_KEY_PAIR,KeyModesOfUse='{DeriveKey=true}' --derive-key-usage "TR31_K1_KEY_BLOCK_PROTECTION_KEY"{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv", "KeyAttributes": { "KeyUsage": "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT", "KeyClass": "ASYMMETRIC_KEY_PAIR", "KeyAlgorithm": "ECC_NIST_P256", "KeyModesOfUse": { "Encrypt": false, "Decrypt": false, "Wrap": false, "Unwrap": false, "Generate": false, "Sign": false, "Verify": false, "DeriveKey": true, "NoRestrictions": false } }, "KeyCheckValue": "2432827F", "KeyCheckValueAlgorithm": "CMAC", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "CreateTimestamp": "2025-03-28T22:03:41.087000-07:00", "UsageStartTimestamp": "2025-03-28T22:03:41.068000-07:00" } } -
Dapatkan Sertifikat Kunci Publik
Hubungi
get-public-key-certificateuntuk menerima kunci publik sebagai X.509 sertifikat yang ditandatangani oleh CA akun Anda yang khusus untuk Kriptografi AWS Pembayaran di wilayah tertentu.contoh
$aws payment-cryptography get-public-key-certificate \--key-identifierarn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." } -
Instal sertifikat publik pada sistem rekanan (Partai V)
Dengan banyak HSM, Anda perlu menginstal, memuat, atau mempercayai sertifikat publik yang dihasilkan pada langkah 1 untuk membuat kunci. Ini dapat mencakup seluruh rantai sertifikat atau hanya sertifikat root, tergantung pada HSM. Konsultasikan dokumentasi HSM Anda untuk instruksi khusus.
-
Hasilkan key pair ECC pada sistem sumber dan berikan rantai sertifikat AWS Kriptografi Pembayaran
Dalam ECDH, masing-masing pihak menghasilkan key pair dan menyetujui common key. Agar Kriptografi AWS Pembayaran mendapatkan kunci, diperlukan kunci publik rekanan dalam format kunci X.509 publik.
Saat mentransfer kunci dari HSM, buat key pair pada HSM itu. Untuk HSM yang mendukung blok kunci, header kunci akan terlihat mirip
D0144K3EX00E0000dengan. Saat membuat sertifikat, Anda biasanya menghasilkan CSR di HSM, dan kemudian HSM, pihak ketiga, atau layanan seperti AWS Private CA dapat menghasilkan sertifikat.Muat sertifikat root ke Kriptografi AWS Pembayaran menggunakan
importKeyperintah dengan KeyMaterialType dariRootCertificatePublicKeydan KeyUsageType dari.TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATUREUntuk sertifikat perantara, gunakan
importKeyperintah dengan KeyMaterialType dariTrustedCertificatePublicKeydan KeyUsageType dariTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE. Ulangi proses ini untuk beberapa sertifikat perantara. Gunakan sertifikat impor terakhir dalam rantai sebagai masukan ke perintah ekspor berikutnya.KeyArncatatan
Jangan mengimpor sertifikat daun. Berikan langsung selama perintah ekspor.
-
Dapatkan kunci dan kunci ekspor dari AWS Kriptografi Pembayaran
Saat mengekspor, layanan memperoleh kunci menggunakan ECDH dan kemudian segera menggunakannya sebagai KBPK untuk membungkus kunci untuk mengekspor menggunakan. TR-31 Kunci yang akan diekspor dapat berupa kunci TDES atau AES yang tunduk pada kombinasi yang TR-31 valid, selama kunci pembungkus setidaknya sekuat kunci yang akan diekspor.
$aws payment-cryptography export-key \ --export-key-identifier arn:aws:payment-cryptography:us-west-2:529027455495:key/e3a65davqhbpjm4h \ --key-material='{ "DiffieHellmanTr31KeyBlock": { "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/swseahwtq2oj6zi5", "DerivationData": { "SharedInformation": "ADEF567890" }, "DeriveKeyAlgorithm": "AES_256", "KeyDerivationFunction": "NIST_SP800", "KeyDerivationHashAlgorithm": "SHA_256", "PrivateKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv", "PublicKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FUR..." } }'{ "WrappedKey": { "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK", "KeyMaterial": "D0112K1TB00E00007012724C0FAAF64DA50E2FF4F9A94DF50441143294E0E995DB2171554223EAA56D078C4CFCB1C112B33BBF05597EE700", "KeyCheckValue": "E421AD", "KeyCheckValueAlgorithm": "ANSI_X9_24" } } -
Dapatkan kunci satu kali menggunakan ECDH pada Party V HSM
Banyak HSM dan sistem terkait mendukung pembuatan kunci menggunakan ECDH. Tentukan kunci publik dari langkah 1 sebagai kunci publik dan kunci dari langkah 3 sebagai kunci pribadi. Untuk opsi yang diizinkan, seperti metode derivasi, lihat panduan API.
catatan
Parameter derivasi seperti tipe hash harus sama persis di kedua sisi. Jika tidak, Anda akan menghasilkan kunci yang berbeda.
-
Kunci impor ke sistem target
Terakhir, impor kunci dari Kriptografi AWS Pembayaran menggunakan TR-31 perintah standar. Tentukan kunci turunan ECDH sebagai KBPK dan gunakan blok TR-31 kunci yang sebelumnya diekspor dari Kriptografi Pembayaran. AWS
Kunci ekspor menggunakan teknik asimetris (RSA Wrap)
Bila TR-34 tidak tersedia, Anda dapat menggunakan RSA wrap/unwrap untuk pertukaran kunci. Seperti TR-34, metode ini menggunakan kriptografi asimetris RSA untuk mengenkripsi kunci simetris. Namun, bungkus RSA tidak termasuk:
-
Penandatanganan muatan oleh pihak pengirim
-
Blok kunci yang menjaga integritas metadata kunci selama transportasi
catatan
Anda dapat menggunakan bungkus RSA untuk mengekspor TDES dan AES-128 kunci.
-
Buat kunci RSA dan sertifikat pada sistem penerima Anda
Buat atau identifikasi kunci RSA untuk menerima kunci yang dibungkus. Kami membutuhkan kunci dalam format X.509 sertifikat. Pastikan sertifikat ditandatangani oleh root certificate yang dapat Anda impor ke AWS Payment Cryptography.
-
Impor sertifikat publik root ke AWS Kriptografi Pembayaran
Gunakan import-key dengan
--key-materialopsi untuk mengimpor sertifikat$aws payment-cryptography import-key \--key-material='{"RootCertificatePublicKey": { \ "KeyAttributes": { \ "KeyAlgorithm": "RSA_4096", \ "KeyClass": "PUBLIC_KEY", \ "KeyModesOfUse": {"Verify": true}, \ "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"}, \ "PublicKeyCertificate": "LS0tLS1CRUdJTiBDRV..."} \ }'{ "Key": { "CreateTimestamp": "2023-09-14T10:50:32.365000-07:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/nsq2i3mbg6sn775f", "KeyAttributes": { "KeyAlgorithm": "RSA_4096", "KeyClass": "PUBLIC_KEY", "KeyModesOfUse": { "Decrypt": false, "DeriveKey": false, "Encrypt": false, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": false, "Verify": true, "Wrap": false }, "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE" }, "KeyOrigin": "EXTERNAL", "KeyState": "CREATE_COMPLETE", "UsageStartTimestamp": "2023-09-14T10:50:32.365000-07:00" } } -
Ekspor kunci Anda
Beri tahu Kriptografi AWS Pembayaran untuk mengekspor kunci Anda menggunakan sertifikat daun Anda. Anda perlu menentukan:
-
ARN untuk sertifikat root yang Anda impor di langkah 2
-
Sertifikat daun untuk ekspor
-
Kunci simetris untuk mengekspor
Outputnya adalah versi biner berbungkus (terenkripsi) hex-encode dari kunci simetris Anda.
contoh Contoh - Mengekspor kunci
$cat export-key.json{ "ExportKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyMaterial": { "KeyCryptogram": { "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/zabouwe3574jysdl", "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDEXAMPLE...", "WrappingSpec": "RSA_OAEP_SHA_256" } } }$aws payment-cryptography export-key \--cli-input-jsonfile://export-key.json{ "WrappedKey": { "KeyMaterial": "18874746731E9E1C4562E4116D1C2477063FCB08454D757D81854AEAEE0A52B1F9D303FA29C02DC82AE7785353816EFAC8B5F4F79CC29A1DDA80C65F34364373D8C74E5EC67E4CB55DEA7F091210DCACD3C46FE4A5DAA0F0D9CAA7C959CA7144A5E7052F34AAED93EF44C004AE7ABEBD616C955BBA10993C06FB905319F87B9B4E1B7A7C7D17AF15B6154E807B9C574387A43197C31C6E565554437A252EFF8AC81613305760D11F9B53B08A1BA79EC7E7C82C48083C4E2D0B6F86C34AB83647BDD7E85240AD1AF3C0F6CA8C5BF323BB2D3896457C554F978F4C9436513F494130A6FADBC038D51898AAD72E02A89FF256C524E7B5D85B813751B718C4933D9DC6031F2C5B2E13351A54B6021B2DB72AA0C7EA54727FBCD557E67E5E7CC2E165576E39DB4DA33510BA9A3C847313103A18EF3B23A3440471864D58C79C569D5CD2A653AC16043CA9A61E6878F74C18EE15F9AB23754C37A945B68C0437C19F0079F74B573D9B59DAC25A20781DBE8075C947C9EDC76177A1B0794288CBF89567A541E8401C74E85B8E1C3E501860AF702F641CAA04327018A84EF3A82932A2BCF37047AB40FE77E0A6F68D0904C7E60983CD6F871D5E0E27EEF425C97D39E9394E8927EEF5D2EA9388DF3C5C241F99378DF5DADE8D0F0CF453C803BA38BA702B9651685FAFA6DCB4B14333F8D3C57F2D93E0852AA94EEC3AF3217CAE5873EFD9", "WrappedKeyMaterialFormat": "KEY_CRYPTOGRAM" } } -
-
Impor kunci ke sistem penerima Anda
Banyak HSM dan sistem terkait mendukung kunci impor menggunakan RSA unwrap (termasuk AWS Kriptografi Pembayaran). Saat mengimpor, tentukan:
-
Kunci publik dari langkah 1 sebagai sertifikat enkripsi
-
Format sebagai RSA
-
Mode Padding sebagai PKCS #1 v2.2 OAEP (dengan SHA 256)
catatan
Kami menampilkan kunci yang dibungkus dalam format HexBinary. Anda mungkin perlu mengonversi format jika sistem Anda memerlukan representasi biner yang berbeda, seperti base64.
-
Ekspor kunci simetris menggunakan kunci pertukaran kunci yang telah ditetapkan sebelumnya () TR-31
Saat bertukar beberapa kunci atau mendukung rotasi kunci, mitra biasanya pertama kali menukar kunci enkripsi kunci awal (KEK). Anda dapat menukar KEK dengan Kriptografi AWS Pembayaran, menggunakan teknik seperti TR-34atauPertukaran Kunci Fisik. Setelah membuat KEK, Anda dapat menggunakannya untuk mengangkut kunci berikutnya, termasuk KEK lainnya. Kami mendukung pertukaran kunci ini menggunakan ANSI TR-31, yang didukung secara luas oleh vendor HSM.
-
Siapkan Kunci Enkripsi Kunci (KEK)
Pastikan Anda telah menukar KEK Anda dan memiliki keYarn (atau KeyAlias) yang tersedia.
-
Buat kunci Anda AWS Kriptografi Pembayaran
Buat kunci Anda jika belum ada. Atau, Anda dapat membuat kunci pada sistem Anda yang lain dan menggunakan perintah impor.
-
Ekspor kunci Anda dari AWS Kriptografi Pembayaran
Saat mengekspor dalam TR-31 format, tentukan kunci yang ingin Anda ekspor dan kunci pembungkus yang akan digunakan.
contoh Contoh - Mengekspor kunci menggunakan blok kunci TR31
$aws payment-cryptography export-key \--key-material='{"Tr31KeyBlock": \ { "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza" }}' \--export-key-identifierarn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp{ "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "D0144K0AB00E0000A24D3ACF3005F30A6E31D533E07F2E1B17A2A003B338B1E79E5B3AD4FBF7850FACF9A3784489581A543C84816C8D3542AE888CE6D4EDDFD09C39957B131617BC", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } } -
Impor kunci ke sistem Anda
Gunakan implementasi kunci impor sistem Anda untuk mengimpor kunci.
Ekspor DUKPT Kunci Awal () IPEK/IK
Saat menggunakan DUKPT, Anda dapat menghasilkan Base Derivation Key (BDK) tunggal untuk armada terminal. Terminal tidak memiliki akses langsung ke BDK. Sebagai gantinya, setiap terminal menerima kunci terminal awal yang unik, yang dikenal sebagai IPEK atau Initial Key (IK). Setiap IPEK berasal dari BDK menggunakan Key Serial Number (KSN) yang unik.
Struktur KSN bervariasi menurut jenis enkripsi:
-
Untuk TDES: KSN 10-byte meliputi:
-
24 bit untuk Key Set ID
-
19 bit untuk ID terminal
-
21 bit untuk penghitung transaksi
-
-
Untuk AES: KSN 12-byte meliputi:
-
32 bit untuk ID BDK
-
32 bit untuk pengidentifikasi derivasi (ID)
-
32 bit untuk penghitung transaksi
-
Kami menyediakan mekanisme untuk menghasilkan dan mengekspor kunci awal ini. Anda dapat mengekspor kunci yang dihasilkan menggunakan TR-31, TR-34, atau metode pembungkus RSA. Perhatikan bahwa kunci IPEK tidak bertahan dan tidak dapat digunakan untuk operasi selanjutnya pada Kriptografi AWS Pembayaran.
Kami tidak memberlakukan pemisahan antara dua bagian pertama KSN. Jika Anda ingin menyimpan pengenal derivasi dengan BDK, Anda dapat menggunakan tag. AWS
catatan
Bagian counter dari KSN (32 bit untuk AES DUKPT) tidak digunakan untuk derivasi. IPEK/IK Misalnya, input 12345678901234560001 dan 12345678901234569999 akan menghasilkan IPEK yang sama.
$aws payment-cryptography export-key \--key-material='{"Tr31KeyBlock": { \ "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza"}} ' \--export-key-identifierarn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \--export-attributes'ExportDukptInitialKey={KeySerialNumber=12345678901234560001}'
{ "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "B0096B1TX00S000038A8A06588B9011F0D5EEF1CCAECFA6962647A89195B7A98BDA65DDE7C57FEA507559AF2A5D601D1", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } }
Tentukan header blok kunci untuk ekspor
Anda dapat memodifikasi atau menambahkan informasi blok kunci saat mengekspor dalam ASC TR-31 atau format. TR-34 Tabel berikut menjelaskan format blok TR-31 kunci dan elemen mana yang dapat Anda modifikasi selama ekspor.
| Atribut Blok Kunci | Tujuan | Bisakah Anda memodifikasi selama ekspor? | Catatan |
|---|---|---|---|
ID Versi |
Mendefinisikan metode yang digunakan untuk melindungi bahan utama. Standar meliputi:
|
Tidak |
Kami menggunakan versi B untuk tombol pembungkus TDES dan versi D untuk tombol pembungkus AES. Kami mendukung versi A dan C hanya untuk operasi impor. |
Panjang Blok Kunci |
Menentukan panjang pesan yang tersisa |
Tidak |
Kami menghitung nilai ini secara otomatis. Panjangnya mungkin tampak salah sebelum mendekripsi muatan karena kami dapat menambahkan padding kunci seperti yang dipersyaratkan oleh spesifikasi. |
Penggunaan Kunci |
Mendefinisikan tujuan yang diizinkan untuk kunci, seperti:
|
Tidak |
|
Algoritme |
Menentukan algoritma kunci yang mendasarinya. Kami mendukung:
|
Tidak |
Kami mengekspor nilai ini apa adanya. |
Penggunaan Kunci |
Mendefinisikan operasi yang diizinkan, seperti:
|
Ya* |
|
Versi Kunci |
Menunjukkan nomor versi untuk kunci replacement/rotation. Default ke 00 jika tidak ditentukan. |
Ya - Dapat menambahkan |
|
Ekspor Kunci |
Mengontrol apakah kunci dapat diekspor:
|
Ya* |
|
Blok Kunci Opsional |
Ya - Dapat menambahkan |
Blok kunci opsional adalah name/value pasangan yang terikat secara kriptografis ke kunci. Misalnya, KeySet ID untuk kunci DUKPT. Kami secara otomatis menghitung jumlah blok, panjang setiap blok, dan blok padding (PB) berdasarkan input name/value pasangan Anda. |
*Saat memodifikasi nilai, nilai baru Anda harus lebih ketat daripada nilai saat ini dalam AWS Kriptografi Pembayaran. Contoh:
-
Jika mode penggunaan kunci saat ini adalah Generate=True, Verify=True, Anda dapat mengubahnya menjadi Generate=True, Verify=False
-
Jika kunci sudah disetel ke tidak dapat diekspor, Anda tidak dapat mengubahnya menjadi ekspor
Saat Anda mengekspor kunci, kami secara otomatis menerapkan nilai saat ini dari kunci yang diekspor. Namun, Anda mungkin ingin memodifikasi atau menambahkan nilai-nilai tersebut sebelum mengirim ke sistem penerima. Berikut adalah beberapa skenario umum:
-
Saat mengekspor kunci ke terminal pembayaran, atur ekspornya
Not Exportablekarena terminal biasanya hanya mengimpor kunci dan tidak boleh mengekspornya. -
Saat Anda perlu meneruskan metadata kunci terkait ke sistem penerima, gunakan header TR-31 opsional untuk mengikat metadata secara kriptografis ke kunci alih-alih membuat muatan khusus.
-
Atur Versi Kunci menggunakan
KeyVersionbidang untuk melacak rotasi kunci.
TR-31/X9.143 mendefinisikan header umum, tetapi Anda dapat menggunakan header lain selama mereka memenuhi parameter Kriptografi AWS Pembayaran dan sistem penerima Anda dapat menerimanya. Untuk informasi selengkapnya tentang header blok kunci selama ekspor, lihat Header Blok Kunci di Panduan API.
Berikut adalah contoh mengekspor kunci BDK (misalnya, ke KIF) dengan spesifikasi berikut:
-
Versi kunci: 02
-
KeyExportability: TIDAK DAPAT DIEKSPOR
-
KeySetID: 00ABCDEFAB (00 menunjukkan kunci TDES, ABCDEFABCD adalah kunci awal)
Karena kita tidak menentukan mode penggunaan kunci, kunci ini mewarisi mode penggunaan dari arn:aws:payment-cryptography:us-east- 2:111122223333: (= true). key/5rplquuwozodpwsp DeriveKey
catatan
$aws payment-cryptography export-key \--key-material='{"Tr31KeyBlock": { \ "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza", \ "KeyBlockHeaders": { \ "KeyModesOfUse": { \ "Derive": true}, \ "KeyExportability": "NON_EXPORTABLE", \ "KeyVersion": "02", \ "OptionalBlocks": { \ "BI": "00ABCDEFABCD"}}} \ }' \--export-key-identifierarn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp
{ "WrappedKey": { "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK", "KeyMaterial": "EXAMPLE_KEY_MATERIAL_TR31", "KeyCheckValue": "A4C9B3", "KeyCheckValueAlgorithm": "ANSI_X9_24" } }
Header Umum
X9.143 mendefinisikan header tertentu untuk kasus penggunaan umum. Dengan pengecualian header HM (HMAC Hash), Kriptografi AWS Pembayaran tidak mengurai atau menggunakan header ini.
| Nama Header | Tujuan | Validasi Khas | Catatan |
|---|---|---|---|
BI |
Pengidentifikasi Kunci Derivasi Dasar untuk DUKPT |
2 karakter hex (00 untuk TDES, 11 untuk AES) kemudian 10 karakter hex untuk TDES KSI atau 8 karakter hex untuk BDK ID (AES DUKPT). |
Berisi (ID BDK, untuk AES DUKPT) atau Pengenal Set Kunci (KSI, untuk TDES DUKPT). Dapat digunakan saat menukar ID BDK atau KSI, tetapi tidak perlu bertukar data lain yang terdapat dalam blok IK dan KS. Biasanya BI digunakan saat mentransmisikan ke KIF sedangkan IK atau KS digunakan saat menyuntikkan ke terminal itu sendiri. |
HM |
Menentukan jenis hash untuk operasi HMAC |
|
Layanan secara otomatis mengisi bidang ini pada ekspor dan akan menguraikannya pada impor. Jenis hash yang tidak didukung oleh layanan seperti SHAKE128 dapat diimpor tetapi mungkin tidak dapat digunakan untuk fungsi kriptografi. |
IK |
Nomor Seri Kunci Awal untuk AES DUKPT |
16 karakter hex |
Nilai ini digunakan untuk membuat instance penggunaan kunci DUKPT Awal pada perangkat penerima dan mengidentifikasi Kunci Awal yang berasal dari BDK. Bidang ini biasanya berisi data derivasi tetapi tidak ada penghitung. Gunakan KS untuk TDES DUKPT. |
KS |
Nomor Seri Kunci Awal untuk TDES DUKPT |
20 karakter hex |
Nilai ini digunakan untuk membuat instance penggunaan kunci DUKPT Awal pada perangkat penerima dan mengidentifikasi Kunci Awal yang berasal dari BDK. Bidang ini biasanya berisi data derivasi+nilai penghitung nol. Gunakan IK untuk AES DUKPT. |
KP |
Nilai cek kunci KBPK |
2 karakter hex mewakili metode KCV (00 untuk metode dan 01 untuk X9.24 metode CMAC). Diikuti oleh nilai KCV yang biasanya 6 karakter hex. Misalnya 010FA329 mewakili KCV dari 0FA329 dihitung menggunakan 01 (CMAC) metode. |
Dihitung menurut ANSI X9.24-1-2017 Annex A; KCV digunakan untuk validasi kunci bukan sebagai mekanisme integritas. |
PB |
Blok bantalan |
karakter ASCII acak yang dapat dicetak |
Layanan secara otomatis mengisi bidang ini pada ekspor untuk memastikan header opsional adalah kelipatan panjang blok enkripsi |
Ekspor kunci asimetris (RSA)
Untuk mengekspor kunci publik dalam bentuk sertifikat, gunakan get-public-key-certificate perintah. Perintah ini mengembalikan:
-
Sertifikat
-
Sertifikat root
Kedua sertifikat dalam pengkodean base64.
catatan
Operasi ini tidak idempoten—panggilan berikutnya mungkin menghasilkan sertifikat yang berbeda bahkan saat menggunakan kunci dasar yang sama.
contoh
$aws payment-cryptography get-public-key-certificate \--key-identifierarn:aws:payment-cryptography:us-east-2:111122223333:key/5dza7xqd6soanjtb
{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." }