Suite di algoritmi supportate nel AWS Database Encryption SDK - AWS SDK per la crittografia del database

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 nel AWS Database Encryption SDK

La nostra libreria di crittografia lato client è stata rinominata Database Encryption SDK. AWS Questa guida per sviluppatori fornisce ancora informazioni sul DynamoDB Encryption Client.

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

Il AWS Database Encryption SDK utilizza una suite di algoritmi per crittografare e firmare i campi del database. Tutte le suite di algoritmi supportate utilizzano l'algoritmo Advanced Encryption Standard (AES) con Galois/Counter Mode (GCM), noto come AES-GCM, per crittografare i dati grezzi. Il Database Encryption SDK supporta chiavi di crittografia a 256 bit. AWS La lunghezza del tag di autenticazione è sempre 16 byte.

AWS Suite di algoritmi SDK per la crittografia dei database
Algoritmo Algoritmo di crittografia Lunghezza chiave dati (in bit) Algoritmo di derivazione della chiave Algoritmo di firma simmetrica Algoritmo di firma asimmetrico Impegno chiave
Predefinita AES-GCM 256 HKDF con SHA-512 HMAC-SHA-384 ECDSA con P-384 e SHA-384 HKDF con SHA-512
AES-GCM senza firme digitali ECDSA AES-GCM 256 HKDF con SHA-512 HMAC-SHA-384 Nessuno HKDF con SHA-512
Algoritmo di crittografia

Il nome e la modalità dell'algoritmo di crittografia utilizzato. Le suite di algoritmi del AWS Database Encryption SDK utilizzano l'algoritmo Advanced Encryption Standard (AES) con Galois/Counter Mode (GCM).

Lunghezza chiave dati

La lunghezza della chiave dati in bit. Il AWS Database Encryption SDK supporta chiavi dati a 256 bit. La chiave dati viene utilizzata come input per una funzione di derivazione delle extract-and-expand chiavi basata su HMAC (HKDF). L'output dell'HKDF viene usato come chiave di crittografia dei dati nell'algoritmo di crittografia.

Algoritmo di derivazione della chiave

La funzione di derivazione delle extract-and-expand chiavi basata su HMAC (HKDF) utilizzata per derivare la chiave di crittografia dei dati. Il AWS Database Encryption SDK utilizza l'HKDF definito nella RFC 5869.

  • La funzione hash utilizzata è SHA-512

  • Per la fase di estrazione:

  • Per la fase di espansione:

    • La chiave di input pseudo-casuale è l'output della fase di estrazione.

    • L'etichetta della chiave è costituita dai byte della stringa con codifica UTF-8 in ordine di byte big endian. DERIVEKEY

    • Le informazioni di input sono una concatenazione dell'ID dell'algoritmo e dell'etichetta della chiave (in quest'ordine).

    • La lunghezza del materiale di codifica di output è la lunghezza della chiave Data. Questo output viene usato come chiave di crittografia dei dati nell'algoritmo di crittografia.

Algoritmo di firma simmetrica

L'algoritmo Hash-Based Message Authentication Code (HMAC) utilizzato per generare una firma simmetrica. Tutte le suite di algoritmi supportate includono la verifica HMAC.

AWS Database Encryption SDK serializza la descrizione del materiale e tutti i campi contrassegnati ENCRYPT_AND_SIGN con, o. SIGN_ONLY SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Quindi, utilizza HMAC con un algoritmo di funzione hash crittografica (SHA-384) per firmare la canonicalizzazione.

La firma HMAC simmetrica viene archiviata in un nuovo campo () aws_dbe_foot che Database Encryption SDK aggiunge al record. AWS

Algoritmo di firma asimmetrico

L'algoritmo di firma utilizzato per generare una firma digitale asimmetrica.

AWS Database Encryption SDK serializza la descrizione del materiale e tutti i campi contrassegnati con, o. ENCRYPT_AND_SIGN SIGN_ONLY SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Quindi, utilizza l'Elliptic Curve Digital Signature Algorithm (ECDSA) con le seguenti specifiche per firmare la canonicalizzazione:

  • La curva ellittica utilizzata è la P-384, come definita nel Digital Signature Standard (DSS) (FIPS PUB 186-4).

  • La funzione hash utilizzata è SHA-384.

La firma ECDSA asimmetrica viene memorizzata sul campo insieme alla firma HMAC simmetrica. aws_dbe_foot

Le firme digitali ECDSA sono incluse di default, ma non sono obbligatorie.

Impegno chiave

