Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Impor kunci simetris plaintext menggunakan AWS CloudHSM KMU
Gunakan imSymKey perintah di alat AWS CloudHSM key_mgmt_util untuk mengimpor salinan teks biasa dari kunci simetris dari file ke modul sekuriy perangkat keras (). HSM Anda dapat menggunakannya untuk mengimpor kunci yang Anda hasilkan dengan metode apa pun di luar HSM dan kunci yang diekspor dariHSM, seperti kunci yang ditulis oleh perintah exSymKey, ke file.
Selama proses impor, imSymKey gunakan AES kunci yang Anda pilih (kunci pembungkus) untuk membungkus (mengenkripsi) dan kemudian membuka (mendekripsi) kunci yang akan diimpor. Namun, imSymKey bekerja hanya pada file yang berisi kunci teks terang. Untuk mengekspor dan mengimpor kunci terenkripsi, gunakan perintah wrapKeyand unWrapKey.
Selain itu, perintah imSymKey mengimpor hanya kunci simetris. Untuk mengimpor kunci publik, gunakan importPubKey. Untuk mengimpor kunci pribadi, gunakan importPrivateKeyatau wrapKey.
catatan
Anda tidak dapat mengimpor kunci yang dilindungi kata sandi menggunakan PEM kunci simetris atau pribadi.
Kunci yang diimpor bekerja sangat mirip dengan kunci yang dihasilkan diHSM. Namun, nilai LOCALatribut OBJ _ ATTR _ adalah nol, yang menunjukkan bahwa itu tidak dihasilkan secara lokal. Anda dapat menggunakan perintah berikut untuk berbagi kunci simetris saat Anda mengimpornya. Anda dapat menggunakan perintah shareKey
di cloudhsm_mgmt_util untuk berbagi kunci setelah diimpor.
imSymKey -l aesShared -t 31 -f kms.key -w 3296 -u 5
Setelah Anda mengimpor kunci, pastikan untuk menandai atau menghapus file kunci. Perintah ini tidak mencegah Anda dari mengimpor materi kunci yang sama beberapa kali. Hasilnya, beberapa kunci dengan handel kunci yang berbeda dan materi kunci yang sama, menyulitkan untuk melacak penggunaan materi kunci dan mencegahnya melebihi batas kriptografinya.
Sintaks
imSymKey -h imSymKey -f <key-file> -w <wrapping-key-handle> -t <key-type> -l <label> [-id <key-ID>] [-sess] [-wk <wrapping-key-file> ] [-attest] [-min_srv <minimum-number-of-servers>] [-timeout <number-of-seconds> ] [-u <user-ids>]
Contoh
Contoh-contoh ini menunjukkan cara menggunakan imSymKey untuk mengimpor kunci simetris ke dalam kunci AndaHSMs.
contoh : Impor kunci AES simetris
Contoh ini digunakan imSymKey untuk mengimpor kunci AES simetris ke dalam. HSMs
Perintah pertama menggunakan Open SSL untuk menghasilkan kunci AES simetris 256-bit acak. Menyimpan kunci dalam file aes256.key
.
$
openssl rand -out aes256-forImport.key 32
Perintah kedua digunakan imSymKey untuk mengimpor AES kunci dari aes256.key
file ke fileHSMs. Ini menggunakan kunci 20, AES kunci dalamHSM, sebagai kunci pembungkus dan menentukan label. imported
Berbeda dengan ID, label tidak perlu unik di klaster. Nilai parameter -t
(tipe) adalah31
, yang mewakiliAES.
Output menunjukkan bahwa kunci dalam file dibungkus dan dibuka, kemudian diimpor keHSM, di mana ia diberi pegangan kunci 262180.
Command:
imSymKey -f aes256.key -w 20 -t 31 -l imported
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Unwrapped. Key Handle: 262180 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
Perintah berikutnya digunakan getAttributeuntuk mendapatkan atribut OBJ _ ATTR _ (LOCALatribut 355) dari kunci yang baru diimpor dan menuliskannya ke attr_262180
file.
Command:
getAttribute -o 262180 -a 355 -out attributes/attr_262180
Attributes dumped into attributes/attr_262180_imported file Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS
Ketika Anda memeriksa file atribut, Anda dapat melihat bahwa nilai OBJ_ATTR_LOCAL
atribut adalah nol, yang menunjukkan bahwa materi kunci tidak dihasilkan dalamHSM.
$
cat attributes/attr_262180_local
OBJ_ATTR_LOCAL 0x00000000
contoh : Pindahkan kunci simetris antar cluster
Contoh ini menunjukkan cara menggunakan exSymKeydan imSymKey memindahkan AES kunci plaintext antar cluster. Anda mungkin menggunakan proses seperti ini untuk membuat AES pembungkus yang ada di HSMs kedua cluster. Setelah kunci pembungkus bersama sudah terpasang, Anda dapat menggunakan wrapKeydan unWrapKeymemindahkan kunci terenkripsi di antara cluster.
Pengguna CU yang melakukan operasi ini harus memiliki izin untuk masuk ke HSMs kedua cluster.
Perintah pertama digunakan exSymKeyuntuk mengekspor kunci 14, AES kunci 32-bit, dari cluster 1 ke dalam aes.key
file. Ini menggunakan kunci 6, AES kunci HSMs di cluster 1, sebagai kunci pembungkus.
Command:
exSymKey -k 14 -w 6 -out aes.key
Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS Wrapped Symmetric Key written to file "aes.key"
Pengguna kemudian masuk ke key_mgmt_util di cluster 2 dan menjalankan imSymKey perintah untuk mengimpor kunci dalam file ke dalam cluster 2. aes.key
HSMs Perintah ini menggunakan kunci 252152, AES kunci HSMs di cluster 2, sebagai kunci pembungkus.
Karena tombol pembungkus itu exSymKeydan imSymKey gunakan bungkus dan segera buka kunci target, tombol pembungkus pada cluster yang berbeda tidak perlu sama.
Output menunjukkan bahwa kunci berhasil diimpor ke dalam klaster 2 dan handel kunci 21 ditugaskan.
Command:
imSymKey -f aes.key -w 262152 -t 31 -l xcluster
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Unwrapped. Key Handle: 21 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
Untuk membuktikan bahwa kunci 14 dari cluster 1 dan kunci 21 di cluster 2 memiliki bahan kunci yang sama, dapatkan nilai cek kunci (KCV) dari setiap kunci. Jika KCV nilainya sama, bahan kuncinya sama.
Perintah berikut menggunakan getAttributedalam cluster 1 untuk menulis nilai KCV atribut (atribut 371) dari kunci 14 ke attr_14_kcv
file. Kemudian, ini menggunakan perintah cat untuk mendapatkan isi dari file attr_14_kcv
.
Command:
getAttribute -o 14 -a 371 -out attr_14_kcv
Attributes dumped into attr_14_kcv file
$
cat attr_14_kcv
OBJ_ATTR_KCV 0xc33cbd
Perintah serupa ini digunakan getAttributedi cluster 2 untuk menulis nilai KCV atribut (atribut 371) dari kunci 21 ke attr_21_kcv
file. Kemudian, ini menggunakan perintah cat untuk mendapatkan isi dari file attr_21_kcv
.
Command:
getAttribute -o 21 -a 371 -out attr_21_kcv
Attributes dumped into attr_21_kcv file
$
cat attr_21_kcv
OBJ_ATTR_KCV 0xc33cbd
Output menunjukkan bahwa KCV nilai-nilai dari dua kunci adalah sama, yang membuktikan bahwa bahan kunci adalah sama.
Karena materi kunci yang sama ada di kedua cluster, Anda sekarang dapat berbagi kunci terenkripsi antara cluster tanpa pernah mengekspos kunci plaintext. HSMs Misalnya, Anda dapat menggunakan perintah wrapKey
dengan kunci pembungkus 14 untuk mengekspor kunci terenkripsi dari klaster 1, dan kemudian gunakan unWrapKey
dengan pembungkus kunci 21 untuk mengimpor kunci dienkripsi ke dalam klaster 2.
contoh : Impor kunci sesi
Perintah ini menggunakan -sess
parameter imSymKey untuk mengimpor DES kunci Triple 192-bit yang hanya valid di sesi saat ini.
Perintah menggunakan parameter -f
untuk menentukan file yang berisi kunci untuk diimpor, parameter -t
untuk menentukan jenis kunci, dan parameter -w
untuk menentukan kunci pembungkus. Perintah menggunakan parameter -l
untuk menentukan label yang mengelompokkan kunci dan parameter -id
untuk membuat pengenal yang mudah diingat, tapi unik, untuk kunci. Perintah ini juga menggunakan parameter -attest
untuk memverifikasi firmware yang mengimpor kunci.
Output menunjukkan bahwa kunci berhasil dibungkus dan dibuka, diimpor ke dalamHSM, dan diberi pegangan kunci 37. Selain itu, pemeriksaan pengesahan dilewatkan, yang menunjukkan bahwa firmware belum dirusak.
Command:
imSymKey -f 3des192.key -w 6 -t 21 -l temp -id test01 -sess -attest
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Unwrapped. Key Handle: 37 Attestation Check : [PASS] Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Selanjutnya, Anda dapat menggunakan findKeyperintah getAttributeor untuk memverifikasi atribut kunci yang baru diimpor. Perintah berikut menggunakan findKey untuk memverifikasi bahwa kunci 37 memiliki jenis, label, dan ID yang ditentukan oleh perintah, dan bahwa itu adalah kunci sesi. Ditampilkan pada baris 5 output, findKey melaporkan bahwa satu-satunya kunci yang cocok dengan semua atribut adalah kunci 37.
Command:
findKey -t 21 -l temp -id test01 -sess 1
Total number of keys present 1 number of keys matched from start index 0::0 37 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
Parameter
- -attest
Menjalankan pemeriksaan integritas yang memverifikasi bahwa firmware tempat klaster berjalan belum dirusak.
Default: Tidak ada pemeriksaan pengesahan.
Wajib: Tidak
- -f
-
Menentukan file yang berisi kunci untuk diimpor.
File harus berisi salinan teks biasa dari DES kunci AES atau Triple dari panjang yang ditentukan. RC4dan DES kunci tidak valid pada FIPS -modeHSMs.
-
AES: 16, 24 atau 32 byte
-
Tiga kali lipat DES (3DES): 24 byte
Wajib: Ya
-
- -h
-
Menampilkan bantuan untuk perintah.
Wajib: Ya
- -id
-
Menentukan pengenal yang ditetapkan pengguna untuk kunci. Ketik string yang unik dalam klaster. Default-nya adalah string kosong.
Default: Tidak ada nilai ID.
Wajib: Tidak
- -l
-
Menentukan label yang ditetapkan pengguna untuk kunci. Ketik string.
Anda dapat menggunakan frasa apa pun yang membantu Anda mengidentifikasi kunci. Karena label tidak harus unik, Anda dapat menggunakannya pada grup dan mengelompokkan kunci.
Wajib: Ya
- -min_srv
-
Menentukan jumlah minimum HSMs di mana kunci disinkronkan sebelum nilai
-timeout
parameter berakhir. Jika kunci tidak disinkronkan ke jumlah tertentu server dalam waktu yang ditentukan, kunci tidak dibuat.AWS CloudHSM secara otomatis menyinkronkan setiap kunci ke setiap HSM di cluster. Untuk mempercepat proses Anda, tetapkan nilai kurang dari jumlah HSMs di cluster dan tetapkan nilai batas waktu yang rendah.
min_srv
Namun, perhatikan bahwa beberapa permintaan mungkin tidak menghasilkan kunci.Default: 1
Wajib: Tidak
- -sess
-
Membuat kunci yang hanya ada di sesi saat ini. Kunci tidak dapat dipulihkan setelah sesi berakhir.
Gunakan parameter ini ketika Anda memerlukan kunci hanya sebentar, seperti kunci pembungkus yang mengenkripsi, dan kemudian dengan cepat mendekripsi, kunci lain. Jangan gunakan kunci sesi untuk mengenkripsi data yang mungkin perlu Anda dekripsi setelah sesi berakhir.
Untuk mengubah kunci sesi menjadi kunci persisten (token), gunakan setAttribute.
Default: Kunci persisten.
Wajib: Tidak
- -timeout
-
Menentukan berapa lama (dalam detik) perintah menunggu kunci untuk disinkronkan dengan jumlah yang HSMs ditentukan oleh parameter.
min_srv
Parameter ini hanya valid jika parameter
min_srv
juga digunakan dalam perintah.Default: Tidak ada waktu habis. Perintah menunggu tanpa batas waktu dan kembali hanya ketika kunci disinkronkan ke jumlah minimum server.
Wajib: Tidak
- -t
-
Menentukan jenis kunci simetris. Masukkan konstanta yang mewakili jenis kunci. Misalnya, untuk membuat AES kunci, masukkan
-t 31
.Nilai valid:
-
31: AES
Wajib: Ya
- -u
-
Berbagi kunci yang Anda impor dengan pengguna tertentu. Parameter ini memberikan izin kepada pengguna HSM kripto lainnya (CUs) untuk menggunakan kunci ini dalam operasi kriptografi.
Ketik satu ID atau daftar HSM pengguna yang dipisahkan komaIDs, seperti -u.
5,6
Jangan sertakan ID HSM pengguna pengguna saat ini. Untuk menemukan ID, Anda dapat menggunakan listUsersperintah di alat baris perintah cloudhsm_mgmt_util atau perintah di alat baris perintah key_mgmt_util. listUsersWajib: Tidak
- -w
-
Menentukan handel kunci dari kunci pembungkus. Parameter ini diperlukan. Untuk menemukan pegangan kunci, gunakan findKeyperintah.
Kunci pembungkus adalah kunci yang digunakan untuk mengenkripsi (“bungkus”) dan kemudian mendekripsi (“membuka bungkus) kunci selama proses impor. HSM Hanya AES kunci yang dapat digunakan sebagai kunci pembungkus.
Anda dapat menggunakan AES kunci apa saja (dari berbagai ukuran) sebagai kunci pembungkus. Karena kunci pembungkus membungkus, dan kemudian segera membuka, kunci target, Anda dapat menggunakan sebagai kunci sesi saja AES sebagai kunci pembungkus. Untuk menentukan apakah kunci dapat digunakan sebagai kunci pembungkus, gunakan getAttributeuntuk mendapatkan nilai
OBJ_ATTR_WRAP
atribut (262). Untuk membuat kunci pembungkus, gunakan genSymKeyuntuk membuat AES kunci (tipe 31).Jika Anda menggunakan parameter
-wk
untuk menentukan kunci pembungkus eksternal, kunci pembungkus-w
digunakan untuk membuka, tetapi tidak untuk membungkus, kunci yang sedang diimpor.catatan
Kunci 4 adalah kunci internal yang tidak didukung. Kami menyarankan Anda menggunakan AES kunci yang Anda buat dan kelola sebagai kunci pembungkus.
Wajib: Ya
- -wk
-
Gunakan AES kunci dalam file yang ditentukan untuk membungkus kunci yang sedang diimpor. Masukkan path dan nama file yang berisi kunci plaintextAES.
Bila Anda menyertakan parameter ini. imSymKeymenggunakan kunci dalam
-wk
file untuk membungkus kunci yang diimpor dan menggunakan kunci dalam HSM yang ditentukan oleh-w
parameter untuk membukanya. Nilai parameter-w
dan-wk
harus menyelesaikan ke kunci plaintext yang sama.Default: Gunakan tombol pembungkus HSM untuk membuka bungkusnya.
Wajib: Tidak