Enclavi di sicurezza, TEE e altre creature
Un ambiente di esecuzione attendibile, o TEE, è un'area sicura dell'hardware o del software di un computer che viene utilizzata per archiviare ed eseguire dati e codice sensibili, proteggendo le informazioni e il codice sensibili dall'accesso di parti non autorizzate o modificati in qualsiasi modo.
Un'enclave di sicurezza è un concetto simile, ma si riferisce specificamente a una tecnologia di isolamento basata su hardware, come Intel SGX o AMD SEV, che fornisce un modo per eseguire le applicazioni in un ambiente protetto, separato dal resto del sistema. Ciò consente all'applicazione di archiviare ed elaborare in modo sicuro i dati senza timore di interferenze da parte di altri processi o del sistema operativo stesso.
Una delle principali differenze tra un TEE e un'enclave di sicurezza è il modo in cui vengono implementati. Un TEE può essere implementato utilizzando approcci basati su hardware o software, come virtualizzazione o container, mentre un'enclave di sicurezza è specificamente una tecnologia basata su hardware.
Negli approcci basati su software, la sezione protetta viene creata utilizzando meccanismi software che isolano l'applicazione dal resto del sistema, fornendo un livello di protezione simile.
Un'altra differenza è che un TEE può fornire una gamma più ampia di funzionalità di sicurezza oltre al semplice isolamento, come la crittografia e l'autenticazione. Un'enclave di sicurezza, d'altra parte, si concentra principalmente sulla fornitura di isolamento per le applicazioni.
Intel SGX e AMD SEV
Intel SGX, o Software Guard Extensions, è una tecnologia sviluppata da Intel che consente alle applicazioni di funzionare in un'area di memoria sicura e isolata chiamata enclave. Ciò consente all'applicazione di proteggere i dati sensibili e il codice dall'accesso di altri processi o del sistema operativo stesso.
SGX funziona creando un'area di memoria sicura, chiamata enclave, in cui un'applicazione può essere eseguita. Questa enclave è protetta da una serie di chiavi crittografiche univoche per l'applicazione e il sistema su cui è in esecuzione. Quando un'applicazione viene eseguita, viene sigillata all'interno dell'enclave, dove può essere eseguita in modo sicuro senza timore di interferenze da parte di altri processi o del sistema operativo.
SGX è considerata una tecnologia altamente sicura, in quanto utilizza crittografia avanzata e isolamento basato su hardware per proteggere l'enclave da minacce esterne. Tuttavia, come qualsiasi tecnologia di sicurezza, non è completamente invulnerabile e ci sono state alcune critiche alla sua sicurezza.
Un potenziale svantaggio di SGX è che è disponibile solo sui processori Intel, il che significa che non è un'opzione per gli utenti di altre architetture di processori, come AMD. Tuttavia, AMD ha anche introdotto una propria soluzione: Secure Encrypted Virtualization (SEV). SEV è una tecnologia simile, che fornisce anche isolamento basato su hardware per le applicazioni.
Una delle principali differenze tra le due tecnologie è il modo in cui forniscono isolamento per le applicazioni. SGX utilizza un approccio basato sull'hardware, in cui l'enclave è protetta da chiavi crittografiche univoche per l'applicazione e il sistema su cui è in esecuzione. SEV, d'altra parte, utilizza un approccio basato su software, in cui la macchina virtuale è isolata utilizzando la crittografia.
Nel complesso, sia SGX che SEV forniscono funzionalità simili e possono essere utilizzati per isolare in modo sicuro le applicazioni. Tuttavia, i dettagli specifici della loro implementazione e l'hardware su cui sono disponibili possono variare.
Sicurezza
Le enclavi sono ambienti estremamente sicuri per lavorare con i dati. Il controllo degli accessi è imposto all'interno di queste parti di memoria attendibili e nemmeno l'accesso fisico è sufficiente per entrare in possesso dei dati protetti.
Ciò che rende sicure le enclavi è la crittografia hardware automatica. Ad esempio, la tecnologia SGX utilizza la CPU per crittografare le informazioni e memorizzare la chiave al suo interno. Pertanto, una parte esterna non può acquisire la chiave e compromettere i dati.
Ciò significa che nemmeno il fornitore di servizi cloud può accedere. Inoltre, una volta che l'applicazione esce o ordina la distruzione di un'enclave, tutte le informazioni vengono perse con essa.
Attestato a distanza
Inoltre, i TEE includono una funzionalità chiamata attestazione remota, che consente a una parte remota di verificare l'integrità e la sicurezza di un'enclave. L'attestazione remota funziona consentendo alla parte remota di inviare una richiesta all'enclave, chiedendole di fornire una prova della propria identità e integrità. L'enclave risponde quindi fornendo una firma crittografica basata sull'identità univoca dell'enclave e su una serie di misurazioni del codice e dei dati dell'enclave.
La parte remota può quindi verificare la firma utilizzando una chiave pubblica fornita dall'enclave. Se la firma è valida, indica che l'enclave è autentica e non è stata manomessa, consentendo alla parte remota di fidarsi dell'enclave e dei suoi dati.
I vantaggi dell'attestazione remota includono la capacità di verificare l'autenticità e l'integrità di un'enclave, oltre a fornire un modo per la parte remota di fidarsi dell'enclave e dei suoi dati. Ciò può aiutare a migliorare la sicurezza dei sistemi basati su TEE, in particolare nei casi in cui la parte remota deve fidarsi dell'enclave ma non ha il controllo diretto su di essa.
Una potenziale limitazione dell'attestazione remota è che si basa sulla sicurezza dell'enclave stessa. Se l'enclave è stata compromessa in qualche modo, ad esempio da una vulnerabilità hardware o software, potrebbe non essere in grado di fornire una firma valida e la parte remota potrebbe non essere in grado di fidarsi dell'enclave.
Crittografia della memoria
Una delle caratteristiche dei processori basati su TEE è la crittografia della memoria, che consente al processore di crittografare la memoria di un server per proteggerlo da accessi non autorizzati. La crittografia della memoria funziona utilizzando un motore di crittografia basato su hardware per crittografare i dati nella memoria di un server. Questo motore di crittografia è integrato nel processore stesso e utilizza una serie di chiavi crittografiche univoche per il processore per crittografare e decrittografare i dati in memoria.
Quando i dati vengono scritti in memoria, vengono crittografati automaticamente dal motore di crittografia. Quando i dati vengono successivamente letti dalla memoria, vengono automaticamente decrittografati dal motore, consentendone l'accesso da parte del processore nella sua forma originale.
L'uso della crittografia della memoria nei processori offre una serie di vantaggi, tra cui una maggiore sicurezza e una migliore protezione contro gli attacchi basati sulla memoria.
Crittografando i dati in memoria, diventa molto più difficile per gli aggressori accedere o manomettere i dati, anche se sono in grado di ottenere l'accesso fisico ai moduli di memoria del server.
Come funziona
Durante lo sviluppo di un'applicazione supportata da TEE, il programmatore può scegliere cosa enclave. Ogni applicazione TEE è composta da due parti: una parte non attendibile e una parte attendibile.
La parte non attendibile è responsabile della creazione dell'enclave e della comunicazione a livello di sistema. Da qui, un'applicazione richiama solo le specifiche funzioni attendibili per accedere ai dati.
La parte attendibile memorizza l'enclave creata per l'elaborazione dei dati sensibili. Il codice ei dati sono riportati in chiaro esclusivamente all'interno dell'enclave. I dati restituiti da una funzione attendibile rimangono in questa area di memoria protetta. La CPU rifiuta tutte le richieste esterne e l'enclave rimane protetta. L'applicazione riprende quindi a funzionare nella parte non attendibile in cui non ha più informazioni dettagliate sui dati sensibili.
La parte dell'applicazione che riceve i dati protetti si trova nella sezione non attendibile. Un'applicazione può archiviare i dati all'esterno dell'enclave una volta che la CPU li crittografa. La chiave di crittografia rimane nell'enclave che contiene il codice di decrittografia e l'algoritmo necessario. Pertanto, la decrittazione è possibile solo sullo stesso sistema in cui i dati sono stati sigillati.
La comunicazione tra le parti attendibili e non attendibili di un ambiente di esecuzione attendibile, o TEE, viene in genere gestita utilizzando un canale di comunicazione sicuro. Questo canale viene utilizzato per trasferire dati e messaggi tra le parti attendibili e non attendibili del TEE, consentendo loro di interagire tra loro pur mantenendo la sicurezza del TEE. I dettagli specifici del canale di comunicazione dipenderanno dall'implementazione del TEE.
In alcuni casi, il canale di comunicazione può essere implementato utilizzando un componente hardware dedicato, come un modulo di comunicazione sicuro o un TPM (Trusted Platform Module).
In altri casi, il canale di comunicazione può essere implementato utilizzando software, come un protocollo di comunicazione sicuro. Ciò può fornire un modo flessibile e scalabile per trasferire i dati tra le parti attendibili e non attendibili del TEE.
Casi d'uso
Poiché i dati sono protetti durante l'uso, TEE è adatto per la condivisione di informazioni tra più organizzazioni. Questo modello migliora il controllo su quali dati condividere, chi può vederli, per quanto tempo e per quale scopo.
I TEE sono comunemente usati in una varietà di domini, che richiedono un alto livello di sicurezza e privacy, inclusi quelli militari e sanitari. Ad esempio, l'Università della California-San Francisco ha utilizzato un servizio basato su Intel SGX per convalidare algoritmi di dispositivi medici potenziati dall'intelligenza artificiale con più set di dati di terze parti, preservando la privacy dei pazienti e proteggendo l'IP del modello di intelligenza artificiale.
Inoltre, i principali fornitori di cloud come Microsoft Azure, Alibaba Cloud, IBM Cloud, OVH e altri offrono ora servizi di calcolo confidenziale protetti con Intel SGX.
La tecnologia continuerà a essere supportata nelle future piattaforme Intel Xeon single e multi-socket, concentrandosi sui server. Per le piattaforme client, Intel ha spostato la nostra roadmap di sicurezza da Intel SGX per concentrarsi su tecnologie di sicurezza appositamente progettate in linea con i principali partner dell'ecosistema di PC e casi d'uso dei client.
Blockchain
I TEE sono anche comunemente usati nell'ecosistema blockchain per consentire calcoli off-chain sicuri. Ciò consente alle applicazioni basate su blockchain di eseguire calcoli sensibili, come quelli che coinvolgono chiavi private o dati sensibili, senza esporre i dati al resto della rete.
Un altro modo in cui i TEE vengono utilizzati nell'ecosistema blockchain per fornire un ulteriore livello di sicurezza e fornire un ambiente sicuro e isolato per l'esecuzione delle applicazioni, consentendo lo sviluppo di applicazioni che preservano la privacy. Buoni esempi sono Phala Network e Secret Network. In entrambi, il TEE viene utilizzato per abilitare una funzionalità denominata "contratti segreti" o "contratti intelligenti privati". Questi contratti sono contratti intelligenti in grado di archiviare ed elaborare in modo sicuro dati sensibili, come informazioni aziendali riservate o informazioni personali, senza rivelare i dati al resto della rete.Ciò consente alla rete di supportare un'ampia gamma di applicazioni di protezione della privacy, come valutazione del credito, gestione della catena di approvvigionamento e analisi di protezione della privacy.
Una delle principali differenze tra Phala Network e Secret Network è la tecnologia specifica che utilizzano per implementare i loro TEE. Phala Network utilizza una tecnologia chiamata WASM, o WebAssembly, per implementare il suo TEE, mentre Secret Network utilizza una tecnologia chiamata Enigma per implementare il suo TEE.
Un'altra differenza è il tipo specifico di calcoli che preservano la privacy supportati da ciascuna piattaforma. Phala Network si concentra sull'abilitazione di smart contract privati, che consentono alle applicazioni di archiviare ed elaborare in modo sicuro dati sensibili senza rivelarli al resto della rete. Secret Network, d'altra parte, si concentra sull'abilitazione di contratti segreti, che sono simili agli smart contract privati ma supportano anche calcoli off-chain sicuri.
Nel complesso, sebbene Phala Network e Secret Network siano simili in molti modi, presentano alcune differenze fondamentali nella loro tecnologia e focus. Entrambe le piattaforme forniscono strumenti preziosi per abilitare calcoli che preservano la privacy sulla blockchain, ma sono adattate a diversi casi d'uso e applicazioni specifici.
Complessivamente
Nel complesso, le enclavi di sicurezza sono uno strumento utile per proteggere i dati sensibili e consentire un'elaborazione sicura in una varietà di contesti. Forniscono un ulteriore livello di sicurezza che può aiutare a prevenire l'accesso non autorizzato e proteggere da minacce come malware e altri attacchi.
Fornendo un modo sicuro e affidabile per archiviare ed elaborare dati e codici sensibili, TEE può aiutare a prevenire l'accesso non autorizzato e la manomissione, che possono essere una delle principali preoccupazioni nelle reti decentralizzate.
Tuttavia, come qualsiasi tecnologia di sicurezza, le enclavi di sicurezza presentano alcuni rischi e limitazioni. Un potenziale rischio è che l'implementazione hardware o software dell'enclave possa contenere vulnerabilità che potrebbero essere sfruttate dagli aggressori. E mentre le enclavi di sicurezza forniscono un ulteriore livello di sicurezza, non sono completamente invulnerabili e dovrebbero essere utilizzate come parte di una strategia di sicurezza più ampia e possono essere limitate dalla sicurezza complessiva del sistema su cui sono in esecuzione.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































