GrapheneOS rompe il muro delle banche: 12 app iniziano ad accettarlo

12 app bancarie iniziano ad accettare GrapheneOS: ecco come l'hardware attestation può superare i limiti di Google Play Integrity.

Per anni uno dei principali ostacoli all’utilizzo quotidiano di GrapheneOS non è stato il sistema operativo in sé, ma una categoria di applicazioni particolarmente sensibile: quelle bancarie. Un paradosso, considerando che GrapheneOS nasce proprio con l’obiettivo di rafforzare sicurezza e privacy di Android.

Qualcosa, però, sta cambiando. Il progetto GrapheneOS ha rivelato che circa 6-8 società del settore bancario hanno applicato una serie di modifiche specifiche per consentire l’utilizzo del sistema operativo con le loro app. Poiché alcune gestiscono più applicazioni, il totale raggiunge circa 12 app bancarie che ora permettono esplicitamente l’utilizzo di GrapheneOS.

Non significa che soltanto 12 app bancarie funzionino su GrapheneOS: secondo il progetto, circa il 90% delle app bancarie risulta già utilizzabile su GrapheneOS. La novità è che una dozzina di applicazioni avrebbe compiuto un passo ulteriore, introducendo modifiche deliberatamente pensate per non escludere il sistema operativo progettato per tutelare la privacy dei suoi utenti.

Perché un sistema più sicuro può essere rifiutato da un’app bancaria?

Molte applicazioni finanziarie utilizzano le Google Play Integrity API per stabilire se il dispositivo soddisfa determinati requisiti. Come spiega Google nella documentazione, sui dispositivi recenti il verdetto MEETS_DEVICE_INTEGRITY richiede, tra le altre cose, un bootloader bloccato e l’esecuzione di un’immagine Android certificata dal produttore.

GrapheneOS mantiene il Verified Boot, utilizza cioè un bootloader bloccabile e non richiede root per funzionare normalmente. Non è però un’immagine Android certificata da Google.

Il risultato è apparentemente assurdo: un dispositivo può mantenere una catena di avvio verificata e applicare misure di sicurezza particolarmente restrittive, ma un’app può comunque rifiutarlo perché il sistema operativo non appartiene alla lista approvata da Google.

È un problema che avevamo già affrontato parlando di GrapheneOS, Play Integrity e applicazioni come IO e IT-Wallet.

Le banche non sono obbligate a dipendere da Play Integrity

È importante sottolineare che Google Play Integrity non rappresenta l’unico sistema disponibile per stabilire se uno smartphone sia affidabile.

Android dispone da anni di una vera API di hardware-backed key attestation: la documentazione ufficiale Android mette in evidenza come l’attestazione permetta a un server di verificare che una chiave crittografica risieda realmente nell’hardware protetto del dispositivo e di controllare la catena di certificati associata.

GrapheneOS suggerisce alle applicazioni che necessitano di controlli particolarmente severi di utilizzare direttamente tale meccanismo. Nella sua Attestation compatibility guide, il progetto mostra come un servizio possa verificare hardware, firmware, sistema operativo e applicazione senza limitarsi alla certificazione Play Integrity.

Tra i dati disponibili compare anche la verifiedBootKey, ossia l’identificatore crittografico della chiave utilizzata dal sistema operativo per Verified Boot.

Una banca può quindi adottare una policy che escluda la fiducia generica in una qualsiasi “custom ROM” ma che permetta di riconoscere le versioni ufficiali di GrapheneOS.

Autorizzazione app bancarie GrapheneOS

Come GrapheneOS può essere autorizzato senza abbassare la sicurezza

GrapheneOS pubblica gli hash delle proprie chiavi Verified Boot ufficiali e li rende disponibili in un file firmato. Il backend della banca può inserirli nella propria “lista bianca” e accettare soltanto installazioni che presentino una catena di attestazione valida.

Non basta quindi modificare Android, cambiare qualche proprietà di sistema o dichiarare falsamente di essere GrapheneOS.

L’attestazione può includere anche informazioni come il livello delle patch di sicurezza del sistema operativo e usare il keystore protetto dall’hardware. Per un servizio bancario significa poter applicare controlli molto più precisi rispetto a una semplice domanda del tipo “questo dispositivo è certificato Google?”

GrapheneOS sostiene infatti che l’uso diretto dell’hardware attestation possa offrire alle applicazioni più informazioni e maggiore controllo rispetto a Play Integrity, consentendo contemporaneamente sistemi operativi alternativi mantenuti secondo criteri di sicurezza accettabili.

Le 12 app non hanno seguito tutte la stessa strada

GrapheneOS non sostiene che tutte le circa 12 applicazioni abbiano implementato lo stesso meccanismo.

Secondo quanto spiegato dal progetto, alcune società hanno rimosso o modificato controlli che impedivano inutilmente l’esecuzione. Altre avrebbero invece iniziato a verificare GrapheneOS mediante l’hardware attestation Android, affiancandola a Play Integrity.

Non esiste al momento una lista ufficiale pubblicata da GrapheneOS che associ ciascuna delle 12 app al metodo adottato; esiste però un ampio database aggiornato dalla comunità, Banking Applications Compatibility with GrapheneOS, che raccoglie centinaia di test effettuati dagli utenti in numerosi Paesi.

Un’app che funziona su GrapheneOS non necessariamente supporta GrapheneOS in modo esplicito. Il team di GrapheneOS attribuisce la compatibilità di queste app non soltanto alle decisioni delle banche. Il sistema operativo include numerosi accorgimenti per gestire app problematiche e permette di eseguire Google Play in una sandbox normale, senza assegnargli i privilegi speciali che possiede sull’Android distribuito normalmente dai produttori.

Esistono app con problemi di memory corruption o meccanismi che tentano di rilevare debugging e manipolazioni in modi non sempre corretti. GrapheneOS mette quindi a disposizione una Exploit protection compatibility mode applicabile selettivamente.

Secondo il progetto, senza il lavoro svolto sulle incompatibilità, la percentuale di app bancarie funzionanti sarebbe notevolmente inferiore.

Il vero cambiamento: “non certificato Google” non significa “non sicuro”

La notizia delle 12 app bancarie divenute espressamente compatibili con GrapheneOS pone una vera e propria pietra miliare.

Per molto tempo la soluzione più semplice per chi sviluppava un’app finanziaria consisteva nel delegare a Google buona parte della decisione: Play Integrity restituisce un verdetto e il backend decide se consentire o negare l’accesso.

L’hardware attestation permette invece una scelta più articolata: una banca può stabilire autonomamente quali hardware e quali sistemi operativi soddisfano i propri requisiti, verificandone crittograficamente l’identità. “Approvato da Google” e “tecnicamente affidabile” non sono concetti sovrapponibili.

Se il numero di istituti disposti a far propria questa distinzione continuerà a crescere, la compatibilità con GrapheneOS potrebbe smettere di essere un’eccezione. GrapheneOS spiega che la sicurezza di uno smartphone può essere verificata crittograficamente senza lasciare a un singolo fornitore il potere esclusivo di decidere quale sistema operativo sia autorizzato a eseguire un’app.

Ti consigliamo anche

Link copiato negli appunti