exSymKey - AWS CloudHSM

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

exSymKey

Perintah exSymKey dalam alat key_mgmt_util mengekspor salinan plaintext dari kunci simetris dari HSM dan menyimpannya dalam file pada disk. Untuk mengekspor salinan kunci yang dienkripsi (dibungkus), gunakan wrapKey. Untuk mengimpor kunci plaintext, seperti yang exSymKey mengekspor, gunakan. imSymKey

Selama proses ekspor, exSymKey menggunakan kunci AES yang Anda tentukan (kunci pembungkus) untuk membungkus (mengenkripsi) dan kemudian membuka(dekripsi) kunci yang akan diekspor. Namun, hasil dari operasi ekspor adalah plaintext (terbuka) pada disk.

Hanya pemilik kunci, yaitu pengguna CU yang membuat kunci, dapat mengekspornya. Pengguna yang berbagi kunci dapat menggunakannya dalam operasi kriptografi, tetapi mereka tidak dapat mengekspornya.

Operasi exSymKey menyalin materi kunci ke file yang Anda tentukan, tetapi tidak menghapus kunci dari HSM, mengubah atribut kunci, atau mencegah Anda menggunakan kunci dalam operasi kriptografi. Anda dapat mengekspor kunci yang sama beberapa kali.

exSymKey mengekspor hanya kunci simetris. Untuk mengekspor kunci publik, gunakan exportPubKey. Untuk mengekspor kunci pribadi, gunakan exportPrivateKey.

Sebelum Anda menjalankan perintah key_mgmt_util, Anda harus memulai key_mgmt_util dan Masuk ke HSM sebagai pengguna kripto (CU).

Sintaks

exSymKey -h exSymKey -k <key-to-export> -w <wrapping-key> -out <key-file> [-m 4] [-wk <unwrapping-key-file> ]

Contoh

Contoh ini menunjukkan cara menggunakan exSymKey untuk mengekspor kunci simetris yang Anda miliki dari HSM Anda.

contoh : Ekspor kunci simetris 3DES

Perintah ini mengekspor kunci simetris Triple DES (3DES) (handel kunci 7). Perintah ini menggunakan kunci AES yang ada (handel kunci 6) di HSM sebagai kunci pembungkus. Kemudian, perintah ini menulis plaintext dari kunci 3DES ke file 3DES.key.

Output menunjukkan bahwa kunci 7 (kunci 3DES) berhasil dibungkus dan dibuka, dan kemudian ditulis ke file 3DES.key.

Awas

Meskipun output mengatakan bahwa “Kunci Simetris Terbungkus” ditulis ke file output, file output berisi kunci plaintext (terbuka).

Command: exSymKey -k 7 -w 6 -out 3DES.key Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS Wrapped Symmetric Key written to file "3DES.key"
contoh : Mengekspor dengan kunci pembungkus khusus sesi

Contoh ini menunjukkan bagaimana menggunakan kunci yang ada hanya dalam sesi sebagai kunci pembungkus. Karena kunci yang akan diekspor dibungkus, segera dibuka, dan dikirim sebagai plaintext, tidak perlu menyimpan kunci pembungkus.

Serangkaian perintah ini mengekspor kunci AES dengan handel kunci 8 dari HSM. Perintah ini menggunakan kunci sesi AES yang dibuat khusus untuk tujuan tersebut.

Perintah pertama digunakan genSymKeyuntuk membuat kunci AES 256-bit. Perintah ini menggunakan parameter -sess untuk membuat kunci yang ada hanya dalam sesi saat ini.

Output menunjukkan bahwa HSM membuat kunci 262168.

Command: genSymKey -t 31 -s 32 -l AES-wrapping-key -sess Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 262168 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS

Selanjutnya, contoh memverifikasi bahwa kunci 8, kunci yang akan diekspor, adalah kunci simetris yang dapat diekstrak. Contoh juga memverifikasi bahwa kunci pembungkus, kunci 262168, adalah kunci AES yang ada hanya dalam sesi. Anda dapat menggunakan perintah findKey, tetapi contoh ini mengekspor atribut dari kedua kunci ke file dan kemudian menggunakan grep untuk menemukan nilai atribut yang relevan dalam file.

