MenggunakanAWS CloudHSMKeyStore Java untuk Klien SDK 3 - AWS CloudHSM

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

MenggunakanAWS CloudHSMKeyStore Java untuk Klien SDK 3

Kelas AWS CloudHSM KeyStore menyediakan penyimpanan kunci PKCS12 tujuan khusus yang mengizinkan akses ke AWS CloudHSM melalui aplikasi seperti keytool dan jarsigner. Penyimpanan kunci ini dapat menyimpan sertifikat bersama dengan data kunci Anda dan menghubungkannya dengan data kunci yang disimpan di AWS CloudHSM.

catatan

Karena sertifikat adalah informasi publik, dan untuk memaksimalkan kapasitas penyimpanan untuk kunci kriptografi, AWS CloudHSM tidak mendukung penyimpanan sertifikat pada HSM.

Kelas AWS CloudHSM KeyStore mengimplementasikan Service Provider Interface (SPI) KeyStore dari Java Cryptography Extension (JCE). Untuk informasi lebih lanjut tentang penggunaan KeyStore, lihatKeyStore Kelas.

Memilih toko kunci yang tepat

Penyedia Java Cryptographic Extension (JCE) AWS CloudHSM dilengkapi dengan penyimpanan kunci hanya baca, default pass-through, yang meneruskan semua transaksi ke HSM. Penyimpanan kunci default ini berbeda dari AWS CloudHSM Keystore tujuan khusus. Dalam kebanyakan situasi, Anda akan mendapatkan performa waktu aktif yang lebih baik dan throughput dengan menggunakan default. Anda sebaiknya hanya menggunakan KeyStore AWS CloudHSM untuk aplikasi di mana Anda memerlukan dukungan untuk sertifikat dan operasi berbasis sertifikat selain pembongkaran operasi kunci pada HSM.

Meskipun kedua penyimpanan kunci menggunakan penyedia JCE untuk operasi, keduanya adalah entitas independen dan tidak bertukar informasi satu sama lain.

Muat penyimpanan kunci default untuk aplikasi Java Anda sebagai berikut:

KeyStore ks = KeyStore.getInstance("Cavium");

Muat CloudHSM KeyStore tujuan khusus sebagai berikut:

KeyStore ks = KeyStore.getInstance("CloudHSM")

Menginisialisasi KeyStore AWS CloudHSM

Masuk ke KeyStore AWS CloudHSM dengan cara yang sama seperti Anda login ke penyedia JCE. Anda dapat menggunakan variabel lingkungan atau file properti sistem, dan Anda harus login sebelum Anda mulai menggunakan CloudHSM KeyStore. Untuk contoh masuk ke HSM menggunakan penyedia JCE, lihat Masuk ke HSM.

Jika diinginkan, Anda dapat menentukan kata sandi untuk mengenkripsi file PKCS12 lokal yang menyimpan data penyimpanan kunci. Saat Anda membuat Keystore AWS CloudHSM, Anda mengatur kata sandi dan memberikannya ketika menggunakan metode load, set, dan get.

Instantiate objek KeyStore CloudHSM baru sebagai berikut:

ks.load(null, null);

Tulis data penyimpanan kunci ke file menggunakan metode store. Sejak saat itu, Anda dapat memuat penyimpanan kunci yang ada menggunakan metode load dengan file sumber dan kata sandi sebagai berikut:

ks.load(inputStream, password);

MenggunakanAWS CloudHSMKeystore

Sebuah objek CloudHSM KeyStore umumnya digunakan melalui aplikasi pihak ketiga seperti jarsigner atau keytool. Anda juga dapat mengakses objek secara langsung dengan kode.

