IV khusus dengan panjang yang tidak sesuai untuk pembungkus kunci AES - AWS CloudHSM

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

IV khusus dengan panjang yang tidak sesuai untuk pembungkus kunci AES

Topik pemecahan masalah ini membantu Anda menentukan apakah aplikasi Anda menghasilkan kunci dibungkus yang tidak dapat dipulihkan. Jika Anda terpengaruh oleh masalah ini, gunakan topik ini untuk mengatasi masalah.

Tentukan apakah kode Anda menghasilkan kunci terbungkus yang tidak dapat dipulihkan

Anda akan terkena dampak hanya jika Anda bertemu semua kondisi di bawah ini:

Kondisi Bagaimana saya tahu?

Aplikasi Anda menggunakan pustaka PKCS #11

Pustaka PKCS #11 diinstal sebagai file libpkcs11.so di folder /opt/cloudhsm/lib. Aplikasi yang ditulis dalam bahasa C umumnya menggunakan pustaka PKCS #11 secara langsung, sementara aplikasi yang ditulis di Java mungkin menggunakan pustaka secara tidak langsung melalui lapisan abstraksi Java. Jika Anda menggunakan Windows, Anda TIDAK terpengaruh, karena pustaka PKCS #11 saat ini tidak tersedia untuk Windows.

Aplikasi Anda secara khusus menggunakan versi 3.0.0 dari pustaka PKCS #11

Jika Anda menerima email dari AWS CloudHSM tim, kemungkinan besar Anda menggunakan pustaka PKCS #11 versi 3.0.0.

Untuk memeriksa versi perangkat lunak pada instans aplikasi Anda, gunakan perintah ini:

rpm -qa | grep ^cloudhsm

Anda membungkus kunci menggunakan pembungkus kunci AES

Pembungkus kunci AES berarti Anda menggunakan kunci AES untuk membungkus beberapa kunci lainnya. Nama mekanisme yang sesuai adalah CKM_AES_KEY_WRAP. Hal ini digunakan dengan fungsi C_WrapKey. Mekanisme pembungkus berbasis AES lainnya yang menggunakan vektor inisialisasi (IV), seperti CKM_AES_GCM dan CKM_CLOUDHSM_AES_GCM, tidak terpengaruh oleh masalah ini. Pelajari lebih lanjut tentang fungsi dan mekanisme.

Anda menentukan IV kustom ketika memanggil pembungkus kunci AES, dan panjang IV ini lebih pendek dari 8

Bungkus kunci AES umumnya diinisialisasi menggunakan struktur CK_MECHANISM sebagai berikut:

CK_MECHANISM mech = {CKM_AES_KEY_WRAP, IV_POINTER, IV_LENGTH};

Masalah ini hanya berlaku untuk Anda jika:

  • IV_POINTER bukan NULL

  • IV_LENGTH kurang dari 8 byte

Jika Anda tidak memenuhi semua kondisi di atas, Anda dapat berhenti membaca sekarang. Kunci Anda yang dibungkus dapat dibuka dengan benar, dan masalah ini tidak berdampak pada Anda. Jika tidak, lihat Tindakan yang harus Anda ambil jika kode Anda menghasilkan kunci terbungkus yang tidak dapat dipulihkan.

Tindakan yang harus Anda ambil jika kode Anda menghasilkan kunci terbungkus yang tidak dapat dipulihkan

Anda harus mengambil tiga langkah berikut:

  1. Segera tingkatkan pustaka PKCS #11 Anda ke versi yang lebih baru

  2. Perbarui perangkat lunak Anda untuk menggunakan IV yang sesuai standar

    Kami sangat menyarankan Anda mengikuti kode contoh kami dan hanya menentukan NULL IV, yang menyebabkan HSM untuk memanfaatkan IV default patuh standar. Atau, Anda dapat secara eksplisit menentukan IV sebagai 0xA6A6A6A6A6A6A6A6 dengan panjang IV yang sesuai 8. Kami tidak menyarankan menggunakan IV lain untuk pembungkus kunci AES, dan secara eksplisit akan menonaktifkan IV kustom untuk pembungkus kunci AES dalam versi masa mendatang dari pustaka PKCS #11.

    Contoh kode untuk menentukan IV dengan benar muncul di aes_wrapping.c pada. GitHub

  3. Identifikasi dan pulihkan kunci terbungkus yang ada

    Anda harus mengidentifikasi kunci yang dibungkus menggunakan versi 3.0.0 dari pustaka PKCS #11, dan kemudian menghubungi dukungan untuk bantuan (https://aws.amazon.com/support) dalam memulihkan kunci ini.

penting

Masalah ini hanya memengaruhi kunci yang dibungkus dengan pustaka PKCS #11 versi 3.0.0. Anda dapat membungkus kunci menggunakan versi sebelumnya (paket bernomor 2.0.4 dan lebih rendah) atau versi yang lebih baru (paket bernomor 3.0.1 dan lebih tinggi) dari pustaka PKCS #11.