Perintah ini menggunakan getAttribute dengan -a bernilai 512 (all) untuk mendapatkan semua atribut untuk kunci 8 dan 262168. Untuk informasi tentang elemen atribut kunci, lihat Referensi Atribut Kunci.

getAttribute -o 8 -a 512 -out attributes/attr_8 getAttribute -o 262168 -a 512 -out attributes/attr_262168

Perintah ini menggunakan grep untuk memverifikasi atribut kunci yang akan diekspor (kunci 8) dan kunci pembungkus hanya sesi (kunci 262168).

// Verify that the key to be exported is a symmetric key. $ grep -A 1 "OBJ_ATTR_CLASS" attributes/attr_8 OBJ_ATTR_CLASS 0x04 // Verify that the key to be exported is extractable. $ grep -A 1 "OBJ_ATTR_KEY_TYPE" attributes/attr_8 OBJ_ATTR_EXTRACTABLE 0x00000001 // Verify that the wrapping key is an AES key $ grep -A 1 "OBJ_ATTR_KEY_TYPE" attributes/attr_262168 OBJ_ATTR_KEY_TYPE 0x1f // Verify that the wrapping key is a session key $ grep -A 1 "OBJ_ATTR_TOKEN" attributes/attr_262168 OBJ_ATTR_TOKEN 0x00 // Verify that the wrapping key can be used for wrapping $ grep -A 1 "OBJ_ATTR_WRAP" attributes/attr_262168 OBJ_ATTR_WRAP 0x00000001

Akhirnya, kami menggunakan perintah exSymKey untuk mengekspor kunci 8 menggunakan kunci sesi (kunci 262168) sebagai kunci pembungkus.

Saat sesi berakhir, kunci 262168 sudah tidak ada lagi.

Command: exSymKey -k 8 -w 262168 -out aes256_H8.key Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS Wrapped Symmetric Key written to file "aes256_H8.key"
contoh : Gunakan kunci membuka bungkusan eksternal

Contoh ini menunjukkan bagaimana menggunakan kunci pembuka pembungkus eksternal untuk mengekspor kunci dari HSM.

Ketika Anda mengekspor kunci dari HSM, Anda menentukan kunci AES pada HSM menjadi kunci pembungkus. Secara default, bahwa kunci pembungkus digunakan untuk membungkus dan membuka kunci yang akan diekspor. Namun, Anda dapat menggunakan parameter -wk untuk memberitahu exSymKey untuk menggunakan kunci eksternal dalam file pada disk untuk membuka bungkus. Ketika Anda melakukannya, kunci yang ditentukan oleh parameter -w membungkus kunci target, dan kunci dalam file yang ditentukan oleh parameter -wk membuka kunci.

Karena kunci pembungkus harus kunci AES, yang simetris, kunci pembungkus di HSM dan kunci pembuka pada disk harus memiliki bahan kunci yang sama. Untuk melakukan ini, Anda harus mengimpor kunci pembungkus ke HSM atau mengekspor kunci pembungkus dari HSM sebelum operasi ekspor.

Contoh ini membuat kunci di luar HSM dan mengimpornya ke dalam HSM. Contoh ini menggunakan salinan internal kunci untuk membungkus kunci simetris yang sedang diekspor, dan salinan kunci dalam file untuk membukanya.

Perintah pertama menggunakan genSymKey Untuk membuat kunci AES 256-bit. Perintah ini menyimpan kunci ke file aes256-forImport.key. Perintah OpenSSL tidak mengembalikan output apa pun, tetapi Anda dapat menggunakan beberapa perintah untuk mengonfirmasi keberhasilannya. Contoh ini menggunakan alat wc (wordcount) alat, yang mengonfirmasi bahwa file berisi 32 byte data.

$ openssl rand -out keys/aes256-forImport.key 32 $ wc keys/aes256-forImport.key 0 2 32 keys/aes256-forImport.key

Perintah ini menggunakan imSymKeyperintah untuk mengimpor kunci AES dari aes256-forImport.key file ke HSM. Ketika perintah selesai, kunci ada di HSM dengan handel kunci 262167 dan dalam file aes256-forImport.key.

