Trusty è un sistema operativo (OS) sicuro che fornisce un Trusted Execution Environment (TEE) per Android. Il sistema operativo Trusty funziona con lo stesso processore del sistema operativo Android, ma Trusty è isolato dal resto del sistema sia dall'hardware che dal software. Trusty e Android funzionano in parallelo tra loro. Trusty ha accesso a tutta la potenza del processore principale e della memoria del dispositivo, ma è completamente isolato. L'isolamento di Trusty lo protegge da app dannose installate dall'utente e potenziali vulnerabilità che potrebbero essere scoperte in Android.
Trusty è compatibile con i processori ARM e Intel. Sui sistemi ARM, Trusty utilizza Trustzone™ di ARM per virtualizzare il processore principale e creare un ambiente di esecuzione sicuro e affidabile. Un supporto simile è disponibile anche su piattaforme Intel x86 che utilizzano la tecnologia di virtualizzazione di Intel.

Figura 1 . Diagramma di panoramica affidabile.
Trusty è composto da:
- Un piccolo kernel del sistema operativo derivato da Little Kernel
- Un driver del kernel Linux per trasferire i dati tra l'ambiente sicuro e Android
- Una libreria dello spazio utente Android per comunicare con applicazioni affidabili (ovvero attività/servizi sicuri) tramite il driver del kernel
Nota: Trusty e l'API Trusty sono soggette a modifiche. Per informazioni sull'API Trusty, vedere Riferimento API .
Perché fidato?
Altri sistemi operativi TEE sono tradizionalmente forniti come BLOB binari da fornitori di terze parti o sviluppati internamente. Lo sviluppo di sistemi TEE interni o la licenza di un TEE da terzi può essere costoso per i fornitori di System-on-Chip (SoC) e gli OEM. Il costo monetario combinato con sistemi di terze parti inaffidabili crea un ecosistema instabile per Android. Trusty viene fornito ai suoi partner come alternativa open source affidabile e gratuita per il loro ambiente di esecuzione affidabile. Trusty offre un livello di trasparenza che semplicemente non è possibile con i sistemi closed source.
Android supporta varie implementazioni TEE, quindi non sei limitato all'utilizzo di Trusty. Ogni sistema operativo TEE ha il proprio modo unico di distribuire applicazioni affidabili. Questa frammentazione può essere un problema per gli sviluppatori di applicazioni affidabili che cercano di garantire che le loro app funzionino su ogni dispositivo Android. L'utilizzo di Trusty come standard aiuta gli sviluppatori di applicazioni a creare e distribuire facilmente le applicazioni senza tenere conto della frammentazione di più sistemi TEE. Trusty TEE offre a sviluppatori e partner trasparenza, collaborazione, ispezionabilità del codice e facilità di debug. Gli sviluppatori di applicazioni affidabili possono convergere attorno a strumenti e API comuni per ridurre il rischio di introdurre vulnerabilità di sicurezza. Questi sviluppatori avranno la certezza di poter sviluppare un'applicazione e riutilizzarla su più dispositivi senza ulteriore sviluppo.
Applicazioni e servizi
Un'applicazione Trusty è definita come una raccolta di file binari (eseguibili e file di risorse), un manifesto binario e una firma crittografica. In fase di esecuzione, le applicazioni Trusty vengono eseguite come processi isolati in modalità senza privilegi nel kernel Trusty. Ciascun processo viene eseguito nella propria sandbox di memoria virtuale utilizzando le capacità dell'unità di gestione della memoria del processore TEE. La build dell'hardware cambia l'esatto processo seguito da Trusty, ma ad esempio, il kernel pianifica questi processi utilizzando uno scheduler round-robin basato su priorità guidato da un tick di timer sicuro. Tutte le applicazioni Trusty condividono la stessa priorità.

Figura 2 . Panoramica dell'applicazione affidabile.
Applicazioni affidabili di terze parti
Attualmente tutte le applicazioni Trusty sono sviluppate da una singola parte e impacchettate con l'immagine del kernel Trusty. L'intera immagine viene firmata e verificata dal bootloader durante l'avvio. Lo sviluppo di applicazioni di terze parti non è attualmente supportato in Trusty. Sebbene Trusty consenta lo sviluppo di nuove applicazioni, è necessario farlo con estrema cura; ogni nuova applicazione aumenta l'area della base di calcolo attendibile (TCB) del sistema. Le applicazioni affidabili possono accedere ai segreti del dispositivo e possono eseguire calcoli o trasformazioni di dati utilizzandoli. La capacità di sviluppare nuove applicazioni che girano nel TEE apre molte possibilità di innovazione. Tuttavia, a causa della definizione stessa di TEE, queste applicazioni non possono essere distribuite senza una qualche forma di fiducia allegata. In genere si presenta sotto forma di firma digitale da parte di un'entità considerata attendibile dall'utente del prodotto su cui viene eseguita l'applicazione.
Usi ed esempi
Gli ambienti di esecuzione affidabili stanno rapidamente diventando uno standard nei dispositivi mobili. Gli utenti si affidano sempre di più ai loro dispositivi mobili per la loro vita quotidiana e il bisogno di sicurezza è in continua crescita. I dispositivi mobili con un TEE sono più sicuri dei dispositivi senza un TEE.
Sui dispositivi con un'implementazione TEE, il processore principale viene spesso definito "non attendibile", il che significa che non può accedere a determinate aree della RAM, registri hardware e fusibili write-once in cui i dati segreti (come le chiavi crittografiche specifiche del dispositivo) sono conservato dal produttore. Il software in esecuzione sul processore principale delega tutte le operazioni che richiedono l'uso di dati segreti al processore TEE.
L'esempio più noto di ciò nell'ecosistema Android è il framework DRM per i contenuti protetti. Il software in esecuzione sul processore TEE può accedere alle chiavi specifiche del dispositivo necessarie per decrittografare il contenuto protetto. Il processore principale vede solo il contenuto crittografato, fornendo un elevato livello di sicurezza e protezione contro gli attacchi software.
Esistono molti altri usi per un TEE come pagamenti mobili, servizi bancari sicuri, autenticazione a più fattori, protezione del ripristino del dispositivo, archiviazione persistente protetta dalla riproduzione, elaborazione sicura di PIN e impronte digitali e persino rilevamento di malware.