Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Isu-isu berikut berdampak pada JCE SDK for 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
- Masalah: Hanya dibaca JCE KeyStore
- Masalah: Buffer untuk AES - GCM enkripsi tidak boleh melebihi 16.000 byte
- Masalah: Derivasi kunci Elliptic-curve Diffie-Hellman () dieksekusi sebagian di dalam ECDH HSM
- Masalah: KeyGenerator dan KeyAttribute salah menafsirkan parameter ukuran kunci sebagai jumlah byte, bukan bit
- Masalah: Klien SDK 5 melempar peringatan “Operasi akses reflektif ilegal telah terjadi”
- Masalah: kumpulan JCE sesi habis
- Masalah: Kebocoran memori klien SDK 5 dengan operasi getKey
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 JCE kunci standar untuk operasi kripto, bukan objek.
CaviumKey
Bila Anda menggunakan objek JCE kunci standar, secaraCaviumProvider
implisit mengimpor kunci tersebut ke dalam 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. -
Solusi: Saat menggunakan
CaviumSignature
kelas, kelas,CaviumCipher
CaviumMac
kelas, atauCaviumKeyAgreement
kelas, Anda harus menyediakan kunci sebagaiCaviumKey
pengganti objek kunci standarJCE.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: Hanya dibaca JCE KeyStore
-
Dampak: Anda tidak dapat menyimpan jenis objek yang tidak didukung oleh HSM di JCE keystore 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: Buffer untuk AES - GCM enkripsi tidak boleh melebihi 16.000 byte
Multi-bagian AES - GCM enkripsi tidak didukung.
-
Dampak: Anda tidak dapat menggunakan AES - GCM untuk mengenkripsi data yang lebih besar dari 16.000 byte.
-
Solusi: Anda dapat menggunakan mekanisme alternatif, seperti AES -CBC, atau Anda dapat membagi data Anda menjadi beberapa bagian dan mengenkripsi setiap bagian satu per satu. Jika Anda membagi data, Anda harus mengelola ciphertext yang dibagi dan dekripsinya. Karena FIPS mengharuskan vektor inisialisasi (IV) GCM untuk AES - dihasilkan padaHSM, IV untuk setiap AES-GCM-encrypted bagian data akan berbeda.
-
Status resolusi: Kami memperbaiki kegagalan SDK secara eksplisit jika buffer 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 Elliptic-curve Diffie-Hellman () dieksekusi sebagian di dalam ECDH HSM
Kunci pribadi EC Anda tetap berada HSM di dalam setiap saat, tetapi proses derivasi kunci dilakukan dalam beberapa langkah. Akibatnya, hasil menengah dari setiap langkah tersedia pada klien. Contoh derivasi ECDH kunci tersedia dalam sampel kode Java.
-
Dampak: Klien SDK 3 menambahkan ECDH fungsionalitas ke fileJCE. Ketika Anda menggunakan
KeyAgreement
kelas untuk mendapatkan a SecretKey, pertama kali tersedia pada klien dan kemudian diimpor keHSM. Sebuah handel kunci kemudian kembali ke aplikasi Anda. -
Solusi: Jika Anda menerapkanSSL/TLSOffload in AWS CloudHSM, batasan ini mungkin tidak menjadi masalah. Jika aplikasi Anda mengharuskan kunci Anda tetap berada dalam FIPS batas setiap saat, pertimbangkan untuk menggunakan protokol alternatif yang tidak bergantung pada derivasi ECDH kunci.
-
Status resolusi: Kami sedang mengembangkan opsi untuk melakukan derivasi ECDH kunci sepenuhnya di 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, yang API salah mengharapkan argumen menjadi jumlah byte kunci, padahal seharusnya jumlah bit kunci.
-
Dampak: SDK Versi klien 5.4.0 hingga 5.4.2 salah mengharapkan ukuran kunci diberikan ke yang ditentukan APIs sebagai byte.
-
Solusi: Ubah ukuran kunci dari bit ke byte sebelum menggunakan KeyGenerator kelas atau KeyAttribute enum untuk menghasilkan kunci menggunakan AWS CloudHSM JCE penyedia jika menggunakan versi Klien SDK 5.4.0 hingga 5.4.2.
-
Status resolusi: Tingkatkan SDK versi 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 melempar peringatan “Operasi akses reflektif ilegal telah terjadi”
Saat menggunakan Client SDK 5 dengan Java 11, Cloud HSM melempar 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 ada resolusi atau solusi yang diperlukan.
Masalah: kumpulan JCE sesi habis
Dampak: Anda mungkin tidak dapat melakukan operasi 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 JCE aplikasi Anda jika Anda mengalami dampak.
Saat melakukan operasi, Anda mungkin perlu menyelesaikan JCE operasi 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 Klien SDK 5.9.0 dan yang lebih baru. Untuk memperbaiki masalah ini, tingkatkan Klien Anda SDK ke salah satu versi ini.
Masalah: Kebocoran memori klien SDK 5 dengan operasi getKey
-
Dampak: API
getKey
Operasi memiliki kebocoran memori JCE di SDK versi Klien 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 Klien 5.11.0. SDK Jika ini tidak dapat dilakukan, kami sarankan untuk tidak menelepon
getKey
API beberapa kali dalam aplikasi Anda. Sebaliknya, gunakan kembali kunci yang dikembalikan sebelumnya darigetKey
operasi sebelumnya sebanyak mungkin. -
Status resolusi: Tingkatkan SDK versi klien Anda ke 5.11.0 atau yang lebih baru, yang mencakup perbaikan untuk masalah ini.