Risoluzione dei problemi relativi alla migrazione alle versioni più recenti - AWS Encryption SDK

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à.

Risoluzione dei problemi relativi alla migrazione alle versioni più recenti

Prima di aggiornare l'applicazione alla versione 2.0.xo più tardi delAWS Encryption SDK, aggiornamento alla versione più recente 1.xversione delAWS Encryption SDKe distribuiscilo completamente. Questo ti aiuterà a evitare la maggior parte degli errori che potresti riscontrare durante l'aggiornamento alle versioni 2.0.xe dopo. Per una guida dettagliata, inclusi esempi, vedereMigrazione della tuaAWS Encryption SDK.

Importante

Verifica che il tuo ultimo 1.xla versione è 1.7.xo più tardi delAWS Encryption SDK.

Nota

AWSCriptazione CLI: Riferimenti di questa guida alla versione 1.7.xdelAWS Encryption SDKsi applica alla versione 1.8.xdelAWSCrittografia CLI. Riferimenti di questa guida alla versione 2.0.xdelAWS Encryption SDKsi applica al 2.1.xdelAWSCrittografia CLI.

Le nuove funzionalità di sicurezza sono state inizialmente rilasciate inAWSEncryption CLI versioni 1.7.xe 2.0.x. Tuttavia,AWSCrittografia CLI versione 1.8.xsostituisce la versione 1.7.xeAWSCrittografia CLI 2.1.xsostituisce 2.0.x. Per informazioni dettagliate, consultare la sezione pertinenteconsulenza sulla sicurezzanelaws-encryption-sdk-clirepository su GitHub.

Questo argomento è stato progettato per aiutarti a riconoscere e risolvere gli errori più comuni che potresti riscontrare.

Oggetti obsoleti o rimossi

Versione 2.0.xinclude diverse modifiche importanti, inclusa la rimozione di costruttori, metodi, funzioni e classi obsoleti che erano obsoleti nella versione 1.7.x. Per evitare errori del compilatore, errori di importazione, errori di sintassi e errori relativi ai simboli non trovati (a seconda del linguaggio di programmazione in uso), esegui prima l'aggiornamento alla versione più recente 1.xversione delAWS Encryption SDKper il tuo linguaggio di programmazione. (Deve essere la versione 1.7.xo più tardi.) Durante l'utilizzo della versione più recente 1.xversione, puoi iniziare a utilizzare gli elementi sostitutivi prima che i simboli originali vengano rimossi.

Se è necessario eseguire l'aggiornamento alla versione 2.0.xo subito dopo,consulta il changelogper il tuo linguaggio di programmazione e sostituisci i simboli precedenti con i simboli consigliati dal changelog.

Conflitto di configurazione Politica di impegno e suite di algoritmi

Se specifichi una suite di algoritmi che è in conflitto conpolitica di impegno, la chiamata alla crittografia non riesce e restituisce unconflitto di configurazioneErrore.

Per evitare questo tipo di errore, non specificate una suite di algoritmi. Per impostazione predefinita, ilAWS Encryption SDKsceglie l'algoritmo più sicuro compatibile con la tua politica di impegno. Tuttavia, se devi specificare una suite di algoritmi, ad esempio una suite senza firma, assicurati di scegliere una suite di algoritmi compatibile con la tua politica di impegno.

Politica di impegno Suite di algoritmi compatibili
ForbidEncryptAllowDecrypt

Qualsiasi suite di algoritmisenzaimpegno chiave, come ad esempio:

AES_256_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384(03 78) (con firma)

AES_256_GCM_IV12_TAG16_HKDF_SHA256(01 78) (senza firmare)

RequireEncryptAllowDecrypt

RequireEncryptRequireDecrypt

Qualsiasi suite di algoritmiconimpegno chiave, come ad esempio:

AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384(05 78) (con firma)

AES_256_GCM_HKDF_SHA512_COMMIT_KEY(04 78) (senza firmare)

Se si verifica questo errore quando non è stata specificata una suite di algoritmi, la suite di algoritmi in conflitto potrebbe essere stata scelta dalgestore di materiali crittografici(CM). La CMM predefinita non selezionerà una suite di algoritmi in conflitto, ma una CMM personalizzata sì. Per assistenza, consulta la documentazione della tua CMM personalizzata.

Conflitto di configurazione Politica di impegno e testo cifrato

IlRequireEncryptRequireDecrypt politica di impegnonon consente ilAWS Encryption SDKper decifrare un messaggio crittografato senzaScadenza impegno. Se chiedi alAWS Encryption SDKper decifrare un messaggio senza impegno chiave, restituisce unconflitto di configurazioneErrore.

Per evitare questo errore, prima di impostare ilRequireEncryptRequireDecryptpolitica di impegno, assicurati che tutti i testi cifrati crittografati senza impegno chiave vengano decrittografati e ricrittografati con l'impegno della chiave o gestiti da un'altra applicazione. Se si verifica questo errore, è possibile restituire un errore relativo al testo cifrato in conflitto o modificare temporaneamente la politica di impegno aRequireEncryptAllowDecrypt.

