L’encryption dei dati in Azure

Uno degli ambiti relativi al miglioramento delle Security Posture del sistema informativo aziendale è certamente la crittografia del dato che, tramite l’adozione di tecniche specifiche, permette di rendere leggibili i dati solamente a chi possiede la soluzione per decifrarli. In questo articolo viene fornita una panoramica di come l’encryption viene adottata in Azure e vengono riportati i riferimenti per effettuare ulteriori approfondimenti.

Per proteggere i dati nel cloud, è necessario prima di tutto prendere in considerazione i possibili stati in cui i dati possono trovarsi e valutare di conseguenza i relativi controlli che è possibile attuare. Le procedure consigliate per la sicurezza e la crittografia dei dati, in particolare in Azure, riguardano i seguenti stati:

  • At rest: include tutte le informazioni che risiedono in modo statico sui supporti storage fisici, sia magnetici che ottici.
  • In transito: quando i dati vengono trasferiti tra componenti, location oppure servizi, vengono definiti in transito. Ad esempio, il trasferimento di dati attraverso la rete, tramite un service bus oppure durante processi di input / output.

Encryption at Rest

L’Encryption at Rest è una tecnica fortemente raccomandata ed è un requisito prioritario per molte organizzazioni per adempiere a politiche di governance e di conformità dei dati. Differenti regolamenti specifici del settore e di governo, impongono la presenza di misure obbligatorie in materia di protezione e di crittografia dei dati. L’Encryption at Rest prevede quindi la crittografia del dato quando è persistente e viene utilizzata, oltre che per soddisfare i requisiti di conformità e normativi, anche per avere un elevato livello di protezione dei propri dai. La piattaforma Azure prevede nativamente l’adozione di avanzati meccanismi di sicurezza fisica, di controllo dell’accesso ai dati e di audit. Tuttavia, è importante adottare misure di sicurezza sovrapposte per far fronte a potenziali fallimenti, e l’Encryption at Rest è un’ottima soluzione per garantire la riservatezza, la conformità e la sovranità dei dati.

Modelli di crittografia dei dati lato server

I modelli di crittografia dei dati lato server si riferiscono alla crittografia eseguita dai servizi Azure. In questo modello è l’Azure Resource Provider che esegue le operazioni di crittografia e decrittografia. In Azure sono disponibili diversi modelli di Encryption at Rest lato server, ciascuno dei quali con caratteristiche differenti nella gestione delle chiavi, che possono essere applicati alle differenti risorse Azure:

  • Crittografia lato server mediante chiavi gestite dal servizio. In questo scenario le chiavi di crittografia vengono gestire da Microsoft e risulta essere una buona combinazione tra controllo e praticità.
  • Crittografia lato server usando chiavi gestite dal cliente in Azure Key Vault. Con questa modalità le chiavi di crittografia vengono controllate dal cliente tramite Azure Key Vault, ed è incluso il supporto per utilizzare le proprie chiavi (BYOK).
  • Crittografia lato server che utilizza chiavi gestite dal cliente su hardware controllato dal cliente. Questa metodologia permette al cliente di controllare le chiavi che risiedono su un repository controllato dal cliente, al di fuori del controllo Microsoft. Questa caratteristica è chiamata Host Your Own Key (HYOK). Tuttavia, la configurazione è articolata e al momento la maggior parte dei servizi di Azure non supporta questo modello.
Figura 1 – Server-side encryption model

Modelli di crittografia dei dati lato client

Il modello di crittografia dei dati lato client si riferisce alla crittografia eseguita all’esterno di Azure e viene effettuata direttamente dal servizio o dall’applicazione chiamante. Quando si adotta questo modello di crittografia, il Resource Provider in Azure riceve i dati crittografati senza la possibilità di decifrarli o di accedere alle chiavi di crittografia. In questo modello, la gestione delle chiavi viene eseguita dal servizio o dall’applicazione chiamante ed è oscura per il servizio Azure.

Figura 2 – Client-side encryption model

Encryption at Rest per i principali servizi Azure

Azure Storage

Azure Storage provvede in automatico alla crittografa dei dati quando vengono resi persistenti nell’ambiente cloud. Infatti, tutti i servizi Azure Storage (Blob storage, Queue storage, Table storage, ed Azure Files) supportano la crittografia dei dati at rest lato server ed alcuni di questi supportano anche la crittografia dei dati lato client e le chiavi di encryption gestite dal cliente.

  • Server-side: tutti i servizi storage di Azure di default hanno abilitata l’encryption server-side mediante chiavi gestite dal servizio. Per gli Azure Blob storage e gli Azure Files è supportata anche la crittografia usando chiavi gestite dal cliente in Azure Key Vault. La tecnologia utilizzata è chiamata Azure Storage Service Encryption, in grado in automatico di crittografare i dati prima di essere memorizzati e di decodificarli quando vengono acceduti. Questo processo è completamente trasparente all’utente e prevede l’utilizzo della crittografia AES a 256 bit, una delle crittografie a blocchi più potenti attualmente disponibili. La crittografia di Azure Storage è simile alla crittografia BitLocker in ambiente Windows. L’ Azure Storage encryption è abilitata di default per tutti i nuovi storage account e non può essere disabilitata. Gli storage account sono crittografati indipendentemente dal livello di prestazioni (standard o premium) o dal modello di distribuzione (Azure Resource Manager o classico). Tutte le opzioni di ridondanza previste per gli storage account supportano la crittografia e tutte le copie di uno storage account sono sempre crittografate. La crittografia non influisce sulle prestazioni degli storage account e non prevede costi aggiuntivi.
  • Client-side: questa encryption è al momento supporta da Azure Blobs, Tables, e Queues. Quando utilizzata il dato viene crittografato dal cliente gestendo le proprie chiavi e ne viene fatto l’upload come blob criptato.

