Kustom IVs dengan panjang yang tidak sesuai untuk pembungkus AES kunci AWS CloudHSM - AWS CloudHSM

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

Kustom IVs dengan panjang yang tidak sesuai untuk pembungkus AES kunci AWS CloudHSM

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 libpkcs11.so file di /opt/cloudhsm/lib folder Anda. Aplikasi yang ditulis dalam bahasa C umumnya menggunakan perpustakaan PKCS #11 secara langsung, sedangkan aplikasi yang ditulis dalam Java mungkin menggunakan perpustakaan secara tidak langsung melalui lapisan abstraksi Java. Jika Anda menggunakan Windows, Anda NOT terpengaruh, karena pustaka PKCS #11 saat ini tidak tersedia untuk Windows.

Aplikasi Anda secara khusus menggunakan pustaka #11 versi 3.0.0 PKCS

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 AES kunci

AESpembungkus kunci berarti Anda menggunakan AES kunci untuk membungkus beberapa kunci lainnya. Nama mekanisme yang sesuai adalah CKM_AES_KEY_WRAP. Hal ini digunakan dengan fungsi C_WrapKey. Mekanisme pembungkus AES berbasis lainnya yang menggunakan vektor inisialisasi (IVs), 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 saat memanggil pembungkus AES kunci, dan panjang IV ini lebih pendek dari 8

AESbungkus kunci umumnya diinisialisasi menggunakan CK_MECHANISM struktur sebagai berikut:

CK_MECHANISM mech = {CKM_AES_KEY_WRAP, IV_POINTER, IV_LENGTH};

Masalah ini hanya berlaku untuk Anda jika:

  • IV_ POINTER tidak 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 sampel kami dan cukup tentukan NULL IV, yang HSM menyebabkan penggunaan standar standar IV default. Atau, Anda dapat secara eksplisit menentukan IV sebagai 0xA6A6A6A6A6A6A6A6 dengan panjang IV yang sesuai 8. Kami tidak menyarankan menggunakan IV lain untuk pembungkus AES kunci, dan secara eksplisit akan menonaktifkan kustom IVs untuk pembungkus AES kunci di versi future dari pustaka #11. PKCS

    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 apa pun yang Anda bungkus 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 (2.0.4 dan paket bernomor lebih rendah) atau versi yang lebih baru (3.0.1 dan paket bernomor lebih tinggi) dari pustaka #11. PKCS