Se riscontri questo errore perché hai effettuato l'aggiornamento alla versione 2.0.xo versione successiva da una versione precedente alla 1.7.xsenza prima effettuare l'aggiornamento alla versione più recente 1.xversione 1.7.xo più tardi), considerarollbackalla più recente 1.xversione e distribuzione di tale versione su tutti gli host prima dell'aggiornamento alla versione 2.0.xo più tardi. Per assistenza, consulta Come migrare e implementare ilAWS Encryption SDK.

Convalida dell'impegno chiave non riuscita

Quando decifri i messaggi crittografati con l'impegno della chiave, potresti ottenere unConvalida dell'impegno chiave non riuscitamessaggio di errore. Ciò indica che la chiamata di decrittografia non è riuscita a causa di una chiave di dati in unmessaggio criptatonon è identica alla chiave dati univoca del messaggio. Convalidando la chiave dei dati durante la decrittografia,Scadenza impegnoti protegge dalla decrittografia di un messaggio che potrebbe generare più di un testo in chiaro.

Questo errore indica che il messaggio crittografato che stavi cercando di decrittografare non è stato restituito dalAWS Encryption SDK. Potrebbe essere un messaggio creato manualmente o il risultato di un danneggiamento dei dati. Se si verifica questo errore, l'applicazione può rifiutare il messaggio e continuare o interrompere l'elaborazione di nuovi messaggi.

Altri errori di crittografia

La crittografia può fallire per diversi motivi. Non puoi utilizzare unAWS KMSportachiavi Discoveryo unprovider di chiavi master in modalità discoveryper crittografare un messaggio.

Assicurati di specificare un portachiavi o un fornitore di chiavi master con le chiavi di avvolgimento che possiediautorizzazione all'usoper la crittografia. Per assistenza con le autorizzazioni suAWS KMS keys, vediVisualizzazione di una policy di chiaveeDeterminazione dell'accesso a unaAWS KMS keynelAWS Key Management ServiceGuida per gli sviluppatori.

Altri errori di decrittografia

Se il tentativo di decifrare un messaggio crittografato fallisce, significa cheAWS Encryption SDKnon ha potuto (o non vuole) decrittografare nessuna delle chiavi di dati crittografate nel messaggio.

Se hai usato un portachiavi o un provider di chiavi master che specifica le chiavi di impacchettamento,AWS Encryption SDKutilizza solo le chiavi di avvolgimento specificate. Verificare di utilizzare le chiavi di imballaggio che si intende utilizzare e di disporrekms:Decryptautorizzazione su almeno una delle chiavi di imballaggio. Se stai utilizzandoAWS KMS keys, come riserva, puoi provare a decrittografare il messaggio con unAWS KMSportachiavi Discoveryo unprovider di chiavi master in modalità discovery. Se l'operazione ha esito positivo, prima di restituire il testo in chiaro, verifica che la chiave utilizzata per decrittografare il messaggio sia attendibile.

Considerazioni sul rollback

Se l'applicazione non riesce a crittografare o decrittografare i dati, in genere è possibile risolvere il problema aggiornando i simboli del codice, i portachiavi, i fornitori di chiavi master opolitica di impegno. Tuttavia, in alcuni casi, potresti decidere che è meglio ripristinare l'applicazione a una versione precedente diAWS Encryption SDK.

Se è necessario eseguire il rollback, farlo con cautela. Versioni delAWS Encryption SDKprecedente alla 1.7.xnon può decifrare il testo cifrato crittografato conScadenza impegno.

  • Tornando indietro rispetto all'ultimo 1.xversione di una versione precedente diAWS Encryption SDKè generalmente sicuro. Potrebbe essere necessario annullare le modifiche apportate al codice per utilizzare simboli e oggetti non supportati nelle versioni precedenti.

  • Dopo aver iniziato la crittografia con l'impegno chiave (impostazione della politica di impegno suRequireEncryptAllowDecrypt) nella versione 2.0.xo versione successiva, è possibile ripristinare la versione 1.7.x, ma non in nessuna versione precedente. Versioni delAWS Encryption SDKprecedente alla 1.7.xnon può decifrare il testo cifrato crittografato conScadenza impegno.

Se abiliti accidentalmente la crittografia con l'impegno delle chiavi prima che tutti gli host possano decifrarla con l'impegno della chiave, potrebbe essere meglio continuare con l'implementazione anziché eseguire il rollback. Se i messaggi sono transitori o possono essere eliminati in modo sicuro, potresti prendere in considerazione un rollback con perdita di messaggi. Se è necessario un rollback, potresti prendere in considerazione la possibilità di scrivere uno strumento che decripti e cripti nuovamente tutti i messaggi.