Menggunakan kunci tepercaya di AWS CloudHSM - AWS CloudHSM

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

Menggunakan kunci tepercaya di AWS CloudHSM

AWS CloudHSM mendukung pembungkus kunci tepercaya untuk melindungi kunci data dari ancaman orang dalam. Topik ini menjelaskan cara membuat kunci tepercaya untuk mengamankan data.

Memahami kunci tepercaya

Kunci tepercaya adalah kunci yang digunakan untuk membungkus kunci lain dan admin dan petugas kriptografi (CO) secara khusus mengidentifikasi sebagai tepercaya menggunakan atribut. CKA_TRUSTED Selain itu, admin dan petugas kriptografi (CO) menggunakan CKA_UNWRAP_TEMPLATE dan atribut terkait untuk menentukan tindakan apa yang dapat dilakukan kunci data setelah dibuka oleh kunci tepercaya. Kunci data yang dibuka oleh kunci tepercaya juga harus berisi atribut ini agar operasi unwrap berhasil, yang membantu memastikan bahwa kunci data yang tidak dibungkus hanya diizinkan untuk penggunaan yang Anda inginkan.

Gunakan atribut CKA_WRAP_WITH_TRUSTED untuk mengidentifikasi semua kunci data yang ingin Anda bungkus dengan kunci tepercaya. Melakukan hal ini memungkinkan Anda untuk membatasi kunci data sehingga aplikasi hanya dapat menggunakan kunci tepercaya untuk membuka bungkusnya. Setelah Anda menetapkan atribut ini pada kunci data, atribut menjadi read-only dan Anda tidak dapat mengubahnya. Dengan atribut ini, aplikasi hanya dapat membuka kunci data Anda dengan kunci yang Anda percayai, dan unwraps selalu menghasilkan kunci data dengan atribut yang membatasi bagaimana kunci ini dapat digunakan.

Atribut kunci tepercaya

Atribut berikut memungkinkan Anda menandai kunci sebagai tepercaya, menentukan kunci data hanya dapat dibungkus dan dibuka dengan kunci tepercaya, dan mengontrol apa yang dapat dilakukan kunci data setelah dibuka:

  • CKA_TRUSTED: Terapkan atribut ini (selainCKA_UNWRAP_TEMPLATE) ke kunci yang akan membungkus kunci data untuk menentukan bahwa admin atau petugas kripto (CO) telah melakukan ketekunan yang diperlukan dan mempercayai kunci ini. Hanya admin atau CO yang dapat mengaturCKA_TRUSTED. Pengguna kripto (CU) memiliki kunci, tetapi hanya CO yang dapat mengatur CKA_TRUSTED atributnya.

  • CKA_WRAP_WITH_TRUSTED: Terapkan atribut ini ke kunci data yang dapat diekspor untuk menentukan bahwa Anda hanya dapat membungkus kunci ini dengan kunci yang ditandai sebagaiCKA_TRUSTED. Setelah Anda mengatur CKA_WRAP_WITH_TRUSTED menjadi true (benar), atribut menjadi hanya-baca dan Anda tidak dapat mengubah atau menghapus atribut.

  • CKA_UNWRAP_TEMPLATE: Terapkan atribut ini ke kunci pembungkus (selain CKA_TRUSTED) untuk menentukan nama atribut dan nilai-nilai layanan harus secara otomatis berlaku untuk kunci data yang dibuka oleh layanan. Ketika sebuah aplikasi mengajukan kunci untuk pembukaan, aplikasi juga dapat memberikan templat buka sendiri. Jika Anda menentukan template unwrap dan aplikasi menyediakan template unwrap sendiri, HSM menggunakan kedua template untuk menerapkan nama atribut dan nilai ke kunci. Namun, jika nilai dalam CKA_UNWRAP_TEMPLATE untuk kunci pembungkus konflik dengan atribut yang disediakan oleh aplikasi selama permintaan buka, maka permintaan buka gagal.

Untuk informasi lebih lanjut tentang atribut, lihat topik berikut:

Cara menggunakan kunci tepercaya untuk membungkus kunci data

Untuk menggunakan kunci tepercaya untuk membungkus kunci data, Anda harus menyelesaikan tiga langkah dasar:

  1. Untuk kunci data yang Anda rencanakan untuk dibungkus dengan kunci tepercaya, atur CKA_WRAP_WITH_TRUSTED atributnya ke true.

  2. Untuk kunci tepercaya yang Anda rencanakan untuk membungkus kunci data, atur CKA_TRUSTED atributnya ke true.

  3. Gunakan kunci tepercaya untuk membungkus kunci data.

Langkah 1: Atur kunci data CKA_WRAP_WITH_TRUSTED ke true

Untuk kunci data yang ingin Anda bungkus, pilih salah satu opsi berikut untuk mengatur CKA_WRAP_WITH_TRUSTED atribut kunci ke true. Melakukan hal ini membatasi kunci data sehingga aplikasi hanya dapat menggunakan kunci tepercaya untuk membungkusnya.

Opsi 1: Jika menghasilkan kunci baru, atur CKA_WRAP_WITH_TRUSTED ke true

Buat kunci menggunakan PKCS #11, JCE, atau CloudHSM CLI. Lihat contoh berikut untuk lebih jelasnya.