Command: imSymKey -f keys/aes256-forImport.key -t 31 -l aes256-imported -w 6 Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Unwrapped. Key Handle: 262167 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Perintah ini menggunakan kunci dalam operasi ekspor. Perintah menggunakan exSymKey untuk mengekspor kunci 21, kunci AES 192-bit. Untuk membungkus kunci, perintah menggunakan kunci 262167, yang merupakan salinan yang diimpor ke dalam HSM. Untuk membuka kunci, perintah menggunakan bahan kunci yang sama dalam file aes256-forImport.key. Saat perintah selesai, kunci 21 diekspor ke file aes192_h21.key.

Command: exSymKey -k 21 -w 262167 -out aes192_H21.key -wk aes256-forImport.key Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS Wrapped Symmetric Key written to file "aes192_H21.key"

Parameter

-h

Menampilkan bantuan untuk perintah.

Wajib: Ya

-k

Menentukan handel kunci dari kunci untuk ekspor. Parameter ini diperlukan. Masukkan handel kunci dari kunci simetris yang Anda miliki. Parameter ini diperlukan. Untuk menemukan handel kunci, gunakan perintah findKey.

Untuk memverifikasi bahwa kunci dapat diekspor, gunakan perintah getAttribute untuk mendapatkan nilai atribut OBJ_ATTR_EXTRACTABLE, yang diwakili oleh konstanta 354. Selain itu, Anda hanya dapat mengekspor kunci yang Anda miliki. Untuk menemukan pemilik kunci, gunakan getKeyInfoperintah.

Wajib: Ya

-w

Menentukan handel kunci dari kunci pembungkus. Parameter ini diperlukan. Untuk menemukan handel kunci, gunakan perintah findKey.

Kunci pembungkus adalah kunci dalam HSM yang digunakan untuk mengenkripsi (membungkus) dan kemudian mendekripsi (membuka) kunci untuk diekspor. Hanya kunci AES yang dapat digunakan sebagai kunci pembungkus.

Anda dapat menggunakan kunci AES (dari berbagai ukuran) sebagai kunci pembungkus. Karena kunci pembungkus membungkus, dan kemudian segera membuka, kunci target, Anda dapat menggunakan sebagai kunci AES hanya sesi sebagai kunci pembungkus. Untuk menentukan apakah kunci dapat digunakan sebagai kunci pembungkus, gunakan getAttribute untuk mendapatkan nilai dari atribut OBJ_ATTR_WRAP, yang diwakili oleh konstanta 262. Untuk membuat kunci pembungkus, gunakan genSymKeyuntuk membuat kunci AES (tipe 31).

Jika Anda menggunakan parameter -wk untuk menentukan kunci membuka pembungkus eksternal, kunci pembungkus -w digunakan untuk membungkus, tetapi tidak untuk membuka, kunci selama ekspor.

catatan

Kunci 4 merupakan kunci internal yang tidak didukung. Kami merekomendasikan bahwa Anda menggunakan kunci AES yang Anda buat dan kelola sebagai kunci pembungkus.

Wajib: Ya

-out

Menentukan jalur dan nama file output. Ketika perintah berhasil, file ini berisi kunci yang diekspor dalam plaintext. Jika file sudah ada, perintah akan menimpa tanpa peringatan.

Wajib: Ya

-m

Menentukan mekanisme pembungkus. Satu-satunya nilai yang valid adalah 4, yang mewakili mekanisme NIST_AES_WRAP.

Wajib: Tidak

Default: 4 ()

-wk

Gunakan kunci AES dalam file tertentu untuk membuka kunci yang sedang diekspor. Masukkan jalur dan nama file yang berisi kunci AES plaintext.

Bila Anda menyertakan parameter ini. exSymKey menggunakan kunci dalam HSM yang ditentukan oleh parameter -w untuk membungkus kunci yang sedang diekspor dan menggunakan kunci dalam file -wk untuk membukanya. Nilai parameter -w dan -wk harus menyelesaikan ke kunci plaintext yang sama.

Wajib: Tidak

Default: Gunakan kunci pembungkus pada HSM untuk membuka.

Topik terkait