IV personalizzati con lunghezza non conforme per il wrapping di chiavi AES - AWS CloudHSM

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

IV personalizzati con lunghezza non conforme per il wrapping di chiavi AES

Questo argomento sulla risoluzione dei problemi ti aiuta a determinare se l'applicazione genera chiavi con wrapping irrecuperabili. Se riscontri delle ripercussioni per via di questo problema, fai riferimento a questo argomento per risolverlo.

Determina se il codice genera chiavi con wrapping irrecuperabili

Il problema ha delle ripercussioni solo se riscontri tutte le condizioni seguenti:

Condition Come saperlo

L'applicazione utilizza la libreria PKCS #11

La libreria PKCS #11 viene installata come file libpkcs11.so nella cartella /opt/cloudhsm/lib. In genere, le applicazioni scritte in linguaggio C utilizzano direttamente la libreria PKCS #11, mentre le applicazioni scritte in Java possono utilizzare la libreria indirettamente tramite un livello di astrazione Java. Se utilizzi Windows, il problema NON ti riguarda poiché la libreria PKCS #11 non è attualmente disponibile per Windows.

L'applicazione utilizza nello specifico la versione 3.0.0 della libreria PKCS #11

Se hai ricevuto un'e-mail dal team AWS CloudHSM, probabilmente stai utilizzando la versione 3.0.0 della libreria PKCS #11.

Per verificare la versione del software sulle istanze dell'applicazione, utilizza questo comando:

rpm -qa | grep ^cloudhsm

Esegui il wrapping delle chiavi utilizzando il wrapping di chiavi AES

Per wrapping di chiavi AES si intende che l'uso di una chiave AES per eseguire il wrapping di un'altra chiave. Il nome del meccanismo corrispondente è CKM_AES_KEY_WRAP. Viene utilizzato con la funzione C_WrapKey. Altri meccanismi di wrapping basati su AES che utilizzano vettori di inizializzazione (IV), come CKM_AES_GCM e CKM_CLOUDHSM_AES_GCM, non sono interessati da questo problema. Scopri di più su funzioni e meccanismi.

Specifichi un IV personalizzato durante una chiamata al wrapping di chiavi AES e la lunghezza dell'IV è inferiore a 8

Il wrapping di chiavi AES viene generalmente inizializzato utilizzando una struttura CK_MECHANISM come indicato di seguito:

CK_MECHANISM mech = {CKM_AES_KEY_WRAP, IV_POINTER, IV_LENGTH};

Questo problema ti riguarda solo se:

  • IV_POINTER non è NULL

  • IV_LENGTH è inferiore a 8 byte

Se non riscontri tutte le condizioni di cui sopra, puoi smettere di leggere. È possibile rimuovere adeguatamente il wrapping dalle chiavi e questo problema non ha alcuna ripercussione. In caso contrario, consulta Azioni da intraprendere se il codice genera chiavi con wrapping irrecuperabili.

Azioni da intraprendere se il codice genera chiavi con wrapping irrecuperabili

È necessario eseguire i tre passaggi seguenti:

  1. Aggiorna immediatamente la libreria PKCS #11 a una versione più recente

  2. Aggiorna il software per utilizzare un IV conforme agli standard

    Si consiglia vivamente di seguire il codice di esempio fornito e di specificare semplicemente un IV NULL, che induce l'HSM a utilizzare l'IV predefinito conforme agli standard. In alternativa, puoi specificare esplicitamente l'IV come 0xA6A6A6A6A6A6A6A6 con una lunghezza IV corrispondente di 8. Non è consigliabile utilizzare nessun altro IV per il wrapping di chiavi AES e gli IV personalizzati per il wrapping di chiavi AES verranno disabilitati in una versione futura della libreria PKCS #11.

    Il codice di esempio per specificare correttamente l'IV viene visualizzato in aes_wrapping.c su GitHub.

  3. Identifica e recupera le chiavi con wrapping esistenti

    È necessario identificare le chiavi di cui è stato eseguito il wrapping utilizzando la versione 3.0.0 della libreria PKCS #11 e in seguito contattare l'assistenza (https://aws.amazon.com/support) per recuperare le chiavi.

Importante

Questo problema riguarda solo le chiavi con wrapping con la versione 3.0.0 della libreria PKCS #11. È possibile eseguire il wrapping delle chiavi utilizzando versioni precedenti (2.0.4 e pacchetti di numero inferiore) o versioni successive (3.0.1 e pacchetti di numero superiore) della libreria PKCS #11.