Come funziona il AWS Database Encryption SDK - AWS Crittografia database 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à.

Come funziona il 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.

Il AWS Database Encryption SDK fornisce librerie di crittografia lato client progettate specificamente per proteggere i dati archiviati nei database. Le librerie includono implementazioni sicure che puoi estendere o utilizzare senza modificarle. Per ulteriori informazioni sulla definizione e l'utilizzo di componenti personalizzati, consulta l' GitHub archivio per l'implementazione del database.

I flussi di lavoro di questa sezione spiegano come il AWS Database Encryption SDK crittografa, firma, decrittografa e verifica i dati nel database. Questi flussi di lavoro descrivono il processo di base utilizzando elementi astratti e le funzionalità predefinite. Per informazioni dettagliate su come il AWS Database Encryption SDK interagisce con l'implementazione del database, consulta l'argomento Cos'è la crittografia per il database.

Il AWS Database Encryption SDK utilizza la crittografia a busta per proteggere i dati. Ogni record è crittografato con una chiave dati unica. La chiave dati viene utilizzata per derivare una chiave di crittografia dei dati univoca per ogni campo contrassegnato ENCRYPT_AND_SIGN nelle azioni crittografiche. Quindi, una copia della chiave dati viene crittografata dalle chiavi di wrapping specificate. Per decrittografare il record crittografato, AWS Database Encryption SDK utilizza le chiavi di wrapping specificate per decrittografare almeno una chiave di dati crittografata. Quindi può decrittografare il testo cifrato e restituire una voce in testo semplice.

Per ulteriori informazioni sui termini utilizzati nel Database Encryption SDK, consulta AWS . AWS Concetti dell'SDK per la crittografia dei database

Crittografa e firma

Fondamentalmente, AWS Database Encryption SDK è un crittografo dei record che crittografa, firma, verifica e decrittografa i record del database. Contiene informazioni sui tuoi record e istruzioni su quali campi crittografare e firmare. Riceve i materiali di crittografia e le istruzioni su come utilizzarli da un gestore di materiali crittografici configurato sulla base della chiave di wrapping specificata.

La procedura dettagliata seguente descrive come il AWS Database Encryption SDK crittografa e firma i dati immessi.

  1. Il gestore dei materiali crittografici fornisce al AWS Database Encryption SDK chiavi di crittografia dei dati uniche: una chiave dati in chiaro, una copia della chiave dati crittografata con la chiave di wrapping specificata e una chiave MAC.

    Nota

    È possibile crittografare la chiave dati con più chiavi di wrapping. Ciascuna chiave di wrapping crittografa una copia separata della chiave dati. Il AWS Database Encryption SDK memorizza tutte le chiavi di dati crittografate nella descrizione del materiale. Il AWS Database Encryption SDK aggiunge un nuovo campo (aws_dbe_head) al record che memorizza la descrizione del materiale.

    Viene derivata una chiave MAC per ogni copia crittografata della chiave dati. Le chiavi MAC non sono memorizzate nella descrizione del materiale. Invece, il metodo decrypt utilizza le chiavi di wrapping per derivare nuovamente le chiavi MAC.

  2. Il metodo di crittografia crittografa ogni campo contrassegnato come ENCRYPT_AND_SIGN nelle azioni crittografiche specificate.

  3. Il metodo di crittografia ricava una chiave commitKey dalla chiave dati e la utilizza per generare un valore di impegno chiave, quindi scarta la chiave dati.

  4. Il metodo di crittografia aggiunge una descrizione del materiale al record. La descrizione del materiale contiene le chiavi di dati crittografate e le altre informazioni sul record crittografato. Per un elenco completo delle informazioni incluse nella descrizione del materiale, consulta Formato della descrizione del materiale.

  5. Il metodo di crittografia utilizza le chiavi MAC restituite nel passaggio 1 per calcolare i valori HMAC (Hash-Based Message Authentication Code) sulla canonicalizzazione della descrizione del materiale, del contesto di crittografia e di ogni campo contrassegnato ENCRYPT_AND_SIGN o SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT nelle azioni crittografiche. SIGN_ONLY I valori HMAC vengono memorizzati in un nuovo campo (aws_dbe_foot) che il metodo di crittografia aggiunge al record.

  6. Il metodo di crittografia calcola una firma ECDSA sulla base della canonicalizzazione della descrizione del materiale, del contesto di crittografia e di ogni campo contrassegnato ENCRYPT_AND_SIGN oppure SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT e memorizza le firme ECDSA nel campo. SIGN_ONLY aws_dbe_foot

    Nota

    Le firme ECDSA sono abilitate per impostazione predefinita, ma non sono obbligatorie.

  7. Il metodo di crittografia archivia il record crittografato e firmato nel database

Decrittografa e verifica

  1. Il gestore dei materiali crittografici (CMM) fornisce il metodo di decrittografia con i materiali di decrittografia memorizzati nella descrizione del materiale, inclusa la chiave di dati in chiaro e la chiave MAC associata.

    1. La CMM decrittografa la chiave dati crittografata con le chiavi di avvolgimento nel portachiavi specificato e restituisce la chiave di dati in testo semplice.

  2. Il metodo di decrittografia confronta e verifica il valore di impegno chiave nella descrizione del materiale.

  3. Il metodo di decrittografia verifica le firme nel campo della firma.

    Identifica quali campi sono contrassegnati ENCRYPT_AND_SIGN o SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT dall'elenco dei campi non autenticati consentiti che hai definito. SIGN_ONLY Il metodo di decrittografia utilizza la chiave MAC restituita nel passaggio 1 per ricalcolare e confrontare i valori HMAC per i campi contrassegnati, o. ENCRYPT_AND_SIGN SIGN_ONLY SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Quindi, verifica le firme ECDSA utilizzando la chiave pubblica memorizzata nel contesto di crittografia.

  4. Il metodo di decrittografia utilizza la chiave di dati in testo semplice per decrittografare ogni valore contrassegnato. ENCRYPT_AND_SIGN Il AWS Database Encryption SDK scarta quindi la chiave di dati in testo semplice.

  5. Il metodo di decrittografia restituisce il record di testo in chiaro.