La funzione di derivazione delle extract-and-expand chiavi (HKDF) basata su HMAC utilizzata per derivare la chiave di commit.

  • La funzione hash utilizzata è SHA-512

  • Per la fase di estrazione:

  • Per la fase di espansione:

    • La chiave di input pseudo-casuale è l'output della fase di estrazione.

    • Le informazioni di input sono i byte della stringa con codifica UTF-8 in ordine di byte big endian. COMMITKEY

    • La lunghezza del materiale di codifica in uscita è di 256 bit. Questo output viene utilizzato come chiave di commit.

La chiave di commit calcola il record commit, un hash HMAC (Hash-Based Message Authentication Code) distinto a 256 bit, rispetto alla descrizione del materiale. Per una spiegazione tecnica dell'aggiunta dell'impegno chiave a una suite di algoritmi, vedete Key Committing in Cryptology ePrint Archive. AEADs

Per impostazione predefinita, AWS Database Encryption SDK utilizza una suite di algoritmi con AES-GCM, una funzione di derivazione delle extract-and-expand chiavi basata su HMAC (HKDF), verifica HMAC, firme digitali ECDSA, key commit e una chiave di crittografia a 256 bit.

La suite di algoritmi predefinita include la verifica HMAC (firme simmetriche) e le firme digitali ECDSA (firme asimmetriche). Queste firme sono archiviate in un nuovo campo () che Database Encryption SDK aggiunge al record. aws_dbe_foot AWS Le firme digitali ECDSA sono particolarmente utili quando la politica di autorizzazione consente a un set di utenti di crittografare i dati e a un gruppo diverso di utenti di decrittografare i dati.

La suite di algoritmi predefinita deriva anche da un impegno chiave: un hash HMAC che collega la chiave dei dati al record. Il valore di impegno chiave è un HMAC calcolato dalla descrizione del materiale e dalla chiave di commit. Il valore chiave di impegno viene quindi memorizzato nella descrizione del materiale. Key Commitment garantisce che ogni testo cifrato venga decrittografato in un solo testo non crittografato. Lo fanno convalidando la chiave dati utilizzata come input per l'algoritmo di crittografia. Durante la crittografia, la suite di algoritmi ricava un impegno chiave HMAC. Prima della decrittografia, convalidano che la chiave dati produca lo stesso impegno chiave HMAC. In caso contrario, la chiamata di decrittografia fallisce.

AES-GCM senza firme digitali ECDSA

Sebbene la suite di algoritmi predefinita sia probabilmente adatta alla maggior parte delle applicazioni, è possibile scegliere una suite di algoritmi alternativa. Ad esempio, alcuni modelli di fiducia sarebbero soddisfatti da una suite di algoritmi senza firme digitali ECDSA. Utilizza questa suite solo quando gli utenti che crittografano i dati e gli utenti che decifrano i dati sono ugualmente affidabili.

Tutte le suite di algoritmi AWS Database Encryption SDK includono la verifica HMAC (firme simmetriche). L'unica differenza è che la suite di algoritmi AES-GCM senza firma digitale ECDSA è priva della firma asimmetrica che fornisce un ulteriore livello di autenticità e non ripudio.

Ad esempio, se nel portachiavi sono presenti più chiavi di avvolgimento e decifrate un record utilizzando wrappingKeyA la firma wrappingKeyA simmetrica wrappingKeyB HMAC per wrappingKeyC verificare che il record sia stato crittografato da un utente con accesso a. wrappingKeyA Se hai utilizzato la suite di algoritmi predefinita, HMACs forniscono la stessa verifica e inoltre utilizzano la firma digitale ECDSA per garantire che il record sia stato crittografato da un utente con autorizzazioni di crittografia per. wrappingKeyA wrappingKeyA

Per selezionare la suite di algoritmi AES-GCM senza firme digitali, includi il seguente frammento nella configurazione di crittografia.

Java

Il seguente frammento specifica la suite di algoritmi AES-GCM senza firme digitali ECDSA. Per ulteriori informazioni, consulta Configurazione della crittografia nel AWS Database Encryption SDK per DynamoDB.

.algorithmSuiteId( DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_SYMSIG_HMAC_SHA384)
C# / .NET

Il seguente frammento specifica la suite di algoritmi AES-GCM senza firme digitali ECDSA. Per ulteriori informazioni, consulta Configurazione della crittografia nel AWS Database Encryption SDK per DynamoDB.

AlgorithmSuiteId = DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_SYMSIG_HMAC_SHA384
Rust

Il seguente frammento specifica la suite di algoritmi AES-GCM senza firme digitali ECDSA. Per ulteriori informazioni, consulta Configurazione della crittografia nel AWS Database Encryption SDK per DynamoDB.

.algorithm_suite_id( DbeAlgorithmSuiteId::AlgAes256GcmHkdfSha512CommitKeyEcdsaP384SymsigHmacSha384, )