Suite di algoritmi supportate in AWS Encryption SDK - 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à.

Suite di algoritmi supportate in AWS Encryption SDK

Una suite di algoritmi è una raccolta di algoritmi di crittografia e dei relativi valori. I sistemi crittografici utilizzano l'implementazione di algoritmi per generare il messaggio di testo cifrato.

La suite di algoritmi AWS Encryption SDK utilizza l'algoritmo Advanced Encryption Standard (AES) in Galois/Counter Mode (GCM), noto come AES-GCM, per crittografare i dati grezzi. LaAWS Encryption SDKsupporta chiavi di crittografia a 256 bit, 192 bit e 128 bit. La lunghezza del vettore di inizializzazione (IV) è sempre 12 byte. La lunghezza del tag di autenticazione è sempre 16 byte.

Per impostazione predefinita, ilAWS Encryption SDKutilizza una suite di algoritmi con AES-GCM con un HMACextract-and-expandfunzione di derivazione chiave (HKDF), firma e chiave di crittografia a 256 bit. Se il filepolitica impegnorichiedechiave impegno, ilAWS Encryption SDKseleziona una suite di algoritmi che supporta anche l'impegno chiave; in caso contrario, seleziona una suite di algoritmi con derivazione e firma delle chiavi, ma non un impegno chiave.

LaAWS Encryption SDKconsiglia una suite di algoritmi che deriva una chiave di crittografia AES-GCM fornendo una chiave di crittografia dei dati a 256 bit a quella basata su HMACextract-and-expandfunzione di derivazione delle chiavi (HKDF). LaAWS Encryption SDKaggiunge una firma ECDSA (Elliptic Curve Digital Signature Algorithm). Per supportarechiave impegno, questa suite di algoritmi deriva anche astringa di impegno chiave— un identificatore della chiave di dati non segreto, memorizzato nei metadati del messaggio crittografato. Questa stringa di impegno chiave è derivata anche da HKDF utilizzando una procedura simile alla derivazione della chiave di crittografia dei dati.

AWS Encryption SDKSuite di algoritmi
Algoritmo di crittografia Lunghezza della chiave di crittografia dei dati (in bit) Algoritmo di derivazione della chiave Algoritmo di firma Scadenza impegno
AES-GCM 256 HKDF con SHA-384 ECDSA con P-384 e SHA-384 HKDF con SHA-512

L'HKDF consente di evitare il riutilizzo accidentale di una chiave di crittografia dei dati e riduce il rischio di utilizzo eccessivo di una chiave di dati.

Per la firma, questa suite di algoritmi utilizza ECDSA con un algoritmo di funzione hash crittografica (SHA-384). ECDSA viene utilizzato per impostazione predefinita, anche quando non è specificato dalla policy per la chiave master sottostante. Firma di messaggiverifica che il mittente del messaggio sia stato autorizzato a crittografare i messaggi e fornisce il non ripudio. È particolarmente utile quando la policy di autorizzazione per una chiave master consente a un set di utenti di crittografare i dati e a un altro set di utenti di decrittografarli.

Le suite di algoritmi con impegno chiave assicurano che ogni testo cifrato decifri in un solo testo normale. Lo fanno convalidando l'identità della chiave dati utilizzata come input per l'algoritmo di crittografia. Durante la crittografia, queste suite di algoritmi derivano una stringa di impegno chiave. Prima di decrittografare, convalidano che la chiave dati corrisponda alla stringa di impegno chiave. In caso contrario, la chiamata di decrittografia ha esito negativo.

Altre suite di algoritmi supportate

L'AWS Encryption SDK supporta le seguenti suite di algoritmi alternative per la compatibilità con le versioni precedenti, di cui, in generale, sconsigliamo l'utilizzo. Tuttavia, riconosciamo che la firma può ostacolare in modo significativo le prestazioni, quindi offriamo una suite di commit chiave con derivazione delle chiavi per questi casi. Per le applicazioni che devono rendere più significativi compromessi sulle prestazioni, continuiamo a offrire suite prive di firma, impegno chiave e derivazione delle chiavi.

AES-GCM senza impegno

Le suite di algoritmi senza impegno chiave non convalidano la chiave dati prima della decrittografia. Di conseguenza, queste suite di algoritmi potrebbero decrittografare un singolo testo cifrato in diversi messaggi in testo normale. Tuttavia, perché le suite di algoritmi con impegno chiave producono unmessaggio crittografato leggermente più grande (+30 byte)e richiedere più tempo per l'elaborazione, potrebbero non essere la scelta migliore per ogni applicazione.

LaAWS Encryption SDKsupporta una suite di algoritmi con derivazione delle chiavi, impegno chiave, firma e uno con derivazione chiave e impegno chiave, ma non firma. Non è consigliabile utilizzare una suite di algoritmi senza impegno. Se necessario, consigliamo una suite di algoritmi con derivazione delle chiavi e impegno chiave, ma non firmare. Tuttavia, se il profilo delle prestazioni dell'applicazione supporta l'utilizzo di una suite di algoritmi, l'utilizzo di una suite di algoritmi con impegno chiave, derivazione di chiavi e firma è una buona pratica.

AES-GCM senza firma

Le suite di algoritmi senza firma non forniscono la firma ECDSA che offre autenticità e non ripudio. Utilizzare queste suite solo quando gli utenti che crittografano i dati e quelli che decrittografano i dati sono ugualmente affidabili.

Quando si utilizza una suite di algoritmi senza firmare, si consiglia di sceglierne una con derivazione chiave e impegno chiave.

AES-GCM senza derivazione della chiave

Le suite di algoritmi senza derivazione della chiave utilizzano la chiave di crittografia dei dati come chiave di crittografia AES-GCM, anziché utilizzare una funzione di derivazione della chiave per ottenere una chiave univoca. Sconsigliamo l'utilizzo di questa suite per generare testo cifrato, ma ilAWS Encryption SDKlo supporta per motivi di compatibilità.

Per ulteriori informazioni su come queste suite sono rappresentate e utilizzate nella libreria, vedi AWS Encryption SDK riferimento agli algoritmi.