Atribut kunci Java yang didukung untuk Client SDK 5 - AWS CloudHSM

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

Atribut kunci Java yang didukung untuk Client SDK 5

Topik ini menjelaskan cara menggunakan ekstensi eksklusif untuk penyedia JCE untuk menetapkan atribut kunci. Gunakan ekstensi ini untuk mengatur atribut kunci yang didukung dan nilai-nilainya selama operasi ini:

  • Pembuatan kunci

  • Impor kunci

Untuk contoh cara menggunakan atribut kunci, lihatContoh kode untuk pustaka AWS CloudHSM perangkat lunak untuk Java untuk Klien SDK 5.

Memahami atribut

Gunakan atribut kunci untuk menentukan tindakan apa yang diizinkan pada objek utama, termasuk kunci publik, pribadi, atau rahasia. atribut kunci dan nilai-nilai didefinisikan selama operasi pembuatan objek kunci.

Java Cryptography Extension (JCE) tidak menentukan bagaimana Anda harus menetapkan nilai pada atribut kunci, sehingga sebagian besar tindakan diizinkan secara default. Sebaliknya, PKCS # 11 standar menentukan satu set lengkap atribut dengan default lebih ketat. Dimulai dengan penyedia JCE 3.1, AWS CloudHSM menyediakan ekstensi berpemilik yang memungkinkan Anda menetapkan nilai yang lebih ketat untuk atribut yang umum digunakan.

Atribut yang didukung

Anda dapat mengatur nilai untuk atribut yang tercantum dalam tabel berikut. Sebagai praktik terbaik, tetapkan hanya nilai untuk atribut yang ingin Anda buat ketat. Jika Anda tidak menentukan nilai, AWS CloudHSM menggunakan nilai default yang ditentukan dalam tabel di bawah ini. Sel kosong di kolom Nilai Default menunjukkan bahwa tidak ada nilai default tertentu yang ditetapkan untuk atribut.

Atribut Nilai Default Catatan
Kunci simetris Kunci Publik dalam Pasangan Kunci Kunci Privat dalam Pasangan Kunci
DECRYPT TRUE TRUE Benar menunjukkan Anda dapat menggunakan kunci untuk mendekripsi penyangga apa pun. Anda biasanya mengatur ini ke FALSE untuk kunci yang WRAP diatur ke true.
DERIVE Memungkinkan kunci yang akan digunakan untuk mendapatkan kunci lainnya.
ENCRYPT TRUE TRUE Benar menunjukkan Anda dapat menggunakan kunci untuk mengenkripsi penyangga apa pun.
EXTRACTABLE TRUE TRUE Benar menunjukkan Anda dapat mengekspor kunci ini keluar dari HSM.
KEY_TYPE Digunakan untuk mengidentifikasi jenis kunci (AES, DeSede, generic secret, EC, atau RSA).
LABEL String yang ditentukan pengguna yang memungkinkan Anda mengidentifikasi kunci pada HSM dengan mudah. Untuk mengikuti praktik terbaik, gunakan label unik untuk setiap tombol sehingga lebih mudah ditemukan nanti.
LOCAL Menunjukkan kunci yang dihasilkan oleh HSM.
OBJECT_CLASS Digunakan untuk mengidentifikasi Object Class dari key (SecretKey, PublicKey orPrivateKey).
PRIVATE TRUE TRUE TRUE Benar menunjukkan bahwa pengguna tidak dapat mengakses kunci sampai pengguna diautentikasi. Untuk kejelasan, pengguna tidak dapat mengakses kunci apa pun AWS CloudHSM sampai mereka diautentikasi, bahkan jika atribut ini disetel ke FALSE.
SIGN TRUE TRUE Benar menunjukkan Anda dapat menggunakan kunci untuk menandatangani digest pesan. Hal ini umumnya diatur ke FALSE untuk kunci publik dan kunci privat yang telah Anda arsipkan.
SIZE Atribut yang mendefinisikan ukuran kunci. Untuk detail selengkapnya tentang ukuran kunci yang didukung, lihat Mekanisme yang Didukung untuk SDK Klien 5.
TOKEN FALSE FALSE FALSE