PKCS #11

Untuk menghasilkan kunci dengan PKCS #11, Anda perlu mengatur CKA_WRAP_WITH_TRUSTED atribut kunci ke true. Seperti yang ditunjukkan dalam contoh berikut, lakukan ini dengan memasukkan atribut ini dalam kunci CK_ATTRIBUTE template dan kemudian mengatur atribut ke true:

CK_BYTE_PTR label = "test_key"; CK_ATTRIBUTE template[] = { {CKA_WRAP_WITH_TRUSTED, &true_val, sizeof(CK_BBOOL)}, {CKA_LABEL, label, strlen(label)}, ... };

Untuk informasi selengkapnya, lihat sampel publik kami yang mendemonstrasikan pembuatan kunci dengan PKCS #11.

JCE

Untuk menghasilkan kunci dengan JCE, Anda perlu mengatur WRAP_WITH_TRUSTED atribut kunci ke true. Seperti yang ditunjukkan dalam contoh berikut, lakukan ini dengan memasukkan atribut ini dalam kunci KeyAttributesMap dan kemudian mengatur atribut ke true:

final String label = "test_key"; final KeyAttributesMap keySpec = new KeyAttributesMap(); keySpec.put(KeyAttribute.WRAP_WITH_TRUSTED, true); keySpec.put(KeyAttribute.LABEL, label); ...

Untuk informasi lebih lanjut, lihat sampel publik kami yang menunjukkan pembuatan kunci dengan JCE.

CloudHSM CLI

Untuk menghasilkan kunci dengan CloudHSM CLI, Anda perlu mengatur atribut kunci ke true. wrap-with-trusted Lakukan ini dengan memasukkan wrap-with-trusted=true argumen yang sesuai untuk perintah pembuatan kunci:

  • Untuk kunci simetris, wrap-with-trusted tambahkan attributes argumen.

  • Untuk kunci publik, wrap-with-trusted tambahkan public-attributes argumen.

  • Untuk kunci pribadi, wrap-with-trusted tambahkan private-attributes argumen.

Untuk informasi selengkapnya tentang pembuatan key pair, lihatkunci generate-asymmetric-pair .

Untuk informasi lebih lanjut tentang pembuatan kunci simetris, lihatkunci menghasilkan-simetris .

Opsi 2: Jika menggunakan kunci yang ada, gunakan CloudHSM CLI untuk menyetelnya ke true CKA_WRAP_WITH_TRUSTED

Untuk menyetel CKA_WRAP_WITH_TRUSTED atribut kunci yang ada ke true, ikuti langkah-langkah berikut:

  1. Gunakan login perintah untuk masuk sebagai pengguna kripto (CU).

  2. Gunakan kunci set-atribut perintah untuk mengatur wrap-with-trusted atribut kunci ke true.

    aws-cloudhsm > key set-attribute --filter attr.label=test_key --name wrap-with-trusted --value true { "error_code": 0, "data": { "message": "Attribute set successfully" } }

Langkah 2: Atur kunci tepercaya CKA_TRUSTED ke true

Untuk membuat kunci menjadi kunci tepercaya, CKA_TRUSTED atributnya harus disetel ke true. Anda dapat menggunakan CloudHSM CLI atau CloudHSM Management Utility (CMU) untuk melakukan ini.

Langkah 3. Gunakan kunci tepercaya untuk membungkus kunci data

Untuk membungkus kunci data yang direferensikan di Langkah 1 dengan kunci tepercaya yang Anda tetapkan di Langkah 2, lihat tautan berikut untuk contoh kode. Masing-masing menunjukkan cara membungkus kunci.

Cara membuka kunci data dengan kunci tepercaya

Untuk membuka kunci data, Anda memerlukan kunci tepercaya yang telah CKA_UNWRAP disetel ke true. Untuk menjadi kunci seperti itu, itu juga harus memenuhi kriteria berikut:

  • CKA_TRUSTEDAtribut kunci harus disetel ke true.

  • Kunci harus menggunakan CKA_UNWRAP_TEMPLATE dan atribut terkait untuk menentukan tindakan apa yang dapat dilakukan oleh kunci data setelah dibuka. Jika, misalnya, Anda ingin kunci yang tidak dibungkus menjadi tidak dapat diekspor, Anda menetapkan CKA_EXPORTABLE = FALSE sebagai bagian dari. CKA_UNWRAP_TEMPLATE

catatan

CKA_UNWRAP_TEMPLATEhanya tersedia dengan PKCS #11.

Ketika aplikasi mengirimkan kunci untuk dibuka, aplikasi juga dapat menyediakan template unwrap sendiri. Jika Anda menentukan template unwrap dan aplikasi menyediakan template unwrap sendiri, HSM menggunakan kedua template untuk menerapkan nama atribut dan nilai ke kunci. Namun, jika selama permintaan buka bungkus nilai dalam kunci tepercaya CKA_UNWRAP_TEMPLATE bertentangan dengan atribut yang disediakan oleh aplikasi, permintaan unwrap gagal.

Untuk melihat contoh membuka kunci data dengan kunci tepercaya, lihat contoh PKCS #11 ini.