KeyStore AWS CloudHSM sesuai dengan spesifikasi KeyStore Kelas JCE dan menyediakan fungsi-fungsi berikut.

  • load

    Memuat penyimpanan kunci dari pengaliran input yang diberikan. Jika kata sandi ditetapkan saat menyimpan penyimpanan kunci, kata sandi yang sama ini harus disediakan agar pemuatan berhasil. Atur kedua parameter ke null untuk menginisialisasi sebuah penyimpanan kunci kosong baru.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); ks.load(inputStream, password);
  • aliases

    Mengembalikan penghitungan nama alias dari semua entri dalam contoh instans penyimpanan kunci yang diberikan. Hasil termasuk objek yang disimpan secara lokal dalam file PKCS12 dan objek yang ada di HSM.

    Kode sampel:

    KeyStore ks = KeyStore.getInstance("CloudHSM"); for(Enumeration<String> entry = ks.aliases(); entry.hasMoreElements();) { String label = entry.nextElement(); System.out.println(label); }
  • ContainsAlias

    Mengembalikan nilai true jika penyimpanan kunci memiliki akses ke setidaknya satu objek dengan alias yang ditentukan. Penyimpanan kunci memeriksa objek yang disimpan secara lokal dalam file PKCS12 dan bendaobjek yang ada di HSM.

  • DeleteEntry

    Menghapus entri sertifikat dari file PKCS12 lokal. Menghapus data kunci yang disimpan dalam HSM tidak didukung menggunakan Keystore AWS CloudHSM. Anda dapat menghapus kunci dengan alat key_mgmt_util CloudHSM.

  • GetCertificate

    Mengembalikan sertifikat yang terkait dengan alias jika tersedia. Jika alias tidak ada atau mereferensikan objek yang bukan sertifikat, fungsi mengembalikan NULL.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); Certificate cert = ks.getCertificate(alias)
  • GetCertificateAlias

    Mengembalikan nama (alias) dari entri penyimpanan kunci pertama yang datanya cocok dengan sertifikat yang diberikan.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); String alias = ks.getCertificateAlias(cert)
  • GetCertificateChain

    Mengembalikan rantai sertifikat yang terkait dengan alias yang diberikan. Jika alias tidak ada atau mereferensikan objek yang bukan sertifikat, fungsi mengembalikan NULL.

  • GetCreationDate

    Mengembalikan tanggal pembuatan entri yang diidentifikasi oleh alias yang diberikan. Jika tanggal pembuatan tidak tersedia, fungsi mengembalikan tanggal saat sertifikat menjadi valid.

  • GetKey

    GetKey diteruskan ke HSM dan mengembalikan objek kunci yang sesuai dengan label yang diberikan. Karena getKey langsung membuat kueri ke HSM, ini dapat digunakan untuk setiap kunci pada HSM, terlepas dari apakah ini dihasilkan oleh KeyStore.

    Key key = ks.getKey(keyLabel, null);
  • IsCertificateEntry

    Memeriksa apakah entri dengan alias yang diberikan merupakan entri sertifikat.

  • IsKeyEntry

    Memeriksa apakah entri dengan alias yang diberikan merupakan entri kunci. Tindakan mencari file PKCS12 dan HSM untuk alias.

  • SetCertificateEntry

    Menetapkan sertifikat yang diberikan untuk alias yang diberikan. Jika alias yang diberikan sudah digunakan untuk me ngidentifikasi kunci atau sertifikat,KeyStoreExceptiondikeluarkan. Anda dapat menggunakan kode JCE untuk mendapatkan objek kunci dan kemudian menggunakan metode SetKeyEntry KeyStore untuk mengaitkan sertifikat dengan kunci.

  • SetKeyEntry dengan byte[] kunci

    API ini saat ini tidak didukung dengan SDK Klien 3.

  • SetKeyEntry dengan objek Key

    Menetapkan kunci yang diberikan untuk alias yang diberikan dan menyimpannya di dalam HSM. Jika objek Key bukan tipe CaviumKey, kunci diimpor ke HSM sebagai kunci sesi yang dapat diekstrak.

    Jika objek Key adalah tipe PrivateKey, objek harus disertai dengan rantai sertifikat yang sesuai.

    Jika alias sudah ada, panggilan SetKeyEntry mengeluarkan KeyStoreException dan mencegah kunci ditimpa. Jika kunci harus ditimpa, gunakan KMU atau JCE untuk tujuan itu.

  • EngineSize

    Mengembalikan jumlah entri dalam penyimpanan kunci.

  • Store

    Menyimpan penyimpanan kunci untuk pengaliran output yang diberikan sebagai file PKCS12 dan mengamankannya dengan kata sandi yang diberikan. Selain itu, semua kunci dimuat tetap ada (yang ditetapkan menggunakan panggilansetKey).