Problemi noti per il JCE SDK AWS CloudHSM - 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à.

Problemi noti per il JCE SDK AWS CloudHSM

I seguenti problemi influiscono sul JCE SDK modulo AWS CloudHSM.

Issue: (Problema:) quando si utilizzano coppie di chiavi asimmetriche, viene visualizzata la capacità della chiave occupata anche quando non si creano o importano esplicitamente le chiavi

  • Impatto: questo problema può causare l'HSMsesaurimento imprevisto dello spazio sulle chiavi e si verifica quando l'applicazione utilizza un oggetto JCE chiave standard per le operazioni di crittografia anziché un CaviumKey oggetto. Quando si utilizza un oggetto JCE chiave standard, importa CaviumProvider implicitamente tale chiave HSM come chiave di sessione e non elimina questa chiave fino alla chiusura dell'applicazione. Di conseguenza, le chiavi si accumulano mentre l'applicazione è in esecuzione e possono causare l'HSMsesaurimento dello spazio libero sulle chiavi, bloccando così l'applicazione.

  • Soluzione alternativa: quando si utilizza la CaviumSignature classe, la CaviumCipher CaviumMac classe, la classe o la CaviumKeyAgreement classe, è necessario fornire la chiave come oggetto chiave CaviumKey anziché come oggetto JCE chiave standard.

    È possibile convertire manualmente una chiave normale in CaviumKey utilizzando la classe ImportKey e quindi è possibile eliminare manualmente la chiave al termine dell'operazione.

  • Resolution status: (Stato di risoluzione): stiamo aggiornando CaviumProvider per gestire correttamente le importazioni implicite. Non appena disponibile, la correzione sarà annunciata nella pagina della cronologia delle versioni.

Problema: JCE KeyStore è di sola lettura

  • Impatto: oggi non è possibile memorizzare HSM nel JCE keystore un tipo di oggetto che non è supportato da. Nello specifico, non è possibile archiviare certificati nel keystore. Questo impedisce l'interoperabilità con strumenti come jarsigner, che si aspettano di trovare il certificato nel keystore.

  • Workaround: (Soluzione) è possibile rilavorare il codice per caricare i certificati da file locali o da una posizione del bucket S3 anziché dal keystore.

  • Resolution status: (Stato di risoluzione) stiamo aggiungendo il supporto per l'archiviazione di certificati nel keystore. Non appena disponibile, la funzionalità sarà annunciata nella pagina della cronologia delle versioni.

Problema: i buffer per la AES GCM crittografia non possono superare i 16.000 byte

MultiparteAES: la GCM crittografia non è supportata.

  • Impatto: non è possibile utilizzare AES - GCM per crittografare dati di dimensioni superiori a 16.000 byte.

  • Soluzione alternativa: puoi utilizzare un meccanismo alternativo, ad esempio AES -CBC, oppure puoi dividere i dati in parti e crittografare ogni parte singolarmente. Se si dividono i dati, è necessario gestire il testo cifrato diviso e la sua decrittografia. Poiché FIPS richiede che il vettore di inizializzazione (IV) per AES - GCM sia generato sul fileHSM, l'IV per ogni dato AES-GCM-encrypted sarà diverso.

  • Stato della risoluzione: stiamo correggendo esplicitamente SDK l'errore se il buffer di dati è troppo grande. Stiamo valutando alternative che supportino buffer più grandi senza dover ricorrere alla crittografia in più parti. Gli aggiornamenti saranno annunciati nel forum AWS CloudHSM e nella pagina della cronologia delle versioni.

Problema: la derivazione della chiave Diffie-Hellman () con curva ellittica viene eseguita parzialmente all'interno di ECDH HSM

La chiave privata EC rimane sempre all'interno di, ma il processo di HSM derivazione della chiave viene eseguito in più fasi. Pertanto, nel client sono disponibili i risultati intermedi di ciascuna fase. Un esempio di derivazione ECDH chiave è disponibile negli esempi di codice Java.

  • Impatto: il Client SDK 3 aggiunge ECDH funzionalità a. JCE Quando si utilizza la KeyAgreement classe per derivare un SecretKey, questa è prima disponibile sul client e quindi viene importata HSM in. Un handle della chiave viene quindi restituito all'applicazione.

  • Soluzione alternativa: se state implementandoSSL/TLSOffload in AWS CloudHSM, questa limitazione potrebbe non essere un problema. Se l'applicazione richiede che la chiave rimanga sempre entro un FIPS limite, prendete in considerazione l'utilizzo di un protocollo alternativo che non si basi sulla ECDH derivazione delle chiavi.

  • Stato della risoluzione: stiamo sviluppando l'opzione per eseguire la derivazione delle ECDH chiavi interamente all'interno di. HSM Quando disponibile, annunceremo l'implementazione aggiornata nella pagina della cronologia delle versioni.

