Al giorno d’oggi, grandi quantità di dati personali girano sul web: si va dalle nostre preferenze in fatto di vestiario, che service provider come Amazon o Google usano per indirizzare le loro pubblicità, ai nostri dati biometrici, ovviamente estremamente più sensibili. In tal senso, il confidential computing ci offre tecniche e strumenti per memorizzare in modo sicuro i nostri dati e, in generale, quelli degli utenti di un nostro servizio. Vediamo insieme una panoramica su queste tecniche, approfondendo brevemente quali sono le soluzioni offerte in ambito cloud in ambiente Azure.
Introduzione
La trasformazione digitale, già vigorosa negli anni ‘10, ha visto un’improvvisa impennata con gli eventi pandemici del 2020, in concomitanza della diffusione dello smart working e della necessità di ammodernamento in tutti gli ambiti della nostra vita, dal pubblico al privato. Questo fenomeno ha, tuttavia, messo ancora più in luce le necessità in termini di privacy e di sicurezza, che non possono in alcun modo essere sacrificate e devono essere centrali nel processo di transizione. I classici algoritmi di cifratura, infatti, funzionano soltanto in parte: possono prevenire “occhi non autorizzati” dall’accesso ed uso dei dati sensibili soltanto quando questi ultimi sono in memoria, oppure quando vengono trasmessi. Tuttavia, quando i dati sono in uso, non vengono cifrati dalle tecniche classiche: un attaccante, quindi, potrebbe corrompere i dati proprio in queste situazioni, esponendo gli utenti a violazioni potenzialmente devastanti. Esistono quindi diverse tecnologie che stanno venendo sviluppate per rispondere a questa esigenza. Ad esempio, esistono già oggi delle apposite tecnologie per la sicurezza IoT hardware-based, e ci sono diversi trend in via di sviluppo soprattutto in ambito Industry 4.0. Tuttavia, quando si parla di sistemi cloud-based e data intensive, è il confidential computing la tecnica su cui i grossi players stanno puntando: scopriamola insieme nel resto di questo articolo.
Dalla cifratura al confidential computing
Per migliaia di anni, testi cifrati ed inchiostri invisibili sono riusciti nell’impresa di rendere “privati” i messaggi sensibili scambiati tra agenti e politici. La crittografia, quindi, si è rivelata nel tempo una tecnica imprescindibile in ogni situazione che preveda una certa segretezza. Le moderne tecniche di cifratura si comportano in modo simile a quelle antiche: i nostri dati sono indecifrabili fino a che sono all’interno di un data center sicuro, oppure ancora quando sono trasferiti in rete. Tuttavia, nel momento stesso in cui un messaggio o un dato viene decifrato per essere utilizzato, questo diventa attaccabile, sia da utenti malevoli, sia da applicazioni compromesse presenti nel nostro sistema. Ed il costo di questi attacchi è sempre più elevato: dal 2020 al 2021, infatti, il costo medio sostenuto per ogni perdita di dati è aumentato da 3.86 a 4.24 milioni di dollari. Questo problema diventa ancora più pressante con la migrazione attualmente in corso nella maggior parte delle aziende che, da un modello “off-premise”, nel quale i dati ed il codice che permette di elaborarli risiede su server isolati e proprietari, stanno passando ad un modello principalmente basato sul cloud. Secondo una ricerca del centro Gartner, infatti, l’85% delle organizzazioni mondiali sarà “cloud-first” entro il 2025. Migrare verso il cloud comporta numerosi vantaggi, ma significa anche che le compagnie non avranno più il diretto controllo sull’infrastruttura hardware e software, aumentando di conseguenza il rischio di esposizione ad attacchi. Ed è in questo contesto che il confidential computing diventa critico: questo paradigma pone l’enfasi su confidential, facendo sì che i dati siano veramente, e solamente, nostri, sia quando sono “fermi”, sia quando sono in movimento ed uso. Il confidential computing sta quindi avendo notevole sviluppo in una crescente comunità di utenti e compagnie tecnologiche, grazie anche al Confidential Computing Consortium, di cui è disponibile anche una repository GitHub, ed il cui logo è mostrato in Figura 1. Il consorzio, fondato dalla Linux Foundation, lavora dal 2019 per sviluppare tecnologie e standard da adottare in ambito confidential computing, e conta al suo interno membri come Google e Microsoft.
Mantenere i dati sicuri: il Trusted Execution Environment
Abbiamo già detto che il confidential computing usa una procedura di cifratura per proteggere i dati anche quando sono in uso. Tuttavia, piuttosto che cifrare “effettivamente” i dati, il confidential computing prevede che questi siano confinati all’interno di un particolare ambiente chiamato Trusted Execution Environment (TEE) per accedere al quale è richiesta una chiave di cifratura. Inoltre, come ulteriore misura di sicurezza, il confidential computing prevede l’uso di criteri di tipo zero-trust per autenticare l’utente, facendo in modo che gli utenti che non li rispettano non possano accedere ai dati. Il TEE funziona quindi come una sorta di “mantello dell’invisibilità”, garantendo che soltanto gli utenti e le applicazioni effettivamente abilitati, ovvero in possesso degli adeguati codici di autenticazione, possano accedere ai dati contenuti al suo interno. Ovviamente, anche dopo che un utente o un’applicazione hanno avuto accesso al TEE, i dati e/o il codice caricato al suo interno rimangono invisibili a chiunque al di fuori dell’ambiente protetto: ciò significa che, nel caso il TEE sia in un ambiente cloud, il cloud provider stesso non potrà in alcun modo accedere ai dati. In tal senso, il TEE ci permette di raggiungere tutti gli obiettivi essenziali posti dalla data security. Infatti, garantisce la confidenzialità dei dati, in quanto ovviamente entità non autorizzate non possono accedere ai dati in uso nel TEE, l’integrità dei dati, in quanto non è possibile aggiungere, rimuovere o alterare alcun dato se non dotati di apposita autorizzazione, ed integrità del codice, anch’esso non modificabile da entità non autorizzate.
Scenari applicativi per il confidential computing
I campi di applicazione possibili per il confidential computing sono vari ed eterogenei. In generale, infatti, ogni industria che elabora informazioni sensibili, come dati riguardanti impiegati o clienti, design di prodotti industriali, storico clinico di un paziente, elenchi di pagamento o altri dati ad accesso limitato, è una possibile candidata ad usufruire dei benefici offerti dal confidential computing. Vediamo quindi alcuni possibili casi d’uso. Partiamo in primis dalle applicazioni basate su blockchain. In tal senso, queste potrebbero voler fare in modo che i nodi della rete possano verificare delle transazioni, al contempo non permettendo agli stessi di accedere al contenuto delle stesse. Ovviamente, il confidential computing rappresenta una soluzione ottimale ad una problematica di questo tipo. Un altro ambito applicativo del confidential computing è nello scambio di dati tra organizzazioni differenti. Ad esempio, le aziende che operano in ambito sanitario o farmaceutico potranno dover condividere dati provenienti da diversi trial clinici, mentre organizzazioni finanziarie potrebbero dover confrontare le loro banche dati per valutare la posizione di un cliente. Ovviamente, in queste situazioni è necessario tenere i dati confidenziali al sicuro, soprattutto quando questi vengono utilizzati a scopo di analisi, ed il confidential computing ci viene sicuramente in aiuto. Questo caso d’uso è strettamente correlato anche a tematiche quali la data fusion e l’analisi di dati provenienti da sorgenti eterogenee, utili a migliorare i risultati algoritmici in termini di classificazione dei dati. Ancora, può essere estremamente interessante applicare il confidential computing in ambito IoT, dove i dati devono essere trasferiti ed elaborati in diversi nodi.
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2243 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.