Se avete frequentato i forum modding Android negli ultimi anni, probabilmente avete assistito a una scena diventata quasi rituale.

Un nuovo metodo per aggirare Play Integrity viene pubblicato. Una Keybox “pulita” compare su Telegram o nei circuiti underground. Migliaia di utenti root installano il file. Google Wallet torna magicamente a funzionare. Le applicazioni bancarie smettono di lamentarsi. Il sistema sembra invincibile.

Poi, improvvisamente, tutto crolla.

Alle 10:02 del mattino in Europa, alle 03:02 negli Stati Uniti, alle 18:02 in Asia, migliaia di dispositivi iniziano contemporaneamente a fallire i controlli di integrità. Google Wallet smette di funzionare. Le app finanziarie bloccano i pagamenti. I moduli Magisk che il giorno prima garantivano il passaggio del controllo diventano inutili.

La reazione più comune è pensare a un aggiornamento segreto distribuito da Google.

In realtà, nella maggior parte dei casi, non è stato aggiornato nemmeno un singolo byte sul telefono.

È molto più semplice.

Google ha revocato un certificato.


La tesi è corretta?

Nel complesso sì, ma con alcune importanti precisazioni tecniche.

È corretto affermare che:

Tuttavia alcune formulazioni diffuse online tendono a semplificare eccessivamente il processo:

  • Non tutte le implementazioni utilizzano necessariamente un’identica struttura “keybox.xml”.
  • I dettagli interni di Play Integrity non sono completamente documentati da Google.
  • L’affermazione secondo cui “Google revoca sempre una Keybox nel giro di 72 ore” è plausibile come osservazione empirica nella community modding, ma non esiste documentazione ufficiale che confermi questa finestra temporale. [android-de…leblog.com], [developer…..google.cn]

La sostanza, però, resta valida: una singola chiave compromessa può essere neutralizzata centralmente da Google tramite la revoca della relativa identità crittografica.


Il passaporto segreto di ogni smartphone Android

Ogni smartphone Android certificato nasce con un’identità digitale unica.

Non parliamo dell’IMEI.

Non parliamo del numero seriale.

Parliamo di una credenziale crittografica che vive in un’area protetta dell’hardware e che costituisce il fondamento della fiducia dell’intero ecosistema Android.

Quando un’app bancaria, Google Wallet o un servizio ad alta sicurezza vuole sapere se il dispositivo è autentico, non si fida semplicemente del sistema operativo.

Chiede una prova matematica.

Una prova che solo l’hardware originale dovrebbe essere in grado di produrre.

Google definisce questo meccanismo hardware-backed attestation, ossia un’attestazione supportata dall’hardware sicuro del dispositivo. [developer….ndroid.com], [developer….ndroid.com]


Come funziona l’attestazione hardware

Immaginiamo una banca che riceve una richiesta di accesso da uno smartphone.

La banca non si limita a chiedere:

“Sei un dispositivo sicuro?”

Perché qualsiasi malware potrebbe rispondere “sì”.

Invece utilizza Play Integrity.

Il processo, semplificando, segue questi passaggi:

  1. Il server genera una challenge casuale (nonce).
  2. Il dispositivo riceve la richiesta.
  3. Il modulo di sicurezza hardware genera una risposta firmata.
  4. La risposta contiene informazioni sullo stato del dispositivo.
  5. La firma viene verificata tramite una catena di certificati affidabile.

Tra i parametri controllati possono comparire:

  • stato del bootloader;
  • stato del Verified Boot;
  • livello di sicurezza TEE o StrongBox;
  • certificati hardware di attestazione.

La validità della catena deve essere verificabile fino alle root certificate riconosciute da Google. [developer….ndroid.com], [developer…..google.cn]

È questo meccanismo che consente il rilascio di verdict come:

  • MEETS_BASIC_INTEGRITY
  • MEETS_DEVICE_INTEGRITY
  • MEETS_STRONG_INTEGRITY

descritti nella documentazione Play Integrity. [developer….ndroid.com], [developer….ndroid.com]


Dove sono custodite queste chiavi?

Una delle convinzioni più diffuse nel mondo del modding è che ottenere il root significhi poter accedere a tutto.

Non è così.

I moderni SoC Android separano l’esecuzione del sistema operativo normale da un ambiente isolato chiamato Trusted Execution Environment (TEE).

All’interno del TEE operano piattaforme come:

  • Qualcomm QTEE
  • Samsung TEEgris
  • Google Trusty

oppure chip dedicati come il Titan M di Google Pixel. [developer….ndroid.com], [developer….ndroid.com], [pixelkit-l….github.io]

Le chiavi di attestazione vengono progettate proprio per non essere accessibili al kernel Android tradizionale.

Anche disponendo di privilegi root completi, il sistema operativo non dovrebbe poter leggere direttamente il materiale crittografico custodito dall’ambiente sicuro.

