Il rilascio di un iPhone senza sensore di impronte digitali ha portato a parlare dell'utilizzo delle impronte digitali per l'autenticazione e della sicurezza della memorizzazione dei dati. È fantastico Anche se non sei preoccupato per come è fatto, hai bisogno di molte altre persone che si preoccupino in modo da farlo in un modo che non devi preoccuparti!
Tanto per cominciare, Apple utilizza una soluzione simile e se hai un modello più vecchio con un sensore di impronte digitali sei sicuro di usarlo come prima. Lo stesso vale per i vecchi telefoni Samsung che hanno lanciato pre-Marshmallow e hanno utilizzato i metodi di Samsung.
Il modo in cui Google archivia i dati delle tue impronte digitali è il modo più sicuro possibile con la tecnologia attuale. È anche affascinante quanto sia semplice la panoramica di tutto ciò una volta che lo guardi. Semplice e sicuro è sempre una combinazione vincente.
Lo stoccaggio, per sua natura, non è molto sicuro. È la stessa cosa di scrivere qualcosa su un post-it e metterlo in un archivio. È lì perché deve essere lì e la cosa migliore che puoi fare è controllare chi ha accesso ad esso. Per un file cabinet, si utilizza un blocco e per il telefono si utilizza la crittografia. Per i dati delle tue impronte digitali, le cose vanno oltre: un Trusted Execution Environment (TEE).
Un TEE è un'area separata e isolata nell'hardware del telefono. Un TEE potrebbe utilizzare il proprio processore e la propria memoria oppure utilizzare un'istanza virtualizzata sulla CPU principale. In entrambi i casi, il TEE è completamente isolato e isolato mediante memoria con supporto hardware e protezione input / output. L'unico modo in cui entrerai è se il TEE ti fa entrare, e non lo farà mai. Anche se il telefono è rootato o il bootloader sbloccato, il TEE è separato e ancora intatto.
Un processore separato con memoria e sistema operativo propri viene utilizzato per analizzare e archiviare i dati delle impronte digitali.
Google utilizza ciò che chiamano Trusty TEE per supportare questo. Un sistema operativo molto piccolo ed efficiente, opportunamente chiamato Trusty OS, gira sull'hardware TEE e i driver del kernel gli consentono di comunicare con il sistema. Ci sono librerie Android (hai indovinato: l'API di Trusty) che gli sviluppatori possono utilizzare in modo che possano porre ciò che equivale a una domanda sì o no al TEE. Non solo i dati delle impronte digitali sono memorizzati nel TEE. Cose come chiavi DRM e chiavi di crittografia del bootloader del produttore vivono anche nel TEE e funzionano allo stesso modo dei dati delle impronte digitali: rispondi se i dati presentati da un'applicazione corrispondono ai dati noti noti che sta memorizzando.
Altri produttori possono utilizzare Trusty OS o quindi utilizzare un sistema diverso. Finché tutti i criteri sono soddisfatti (elencati di seguito) e il TEE è isolato e isolato soddisferà gli standard di sicurezza necessari per utilizzare Pixel Imprint (precedentemente Nexus Imprint).
Quando registri un'impronta digitale sul tuo telefono Android, il sensore acquisisce i dati dalla scansione. Trusty OS analizza questi dati all'interno del TEE, quindi crea due cose: un insieme di dati di convalida e un modello di impronte digitali crittografato. Questi sembrano essere dati spazzatura a tutto tranne che al TEE che ha anche la chiave per decifrare quei dati spazzatura. Questo modello di impronte digitali crittografato viene archiviato in un contenitore crittografato sul TEE o nella memoria crittografata del telefono. Tre livelli di crittografia significano che è quasi impossibile ottenere i dati e anche se potessi è inutile senza un modo per decifrarli.
Android richiede che i dati delle tue impronte digitali siano protetti con una chiave univoca e non puoi trasferirli su un altro telefono o riutilizzarli per un altro utente.
I dati di validazione sono memorizzati all'interno del TEE. Quando si posiziona il dito sullo scanner per provare a fare qualcosa, lo scanner crea un profilo di dati. Tramite l'API Trusty, l'applicazione associata chiede al kernel di chiedere al TEE se è giusto. Il TEE verifica i dati di convalida memorizzati utilizzando il processore e la memoria separati e, se un numero sufficiente di dati corrisponde, dice di sì. Se non ci sono abbastanza dati corrispondenti, dice di no. Questa risposta pass o fail viene inviata al kernel come token software che l'API può leggere per vedere il risultato.
Mentre TEE stesso utilizza un sistema operativo e un hardware autonomi per garantire la sicurezza, il modello di impronte digitali utilizza la crittografia basata su software. Deve essere firmato da una chiave molto specifica per essere valido. Questa chiave viene creata utilizzando informazioni specifiche del dispositivo, informazioni specifiche dell'utente e informazioni specifiche del tempo. In altre parole, se si rimuove un utente, si cambia dispositivo o si tenta di registrare nuovamente un'impronta digitale (il sistema può dire se si sta sovrascrivendo un'impronta digitale esistente) la chiave non viene più riconosciuta e non può essere utilizzata per decrittografare l'impronta digitale modello.
Le regole di base che ogni azienda che produce telefoni Android con un sensore di impronte digitali deve seguire:
- Tutte le analisi dei dati delle impronte digitali devono essere eseguite all'interno del TEE
- Tutti i dati associati a un'impronta digitale devono essere memorizzati nel TEE o nella memoria attendibile (memoria che la CPU principale non riesce nemmeno a vedere)
- I dati del profilo dell'impronta digitale devono essere crittografati automaticamente anche se archiviati in un archivio telefonico crittografato
- La rimozione di un account utente deve anche cancellare in modo sicuro tutti i dati associati alle impronte digitali dell'utente
- Dove sono memorizzati i profili delle impronte digitali non deve essere visibile a nessuna applicazione, processo o utente incluso l'utente root
- I dati di impronte digitali di qualsiasi tipo non devono essere sottoposti a backup su nessun'altra fonte, incluso il cloud, il computer o qualsiasi applicazione
- L'autenticazione tramite impronta digitale deve essere utilizzata dal processo che lo ha richiesto (nessuna condivisione dei dati relativi alle impronte digitali, anche solo la risposta sì o no per vedere se era corretta)
Quando hai alcune specifiche standard che sono chiare, non è difficile soddisfarle. Questo è ciò che garantisce che, indipendentemente dal telefono Android in uso, i dati delle tue impronte digitali vengano archiviati in modo sicuro e nessun altro processo di sistema o app possa accedervi. Con l'evolversi della crittografia, in particolare la crittografia supportata da hardware, questo metodo consente di proteggere i dati delle impronte digitali. Sarà interessante guardare indietro una volta avviato Android Z e vedere fino a che punto siamo arrivati.