Kunci permanen yang direplikasi di semua HSM di klaster dan termasuk dalam cadangan. TOKEN = FALSE menyiratkan kunci sementara yang secara otomatis terhapus ketika koneksi ke HSM rusak atau logout.

UNWRAP TRUE TRUE Benar menunjukkan Anda dapat menggunakan kunci untuk membungkus kunci lain.
VERIFY TRUE TRUE Benar menunjukkan Anda dapat menggunakan kunci untuk menandatangani digest pesan. Hal ini umumnya diatur ke FALSE untuk kunci privat.
WRAP TRUE TRUE Benar menunjukkan Anda dapat menggunakan kunci untuk membungkus kunci lain. Anda biasanya akan mengatur ini ke FALSE untuk kunci privat.
WRAP_WITH_TRUSTED FALSE FALSE Benar menunjukkan kunci hanya dapat dibungkus dan dibuka dengan kunci yang memiliki TRUSTED atribut diatur ke true. Setelah kunci telah WRAP_WITH_TRUSTED ditetapkan ke true, atribut yang read-only dan tidak dapat diatur ke false. Untuk membaca tentang pembungkus kepercayaan, lihat Menggunakan kunci tepercaya untuk mengontrol pembukaan kunci.
catatan

Anda mendapatkan dukungan yang lebih luas untuk atribut di pustaka PKCS #11. Untuk informasi lebih lanjut, lihat Atribut PKCS #11 yang Didukung.

Menetapkan atribut untuk kunci

KeyAttributesMapadalah objek seperti Peta Java, yang dapat Anda gunakan untuk mengatur nilai atribut untuk objek kunci. Metode untuk fungsi KeyAttributesMap yang mirip dengan metode yang digunakan untuk manipulasi peta Java.

Untuk mengatur nilai kustom pada atribut, Anda memiliki dua opsi:

  • Gunakan metode yang tercantum dalam tabel berikut

  • Gunakan pola pembangun yang ditunjukkan kemudian dalam dokumen ini

Atribut peta objek mendukung metode berikut untuk mengatur atribut:

Operasi Nilai Pengembalian Metode KeyAttributesMap
Dapatkan nilai atribut kunci untuk kunci yang ada Obyek (berisi nilai) atau nol

get(keyAttribute)

Isi nilai satu atribut kunci Nilai sebelumnya terkait dengan atribut kunci, atau nol jika tidak ada pemetaan untuk atribut kunci

put(keyAttribute, value)

Isi nilai untuk beberapa atribut kunci T/A

PutAll () keyAttributesMap

Hapus pasangan nilai kunci dari peta atribut

Nilai sebelumnya terkait dengan atribut kunci, atau nol jika tidak ada pemetaan untuk atribut kunci

remove(keyAttribute)

catatan

Setiap atribut yang tidak secara eksplisit Anda tentukan diatur ke default yang tercantum dalam tabel sebelumnya di Atribut yang didukung.

Menetapkan atribut untuk pasangan kunci

Gunakan kelas Java KeyPairAttributesMap untuk menangani atribut kunci untuk pasangan kunci. KeyPairAttributesMap merangkum dua objek KeyAttributesMap; satu untuk kunci publik dan satu untuk kunci privat.

Untuk mengatur atribut individu untuk kunci publik dan kunci privat secara terpisah, Anda dapat menggunakan metode put() pada objek peta KeyAttributes yang terkait untuk kunci itu. Gunakan metode getPublic() untuk mengambil peta atribut untuk kunci publik, dan gunakan getPrivate() untuk mengambil peta atribut untuk kunci privat. Isi nilai dari beberapa atribut kunci bersama-sama untuk kedua pasangan kunci publik dan privat menggunakan putAll() dengan peta atribut pasangan kunci sebagai argumen.