Il caso di Apple vs FBI ha portato l’attenzione sul tema della privacy, in particolare nel contesto dei dispositivi mobili. Dopo l’attacco terroristico di San Bernardino nel 2015, l’FBI ha sequestrato un telefono cellulare appartenente al tiratore, Syed Farook, con l’intento di ricercare prove supplementari o tracce relative alle indagini in corso. Tuttavia, pur essendo in possesso del dispositivo, l’FBI non e’ stato in grado di sbloccare il telefono e accedere al suo contenuto.
Questo può sembrare sconcertante in un primo momento.
“Sicuramente se l’FBI avesse accesso al telefono, non potrebbe estrarre i dati dell’utente memorizzati su di esso utilizzando strumenti forensi?”
Bene, la risposta non è così semplice. Vedete, il dispositivo in questione è un iPhone 5c con iOS 9.
Come saprete, a partire da iOS 8, Apple ha attivato automaticamente la Crittografia Totale del Disco (FDE) utilizzando una chiave di crittografia che deriva dalla password dell’utente. Per accedere ai dati sul dispositivo, l’FBI avrebbe dovuto violare quella crittografia. Salvo eventuali errori nella progettazione della crittografia, questo sarebbe stato ottenuto, molto probabilmente, violando la password dell’utente.
“Allora, perché non usare il brute-forcing?”
Questo suona come un approccio molto valido – soprattutto perché la maggior parte degli utenti sono notoriamente imbranati nel scegliere password complesse, a maggior ragione quando si tratta di dispositivi mobili.
Tuttavia, gli ingegneri Apple non erano ignari di questa preoccupazione quando hanno progettato il loro schema FDE. Al fine di cercare di mitigare questo tipo di attacco, hanno progettato lo schema di crittografia in modo che la chiave crittografica generata è legata all’hardware del dispositivo.
In breve, ogni dispositivo ha una chiave immutabile di 256-bit unica chiamata UID, che viene generata in modo casuale e fusa nell’hardware del dispositivo quando viene prodotto. La chiave è memorizzata in un modo che impedisce completamente l’accesso utilizzando software o firmware (può essere impostata solo come chiave per il motore AES), il che significa che nemmeno Apple può estrarla dal dispositivo una volta che è stata impostata.
Questa chiave specifica del dispositivo viene quindi usata in combinazione con la password fornito dall’utente per generare la risultante chiave di crittografia usata per proteggere i dati del dispositivo. Questo “aggroviglia” in modo efficace la password e la chiave UID.
Legare la chiave di crittografia all’hardware del dispositivo permette ad Apple di rendere il lavoro molto più difficile per i potenziali attaccanti. Essenzialmente costringe agli aggressori ad utilizzare il dispositivo per ogni tentativo di violazione. Questo, a sua volta, permette ad Apple di introdurre tutta una serie di difese che renderebbero i tentativi di violazione del dispositivo poco conveniente.
Per cominciare, la funzione di derivazione della chiave è progettata in modo tale che ci vorrebbe una notevole quantità di tempo per calcolarla sul dispositivo. In particolare, Apple ha scelto parametri della funzione in modo che una singola chiave di derivazione avrebbe un ritardo di circa 80 millisecondi. Questo ritardo renderebbe lenta la violazione di password alfanumeriche brevi (circa 2 settimane per una password alfanumerica di 4 caratteri), e la violazione di password più lunghe del tutto irrealizzabile.
Al fine di mitigare ulteriormente attacchi brute-force sul dispositivo stesso, Apple ha anche introdotto un ritardo incrementale tra tentativi successivi di intuizione della password. Su iPhone 5c, questo ritardo è stata agevoltato completamente via software. Infine, Apple ha permesso la possibilità di cancellare completamente tutti i dati memorizzati sul dispositivo dopo 10 tentativi falliti di ritrovare la password. Questa configurazione, insieme con i ritardi indotti via software, ha reso il violare la password sul dispositivo stesso, piuttosto impraticabile.
RITARDO TRA TENTATIVI
- [1-4] > Nessuno
- [5] > 1 Minuto
- [6] > 5 Minuti
- [7-8] > 15 Minuti
- [9] > 1 Ora
Conoscendo questo, è molto più ragionevole pensare che l’FBI non fosse in grado di violare la crittografia del dispositivo.
Se fossero stati in grado di estrarre la chiave UID, avrebbero potuto utilizzare l’hardware (specializzato) necessario, al fine di trovare rapidamente molte password, che avrebbe probabilmente permesso loro di trovare la password corretta. Tuttavia, visto che la chiave UID non puo essere estratta tramite software o firmware, tale opzione è esclusa.
Per quanto riguarda violare la password sul dispositivo, i ritardi indotti via software tra tentativi di immissione password e la possibilità di cancellare tutti i dati presenti sul dispositivo ha resodi fatto che l’opzione poco conveniente. Questo escludendo il poter bypassare le protezioni software.
Tornando alla questione a portata di mano – possiamo vedere che Apple ha progettato in modo intelligente il suo schema FDE in modo da renderlo molto difficile da decifrare.