polito.it
Politecnico di Torino (logo)

Protezione e attestazione remota del software con Intel SGX

Gabriele Sergio

Protezione e attestazione remota del software con Intel SGX.

Rel. Antonio Lioy, Daniele Canavese, Leonardo Regano. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2023

[img]
Preview
PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (3MB) | Preview
[img] Archive (ZIP) (Documenti_allegati) - Other
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (936kB)
Abstract:

La sicurezza delle applicazioni è offerta con soluzioni di tipo software e di tipo hardware. Intel offre come soluzione hardware Secure Guard eXtensions (o SGX), un set di istruzioni capace di creare spazi virtuali di esecuzione del software, protetti dal controller della memoria che cifra i dati salvati all’interno, isolandoli dal resto del sistema. Si crea un Trusted Execution Environment(TEE), in cui la zona di memoria protetta, chiamata enclave, garantisce all’applicazione che non possano essere fatte modifiche e accessi di ogni tipo dall’esterno, ritenuto non autorizzato. Come punto di partenza della Tesi, è stato ripreso un framework sviluppato al Politecnico di Torino, capace di modificare automaticamente il sorgente di una applicazione scritta in C inserendo le proprietà di sicurezza di SGX, analizzando il codice con strumenti di analisi esterni per trovare la richiesta di inserimento di funzionalità sotto forma di notazioni inserite dallo sviluppatore. Con le modifiche svolte, ora è possibile implementare nel codice l’attestazione remota: questo processo serve per inviare ad Intel una struttura dati come identità crittografica del sistema, contenente le informazioni custodite nel processore e dell’enclave usata dall’applicazione, sotto forma di un unico digest hash firmato con la chiave privata fornita da Intel. In sinergia, è stata inserita la divisione del codice: indicando con nuove notazioni le funzioni desiderate, esse sono rimosse e inserite in un codice usato per generare una applicazione che sarà eseguita su un dispositivo remoto. Il server creato sarà contattato con la richiesta di eseguire una delle funzioni spostate. Al termine dell’esecuzione, il server invierà il risultato, serializzandolo e trasferendolo all’applicazione in attesa del risultato: è possibile inserire l’attestazione all’inizio della connessione con il server, per verificare l’integrità dell’applicazione e del dispositivo che la esegue. Le funzioni rimosse saranno sostituite da una funzione che sarà chiamata per ogni invocazione di una delle funzioni spostate. La nuova applicazione conterrà la logica per contattare il server remoto e avviare l’attestazione. Il framework permette di spostare funzioni con parametri di tipo elementare, e si occupa di generare automaticamente all’interno delle funzioni convertite la serializzazione dei dati delle funzioni da eseguire remotamente. Ciò è possibile definendo strutture dati rappresentanti un parametro generico e una funzione generica. Lo sviluppatore è inoltre aiutato dal framework, che genera i file necessari alla compilazione dell’eseguibile finale e lo script di compilazione: può essere lanciato per compilare tutte le librerie Intel di supporto alle enclavi, le librerie dell’applicazione convertita e le librerie aggiunte per l’attestazione remota in un unico eseguibile. Il framework ora permette di generare più di una enclave per applicazione, grazie all’inserimento nelle notazioni di un prefisso che associa i dati e le funzioni protette ad ogni enclave: in fase di generazione delle enclavi vengono raggruppate tutte le modifiche legate a quell’identificativo e si effettuano per ognuno dei gruppi richiesti le rispettive modifiche associate.

Relators: Antonio Lioy, Daniele Canavese, Leonardo Regano
Academic year: 2022/23
Publication type: Electronic
Number of Pages: 146
Subjects:
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: New organization > Master science > LM-32 - COMPUTER SYSTEMS ENGINEERING
Aziende collaboratrici: UNSPECIFIED
URI: http://webthesis.biblio.polito.it/id/eprint/26887
Modify record (reserved for operators) Modify record (reserved for operators)