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
Masalah berikut memengaruhi JCE SDK untuk. AWS CloudHSM
Topik
Masalah: Ketika bekerja dengan pasangan kunci asimetris, Anda melihat kapasitas kunci ditempati bahkan ketika Anda tidak secara eksplisit membuat atau mengimpor kunci
-
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
, kelasCaviumCipher
, kelasCaviumMac
, atau kelasCaviumKeyAgreement
, Anda harus menyediakan kunci sebagaiCaviumKey
bukan objek kunci JCE standar.Anda dapat secara manual mengonversi kunci normal ke
CaviumKey
menggunakan kelasImportKey
, 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
-
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: Kami menambahkan dukungan untuk penyimpanan sertifikat di penyimpanan kunci. Pembaruan akan diumumkan di halaman riwayat versi setelah tersedia.
Masalah: Penyangga untuk enkripsi AES-GCM tidak dapat melebihi 16.000 byte
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
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.
-
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: Kami sedang mengembangkan pilihan untuk melakukan derivasi kunci ECDH sepenuhnya dalam HSM. Bila tersedia, kami akan mengumumkan implementasi yang diperbarui pada halaman riwayat versi.
Masalah: KeyGenerator dan KeyAttribute salah menafsirkan parameter ukuran kunci sebagai jumlah byte, bukan bit
Saat membuat kunci menggunakan init
fungsi KeyGenerator kelasSIZE
atribut AWS CloudHSM KeyAttribute enum, API salah mengharapkan argumen menjadi jumlah byte kunci, padahal seharusnya jumlah bit kunci.
-
Dampak: SDK klien 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”
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 ```
Peringatan ini tidak berdampak. Kami menyadari masalah ini dan sedang berupaya menyelesaikannya. Tidak diperlukan resolusi atau solusi.
Masalah: Kumpulan sesi JCE habis
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.
Operasi Metode penyelesaian Cipher doFinal()
dalam mode enkripsi atau dekripsiwrap()
dalam mode bungkusunwrap()
dalam mode buka bungkusKeyAgreement generateSecret()
ataugenerateSecret(String)
KeyPairGenerator generateKeyPair()
,genKeyPair()
, ataureset()
KeyStore Tidak ada metode yang dibutuhkan MAC doFinal()
ataureset()
MessageDigest digest()
ataureset()
SecretKeyFactory Tidak ada metode yang dibutuhkan SecureRandom Tidak ada metode yang dibutuhkan Tanda tangan sign()
dalam mode tandaverify()
dalam mode verifikasi
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
-
Dampak:
getKey
Operasi API memiliki kebocoran memori di JCE di Client SDK versi 5.10.0 dan sebelumnya. Jika Anda menggunakangetKey
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 darigetKey
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.