GrapheneOS non intende indebolire il proprio sistema operativo, inserire procedure di recupero riservate alle autorità o collaborare alla ricostruzione dei dati cancellati da uno smartphone. La fondazione che sviluppa la piattaforma Android orientata a privacy e sicurezza ha preso una posizione molto netta dopo il procedimento avviato negli USA contro un utente accusato di aver eliminato il contenuto del telefono durante un controllo aeroportuale: proteggere tecnicamente i dati non costituisce un’attività illegale e gli sviluppatori non hanno alcun obbligo di rendere meno efficaci le misure introdotte nel software, osservano i responsabili del progetto.
La vicenda ha attirato l’attenzione soprattutto per il duress PIN, codice speciale attivabile all’interno di GrapheneOS e capace di avviare la cancellazione del contenuto del dispositivo. Ridurre GrapheneOS a questa singola funzione, però, offre una rappresentazione piuttosto distorta del progetto, che abbiamo presentato in passato in una guida dedicata.
Il lavoro svolto da GrapheneOS non riguarda soltanto la privacy nei rapporti con Google o con le app: interviene su allocazione della memoria, sandbox, compilazione del codice, cifratura, gestione della porta USB, dei profili e delle protezioni hardware. Insomma, il duress PIN è la parte più spettacolare; non è quella tecnicamente più importante.
Perché GrapheneOS rifiuta backdoor e chiavi universali
La posizione della fondazione parte da un principio semplice: sviluppare, installare e usare un sistema operativo che ostacola l’accesso non autorizzato non prova alcuna intenzione illecita. Lo stesso vale per la cifratura, per Signal, per una VPN o per un gestore di password: sono strumenti impiegati ogni giorno da aziende, giornalisti, amministratori di sistema, ricercatori, professionisti e normali utenti.
Una chiave crittografica non può distinguere un investigatore autorizzato da un ladro, un aggressore, un servizio di intelligence straniero o un operatore che abusa delle proprie credenziali. Se esistesse un percorso alternativo capace di aggirare la cifratura, quel percorso diventerebbe un obiettivo per chiunque voglia entrare nel dispositivo.
Da qui deriva il rifiuto di introdurre una backdoor o una chiave universale: GrapheneOS afferma di non possedere strumenti privilegiati per recuperare i dati cancellati e di non poter aiutare le autorità statunitensi a ricostruirli. Non è soltanto una scelta politica: l’assenza di un accesso amministrativo centrale fa parte del modello di sicurezza.
Una funzione di recupero riservata alla fondazione richiederebbe infatti la conservazione di segreti, certificati o meccanismi capaci di eludere le normali regole di autenticazione.
Basterebbe compromettere l’infrastruttura del progetto, ottenere quelle chiavi con un ordine coercitivo o sottrarle a un dipendente per trasformare l’intera architettura in un rischio per gli utenti.
Il duress PIN è una funzione minore, sostiene il progetto
La presa di posizione di GrapheneOS contiene un passaggio che merita attenzione: il duress PIN è definito come una “funzione minore” inserita in un insieme molto più ampio di protezioni. Non serve, quindi, per garantire la sicurezza ordinaria dei dati e non rappresenta il fondamento tecnico della piattaforma.
Una volta riconosciuto, il dureness PIN elimina i dati e le eSIM senza offrire una procedura di annullamento. Proprio la natura definitiva dell’operazione spinge gli sviluppatori a invitare gli utenti a valutare con attenzione le conseguenze fisiche e legali. Una funzione progettata per proteggere una persona durante una rapina o un’estorsione può produrre effetti molto diversi se attivata mentre un’autorità sta tentando di preservare il contenuto del dispositivo.
GrapheneOS non sostiene che il wipe del dispositivo sia appropriato in ogni situazione. Afferma, invece, che la disponibilità tecnica della funzione è assolutamente lecita e che il sistema operativo non può e non deve esprimere un giudizio su chi sta tentando di usarla. Il software riceve una credenziale e applica una regola; non conosce l’identità di chi tiene in mano il telefono né può verificare la legittimità di un ordine.

