Proteggi i tuoi dati con la crittografia (lato client)

Proteggi i tuoi dati con la crittografia (lato client)

In questo post affronteremo il tema della crittografia lato client, in un altro c’eravamo occupati di quella lato server. Vi ricordate?

Ci riferiamo, in particolare, alla crittografia dei dati prima che questi siano inviati ad Amazon S3. Per l’utilizzo delle chiavi di crittografia dei dati hai la possibilità di scegliere fra due soluzioni:

  • una master key del cliente gestita da KS AWS
  • una master key sul lato client

Opzione 1: Utilizzo di Customer Master Key gestita da AWS KMS (CMK)

Quando si utilizza una Customer Master Key gestita da AWS KMS per la crittografia dei dati lato client, non c’è bisogno di fornire nessuna key al client di crittografia Amazon S3 (ad esempio, AmazonS3EncryptionClientnell’SDK AWS per Java). Bisogna solo dare un ID della master key AWS KMS (CMK ID) e il client farà il resto. Ecco come funziona:

Quando si carica un oggetto utilizzando l’ID CMK, il client invia prima una richiesta a AWS KMS per una key che può utilizzare per crittografare i dati dell’oggetto. In risposta, il servizio restituisce una chiave di crittografia dei dati generata in modo casuale. Sottolineamo che AWS KMS restituisce due versioni della key dei dati:

  • Una versione di testo normale che il client utilizza per crittografare i dati dell’oggetto.
  • Un blob cifrato della stessa chiave di crittografia dei dati che il client carica su Amazon S3 come metadati oggetto.

Nota

Il client ottiene una chiave di crittografia dei dati univoca per ogni oggetto caricato.
Durante il download di un oggetto: il client scarica prima l’oggetto crittografato da Amazon S3, insieme alla versione del blob crittografico della chiave di crittografia dei dati archiviata come metadati dell’oggetto. Il client invia quindi il blob di crittografia a AWS KMS per ottenere la versione in testo normale dello stesso, in modo che possa decrittografare i dati dell’oggetto.

Opzione 2: utilizzo di una chiave master per la crittografia lato client

In questa sezione verrà mostrato come fornire la chiave master sul lato client durante il processo di crittografia dei dati.

Importante
Le tue key principali lato client e i tuoi dati non crittografati non vengono mai inviati ad AWS; pertanto, è importante gestire in modo sicuro le chiavi di crittografia. Se le perdi, non sarai in grado di decrittografare i tuoi dati.

Durante l’uploading di un oggetto fornisci una master key sul lato client al client di crittografia Amazon S3 (ad esempio, AmazonS3EncryptionClient, quando si utilizza l’SDK AWS per Java). Il client la utilizzerà esclusivamente per crittografare la key generata in modo casuale. Descriviamo brevemente il processo:

  • Il client di crittografia Amazon S3 genera in locale una key simmetrica monouso. La utilizza per crittografare i dati di un singolo oggetto S3 (per ogni oggetto, il client genera una chiave dati separata).
  • Il client crittografa la chiave di crittografia dei dati utilizzando la master key che viene fornita.
  • Il client carica la chiave dati crittografata e la relativa descrizione del materiale come parte dei metadati dell’oggetto. La descrizione del materiale ti aiuta a capire in seguito quale master key lato client utilizzare per la decrittografia (quando si scarica l’oggetto, il client lo decrittografa).
  • Il client carica quindi i dati crittografati su Amazon S3 e salva anche la chiave dei dati crittografati come metadati oggetto ( x-amz-meta-x-amz-key) in Amazon S3 con una impostazione predefinita.

Durante il download di un oggetto: il client scarica prima l’oggetto crittografato da Amazon S3 insieme ai metadati. Grazie alla descrizione del materiale nei metadati, il client determina innanzitutto quale master key utilizzare per decrittografare la chiave dati crittografata. Usando la key master il client decrittografa la chiave dati e la usa per decifrare l’oggetto.
La chiave master lato client fornita può essere una chiave simmetrica o una coppia di chiavi pubblica / privata.

I seguenti kit di Software development kit AWS supportano la crittografia lato client:

  • AWS SDK per .NET
  • AWS SDK per Go
  • AWS SDK per Java
  • AWS SDK per PHP
  • AWS SDK per Ruby

Interessato alla crittografia? Altri post fanno al tuo caso.

Proteggi i tuoi dati con la crittografia (lato server)
GDPR e Cloud: 6 questioni importanti da considerare
Anonymus colpisce ancora. Cyber security? Nel cloud

Comments are closed.

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi