Siamo ormai tutti al corrente che le nuove tecnologie quali il machine learning e l’intelligenza artificiale (ML/AI) riescono a estrarre informazioni interessanti da dati che possono essere poi utilizzare per, ad esempio, curare meglio le malattie o semplicemente adattare meglio le strategie aziendali. Il dato è quindi diventato il pilastro del modo di fare ricerca e anche impresa. Il punto è che un vero progresso in tal senso è possibile solamente se i dati su cui vengono fatti girare gli algoritmi di ML/AI sono tenuti al sicuro, ossia ne venga mantenuta la confidenzialità: per questo si parla sempre più spesso di confidential computing.
Pensiamo, ad esempio, a dati medici utilizzati per affinare diagnosi e medicinali. Questi sono spesso dati sensibili personali la cui confidenzialità deve essere garantita per proteggere la privacy del paziente. Lo stesso vale per le aziende, che utilizzano dati acquisiti dalle precedenti interazioni coi clienti e vendite per definire, ad esempio, un nuovo servizio o prodotto. In tal caso, la fuoriuscita di tali informazioni renderebbe pubblica alla concorrenza la loro strategia di business.
Se si parla di protezione dei dati e di confidenzialità, sappiamo che si parlerà inevitabilmente di cyber sicurezza e di crittografia ed è dunque utile approfondire quali sono gli standard industriali per la protezione dei dati sensibili quando ne si vuole estrarre delle informazioni attraverso algoritmi di ML/AI.
Indice degli argomenti
Confidential computing: gli stati computazionali del dato
Data in motion, data at rest e data in use sono come l’informatica (e il campo della cyber sicurezza) classifica i tre stati in cui un dato si può trovare.
Data in motion (dati in transito)
Con il termine “data in motion”, dati in movimento (detti anche dati in transito, o “data in transit” in inglese), ci si riferisce alle informazioni digitali mentre vengono trasportate tra diversi luoghi, siano essi all’interno di un sistema o tra sistemi diversi.
Il termine “data in motion” comprende, infatti, i seguenti casi di trasporto di informazioni digitali: dati che si muovono tra dispositivi collegati a Internet verso un servizio web insito in Cloud, dati che si muovono tra macchine virtuali tra diversi servizi Cloud o all’interno degli stessi, data che transitano in network privati sicuri e che transitano in network potenzialmente insicuri quali Internet.
La crittografia qui è protagonista quando si tratta di proteggere i dati in transito. Il protocollo SSL/TLS per la protezione dei network di computer, basato su algoritmi di cifratura e di firma digitale, viene applicato per comunicare in maniera sicura su Internet (con il protocollo HTTPS), con le mail e con le chat istantanee.
Data at rest (dati a riposo)
Una volta che il dato in transito arriva a destinazione, questo diventa, secondo la tassonomia di cui accennato sopra, un dato “at rest”, un dato a riposo. Il termine “data at rest” si riferisce ai dati non i uso, stoccati in una memoria fisica, sia essa un attraverso un servizio di storage nel Cloud (come S3 di AWS), in un database, in una memoria esterna o in un archivio.
Questi dati si proteggono molto facilmente con algoritmi di cifratura, in particolare cifratura a chiave privata (come AES) con lunghezza di chiavi diverse a seconda di quanto a lungo il dato deve rimanere protetto.
Nel momento in cui tali dati a riposo devono essere utilizzati, il proprietario (ovvero il data owner) riutilizza la chiave usata per la cifratura per decifrarli.
Data in use (dati in uso)
A questo punto, i dati che si prestano ad essere utilizzati (si pensi a un documento Word che deve essere aggiornato o a dati quantitativi che devono essere processati da algoritmi ML/AI) diventano data in use, dati in uso.
Risulta molto difficile proteggere i dati in uso. Infatti, le tecniche crittografiche utilizzate altrove come la cifratura rendono per natura il dato inutilizzabile e incomprensibile; sta proprio in questo la protezione apportata dalla crittografia.
Esistono primitive crittografiche avanzate (il multi-party computation e la cifratura omomorfa) che permettono di effettuare computazioni su dati cifrati e ottenere in output il risultato della computazione già cifrato.
Queste tecniche, dette privacy-preserving appunto, non sono di fatti utilizzabili su larga scala e per il tipo di operazioni che servono nella quotidianità. Rimangono dunque validi i suggerimenti che si fanno in questi casi, quando vogliamo lavorare su documenti sensibili: non farlo in luoghi pubblici, assicurarsi che nessuno passi da dietro mentre stiamo lavorando al computer, riporre quest’ultimo in un mobile chiuso a chiave se ci si assenta per qualche istante, stampare dati sensibili con precauzione, andarli a prendere subito alla stampante e non lasciarli in giro.
Proteggere i dati, oltre la crittografia: Intel SGX
La domanda è dunque se al di là della crittografia esistono soluzioni pratiche utilizzabili per proteggere i dati sensibili e i processi che li trattano.
La risposta è sì e la soluzione ce la offre Intel con la sua Software Guard Extensions, comunemente chiamata SGX. Intel SGX è stato, se vogliamo, l’apripista del così detto confidential computing, ovvero delle computazioni che avvengono mantenendo i dati che trattano confidenziali.
Intel SGX fa parte di tutta una classe di tecnologie dette Trusted Execution Environment (TEE), ambienti sicuri dove è possibile decifrare i dati crittati all’interno di tale ambiente senza che vi siano pericoli esterni che potrebbero comprometterne la confidenzialità.
Un TEE è un ambiente di esecuzione con un proprio hardware e delle componenti software completamente isolati dal resto del server. Il TEE comunica con il mondo esterno attraverso una API ad-hoc, propria dell’azienda che mette a disposizione il TEE stesso.
Intel SGX è, se vogliamo, l’esempio più famoso e più studiato di TEE. Al fine di proteggere l’esecuzione dei dati, SGX introduce il concetto di enclave, ovvero delle componenti software eseguite in maniera avulsa da tutto il rimanente software che gira sul sistema che lo ospita, includi il sistema operativo e l’hypervisor.
L’unica componente hardware che SGX prende in considerazione come fidata (trusted, in inglese) è la CPU. Infatti, è qui che i dati esistono in chiaro e che vengono cifrati una volta che escono dalla CPU per andare, ad esempio, nella DRAM.
Cosa succede quando si utilizza Intel SGX
A grandi linee quello che succede quando si vuole utilizzare Intel SGX beneficiare del confidential computing sono i seguenti passi.
Il sistema operativo carica l’enclave dalla sua memoria virtuale e ne gestisce la creazione. Questo significa che i dati e il software iniziali dell’enclave potrebbero di fatto subire manipolazioni.
Quindi, per assicurarsi che i dati sensibili non vengano inviati a terze parti o enclavi corrotte, l’autenticità e l’integrità dell’enclave stessa viene verificata attraverso l’attestazione remota (remote attestation, in inglese) attraverso delle funzioni di hash crittografiche, facendo entrare e ancora una volta la crittografia in campo, anche per la protezione dei dati in uso.
Più precisamente, si comparano l’hash della memoria iniziale dell’enclave che è firmata dalla chiave privata del sistema.
Solo a questo punto i dati possono essere trasmessi all’enclave e vivere all’interno di questo ambiente in chiaro.
Confidential computing nell’industria
La domanda a cui rimane da rispondere è dunque la seguente: se, ad esempio, un’azienda ha dei dati sensibili relativi al proprio business da processare, cosa deve fare di preciso per accedere a una tecnologia come Intel SGX.
Il punto è che molto spesso una normale PMI (ma anche grandi aziende in vari settori) non hanno le risorse necessarie per avere un uso diretto ed efficace con SGX.
In un mondo sempre più “as a Service” quello che ci si aspetta è che ci siano aziende specializzate nella creazione di API e di interfacce utente facili e immediate da usare e che si prendano a carico tutta la gestione di tecnologie più complicate, come SGX e come l’hosting dei processi computazionali su macchine virtuali in Cloud.
Ed è proprio questo, infatti, quello che sta succedendo nel panorama delle startup innovative nel mercato della cyber sicurezza, ognuna con una sua “ricetta” che le differenzia le uni dalle altre a seconda del tipo di bisogno che un utenze può avere nell’approcciarsi al confidential computing.
Ad esempio, Decentriq, startup svizzera con sede a Zurigo, si è specializzata nella costruzione di una piattaforma che poggia su SGX e che si focalizza nell’aiutare utenti che devono collaborare ognuno con dati sensibili a svariati tipi di computazioni (ad esempio statistiche su dati medici) ma che devono farlo nel rispetto della privaci di questi dati (ad esempio per non venire meno al rapporto di segretezza tra medico e paziente).
Come dice Lorenzo Stradi, ingegnere di Decentriq, “Le aziende che si rivolgono a noi non hanno il tempo di costruire un’infrastruttura apposta per il confidential computing per poter collaborare.
Devono poterne beneficiare subito e concentrare le loro forze invece sulla raccolta dei dati e sul capire che algoritmi utilizzare per estrarne informazioni utili al loro business”.
Conclusione
I Trusted Execution Environment come Intel SGX apportano una soluzione industriale per beneficiare del confidential computing, il quale permette di estratte informazioni dai dati sensibili attraverso ML/AI senza esporli a rischi.
In pratica, quello che succede è che anche di queste tecnologie se ne usufruisce “as a Service” con aziende intermediarie che rendono il confidential computing un’altra “commodity”.