Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Affidabile TEE

Trusty è un sistema operativo (OS) sicuro che fornisce un TEE (Trusted Execution Environment) per Android. Il sistema operativo Trusty funziona sullo 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 l'uno con l'altro. Trusty ha accesso alla piena potenza del processore e della memoria principali di un 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 affidabile e sicuro. Un supporto simile è disponibile anche sulle 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 protetto e Android
  • Una libreria dello spazio utente Android per comunicare con applicazioni affidabili (ovvero attività / servizi protetti) tramite il driver del kernel

Nota: Trusty e l'API Trusty sono soggette a modifiche. Per informazioni sull'API affidabile, vedere il riferimento API .

Perché fidato?

Altri sistemi operativi TEE vengono tradizionalmente forniti come BLOB binari da fornitori di terze parti o sviluppati internamente. Lo sviluppo di sistemi TEE interni o la concessione in licenza di un TEE da una terza parte può essere costoso per i fornitori e gli OEM di System-on-Chip (SoC). Il costo monetario combinato con sistemi di terze parti inaffidabili crea un ecosistema instabile per Android. Trusty viene fornito ai suoi partner come un'alternativa open source affidabile e gratuita per il loro ambiente di esecuzione affidabile. Trusty offre un livello di trasparenza che 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 tutti i dispositivi 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 fornisce agli sviluppatori e ai partner trasparenza, collaborazione, ispezionabilità del codice e facilità di debug. Gli sviluppatori di applicazioni affidabili possono convergere intorno 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 di riutilizzarla su più dispositivi senza ulteriore sviluppo.

Applicazioni e servizi

Un'applicazione affidabile è 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à non privilegiata nel kernel Trusty. Ogni 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 il processo esatto seguito da Trusty, ma ad esempio, il kernel pianifica questi processi utilizzando uno scheduler round-robin basato su priorità guidato da un timer sicuro. Tutte le applicazioni affidabili condividono la stessa priorità.

Figura 2 . Panoramica delle applicazioni affidabili.

Applicazioni affidabili di terze parti

Attualmente tutte le applicazioni Trusty sono sviluppate da una singola parte e pacchettizzate 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 è supportato in Trusty in questo momento. Sebbene Trusty consenta lo sviluppo di nuove applicazioni, farlo deve essere esercitato con estrema cura; ogni nuova applicazione aumenta l'area della base di calcolo affidabile (TCB) del sistema. Le applicazioni attendibili 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 un TEE, queste applicazioni non possono essere distribuite senza una qualche forma di fiducia allegata. In genere, si presenta sotto forma di una 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 fanno sempre più affidamento sui loro dispositivi mobili per la loro vita quotidiana e la necessità 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, dei registri hardware e dei fusibili write-once in cui sono presenti dati segreti (come chiavi crittografiche specifiche del dispositivo) immagazzinato 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 questo 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 basati su software.

Esistono molti altri usi per un TEE come pagamenti mobili, operazioni bancarie sicure, autenticazione a più fattori, protezione dal ripristino del dispositivo, archiviazione persistente protetta da replay, elaborazione sicura di PIN e impronte digitali e persino rilevamento di malware.