Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Ekspor kunci
Daftar Isi
Ekspor kunci simetris
penting
Pastikan Anda memiliki versi terbaru AWS CLI sebelum memulai. Untuk memutakhirkan, lihat Menginstal 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, AWS Kriptografi 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 impor, sebaiknya Anda terlebih dahulu membuat KEK bersama antara HSM dan Kriptografi Pembayaran Anda AWS menggunakan. TR-34 Anda kemudian dapat menggunakan TR-31 untuk mentransfer kunci yang tersisa.
-
Inisialisasi proses ekspor
J get-parameters-for-export alankan untuk menghasilkan pasangan kunci untuk ekspor kunci. Kami menggunakan pasangan kunci ini untuk menandatangani mu TR-34 atan. 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 penerima 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_SIGNATUREKeyUsageTypekarena ini adalah kunci root yang menandatangani sertifikat daun. Anda tidak perlu mengimpor sertifikat daun ke Kriptografi AWS Pembayaran—Anda dapat meneruskannya secara sebaris.catatan
Jika sebelumnya Anda mengimpor sertifikat root, lewati langkah ini. Untuk sertifikat menengah, gunakan
TrustedCertificatePublicKey. -
Ekspor kunci Anda
Panggil ExportKey API dengan
KeyMaterialTypeset toTR34_KEY_BLOCK. Anda perlu menyediakan:-
KeyArn dari root 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 -
Ekspor-token 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" } } -
Ekspor kunci 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 Pembayaran tidak AWS menyimpannya. Dalam proses ini, satu kali KBPK/KEK diturunkan 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, AWS Kriptografi Pembayaran disebut sebagai Pihak U (Inisiator) dan sistem penerima dikenal sebagai Pihak 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
Panggil
create-keyuntuk membuat pasangan kunci ECC untuk proses ini. API ini menghasilkan pasangan kunci 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 lain, 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 secara tidak sengaja 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
Panggil
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 (Pihak V)
Dengan banyak HSM, Anda perlu menginstal, memuat, atau mempercayai sertifikat publik yang dihasilkan pada langkah 1 untuk membuat kunci. Ini bisa mencakup seluruh rantai sertifikat atau hanya sertifikat root, tergantung pada HSM. Konsultasikan dokumentasi HSM Anda untuk instruksi spesifik.
-
Hasilkan pasangan kunci ECC pada sistem sumber dan berikan rantai sertifikat untuk AWS Kriptografi Pembayaran
Dalam ECDH, masing-masing pihak menghasilkan pasangan kunci dan menyetujui kunci umum. Agar AWS Kriptografi Pembayaran dapat memperoleh kunci, diperlukan kunci publik rekanan dalam format kunci X.509 publik.
Saat mentransfer kunci dari HSM, buat pasangan kunci pada HSM itu. Untuk HSM yang mendukung blok kunci, header kunci akan terlihat mirip
D0144K3EX00E0000dengan. Saat membuat sertifikat, Anda umumnya menghasilkan CSR pada 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 ofRootCertificatePublicKeydan KeyUsageType ofTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE.Untuk sertifikat menengah, gunakan
importKeyperintah dengan KeyMaterialType ofTrustedCertificatePublicKeydan KeyUsageType ofTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE. Ulangi proses ini untuk beberapa sertifikat perantara. Gunakan sertifikat terakhirKeyArnyang diimpor dalam rantai sebagai input ke perintah ekspor berikutnya.catatan
Jangan mengimpor sertifikat daun. Berikan langsung selama perintah ekspor.
-
Turunkan 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 diekspor menggunakan. TR-31 Kunci yang akan diekspor dapat berupa kunci TDES atau AES apa pun 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" } } -
Turunkan kunci satu kali menggunakan ECDH pada HSM Pihak V
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 diijinkan, seperti metode derivasi, lihat panduan https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ExportDiffieHellmanTr31KeyBlock.html API.
catatan
Parameter derivasi seperti tipe hash harus cocok persis di kedua sisi. Jika tidak, Anda akan menghasilkan kunci yang berbeda.
-
Impor kunci ke sistem target
Terakhir, impor kunci dari AWS Payment Cryptography menggunakan TR-31 perintah standar. Tentukan kunci turunan ECDH sebagai KBPK dan gunakan blok TR-31 kunci yang sebelumnya diekspor dari AWS Kriptografi Pembayaran.
Ekspor kunci menggunakan teknik asimetris (RSA Wrap)
Jika 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 dan sertifikat RSA 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 sertifikat root yang dapat Anda impor ke Kriptografi Pemb AWS ayaran.
-
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 AWS Cryptography Pembayaran untuk mengekspor kunci Anda menggunakan sertifikat daun Anda. Anda perlu menentukan:
-
ARN untuk sertifikat root yang Anda impor pada langkah 2
-
Sertifikat daun untuk ekspor
-
Kunci simetris untuk mengekspor
Outputnya adalah versi biner yang dikodekan heks (terenkripsi) 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 pengimpor kunci menggunakan RSA unwrap (termasuk Kriptografi AWS 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 terlebih dahulu menukar kunci enkripsi kunci awal (KEK). Anda dapat menukar KEK dengan AWS Cryptography Pembayaran, menggunakan teknik seperti TR-34 atauPertukaran 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.
-
Menyiapkan Kunci Enkripsi Kunci (KEK)
Pastikan Anda telah menukar KEK Anda dan memiliki KeyArn (atau KeyAlias) yang tersedia.
-
Buat kunci Anda di 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 Kunci Awal DUKPT () IPEK/IK
Saat menggunakan DUKPT, Anda dapat menghasilkan satu Base Derivation Key (BDK) untuk armada terminal. Terminal tidak memiliki akses langsung ke BDK. Sebaliknya, setiap terminal menerima kunci terminal awal yang unik, yang dikenal sebagai IPEK atau Kunci Awal (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 ID Set Kunci
-
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 dipertahankan dan tidak dapat digunakan untuk operasi selanjutnya pada Kriptografi AWS Pembayaran.
Kami tidak menegakkan pemisahan antara dua bagian pertama KSN. Jika Anda ingin menyimpan pengidentifikasi derivasi dengan BDK, Anda dapat menggunakan AWS tag.
catatan
Bagian penghitung 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 TR-34 format. 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 kunci. Standar meliputi:
|
Tidak |
Kami menggunakan versi B untuk kunci pembungkus TDES dan versi D untuk kunci 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 payload karena kita 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. Defaultnya 00 jika tidak ditentukan. |
Ya - Dapat menambahkan |
|
Eksporabilitas 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 di Kriptografi Pembay AWS aran. 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 yang dapat diekspor
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 kemampuan ekspornya menjadi
Not Exportablekarena terminal biasanya hanya mengimpor kunci dan tidak boleh mengekspornya. -
Bila Anda perlu meneruskan metadata kunci terkait ke sistem penerima, gunakan header TR-31 opsional untuk mengikat metadata secara kriptografis ke kunci alih-alih membuat payload 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 Pembay AWS aran 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 ini:
-
Versi kunci: 02
-
KeyExportability: TIDAK DAPAT DIEKSPOR
-
KeySetID: 00ABCDEFAB (00 menunjukkan kunci TDES, ABCDEFABCD adalah kunci awal)
Karena kami tidak menentukan mode penggunaan kunci, kunci ini mewarisi mode penggunaan dari arn:aws:payment-cryptography:us-east- 2:111122223333: (= true). key/5rplquuwozodpwsp DeriveKey
catatan
Bahkan ketika Anda menyetel kemampuan ekspor ke Tidak Dapat Diekspor dalam contoh ini, KIF masih dapat:
-
Turunkan kunci seperti yang IPEK/IK digunakan dalam DUKPT
-
Ekspor kunci turunan ini untuk diinstal pada perangkat
Ini secara khusus diizinkan oleh standar.
$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), Cryptography 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 Key Set Identifier (KSI, untuk TDES DUKPT). Dapat digunakan saat bertukar ID BDK atau KSI, tetapi tidak perlu bertukar data lain yang terkandung 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 tipe hash untuk operasi HMAC |
|
Layanan secara otomatis mengisi bidang ini pada ekspor dan akan menguraikannya saat impor. Jenis hash yang tidak didukung oleh layanan seperti SHAKE128 dapat diimpor tetapi mungkin tidak dapat digunakan untuk fungsi kriptografi. |
I |
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 dari KBPK |
2 karakter hex mewakili metode KCV (00 untuk X9.24 metode dan 01 untuk metode CMAC). Diikuti oleh nilai KCV yang biasanya 6 karakter hex. Misalnya 010FA329 mewakili KCV dari 0FA329 yang dihitung menggunakan metode 01 (CMAC). |
Dihitung sesuai dengan X9.24-1-2017 ANSI Annex A; KCV digunakan untuk validasi kunci bukan sebagai mekanisme integritas. |
PB |
Blok bantalan |
karakter ASCII yang dapat dicetak acak |
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 berpotensi — 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..." }