Problema: KeyGenerator e interpreta KeyAttribute erroneamente il parametro della dimensione della chiave come numero di byte anziché come bit

Quando si genera una chiave utilizzando la init funzione della KeyGenerator classe o l'SIZEattributo dell'AWS CloudHSM KeyAttribute enum, si aspetta API erroneamente che l'argomento sia il numero di byte chiave, mentre dovrebbe invece essere il numero di bit della chiave.

  • Impatto: SDK le versioni client da 5.4.0 a 5.4.2 si aspettano erroneamente che la dimensione della chiave venga fornita al valore specificato in byte. APIs

  • Soluzione alternativa: converti la dimensione della chiave da bit a byte prima di utilizzare la KeyGenerator classe o l' KeyAttribute enum per generare chiavi utilizzando il provider se utilizzi le versioni Client da 5.4.0 a 5.4.2. AWS CloudHSM JCE SDK

  • Stato della risoluzione: aggiorna la SDK versione del client alla 5.5.0 o successiva, che include una correzione per prevedere correttamente le dimensioni delle chiavi in bit quando si utilizza la classe o l'enum per generare le chiavi. KeyGenerator KeyAttribute

Problema: il client SDK 5 genera l'avviso «Si è verificata un'operazione di accesso riflessivo illegale»

Quando si utilizza Client SDK 5 con Java 11, Cloud HSM genera il seguente avviso Java:

``` 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 ```

Questi avvisi non hanno alcun impatto. Siamo consapevoli del problema e stiamo lavorando per risolverlo. Non è necessaria alcuna risoluzione o soluzione alternativa.

Problema: il pool JCE di sessioni è esaurito

Impatto: potresti non essere in grado di eseguire operazioni JCE dopo aver visualizzato il seguente messaggio:

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

Soluzioni alternative:

  • Riavvia JCE l'applicazione se riscontri un impatto.

  • Quando si esegue un'operazione, potrebbe essere necessario completarla JCE prima di perdere il riferimento all'operazione.

    Nota

    A seconda dell'operazione, potrebbe essere necessario un metodo di completamento.

    Operazione Metodo/i di completamento
    Crittografia

    doFinal() in modalità crittografia o decrittografia

    wrap() in modalità wrapping

    unwrap() in modalità annullamento del wrapping

    KeyAgreement

    generateSecret() o generateSecret(String)

    KeyPairGenerator

    generateKeyPair(), genKeyPair() o reset()

    KeyStore Nessun metodo necessario
    MAC

    doFinal() o reset()

    MessageDigest

    digest() o reset()

    SecretKeyFactory Nessun metodo necessario
    SecureRandom Nessun metodo necessario
    Firma

    sign() in modalità firma

    verify() in modalità verifica

Stato della risoluzione: abbiamo risolto questo problema in Client SDK 5.9.0 e versioni successive. Per risolvere questo problema, aggiorna il tuo Client SDK a una di queste versioni.

Problema: perdita di memoria del Client SDK 5 durante le operazioni getKey

  • Impatto: l'APIgetKeyoperazione presenta una perdita di memoria JCE nelle SDK versioni Client 5.10.0 e precedenti. Se lo utilizzi getKey API più volte nell'applicazione, ciò comporterà una maggiore crescita della memoria e di conseguenza aumenterà l'ingombro di memoria nell'applicazione. Nel tempo ciò potrebbe causare errori di limitazione o richiedere il riavvio dell'applicazione.

  • Soluzione alternativa: si consiglia l'aggiornamento al Client 5.11.0. SDK Se ciò non è possibile, consigliamo di non chiamarlo getKey API più volte nell'applicazione. Piuttosto, riutilizzate il più possibile la chiave restituita in precedenza dall'getKeyoperazione precedente.

  • Stato della risoluzione: aggiorna la SDK versione del client alla 5.11.0 o successiva, che include una correzione per questo problema.