Macchine Virtuali

Tutti i Managed Disks, le Snapshots e le immagini delle macchine virtuali in Azure sono criptati utilizzando Storage Service Encryption tramite chiavi gestite dal servizio. Durante l’elaborazione dei dati su una macchina virtuale, i dati possono essere mantenuti nel file di paging di Windows o nel file di swap Linux, in un crash dump oppure in un application log. Per ottenere quindi una soluzione di Encryption at Rest più completa su macchine virtuali IaaS e per dischi virtuali, che garantisce che i dati non vengano mai mantenuti in forma non crittografata, è necessario utilizzare Azure Disk Encryption . Questa funzionalità consente di proteggere macchine virtuali Windows, utilizzando la tecnologia Windows BitLocker, e le macchine virtuali Linux tramite DM-Crypt. Affidandosi ad Azure Disk Encryption si ottiene una protezione completa dei dischi del sistema operativo e dei volumi dati. Le chiavi di Encryption e i secrets sono protette all’interno del proprio Azure Key Vault. La protezione di macchine virtuali encrypted è supportata dal servizio Azure Backup. Per maggiori informazioni in merito ad Azure Disk Encryption è possibile consultare la documentazione ufficiale Microsoft.

Azure SQL Database

Azure SQL Database attualmente supporta la crittografia at rest secondo le seguenti modalità:

  • Server-side: l’encryption lato server è garantita tramite una funzionalità di SQL chiamata Transparent Data Encryption (TDE) e può essere attivata sia a livello di server che di database. A partire da giugno 2017 questa funzionalità è attiva di default per tutti i nuovi database. TDE protegge i dati e i file di log di SQL, utilizzando algoritmi di crittografia AES e Triple Data Encryption Standard (3DES). La crittografia dei file dei database viene eseguita a livello di pagina, le quali vengono crittografate prima di essere scritte su disco e vengono de-crittografate quando vengono lette in memoria.
  • Client-side: la crittografia dei dati lato client per Azure SQL Database è supportata tramite la funzionalità Always Encrypted, che utilizza chiavi generate e memorizzate lato client. Adottando questa tecnologia è possibile crittografare i dati all’interno delle applicazioni client prima di archiviarli nell’Azure SQL database.

Così come per Azure Storage e per Azure SQL Database, anche per molti altri servizi Azure (Azure Cosmos DB, Azure Data Lake, etc.) l’encryption dei dati at rest avviene di default, ma per altri servizi può essere attivata opzionalmente.

Encryption in Transit in Azure

Anche la protezione dei dati in transito deve essere un elemento essenziale da tenere in considerazione nella propria strategia di protezione dei dati. In genere è consigliato proteggere lo spostamento e lo scambio dei dati utilizzando sempre i protocolli SSL / TLS. In determinate circostanze, potrebbe essere opportuno isolare l’intero canale di comunicazione tra l’ambiente on-premises e il cloud utilizzando una VPN. Microsoft utilizza il protocollo TLS (Transport Layer Security) per proteggere i dati quando viaggiano tra i servizi cloud e i clienti. Infatti, viene negoziata una connessione TLS tra i datacenter Microsoft e i sistemi client che si connettono ai servizi di Azure. Il protocollo TLS garantisce autenticazione avanzata, privacy dei messaggi e integrità (consente il rilevamento di manomissioni, intercettazione e falsificazione dei messaggi).

Conclusioni

Il tema della protezione tramite encryption dei dati archiviati in ambiente Azure è ritenuto di fondamentale importanza per coloro che decidono di affidarsi ai servizi nel cloud. Sapere che tutti i servizi Azure forniscono opzioni di crittografia at rest e che per i servizi di base la crittografia è abilitata di default, è sicuramente molto confortante. Alcuni servizi supportano anche il controllo delle chiavi di encryption da parte del cliente e la crittografia lato client per offrire un maggiore livello di controllo e flessibilità. Microsoft sta migliorando costantemente i propri servizi per garantire un maggiore controllo delle opzioni di crittografia at rest ed ha l’obiettivo di abilitare l’encryption at rest come impostazione predefinita per tutti i dati dei clienti.