Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kunci ekspor
Mengekspor kunci simetris
penting
Contoh mungkin memerlukan versi terbaru dari AWS CLI V2. Sebelum memulai, pastikan Anda telah meningkatkan ke versi terbaru.
Topik
Kunci ekspor menggunakan teknik asimetris (TR-34)
Tinjauan: TR-34 menggunakan kriptografi RSA asimetris untuk mengenkripsi kunci simetris untuk pertukaran serta memastikan sumber data (penandatanganan). Ini memastikan kerahasiaan (enkripsi) dan integritas (tanda tangan) dari kunci yang dibungkus. Saat mengekspor, Kriptografi AWS Pembayaran menjadi host distribusi utama (KDH) dan sistem target menjadi perangkat penerima kunci ()KRD.
- 1. Panggil perintah inisialisasi ekspor
-
Panggilan
get-parameters-for-export
untuk menginisialisasi proses ekspor. Ini API akan menghasilkan keypair untuk tujuan ekspor kunci, menandatangani kunci dan mengembalikan sertifikat dan root sertifikat. Pada akhirnya, kunci pribadi yang dihasilkan oleh perintah ini digunakan untuk menandatangani payload ekspor. Dalam terminologi TR-34, ini dikenal sebagai sertifikat penandatanganan. KDH Perhatikan bahwa sertifikat ini berumur pendek dan hanya dimaksudkan untuk tujuan ini. Parameter ParametersValidUntilTimestamp menentukan durasinya.NOTE: Semua sertifikat dikembalikan dalam format yang dikodekan base64
$
aws payment-cryptography get-parameters-for-export \ --signing-key-algorithm RSA_2048 --key-material-type TR34_KEY_BLOCK
{ "SigningKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFTZ0F3SUJBZ0lRZFAzSzNHNEFKT0I4WTNpTmUvYlF0akFOQmdrcWhraUc5dzBCQVEwRkFEQ0IKaVRFTE1Ba0dBMVVFQmhNQ1ZWTXhHVEFYQmdOVkJBb01FRUZYVXlCRGNubHdkRzluY21Gd2FIa3hJVEFmQmdOVgpCQXNNR0VGWFV5QlFZWGx0Wlc1MElFTnllWEIwYjJkeVlYQm9lVEVSTUE4R0ExVUVDQXdJVm1seVoybHVhV0V4CkZUQVRCZ05WQkFNTUREVXlPVEF5TnpRMU5UUTVOVEVTTUJBR0ExVUVCd3dKUVhKc2FXNW5kRzl1TUI0WERUSXoKTURZd05qSXhOREF5TVZvWERUSXpNRFl4TXpJeU5EQXlNRm93TERFVk1CTUdBMVVFQXd3TU5USTVNREkzTkRVMQpORGsxTVJNd0VRWURWUVFGRXdveE9ETTROemt5TWpNeU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBCk1JSUJDZ0tDQVFFQXNTLzZ0TkhPK29RaTczVFMvYXJFSE40aEhRSjdFVThaT3dXN0RuNVlTTlZmZmM0b1B6ZVUKNHQ5Q045djViamxrL3p5TTJORllVL0NsTHNueFk2Y3IvaWwwY2hROVFtM1hUMHZVWGZGNzdRSzFSWnZzNkVkdApicVFaWGlqVDZ4UkJGcUxUMjV0dGJYQTlXMjlUd1d1eXdVN1c4dDZDZEIxSVFoOFFhYlBGaHRhWmVpWmVVWjNPCnRSa2NZU1VtRDRncWJxTElEL2M2RlpmdGpkYS9HbkhkZ1dmMk5oUUFvVnkxOS9ZZXhlZzdmTlVOZXVzWmRYSWYKZkNpM0VNaFF4S3lYY3dUMC9TZ2g5alZNakQwSDdyZWpCMGF4Tit0RUNqeVFEcm5XS2ZvbVA2ZFdkMExCSUM2bgpNQ1VKcmVtSDV3emVzZjFrWnF1VjRMbjYwdzZSNDNhQzRRSURBUUFCbzN3d2VqQUpCZ05WSFJNRUFqQUFNQjhHCkExVWRJd1FZTUJhQUZDNklyYUZzYnRUMDFGL2JjQ0c3Z3RVR1phM1RNQjBHQTFVZERnUVdCQlRXbldEWXNsMXMKalhnVExRRmFCYm1DakFZcHNUQU9CZ05WSFE4QkFmOEVCQU1DQmFBd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSApBd0VHQ0NzR0FRVUZCd01DTUEwR0NTcUdTSWIzRFFFQkRRVUFBNElDQVFCdUJmVjJmVFBlM0VkSEhnODFoVnZECnRQZUJsQzAvRy8wQ25XNFhPVEt2NUJtNXNudDBpczg4Yzc1SlRRUXdvdm9ScEVUTzZLdXdxMUFuUFR1c3RyRDYKL0I1bDd0MGw3ZUh6Z3pPVGZSN29Wem9TZXlGamkvVEVwK2M0NXBHWDBpY0ovTDlMaE0ybUVOZHhqNmtzVUcxMApuZnJCbzJyejkwRUJQYTVFb1lhMlRYYW90VlU4NFRiSFVyMlUzaFhrRExDWmhpSTdLY2I5cWRwenVlV0dWRzRTCmFreGJQcW5LQjMrek9JSzFZYTl2aENHZjRaMDFtWFFtVmRjQlpnbGE5SWFyeEcvKy9xWXEvNzBKalFnYk5HOUUKcUd1UFFadE5QQ0lJckJXOFN4cVpmUjVJbmxtUDlkZEY0SStOR002aHNoRUNXeWJCWkdUZjhYVCtwYVRFZXA2ZQpZUHp2UXI2cWQ4TExDYk5wOEI3ZTNrcmRKc0VUV0tBaU93TzFoZ1BReld2ZTRWKzBNdVlQaDczNk0xUS9rUTJVCmN5VmhDVDNCWENmOFhXVjMwYzg2c2J2dlhIeGJ5cVl1dWs4anZvRHl6T3R0T0QxbVdlRDBNeXV6OU1Fb3JTanIKM3ZwUDhBWXowMVI0UWNBMUR5cVl1dVErQ1BFRHlqU3VPK2tTQ1JIYXFLRzFOVzY5aVMxWWQyWG9LZTdtRlVpaAp3REM0WTlISlZjNjk5bWNMQ0NXWmhyYlZmZUJrOUxDS1BlUzZWUFZDMGdpVnJRYUtxbFhkTnh5SGJ2ZzBsRlUvCjZkUm5nYmVPMTZQdUhhN1hjL2FCUUF6N3JNaWlvRFFjSVdrQVdyK0NIOHl0UVFXZXRjSFdHNWRMMmZiSFgzOU0KMWhIeXFraHAwdDhXc0dTdVhjbWJBQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=", "SigningKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUY0VENDQThtZ0F3SUJBZ0lSQUtlN2piaHFKZjJPd3FGUWI5c3VuOEV3RFFZSktvWklodmNOQVFFTkJRQXcKZ1lreEN6QUpCZ05WQkFZVEFsVlRNUmt3RndZRFZRUUtEQkJCVjFNZ1EzSjVjSFJ2WjNKaGNHaDVNU0V3SHdZRApWUVFMREJoQlYxTWdVR0Y1YldWdWRDQkRjbmx3ZEc5bmNtRndhSGt4RVRBUEJnTlZCQWdNQ0ZacGNtZHBibWxoCk1SVXdFd1lEVlFRRERBdzFNamt3TWpjME5UVTBPVFV4RWpBUUJnTlZCQWNNQ1VGeWJHbHVaM1J2YmpBZUZ3MHkKTXpBMk1EWXdNalEzTlRKYUZ3MHlPREEyTURZd016UTNOVEphTUlHSk1Rc3dDUVlEVlFRR0V3SlZVekVaTUJjRwpBMVVFQ2d3UVFWZFRJRU55ZVhCMGIyZHlZWEJvZVRFaE1COEdBMVVFQ3d3WVFWZFRJRkJoZVcxbGJuUWdRM0o1CmNIUnZaM0poY0doNU1SRXdEd1lEVlFRSURBaFdhWEpuYVc1cFlURVZNQk1HQTFVRUF3d01OVEk1TURJM05EVTEKTkRrMU1SSXdFQVlEVlFRSERBbEJjbXhwYm1kMGIyNHdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDRHdBdwpnZ0lLQW9JQ0FRQzJyMld2eGJxZjJSUHhOem1JUk5ZeWZRQ2labGxYUVBQSDQycnAyQ1VtTk1VMkc2ZzdFRUZBCm5TWnNvRlN6Z1NJaEhUSWU4UDdUd1l3ckpPL3VNcEtka3lac1ppTEhUNGo4M1l1VkNlT1dSVERjdnRWMFV0M1IKaCs5UWVyaHhRQnVrK2dnZkRkT0FFUkR3S1pWckZqM3diT1FFMXY2WnRYSmpVZytWTXZKcEphUTg0WkFvYnpyUgpuY2JaL0hnbFhDM09xampSSk1laGJFaE93ZFJCTU4yQ2dTNHlhWTB3YlBvazhMSlRORVp5ZnkxUEtkaTd1UmxxCm9qeEdjc3pCRHFvdCsvTURBNVdZUjd5NVhiOGdOdSt0alkrMWdQSGRkWHFhRTR2bXV2cEtsQUttcml2SDRYWXQKZk9sa1kzYnRJckVuWDEwQkp1UXVGN0dRNyt3ZjN6TDZ4NFNIcGpiQWxpMDQyUmdXTVpibmlscW15YnhuUkRrUwpjZXZ3aEx2L0tnT09WM05KZlplWlVzT1N6NWNzTmRLME4rM2FCUlZQcVc5b2k3dDJ2dTc5eCtvb1pIS2FibFdiCmJDMDJxR1VDaTE3cHhDQ0JJdUVDZWJiWDhSS3dLa3RwbTRSOUZWYjBXZGFqNUc1ekdudTBsUlRMUVNaZ0QyU1EKSjRmQjh2em9Bb3BYenpSSStMSjNBaC9NcThXSTNHTHFIakhzcm5vdVJzMmNzcjVBYnNMbXUyUTlvMFJmNTd1RApwK1R1cXpKTysrNFpUWDlsb0N3UXdzKzNEZWUyL1pUSmJCNkFCdy9xdnovQjhsL2duY29Wc3lHTFhkaXdleTV1CjJHNnl2NGgrN0FBQldvdjhwWVBPUlRMY1FkanhVdWNDdllRYjJiRXY4ZGh1anN6TWo2ZDBDUUlEQVFBQm8wSXcKUURBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRdWlLMmhiRzdVOU5SZjIzQWh1NExWQm1XdAowekFPQmdOVkhROEJBZjhFQkFNQ0FZWXdEUVlKS29aSWh2Y05BUUVOQlFBRGdnSUJBSS9Ta1NaS0pyMm1JakJ6ClJxQXQ3dmJ4eWNhQXhCU3VqbDlqVSttYkh1RDg4Qyt3TDh4TzNYRHJ1Vm9IZTdYanhrNXpaN0RWMjMza3haQlEKR3BET1hWaGNZdE5UNzk2YXd1K0VNU2kzK3RzTVJBMmMxODJ2ZVNDSE9HQmVseTlRS3FHWkJBZGU2ZGNzTkpMTwpiRE10NlB3NXpiRHNqalJnMGY5SGQrRFZheXV6QzBtdXVGWEZkT0txU0VWZVNmZWVNOUl5KzFMWDMzOFlVd05zCjdhS2ppaFVFSkg4ZkVFU1NEUGE5OGNOSEsyZ0t5UENrRUorMGlNZkJiTi9yUE1CYlhqTUtHYWpXSFFhWWtieDUKalVRUmdvd25ZbStycDRwRnNhalpSTFB0NE9mbkswNWYvRHdCUXVGWUUzUFJ2d2NQSWxJNHpkcWh0NE9ZSVY4RAo2MktleVEzb3R6eTdsVXIxamNrZldkSHpHc3NKVjYxc0xRTTBudVFNUnRTZjlHeEpYTEkyNjFaRWFMYVY5WFduCnY3YnByb090UTNiYk9RbjI0elJDVm5kZ0Z3aCtUVHMzVmFOQjhURmY2QjFoV1R5aTYzOCtoa1FTRnJTbXI1WTcKTXNGUXZXSVZVbjQ2cWNjVGNuNlc2Y2JIUlhyQkRiR0tlWUJiVjVXSkJwRUtSN0JuQ25HNnJCbmxGNjZ5eTUyLwpSbWZLRWZwWG1qbkh0WW94UnlQVlJZWDhPcnkzUFQrYSt0REtlMDBXY1MyM0U3MWl2QTBNdnVrODlwTzJIUVorCjNHUU9xdWJpQ3RMbVppdVFCZC9aN1NGWGlzcUxyTE5aOW52Q2VRSkxTckVDajRpZjV2dmJkWVhLdkozamhtSjkKeVZvc0xZVzA3SklzSFE0aDAwVWphSnhrVjdoWgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t", "SigningKeyAlgorithm": "RSA_2048", "ExportToken": "export-token-au7pvkbsq4mbup6i", "ParametersValidUntilTimestamp": "2023-06-13T15:40:24.036000-07:00" }
- 2. Impor sertifikat Kriptografi AWS Pembayaran ke sistem penerima
-
Impor rantai sertifikat yang disediakan pada langkah 1 ke sistem penerima Anda seperlunya.
- 3. Buat key pair, buat sertifikat publik dan berikan root sertifikat ke AWS Payment Cryptography
-
Untuk memastikan kerahasiaan muatan yang ditransmisikan, itu dienkripsi oleh pihak pengirim (dikenal sebagai Host Distribusi Utama atau). KDH Pihak penerima (biasanya Anda HSM atau mitra AndaHSM) akan ingin membuat kunci publik untuk tujuan ini dan kemudian membuat sertifikat kunci publik (x.509) yang dapat diberikan kembali ke Kriptografi Pembayaran. AWS AWS Private CA adalah salah satu opsi untuk menghasilkan sertifikat, tetapi tidak ada batasan pada otoritas sertifikat yang digunakan.
Setelah Anda memiliki sertifikat, Anda akan ingin memuat sertifikat root ke Kriptografi AWS Pembayaran menggunakan
ImportKey
perintah dan KeyMaterialType dariROOT_PUBLIC_KEY_CERTIFICATE
dan KeyUsageType dari.TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE
KeyUsageType Sertifikat ini adalah TR31 _S0_ _ ASYMMETRIC _ KEY _ FOR DIGITAL _ SIGNATURE karena ini adalah kunci root dan digunakan untuk menandatangani sertifikat daun. Sertifikat daun untuk impor/ekspor tidak diimpor ke Kriptografi AWS Pembayaran tetapi diteruskan secara inline.
catatan
Jika sertifikat root sebelumnya diimpor, langkah ini dapat dilewati.
- 4. Panggil kunci Ekspor
-
Sebagai langkah terakhir, Anda akan memanggil ExportKey API dengan KeyMaterialType a
TR34_KEY_BLOCK
. Inicertificate-authority-public-key-identifier
akan menjadi kunci ARN impor CA root pada langkah 3,WrappingKeyCertificate
akan menjadi sertifikat daun dari langkah 3 danexport-key-identifier
merupakan kunci ARN (atau alias) yang akan diekspor. Anda juga perlu memberikan token ekspor dari langkah 1.
Kunci ekspor menggunakan teknik asimetris (RSABungkus)
Ikhtisar: Kriptografi AWS Pembayaran mendukung RSA wrap/unwrap untuk pertukaran kunci ketika TR-34 bukan merupakan opsi yang tersedia oleh pihak lawan. Mirip dengan TR-34, teknik ini menggunakan kriptografi RSA asimetris untuk mengenkripsi kunci simetris untuk pertukaran. Namun, tidak seperti TR-34, metode ini tidak memiliki muatan yang ditandatangani oleh pihak pengirim. Selain itu, teknik RSA pembungkus ini tidak termasuk blok kunci yang digunakan untuk menjaga integritas metadata kunci selama transportasi.
catatan
RSAbungkus dapat digunakan untuk mengekspor TDES dan AES -128 kunci.
- 1. Menghasilkan RSA kunci dan sertifikat pada sistem penerima
-
Buat (atau identifikasi) RSA kunci yang akan digunakan untuk menerima kunci yang dibungkus. AWS Kriptografi Pembayaran mengharapkan kunci dalam format sertifikat X.509. Sertifikat harus ditandatangani oleh sertifikat root yang diimpor (atau dapat diimpor) ke dalam Kriptografi AWS Pembayaran.
- 2. Instal sertifikat publik root pada Kriptografi AWS Pembayaran
-
$
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“ } }
- 3. Panggil kunci ekspor
-
Selanjutnya Anda ingin menginstruksikan Kriptografi AWS Pembayaran untuk mengekspor kunci Anda menggunakan sertifikat daun Anda. Anda akan menentukan ARN untuk sertifikat root yang diimpor sebelumnya, sertifikat daun yang akan digunakan untuk ekspor dan kunci simetris untuk mengekspor. Outputnya akan menjadi versi hex yang dikodekan biner dibungkus (dienkripsi) dari kunci simetris Anda.
$
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": "LS0tLS1CRUdJTiBD...", "WrappingSpec": "RSA_OAEP_SHA_256" } } }
$
aws payment-cryptography export-key --cli-input-json file://export-key.json
{ "WrappedKey": { "KeyMaterial": "18874746731E9E1C4562E4116D1C2477063FCB08454D757D81854AEAEE0A52B1F9D303FA29C02DC82AE7785353816EFAC8B5F4F79CC29A1DDA80C65F34364373D8C74E5EC67E4CB55DEA7F091210DCACD3C46FE4A5DAA0F0D9CAA7C959CA7144A5E7052F34AAED93EF44C004AE7ABEBD616C955BBA10993C06FB905319F87B9B4E1B7A7C7D17AF15B6154E807B9C574387A43197C31C6E565554437A252EFF8AC81613305760D11F9B53B08A1BA79EC7E7C82C48083C4E2D0B6F86C34AB83647BDD7E85240AD1AF3C0F6CA8C5BF323BB2D3896457C554F978F4C9436513F494130A6FADBC038D51898AAD72E02A89FF256C524E7B5D85B813751B718C4933D9DC6031F2C5B2E13351A54B6021B2DB72AA0C7EA54727FBCD557E67E5E7CC2E165576E39DB4DA33510BA9A3C847313103A18EF3B23A3440471864D58C79C569D5CD2A653AC16043CA9A61E6878F74C18EE15F9AB23754C37A945B68C0437C19F0079F74B573D9B59DAC25A20781DBE8075C947C9EDC76177A1B0794288CBF89567A541E8401C74E85B8E1C3E501860AF702F641CAA04327018A84EF3A82932A2BCF37047AB40FE77E0A6F68D0904C7E60983CD6F871D5E0E27EEF425C97D39E9394E8927EEF5D2EA9388DF3C5C241F99378DF5DADE8D0F0CF453C803BA38BA702B9651685FAFA6DCB4B14333F8D3C57F2D93E0852AA94EEC3AF3217CAE5873EFD9", "WrappedKeyMaterialFormat": "KEY_CRYPTOGRAM" } }
- 4. Kunci impor ke sistem penerima
-
Banyak HSMs dan sistem terkait mendukung kemampuan untuk mengimpor kunci menggunakan RSA unwrap (termasuk Kriptografi AWS Pembayaran). Untuk melakukannya, tentukan kunci publik dari langkah 1 sebagai sertifikat (enkripsi). Dan formatnya harus ditentukan sebagaiRSA, Mode Padding = PKCS #1 v2.2 OAEP (dengan SHA 256). Terminologi yang tepat dapat bervariasi menurutHSM.
catatan
AWS Kriptografi Pembayaran menghasilkan kunci yang dibungkus. hexBinary Anda mungkin perlu mengonversi format sebelum mengimpor jika sistem Anda memerlukan representasi biner yang berbeda seperti base64.
Ekspor kunci simetris menggunakan kunci pertukaran kunci yang telah ditetapkan sebelumnya (TR-31)
Ketika mitra bertukar beberapa kunci (atau untuk mendukung rotasi kunci), biasanya untuk pertama menukar kunci enkripsi kunci awal (KEK) menggunakan teknik seperti komponen kunci kertas atau dalam kasus Kriptografi AWS Pembayaran menggunakan TR-34. Setelah KEK dibuat, Anda dapat menggunakan kunci ini untuk mengangkut kunci berikutnya (termasuk yang lainKEK). AWS Kriptografi Pembayaran mendukung pertukaran kunci semacam ini menggunakan ANSI TR-31 yang banyak digunakan dan didukung secara luas oleh vendor. HSM
- 1. Kunci Enkripsi Kunci Pertukaran (KEK)
-
Diasumsikan bahwa Anda sudah bertukar KEK dan memiliki kunci ARN (ataukeyAlias) tersedia untuk Anda.
- 2. Buat kunci pada Kriptografi AWS Pembayaran
-
Jika kunci belum ada, buat kuncinya. Sebaliknya, Anda dapat membuat kunci pada sistem lain dan menggunakan perintah impor sebagai gantinya.
- 3. Ekspor kunci dari Kriptografi AWS Pembayaran
-
Saat mengekspor, formatnya akan menjadi TR-31. Saat memanggilAPI, Anda akan menentukan kunci yang akan diekspor dan kunci pembungkus yang akan digunakan.
$
aws payment-cryptography export-key --key-material='{"Tr31KeyBlock": {"WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza"}}' --export-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp
{ "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "D0144K0AB00E0000A24D3ACF3005F30A6E31D533E07F2E1B17A2A003B338B1E79E5B3AD4FBF7850FACF9A3784489581A543C84816C8D3542AE888CE6D4EDDFD09C39957B131617BC", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } }
- 4. Impor ke sistem Anda
-
Anda atau mitra Anda akan menggunakan implementasi kunci impor pada sistem Anda untuk mengimpor kunci.
Ekspor Kunci DUKPT Awal (IPEK/IK)
Saat menggunakan DUKPT, satu Kunci Derivasi Dasar (BDK) dapat dihasilkan untuk armada terminal. Terminal, bagaimanapun, tidak pernah memiliki akses ke yang asli BDK tetapi masing-masing disuntikkan dengan kunci terminal awal yang unik yang dikenal sebagai IPEK atau Initial Key (IK). Masing-masing IPEK adalah kunci yang berasal dari BDK dan dimaksudkan untuk menjadi unik per terminal tetapi berasal dari aslinyaBDK. Data derivasi untuk perhitungan ini dikenal sebagai Key Serial Number (KSN). Per X9.24, untuk TDES 10 byte KSN biasanya terdiri dari 24 bit untuk Key Set ID, 19 bit untuk ID terminal dan 21 bit untuk counter transaksi. UntukAES, 12 byte KSN biasanya terdiri dari 32 bit untuk BDK ID, 32 bit untuk pengenal derivasi (ID) dan 32 bit untuk penghitung transaksi.
AWS Kriptografi Pembayaran menyediakan mekanisme untuk menghasilkan dan mengekspor kunci awal ini. Setelah dihasilkan, kunci ini dapat diekspor menggunakan metode TR-31, TR-34 dan bungkus. RSA IPEKkunci tidak bertahan dan tidak dapat digunakan untuk operasi selanjutnya pada Kriptografi AWS Pembayaran
AWS Kriptografi Pembayaran tidak memberlakukan pemisahan antara dua bagian pertama dari. KSN Jika Anda ingin menyimpan pengenal derivasi bersama denganBDK, Anda dapat menggunakan fitur AWS tag untuk tujuan ini.
catatan
Bagian penghitung dari KSN (32 bit untuk AESDUKPT) tidak digunakan untuk derivasi IPEK /IK. Oleh karena itu, input 12345678901234560001 dan 12345678901234569999 akan menghasilkan output yang sama. IPEK
$
aws payment-cryptography export-key --key-material='{"Tr31KeyBlock": {"WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza"}}' --export-key-identifier arn: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" } }
Menentukan header blok kunci saat ekspor
AWS Kriptografi Pembayaran mendukung kemampuan untuk memodifikasi atau menambahkan informasi blok kunci saat mengekspor dalam format TR-31 atau ASC TR-34. Tabel di bawah ini menjelaskan format blok kunci TR-31 dan elemen mana yang dapat dimodifikasi saat ekspor.
Atribut Blok Kunci | Tujuan | Ubah atau Tambahkan Setelah Ekspor? | Catatan |
---|---|---|---|
ID Versi |
Merupakan metode yang digunakan untuk melindungi bahan kunci yang mendasarinya. Standar mendefinisikan versi A dan versi C (varian kunci), versi B (menggunakan derivasiTDES) dan versi D (menggunakan derivasi kunci). AES |
Tidak dapat dimodifikasi |
AWS Kriptografi Pembayaran akan menggunakan versi B saat kunci pembungkus TDES dan versi D saat kunci pembungkusnya. AES Versi A dan Versi C tidak digunakan lagi dan hanya didukung untuk operasi impor. |
Panjang Blok Kunci |
Merupakan panjang pesan yang tersisa |
Tidak dapat dimodifikasi |
Nilai ini secara otomatis dihitung oleh layanan. Perhatikan bahwa layanan dapat menggunakan padding kunci seperti yang dipersyaratkan oleh spesifikasi, sehingga panjangnya mungkin tidak tampak benar sebelum mendekripsi muatan. |
Penggunaan Kunci |
Merupakan tujuan kunci yang diizinkan seperti C0 (Verifikasi Kartu) atau B0 (Kunci Derivasi Dasar) |
Tidak dapat dimodifikasi |
|
Algoritme |
Merupakan algoritma kunci yang mendasarinya. Standar ini mendukung beberapa tipe kunci seperti T (TDES), A (AES) dan E (ECC). AWS Kriptografi Pembayaran saat ini mendukung nilai T, H dan A. |
Tidak dapat dimodifikasi |
Ini diekspor dari Kriptografi AWS Pembayaran apa adanya. |
Penggunaan Kunci |
Merupakan jenis operasi yang dapat digunakan untuk. Contohnya termasuk Hasilkan dan Verifikasi (C) dan Encrypt/Decrypt/Wrap/Unwrap (B) |
Modifikasi* |
|
Versi Kunci |
Merupakan nomor versi kunci jika kunci diganti/diputar. Ini adalah nilai numerik dan default ke 00 jika tidak ditentukan. |
Menambahkan |
|
Ekspor Kunci |
Merupakan apakah kunci dapat diekspor. N berarti Tidak Ada Ekspor, E berarti ekspor sesuai dengan X9.24 (blok kunci), S berarti ekspor di bawah blok kunci atau format blok non-kunci. |
Modifikasi* |
|
Blok Kunci Opsional |
Menambahkan |
Blok kunci opsional adalah serangkaian pasangan nama/nilai yang dapat terikat secara samar ke kunci. Contoh umum adalah KeySet ID untuk DUKPT kunci. Format sebenarnya mencakup jumlah blok opsional, panjang masing-masing dan blok padding (PB), tetapi Kriptografi AWS Pembayaran akan secara otomatis menghitung ini berdasarkan masukan pasangan nama/nilai. |
*Saat memodifikasi, nilai baru harus lebih ketat daripada nilai saat ini dalam AWS Kriptografi Pembayaran. Misalnya, jika mode penggunaan kunci saat ini adalah Generate=True, Verify=True, saat mengekspor, Anda dapat mengubahnya menjadi Generate=True, Verify=False. Demikian pula jika kunci sudah diatur ke tidak dapat diekspor, Anda tidak dapat mengubahnya menjadi diekspor.
Saat mengekspor kunci, Kriptografi AWS Pembayaran secara otomatis menerapkan nilai saat ini untuk kunci yang diekspor tanpa modifikasi. Namun, dalam beberapa kasus, Anda mungkin ingin memodifikasi atau menambahkan nilai-nilai tersebut sebelum mengirim ke sistem penerima meskipun itu diizinkan oleh dalam Kriptografi AWS Pembayaran. Salah satu contohnya adalah ketika mengekspor kunci ke terminal pembayaran, biasanya membatasi ekspornya Not Exportable
karena terminal biasanya hanya dimaksudkan untuk mengimpor kunci dan karenanya tidak boleh mengekspor kunci selanjutnya.
Contoh lain adalah ketika Anda ingin meneruskan metadata kunci terkait ke sistem penerima. Sebelum TR-31, praktik umum adalah membuat muatan khusus untuk mengirim informasi tersebut, tetapi menggunakan TR-31 Anda dapat mengikatnya secara kriptografis ke kunci dalam format tertentu. Versi Kunci dapat diatur menggunakan KeyVersion
bidang. TR-31/X9.143 menentukan header umum tertentu tetapi tidak ada batasan untuk menggunakan yang lain asalkan sesuai dengan parameter Kriptografi AWS Pembayaran dan sistem penerima dapat menerimanya. Untuk informasi lebih lanjut tentang menentukan blok kunci selama ekspor, silakan lihat Header Blok Kunci di API Panduan.
Dalam contoh ini, kita mengekspor BDK kunci (misalnya ke aKIF). Kami menentukan versi kunci sebagai 02, menyetel KeyExportability ke NON _ EXPORTABLE dan memberikan nilai opsional untuk KeySet ID 00 yang ABCDEFAB berarti itu adalah TDES kunci (00) dan kunci awal adalahABCDEFABCD. Karena mode penggunaan kunci tidak ditentukan, kunci ini akan mewarisi mode penggunaan dari arn:aws:payment-cryptography:us-east- 2:111122223333:key/5rplquuwozodpwsp yang DeriveKey = true
catatan
$
aws payment-cryptography --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-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp
{ "WrappedKey": { "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK", "KeyMaterial": "D0128B0TX02N0100BI1000ABCDEFABCD1A2C0EADE244321640E94FE3A3C9D33800D47CE64238D9327DDBFE25B902352B29511AED4EF9BF65AF1E812BE665210F", "KeyCheckValue": "A4C9B3", "KeyCheckValueAlgorithm": "ANSI_X9_24" } }
Mengekspor kunci asimetris () RSA
Panggilan get-public-key-certificate
untuk mengekspor kunci publik dalam bentuk sertifikat. Ini API akan mengekspor sertifikat serta sertifikat root yang dikodekan dalam format base64.
NOTE: API Ini tidak idempoten - panggilan berikutnya dapat menghasilkan sertifikat yang berbeda meskipun kunci yang mendasarinya sama.
$
aws payment-cryptography get-public-key-certificate \ —key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5dza7xqd6soanjtb
{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT...“ }