Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Masalah yang diketahui untuk perpustakaan PKCS #11
Topik
- Masalah: bungkus AES kunci dalam versi 3.0.0 dari pustaka PKCS #11 tidak memvalidasi sebelum digunakan IVs
- Masalah: PKCS #11 SDK 2.0.4 dan versi sebelumnya selalu menggunakan IV default 0xA6A6A6A6A6A6A6A6 untuk bungkus AES kunci dan buka bungkus
- Masalah: atribut CKA_DERIVE tidak didukung dan tidak ditangani
- Masalah: atribut CKA_SENSITIVE tidak didukung dan tidak ditangani
- Masalah: Hashing multibagian dan penandatanganan tidak didukung
- Masalah: C_GenerateKeyPair tidak menangani CKA_MODULUS_BITS atau CKA_PUBLIC_EXPONENT dalam templat privat dengan cara yang patuh dengan standar
- Masalah: Buffer untuk C_Encrypt dan C_Decrypt API operasi tidak boleh melebihi 16 KB saat menggunakan mekanisme CKM_AES_GCM
- Masalah: Derivasi kunci Elliptic-curve Diffie-Hellman () dieksekusi sebagian di dalam ECDH HSM
- Masalah: Verifikasi tanda tangan secp256k1 gagal pada platform seperti Cent dan 6 EL6 OS6 RHEL
- Masalah: Urutan panggilan fungsi yang salah memberikan hasil yang tidak terdefinisi, bukannya gagal
- Masalah: Sesi Hanya Baca tidak didukung di SDK 5
- Masalah: file cryptoki.h header hanya untuk Windows
Masalah: bungkus AES kunci dalam versi 3.0.0 dari pustaka PKCS #11 tidak memvalidasi sebelum digunakan IVs
Jika Anda menentukan IV lebih pendek dari 8 byte panjangnya, IV diberi bantalan dengan byte tak terduga sebelum digunakan.
catatan
Ini memengaruhi C_WrapKey
dengan mekanisme CKM_AES_KEY_WRAP
saja.
Dampak: Jika Anda memberikan IV yang lebih pendek dari 8 byte di pustaka PKCS #11 versi 3.0.0, Anda mungkin tidak dapat membuka kunci.
Solusi:
Kami sangat menyarankan Anda meningkatkan ke versi 3.0.1 atau lebih tinggi dari pustaka PKCS #11, yang menerapkan panjang IV dengan benar selama pembungkus AES kunci. Ubah kode pembungkus Anda untuk meneruskan NULL IV, atau tentukan IV default.
0xA6A6A6A6A6A6A6A6
Untuk informasi selengkapnya, lihat Custom IVs with Non-Compliant Length for AES Key Wrap.
Status resolusi: Masalah ini telah diselesaikan di pustaka PKCS #11 versi 3.0.1. Untuk membungkus AES kunci menggunakan bungkus kunci, tentukan IV yang panjangnya NULL atau 8 byte.
Masalah: PKCS #11 SDK 2.0.4 dan versi sebelumnya selalu menggunakan IV default 0xA6A6A6A6A6A6A6A6
untuk bungkus AES kunci dan buka bungkus
Disediakan pengguna diabaikan IVs secara diam-diam.
catatan
Ini memengaruhi C_WrapKey
dengan mekanisme CKM_AES_KEY_WRAP
saja.
Dampak:
Jika Anda menggunakan PKCS #11 SDK 2.0.4 atau versi sebelumnya dan IV yang disediakan pengguna, kunci Anda dibungkus dengan IV default dari.
0xA6A6A6A6A6A6A6A6
Jika Anda menggunakan PKCS #11 SDK 3.0.0 atau yang lebih baru dan IV yang disediakan pengguna, kunci Anda dibungkus dengan IV yang disediakan pengguna.
Solusi:
Untuk membuka kunci yang dibungkus dengan PKCS #11 SDK 2.0.4 atau sebelumnya gunakan default IV dari.
0xA6A6A6A6A6A6A6A6
Untuk membuka kunci yang dibungkus dengan PKCS #11 SDK 3.0.0 atau yang lebih baru, gunakan IV yang disediakan pengguna.
Status resolusi: Kami sangat menyarankan agar Anda mengubah kode pembungkus dan membuka bungkusan Anda untuk meneruskan NULL IV, atau menentukan IV default.
0xA6A6A6A6A6A6A6A6
Masalah: atribut CKA_DERIVE
tidak didukung dan tidak ditangani
-
Status resolusi: Kami telah menerapkan perbaikan untuk menerima
CKA_DERIVE
jika diatur keFALSE
.CKA_DERIVE
diatur keTRUE
tidak akan didukung sampai kita mulai menambahkan dukungan fungsi derivasi kunci ke AWS CloudHSM. Anda harus memperbarui klien Anda dan SDK (s) ke versi 1.1.1 atau lebih tinggi untuk mendapatkan keuntungan dari perbaikan.
Masalah: atribut CKA_SENSITIVE
tidak didukung dan tidak ditangani
-
Status resolusi: Kami telah menerapkan perbaikan untuk menerima dan menghormati atribut
CKA_SENSITIVE
dengan benar. Anda harus memperbarui klien Anda dan SDK (s) ke versi 1.1.1 atau lebih tinggi untuk mendapatkan keuntungan dari perbaikan.
Masalah: Hashing multibagian dan penandatanganan tidak didukung
-
Dampak:
C_DigestUpdate
danC_DigestFinal
tidak diimplementasikan.C_SignFinal
juga tidak diimplementasikan dan akan gagal denganCKR_ARGUMENTS_BAD
untuk selain penyanggaNULL
. -
Solusi: Hash data Anda dalam aplikasi Anda dan gunakan AWS CloudHSM hanya untuk menandatangani hash.
-
Status resolusi: Kami memperbaiki klien dan menerapkan hashing multipart dengan benar. SDKs Pembaruan akan diumumkan di forum AWS CloudHSM dan pada halaman riwayat versi.
Masalah: C_GenerateKeyPair
tidak menangani CKA_MODULUS_BITS
atau CKA_PUBLIC_EXPONENT
dalam templat privat dengan cara yang patuh dengan standar
-
Dampak:
C_GenerateKeyPair
harus mengembalikanCKA_TEMPLATE_INCONSISTENT
ketika templat privat berisiCKA_MODULUS_BITS
atauCKA_PUBLIC_EXPONENT
. Ini malah menghasilkan kunci privat yang semua bidang penggunaannya diatur keFALSE
. Kunci tidak dapat digunakan. -
Pemecahan masalah: Kami merekomendasikan bahwa aplikasi Anda memeriksa nilai bidang penggunaan selain kode kesalahan.
-
Status resolusi: Kami menerapkan perbaikan untuk mengembalikan pesan kesalahan yang tepat ketika templat kunci privat yang salah digunakan. Pustaka PKCS #11 yang diperbarui akan diumumkan di halaman riwayat versi.
Masalah: Buffer untuk C_Encrypt
dan C_Decrypt
API operasi tidak boleh melebihi 16 KB saat menggunakan mekanisme CKM_AES_GCM
AWS CloudHSM tidak mendukung GCM enkripsi multipartAES.
-
Dampak: Anda tidak dapat menggunakan mekanisme
CKM_AES_GCM
untuk mengenkripsi data yang lebih besar dari 16 KB. -
Solusi: Anda dapat menggunakan mekanisme alternatif seperti
CKM_AES_CBC
,CKM_AES_CBC_PAD
, atau Anda dapat membagi data Anda menjadi beberapa bagian dan mengenkripsi setiap bagian menggunakan satu per satu.AES_GCM
Jika Anda menggunakanAES_GCM
, Anda harus mengelola pembagian data Anda dan enkripsi berikutnya. AWS CloudHSM tidak melakukan GCM enkripsi multipart AES untuk Anda. Perhatikan bahwa FIPS mengharuskan vektor inisialisasi (IV)AES-GCM
untuk dihasilkan pada. HSM Oleh karena itu, IV untuk setiap bagian dari data GCM terenkripsi Anda AES akan berbeda. -
Status resolusi: Kami memperbaiki kegagalan SDK secara eksplisit jika buffer data terlalu besar. Kami kembali
CKR_MECHANISM_INVALID
untukC_DecryptUpdate
API operasiC_EncryptUpdate
dan operasi. Kami sedang mengevaluasi alternatif untuk mendukung penyangga yang lebih besar tanpa mengandalkan enkripsi multibagian. Pembaruan akan diumumkan di AWS CloudHSM forum dan di 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.
-
Dampak: Di Klien SDK 3, kunci yang diturunkan menggunakan
CKM_ECDH1_DERIVE
mekanisme 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 untuk 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 Implementasi yang diperbarui akan diumumkan pada halaman sejarah versi setelah tersedia.
Masalah: Verifikasi tanda tangan secp256k1 gagal pada platform seperti Cent dan 6 EL6 OS6 RHEL
Hal ini terjadi karena library Cloud HSM PKCS #11 menghindari panggilan jaringan selama inisialisasi operasi verifikasi dengan menggunakan Open SSL untuk memverifikasi data kurva EC. Karena Secp256k1 tidak didukung oleh SSL paket Open default pada EL6 platform, inisialisasi gagal.
-
Dampak: Verifikasi tanda tangan Secp256k1 akan gagal pada platform. EL6 Panggilan verifikasi akan gagal dengan kesalahan
CKR_HOST_MEMORY
. -
Solusi: Sebaiknya gunakan Amazon Linux 1 atau EL7 platform apa pun jika aplikasi PKCS #11 Anda perlu memverifikasi tanda tangan secp256k1. Atau, tingkatkan ke versi SSL paket Open yang mendukung kurva secp256k1.
-
Status resolusi: Kami menerapkan perbaikan untuk kembali ke validasi kurva lokal HSM jika tidak tersedia. Pustaka PKCS #11 yang diperbarui akan diumumkan di halaman riwayat versi.
Masalah: Urutan panggilan fungsi yang salah memberikan hasil yang tidak terdefinisi, bukannya gagal
-
Dampak: Jika Anda memanggil urutan fungsi yang salah, hasil akhir tidak benar meskipun fungsi individu panggilan kembali sukses. Misalnya, data yang didekripsi mungkin tidak cocok denga teks terang asli atau tanda tangan mungkin gagal untuk diverifikasi. Masalah ini memengaruhi operasi satu bagian dan multibagian.
Contoh urutan fungsi yang salah:
C_EncryptInit
/C_EncryptUpdate
diikuti olehC_Encrypt
C_DecryptInit
/C_DecryptUpdate
diikuti olehC_Decrypt
C_SignInit
/C_SignUpdate
diikuti olehC_Sign
C_VerifyInit
/C_VerifyUpdate
diikuti olehC_Verify
C_FindObjectsInit
diikuti olehC_FindObjectsInit
Solusi: Aplikasi Anda harus, sesuai dengan spesifikasi PKCS #11, menggunakan urutan panggilan fungsi yang tepat untuk operasi tunggal dan multi-bagian. Aplikasi Anda tidak boleh bergantung pada library Cloud HSM PKCS #11 untuk mengembalikan kesalahan dalam keadaan ini.
Masalah: Sesi Hanya Baca tidak didukung di SDK 5
-
Masalah: SDK 5 tidak mendukung pembukaan sesi Read-Only dengan.
C_OpenSession
-
Dampak: Jika Anda mencoba menelepon
C_OpenSession
tanpa memberikanCKF_RW_SESSION
, panggilan akan gagal dengan kesalahanCKR_FUNCTION_FAILED
. -
Solusi: Saat membuka sesi, Anda harus meneruskan
CKF_SERIAL_SESSION | CKF_RW_SESSION
bendera ke panggilan fungsi.C_OpenSession
Masalah: file cryptoki.h
header hanya untuk Windows
-
Masalah: Dengan AWS CloudHSM Client SDK 5 versi 5.0.0 hingga 5.4.0 di Linux, file header hanya
/opt/cloudhsm/include/pkcs11/cryptoki.h
kompatibel dengan sistem operasi Windows. -
Dampak: Anda mungkin mengalami masalah ketika mencoba memasukkan file header ini dalam aplikasi Anda pada sistem operasi berbasis Linux.
-
Status resolusi: Upgrade ke AWS CloudHSM Client SDK 5 versi 5.4.1 atau lebih tinggi, yang mencakup versi Linux yang kompatibel dari file header ini.