Upgrade to Pro — share decks privately, control downloads, hide ads and more …

La crittografia dei dispositivi Android

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

La crittografia dei dispositivi Android

Un'introduzione alla crittografia dell'intero disco nei dispositivi Android. In particolare parlerò di punti di forza, debolezze, vantaggi e svantaggi, aspetti da considerare ed un'interessante tecnica di crittanalisi.

Avatar for Riccardo Leschiutta

Riccardo Leschiutta

June 05, 2014

Other Decks in Technology

Transcript

  1. Per evitare che informazioni personali come email, SMS, contatti, numeri

    di carte di credito, files, foto ecc. siano accessibili a chi (intenzionalmente o accidentalmente) venga in possesso del nostro telefono o tablet nel quale tali informazioni sono memorizzate, Android ha introdotto alcuni meccanismi di sicurezza. Uno di questi è la crittografia dell'intero dispositivo, che sfrutta il sottosistema di crittografia del Linux kernel “dm- crypt”, e resa disponibile in modo nativo dalla versione 3.0 di Android (Honeycomb). Introduzione (1)
  2. Il concetto di base è molto semplice e rispecchia la

    definizione classica di crittografia: trasformare le informazioni in modo che esse siano incomprensibili a tutti, tranne a coloro che possiedono la chiave di decifratura. Nonostante la crittografia aggiunga un ulteriore livello di sicurezza ai classici sistemi di blocco dello schermo (sequenza, PIN, password o riconoscimento facciale), non tutti gli utenti la ritengono necessaria. Introduzione (2)
  3. Attaccanti esperti infatti possono utilizzare bootloader, Android Debug Bridge (ADB)

    e altre tecniche di crittanalisi (come FROST) per estrarre in modo relativamente semplice dati dal dispositivo, anche se questo è stato preventivamente crittografato e protetto mediante PIN o password. Siccome la crittanalisi risulta più difficile nei dispositivi crittografati, sarebbe però uno sbaglio non considerare questi ultimi come più sicuri rispetto ai dispositivi non crittografati. Introduzione (3)
  4. Prima di procedere con la crittografia del dispositivo è bene

    considerare i seguenti aspetti: - Crittografare l'intero disco richiede un'ora o più (in base alla quantità di dati) e durante tale periodo il dispositivo si riavvia più volte. E' perciò richiesto che quest'ultimo sia collegato alla corrente elettrica, o che la batteria sia stata preventivamente caricata. - Verrà richiesto di impostare un PIN o una password, che sarà successivamente utilizzato per sbloccare il dispositivo e come chiave di crittografia. Aspetti da considerare (1)
  5. - La procedura di crittografia non può essere interrotta, pena

    la possibile perdita permanente di tutti o parte dei dati. - La crittografia è irreversibile, l'unico modo per disabilitarla, è eseguire un reset di fabbrica, con conseguente perdita dei dati contenuti nel dispositivo. - Il processo di crittografia/decrittografia richiede caricamenti e risorse aggiuntivi. Questo può essere sconveniente per i dispositivi datati, causando rallentamenti più o meno percepibili. Aspetti da considerare (2)
  6. - Per poter utilizzare il dispositivo, è necessario inserire il

    PIN o la password all'accensione. Questo permette al dispositivo di decrittografare i dati, in modo che siano utilizzabili normalmente. - Una volta crittografato il dispositivo, la funzionalità di sblocco mediante Swipe è disabilitata, poichè meno sicura rispetto a PIN o password. - Durante il processo di crittografia l'apposito framework gestisce opportunamente i successi ed i fallimenti delle operazioni intermedie, segnalando all'utente gli eventuali problemi riscontrati. Aspetti da considerare (3)
  7. Alcuni dispositivi permettono la crittografia della scheda SD esterna, mettendo

    a disposizione diverse opzioni, tra le quali la possibilità di scegliere quali file crittografare. In questo modo, i dati contenuti nella scheda SD non saranno accessibili se quest'ultima viene utilizzata in un sistema diverso, risultando come vuota o formattata con un filesystem non supportato. Per questo scopo è anche possibile affidarsi ad una delle molte applicazioni di terze parti presenti sullo store Google Play. Crittografia della scheda SD
  8. Android utilizza “dm-crypt”, un sottosistema di crittografia del Linux kernel

    delle versioni 2.6 e successive, utilizzato oggigiorno per la crittografia sui terminali Linux. Il filesystem preferito per questo scopo è ext4, poiché è indipendente dal tipo di crittografia utilizzato o meno. Il cifrario è AES a 128-bit. La chiave di cifratura è un numero a 128bit, derivato dalla password (scelta dall'utente) mediante PBKDF2, funzione proveniente dalla libreria SSL. Viene per di più utilizzato un “random salt” al fine di aggiungere maggiore entropia alla funzione di hash da PBKDF2. Aspetti tecnici (1)
  9. Nonostante sia stato scelto il cifrario AES a 128-bit, noto

    per le sue caratteristiche di robustezza alla crittanalisi e velocità di esecuzione, la crittografia nei dispositivi Android non è però priva di debolezze. Infatti: - La lunghezza della password e del PIN è limitata a 16 caratteri. Non è possibile perciò utilizzare una lunga frase di sblocco, limitando l'utente nella scelta di una sequenza robusta. Aspetti tecnici (2)
  10. - Siccome è necessario inserire la password per la decrittazione

    ogni volta che si vuole sbloccare lo schermo, gli utenti saranno meno propensi a scegliere una password lunga o difficile da digitare, seppur più robusta. - L'obbligo di inserire la chiave di decrittazione ad ogni sblocco, aumenta le probabilità che occhi malintenzionati ne vengano a conoscenza. Il motivo principale per cui i progettisti Android hanno scelto di utilizzare la stessa password sia per sbloccare il dispositivo che per decrittografarne i dati, è che il possederla permette un completo accesso ai dati. Aspetti tecnici (3)
  11. E' da notare, però, che le due password proteggono i

    dati in due differenti scenari: - La password di sblocco protegge i dati da un attacco a forza bruta “online”, ed in questo caso anche una password più debole sarebbe ammissibile, dato che il sistema operativo già offre un rigido limite al numero di tentativi consecutivi disponibili per l'inserimento della password. - La crittografia dell'intero disco, invece, offre una protezione agli attacchi “offline”, molto più potenti dei primi, visto che possono essere messi in atto attraverso strumenti avanzati. Per queste ragioni la password di cifratura dovrebbe essere diversa e più forte della prima. Aspetti tecnici (4)
  12. Come precedentemente illustrato, la crittografia dell'intero dispositivo Android non è

    priva di debolezze. Il motivo è legato al fatto che password e PIN utilizzati tendono ad essere deboli, a causa dei limiti imposti dal sistema e da scelte “poco robuste” degli utenti. Evitando che (come avviene attualmente) Android utilizzi la stessa password sia per decrittografare i dati che per sbloccare il dispositivo, si risolverebbe almeno parte del problema. Crittanalisi (1)
  13. Basterebbe prevedere due password distinte: la prima (forte) per la

    decrittografia del telefono all'accensione, e la seconda (più semplice e facile da ricordare) per il semplice sblocco del dispositivo. Eliminando il limite dei 16 caratteri, inoltre, si lascerebbe maggiore libertà all'utente, esortandolo a scegliere sequenze lunghe e robuste piuttosto che PIN numerici, password o pattern corti e troppo semplici. Crittanalisi (2)
  14. Un interessante metodo di crittanalisi è il metodo FROST: Alcuni

    ricercatori dell'Università di Erlangen-Nuremberg in Germania, hanno scoperto un metodo relativamente semplice per violare un dispositivo Android, accedendo ai dati personali in esso contenuti nonostante esso sia stato crittografato. Questo software si chiama FROST e prevede l'esecuzione di un cold boot attack: inserire il dispositivo in freezer, riavviare il sistema scollegando completamente l'alimentazione e ricollegandola nuovamente. FROST: un caso concreto (1)
  15. Quando un dispositivo viene scollegato dalla sorgente di alimentazione (ad

    esempio mediante il reboot), la sua memoria RAM viene cancellata. Ma per effetto delle basse temperature ed attraverso il cold booting, questo processo viene bypassato ed i dati contenuti nella memoria preservati. In seguito all' interruzione di alimentazione, infatti, la RAM impiega del tempo (per quanto brevissimo) per perdere memoria delle informazioni in essa contenute. FROST: un caso concreto (2)
  16. Mediante il cold booting questo intervallo temporale viene incrementato. Se

    si dispone di uno strumento per leggere la RAM, è possibile così estrarvi tutte le informazioni contenute, anche quelle sensibili come la chiave di crittografia utilizzata. Il software FROST permette così l'accesso ai dati memorizzati nella RAM dopo un cold boot, recuperando la chiave di crittografia usata, o trasferendo tutto il contenuto della RAM ad una altro PC mediante cavo USB (per analisi più approfondite). FROST: un caso concreto (3)