In altre parole:

il root compromette Android, ma non necessariamente il processore di sicurezza che protegge le chiavi.


Se le chiavi sono protette, come finiscono su Internet?

Questa è la domanda fondamentale.

Le community che cercano di aggirare Play Integrity non possono normalmente estrarre le chiavi da un dispositivo moderno semplicemente ottenendo il root.

Le fughe di Keybox derivano generalmente da quattro categorie di problemi.

1. Fughe dalla filiera produttiva

Durante la produzione vengono gestiti materiali crittografici e procedure di provisioning.

Un errore operativo, un dipendente infedele o una gestione inadeguata della catena produttiva possono causare la diffusione di credenziali che non avrebbero mai dovuto lasciare la fabbrica.

2. Firmware OEM configurati male

Storicamente alcuni produttori minori hanno commesso errori nella protezione di dati sensibili, lasciando informazioni accessibili in partizioni insufficientemente protette.

3. Vulnerabilità nel TEE

Le Trusted Applications che operano nell’ambiente sicuro sono software a tutti gli effetti.

Come qualsiasi software, possono contenere bug.

Un difetto critico potrebbe consentire l’esecuzione di codice privilegiato all’interno dell’ambiente sicuro e portare all’esposizione di materiali che normalmente dovrebbero restare inaccessibili.

4. Exploit hardware e BootROM

Nel campo della ricerca avanzata esistono tecniche che sfruttano vulnerabilità nelle fasi iniziali di avvio del dispositivo o attacchi fisici come il voltage glitching.

Sono operazioni estremamente specialistiche e ben lontane dalle capacità dell’utente medio.


Perché Google può neutralizzare tutto in pochi minuti

Qui entra in gioco il vero punto di forza del sistema.

Google non deve necessariamente correggere la vulnerabilità che ha causato il furto della chiave.

Deve semplicemente smettere di fidarsi di quella chiave.

Dal 2019 Google ha introdotto un sistema di revoca centralizzato per le chiavi di attestazione Android, distribuito attraverso un elenco di stato pubblico. [android-de…leblog.com], [android.go…leapis.com]

Quando una chiave viene considerata compromessa:

  1. viene inserita nella lista di revoca;
  2. i verificatori controllano lo stato del certificato;
  3. le attestazioni prodotte tramite quella chiave vengono respinte.

Google documenta esplicitamente la necessità di verificare che i certificati non siano stati revocati prima di considerarli affidabili. [developer….ndroid.com], [developer…..google.cn]


Un esempio pratico

Immaginiamo che una Keybox appartenente originariamente a un TV Box economico venga pubblicata online.

Nel giro di poche ore:

  • 5.000 utenti in Europa iniziano a usarla;
  • 4.000 utenti in Asia la installano tramite moduli root;
  • 6.000 utenti negli Stati Uniti la adottano per far funzionare Google Wallet.

Dal punto di vista di Google, migliaia di dispositivi completamente diversi stanno improvvisamente presentando la stessa identità crittografica.

È come vedere 15.000 persone attraversare contemporaneamente una frontiera utilizzando lo stesso passaporto.

Non serve sapere come abbiano ottenuto il documento.

Basta invalidarlo.

Alla successiva verifica, la chiave viene riconosciuta come compromessa e la fiducia viene revocata.


La guerra invisibile tra Google e il modding

Esiste una narrativa comune secondo cui la sfida sarebbe tra Google e il root.

In realtà il conflitto è molto più sofisticato.

Google non combatte Magisk.

Google non combatte KernelSU.

Google combatte la clonazione dell’identità hardware.

L’obiettivo non è impedire agli utenti avanzati di personalizzare Android.

L’obiettivo è impedire che dispositivi compromessi possano spacciarsi per terminali integri all’interno di ecosistemi che gestiscono denaro, identità digitali e dati sensibili.

Per questo motivo la battaglia si svolge sempre meno nel sistema operativo e sempre più nel silicio.


Conclusioni

La lezione più importante è che il futuro della sicurezza mobile non dipende soltanto dal software.

Quando un dispositivo Android moderno supera un controllo Play Integrity, la fiducia non deriva da ciò che dichiara il sistema operativo, ma da ciò che può dimostrare crittograficamente il suo hardware.

Ed è proprio qui che molti utenti rooted scoprono una realtà scomoda:

si può modificare Android, sostituire il kernel, sbloccare il bootloader e nascondere il root.

Ma quando Google decide di non fidarsi più di una chiave hardware compromessa, l’intera catena di fiducia si interrompe.

Non serve un aggiornamento.

Non serve un patch Tuesday.

A volte basta un singolo numero di serie aggiunto a una lista di revoca per spegnere, in un istante, migliaia di identità digitali distribuite in tutto il mondo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *