

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

# Masalah yang diketahui untuk JCE SDK untuk AWS CloudHSM
<a name="ki-jce-sdk"></a>

Masalah berikut memengaruhi JCE SDK untuk. AWS CloudHSM

**Topics**
+ [Masalah: Ketika bekerja dengan pasangan kunci asimetris, Anda melihat kapasitas kunci ditempati bahkan ketika Anda tidak secara eksplisit membuat atau mengimpor kunci](#ki-jce-1)
+ [Masalah: JCE KeyStore hanya dibaca](#ki-jce-3)
+ [Masalah: Penyangga untuk enkripsi AES-GCM tidak dapat melebihi 16.000 byte](#ki-jce-4)
+ [Masalah: Derivasi kunci Eliptic-curve Diffie-Hellman (ECDH) dijalankan sebagian dalam HSM](#ki-jce-5)
+ [Masalah: KeyGenerator dan KeyAttribute salah menafsirkan parameter ukuran kunci sebagai jumlah byte, bukan bit](#ki-jce-6)
+ [Masalah: Klien SDK 5 melontarkan peringatan “Operasi akses reflektif ilegal telah terjadi”](#ki-jce-7)
+ [Masalah: Kumpulan sesi JCE habis](#ki-jce-8)
+ [Masalah: Kebocoran memori SDK 5 klien dengan operasi GetKey](#ki-jce-9)

## Masalah: Ketika bekerja dengan pasangan kunci asimetris, Anda melihat kapasitas kunci ditempati bahkan ketika Anda tidak secara eksplisit membuat atau mengimpor kunci
<a name="ki-jce-1"></a>
+ **Dampak:** Masalah ini dapat HSMs menyebabkan Anda tiba-tiba kehabisan ruang kunci dan terjadi ketika aplikasi Anda menggunakan objek kunci JCE standar untuk operasi kripto, bukan objek. `CaviumKey` Bila Anda menggunakan objek kunci JCE standar, `CaviumProvider` secara implisit mengimpor kunci tersebut ke HSM sebagai kunci sesi dan tidak menghapus kunci ini sampai aplikasi keluar. Akibatnya, kunci menumpuk saat aplikasi berjalan dan dapat HSMs menyebabkan Anda kehabisan ruang kunci kosong, sehingga membekukan aplikasi Anda. 
+ **Pemecahan masalah:** Saat menggunakan kelas `CaviumSignature`, kelas `CaviumCipher`, kelas `CaviumMac`, atau kelas `CaviumKeyAgreement`, Anda harus menyediakan kunci sebagai `CaviumKey` bukan objek kunci JCE standar.

  Anda dapat secara manual mengonversi kunci normal ke `CaviumKey` menggunakan kelas [https://github.com/aws-samples/aws-cloudhsm-jce-examples/blob/master/src/main/java/com/amazonaws/cloudhsm/examples/KeyUtilitiesRunner.java](https://github.com/aws-samples/aws-cloudhsm-jce-examples/blob/master/src/main/java/com/amazonaws/cloudhsm/examples/KeyUtilitiesRunner.java), dan kemudian dapat secara manual menghapus kunci setelah operasi selesai.
+ **Status resolusi: **Kami memperbarui `CaviumProvider` untuk benar mengelola impor implisit. Pembaruan akan diumumkan di halaman riwayat versi setelah tersedia.

## Masalah: JCE KeyStore hanya dibaca
<a name="ki-jce-3"></a>
+ **Dampak:** Anda tidak dapat menyimpan jenis objek yang tidak didukung oleh HSM di penyimpanan kunci JCE hari ini. Secara khusus, Anda tidak dapat menyimpan sertifikat di penyimpanan kunci. Hal ini menghalangi interoperabilitas dengan alat-alat seperti jarsigner, yang mengharapkan untuk menemukan sertifikat di penyimpanan kunci. 
+ **Pemecahan masalah: **Anda dapat mengerjakan ulang kode Anda untuk memuat sertifikat dari file lokal atau dari lokasi bucket S3, bukan dari penyimpanan kuncinya. 
+ **Status resolusi:** Anda dapat menggunakan AWS CloudHSM keystore untuk menyimpan sertifikat.

## Masalah: Penyangga untuk enkripsi AES-GCM tidak dapat melebihi 16.000 byte
<a name="ki-jce-4"></a>

Enkripsi AES-GCM multi-bagian tidak didukung.
+ **Dampak: **Anda tidak dapat menggunakan AES-GCM untuk mengenkripsi data yang lebih besar dari 16.000 byte.
+ **Pemecahan masalah: **Anda bisa menggunakan mekanisme alternatif seperti AES-CBC atau Anda dapat membagi data menjadi beberapa potong dan mengenkripsi setiap potongnya secara terpisah. Jika Anda membagi data, Anda harus mengelola ciphertext yang dibagi dan dekripsinya. Karena FIPS mensyaratkan bahwa vektor inisialisasi (IV) untuk AES-GCM dihasilkan pada HSM, IV untuk setiap AES-GCM-encrypted bagian data akan berbeda.
+ **Status resolusi: **Kami memperbaiki SDK gagal secara eksplisit jika penyangga data terlalu besar. Kami sedang mengevaluasi alternatif yang mendukung penyangga yang lebih besar tanpa mengandalkan enkripsi multi-bagian. Pembaruan akan diumumkan di forum AWS CloudHSM dan pada halaman riwayat versi. 

## Masalah: Derivasi kunci Eliptic-curve Diffie-Hellman (ECDH) dijalankan sebagian dalam HSM
<a name="ki-jce-5"></a>

Kunci privat EC Anda tetap berada dalam HSM setiap saat, tetapi proses derivasi kunci dilakukan dalam beberapa langkah. Akibatnya, hasil menengah dari setiap langkah tersedia pada klien. Derivasi kunci ECDH sampel tersedia di [Sampel kode Java](java-samples_3.md).
+ **Dampak:** Klien SDK 3 menambahkan fungsionalitas ECDH ke JCE. Ketika Anda menggunakan `KeyAgreement` kelas untuk mendapatkan a SecretKey, pertama kali tersedia pada klien dan kemudian diimpor ke HSM. Sebuah handel kunci kemudian kembali ke aplikasi Anda.
+ **Solusi:** Jika Anda menerapkan SSL/TLS Offload di AWS CloudHSM, batasan ini mungkin tidak menjadi masalah. Jika aplikasi Anda memerlukan kunci Anda untuk tetap berada dalam batas FIPS setiap saat, pertimbangkan untuk menggunakan protokol alternatif yang tidak bergantung pada derivasi kunci ECDH.
+ **Status resolusi:** SDK 5.16 sekarang mendukung ECDH dengan Derivasi Kunci yang dilakukan sepenuhnya dalam HSM.

## Masalah: KeyGenerator dan KeyAttribute salah menafsirkan parameter ukuran kunci sebagai jumlah byte, bukan bit
<a name="ki-jce-6"></a>

Saat membuat kunci menggunakan `init` fungsi [KeyGenerator kelas](https://docs.oracle.com/javase/8/docs/api/javax/crypto/KeyGenerator.html#init-int-) atau `SIZE` atribut [AWS CloudHSM KeyAttribute enum](java-lib-attributes_5.md), API salah mengharapkan argumen menjadi jumlah byte kunci, padahal seharusnya jumlah bit kunci. 
+ **Dampak:** Client SDK versi 5.4.0 hingga 5.4.2 salah mengharapkan ukuran kunci diberikan ke yang ditentukan sebagai byte. APIs 
+ **Solusi:** Konversi ukuran kunci dari bit ke byte sebelum menggunakan KeyGenerator kelas atau KeyAttribute enum untuk menghasilkan kunci menggunakan penyedia AWS CloudHSM JCE jika menggunakan Client SDK versi 5.4.0 hingga 5.4.2.
+ **Status resolusi:** Tingkatkan versi SDK klien Anda ke 5.5.0 atau yang lebih baru, yang mencakup perbaikan untuk mengharapkan ukuran kunci dalam bit dengan benar saat menggunakan KeyGenerator kelas atau KeyAttribute enum untuk menghasilkan kunci.

## Masalah: Klien SDK 5 melontarkan peringatan “Operasi akses reflektif ilegal telah terjadi”
<a name="ki-jce-7"></a>

Saat menggunakan Client SDK 5 dengan Java 11, CloudHSM menampilkan peringatan Java berikut: 

```
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.amazonaws.cloudhsm.jce.provider.CloudHsmKeyStore (file:/opt/cloudhsm/java/cloudhsm-jce-5.6.0.jar) to field java.security .KeyStore.keyStoreSpi
WARNING: Please consider reporting this to the maintainers of com.amazonaws.cloudhsm.jce.provider.CloudHsmKeyStore
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
```

Masalah ini diperbaiki di Client SDK versi 5.8 dan yang lebih baru.

## Masalah: Kumpulan sesi JCE habis
<a name="ki-jce-8"></a>

**Dampak:** Anda mungkin tidak dapat melakukan operasi di JCE setelah melihat pesan berikut:

```
com.amazonaws.cloudhsm.jce.jni.exception.InternalException: There are too many operations 
happening at the same time: Reached max number of sessions in session pool: 1000
```

**Solusi:**
+ Mulai ulang aplikasi JCE Anda jika Anda mengalami dampak.
+ Saat melakukan operasi, Anda mungkin perlu menyelesaikan operasi JCE sebelum kehilangan referensi ke operasi.
**catatan**  
Tergantung pada operasi, metode penyelesaian mungkin diperlukan.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloudhsm/latest/userguide/ki-jce-sdk.html)

**Status resolusi:** Kami telah menyelesaikan masalah ini di Client SDK 5.9.0 dan yang lebih baru. Untuk memperbaiki masalah ini, tingkatkan SDK Klien Anda ke salah satu versi ini.

## Masalah: Kebocoran memori SDK 5 klien dengan operasi GetKey
<a name="ki-jce-9"></a>
+ **Dampak:** `getKey` Operasi API memiliki kebocoran memori di JCE di Client SDK versi 5.10.0 dan sebelumnya. Jika Anda menggunakan `getKey` API beberapa kali dalam aplikasi Anda, itu akan menyebabkan peningkatan pertumbuhan memori dan akibatnya meningkatkan jejak memori dalam aplikasi Anda. Seiring waktu ini dapat menyebabkan kesalahan pelambatan atau mengharuskan aplikasi dimulai ulang.
+ **Solusi:** Kami merekomendasikan untuk meningkatkan ke Client SDK 5.11.0. Jika ini tidak dapat dilakukan, kami sarankan untuk tidak memanggil `getKey` API beberapa kali dalam aplikasi Anda. Sebaliknya, gunakan kembali kunci yang dikembalikan sebelumnya dari `getKey` operasi sebelumnya sebanyak mungkin.
+ **Status resolusi:** Tingkatkan versi SDK klien Anda ke 5.11.0 atau yang lebih baru, yang mencakup perbaikan untuk masalah ini.