La vera difesa inizia prima della cancellazione
Android impiega una cifratura legata al filesystem, con chiavi diverse per profili, file e metadati. Sul sistema operativo, ogni profilo utente possiede chiavi generate casualmente; la credenziale di blocco contribuisce alla derivazione dei segreti necessari per renderle disponibili.
GrapheneOS usa AES-256-XTS per i dati dei file e AES-256-CTS per i nomi: per ogni file, directory e collegamento simbolico deriva una chiave specifica tramite HKDF-SHA512. I metadati del filesystem ricevono un ulteriore livello di cifratura, mentre le chiavi principali restano protette da valori generati con un CSPRNG, un generatore crittograficamente sicuro di numeri casuali.
Sui Google Pixel supportati entra in gioco anche il componente Titan M: il sistema usa la funzione Weaver per legare la derivazione delle chiavi alla credenziale e applicare ritardi hardware ai tentativi falliti. Dopo alcuni errori, l’attesa cresce rapidamente: un minuto al quinto tentativo, cinque minuti al sesto, quindici al settimo, quattro ore al decimo. Arrivati a venti tentativi, il sistema non ne consente altri.
Un attaccante non può semplicemente copiare la memoria e provare milioni di PIN al secondo su un server: una parte essenziale del processo resta vincolata al secure element presente nello smartphone (quindi al chip Titan), che limita i tentativi e protegge i segreti da aggiornamenti firmware non autorizzati.
Auto Reboot riporta il telefono nello stato più protetto
Tra le difese citate dal progetto spicca Auto Reboot, introdotta da GrapheneOS nel giugno 2021.
Se il dispositivo resta bloccato senza uno sblocco riuscito per il periodo stabilito, il sistema si riavvia e torna nello stato Before First Unlock, abbreviato in BFU. Prima del primo sblocco dopo l’avvio, molte chiavi relative ai dati dell’utente non sono ancora disponibili nella memoria del sistema. L’estrazione risulta quindi più difficile rispetto allo stato After First Unlock, AFU, nel quale il proprietario ha già inserito almeno una volta la propria credenziale.
La distinzione è importante perché molti strumenti cercano di far leva sulla configurazione che vede un telefono già avviato e precedentemente sbloccato. Il riavvio forzato riduce qualunque esposizione e costringe l’attaccante a confrontarsi nuovamente con la credenziale principale e con i limiti imposti dal secure element.
Il timer di Auto Reboot può essere configurato tra 10 minuti e 72 ore; il valore predefinito, inizialmente fissato a 72 ore, è poi sceso a 18 ore.
Apple e Google hanno successivamente introdotto meccanismi analoghi rispettivamente in iOS 18.1 e Android 16. GrapheneOS sottolinea però di aver adottato questa impostazione anni prima e di averla integrata con un azzeramento più aggressivo della memoria durante lo spegnimento e l’avvio.
La memoria è trattata come una possibile fonte di informazioni
Cifrare l’archiviazione non basta se password, token, frammenti di messaggi o chiavi restano in RAM più a lungo del necessario. GrapheneOS interviene quindi anche sull’allocazione dinamica tramite hardened_malloc, un componente sviluppato dal progetto per rendere più difficile lo sfruttamento delle vulnerabilità di corruzione dello heap.
Quando un’area di memoria viene liberata, l’allocatore la azzera. Prima di riutilizzarla controlla inoltre che sia rimasta a zero, così da rilevare eventuali scritture eseguite dopo il rilascio. Quarantene deterministiche e casuali ritardano il riuso delle allocazioni; metadati separati, regioni di controllo e basi casuali riducono le possibilità di trasformare un errore di memoria in un exploit affidabile.
Sui processori ARMv9 compatibili, GrapheneOS sfrutta anche Memory Tagging Extension o MTE. Il meccanismo associa etichette alla memoria e ai puntatori, consentendo di individuare accessi a blocchi già liberati o sconfinamenti tra allocazioni. Non elimina tutti i bug, però che rende numerose vulnerabilità meno prevedibili e spesso le trasforma in arresti rilevabili invece che in strumenti controllabili da un eventuale attaccante.
La protezione si estende al kernel, con randomizzazione più ampia dello spazio degli indirizzi e altre funzioni “sotto il cofano” che incidono molto di più sulla resistenza quotidiana a spyware e strumenti di sblocco rispetto a un duress PIN, decisamente più “spettacolare”.
GrapheneOS blocca gli attacchi attraverso la porta USB-C
Il possesso fisico del dispositivo apre un altro fronte: vi è la possibilità di collegare, via USB-C, hardware specializzato progettato per comunicare con il telefono. GrapheneOS affronta il tema attraverso una serie di controlli sia software che hardware.
L’impostazione predefinita è “Solo ricarica quando bloccato“: appena lo schermo si disattiva, il sistema impedisce nuove connessioni USB; quando terminano quelle già attive, disabilita il traffico dati. L’utente può scegliere anche modalità più restrittive: porta completamente disattivata, sola ricarica permanente oppure sola ricarica durante il blocco con eccezioni prima del primo sblocco.
La fondazione insiste sul livello hardware perché una semplice restrizione applicata dall’interfaccia Android potrebbe non bastare contro un exploit capace di compromettere un componente dotato di privilegi elevati. Agendo anche sul controller USB si riduce la superficie esposta quando il telefono si trova nelle mani di terzi.
Profili separati e Spazio privato limitano i danni
Android assegna chiavi di cifratura diverse ai profili secondari e allo Spazio privato. GrapheneOS sfrutta questa separazione in modo più incisivo, permettendo di terminare una sessione e riportare il relativo profilo allo stato di riposo senza riavviare l’intero telefono.
Quando l’utente chiude una sessione secondaria, il sistema elimina dalla memoria le chiavi necessarie ad aprirne i dati. Il profilo proprietario non può leggere automaticamente i contenuti degli altri profili e ciascuno conserva una propria chiave casuale, diversa anche se si dovesse scegliere la stessa passphrase.
Per chi gestisce informazioni particolarmente rilevanti, la separazione dei profili può addirittura risultare più utile del wiping. Un profilo dedicato al lavoro, alle comunicazioni riservate o a un viaggio può rimanere chiuso mentre il resto del telefono continua a funzionare.
Un sistema sicuro non può promettere accessi selettivi
Chiedere a uno sviluppatore di conservare un metodo di accesso per le sole autorità significa chiedergli di progettare deliberatamente un punto debole. Non esiste un attributo crittografico capace di garantire che una backdoor, perché di fatto di questo si sta parlando, resti nelle mani dei soggetti autorizzati.
Il caso statunitense ha reso famoso un comando distruttivo come il duress PIN, ma la replica della fondazione porta la discussione altrove. GrapheneOS vuole evitare che la sicurezza avanzata sia dipinta come una caratteristica sospetta e che la semplice resistenza agli strumenti forensi diventi un indizio contro gli utenti.
GrapheneOS ritiene inoltre che il codice sorgente e la sua pubblicazione godano negli USA di importanti tutele costituzionali. La fondazione sostiene che una norma volta a rendere illegali il progetto o le sue funzioni di sicurezza, incontrerebbe seri ostacoli: è una posizione assertiva, non una sentenza; segnala comunque che gli sviluppatori non considerano negoziabile l’integrità tecnica della piattaforma.