Come in ogni settore, l’industria della sicurezza delle informazioni, più comunemente chiamata “cybersecurity”, per tutti i suoi infuocati dibattiti, si è radunata intorno ad un piccolo corpus di buone pratiche.

Uno dei più alti in questa lista è la crittografia a disco intero, che gli esperti di sicurezza considerano sacrosanta, una cosa ovvia che tutti dovrebbero usare al minimo indispensabile. Questa è la crittografia che assicura che qualcuno che ruba il vostro dispositivo non sarà in grado di sapere tutto ciò che avete salvato su di esso.

Sono qui per sostenere che la maggior parte di voi è meglio non usarla. So che potrebbe sembrare assurdo, dato che sono una specie di esperto di sicurezza qui, ma ascoltatemi.

Non voglio assolutamente dissuadervi dall’usare la crittografia – senza di essa, gli strumenti digitali su cui facciamo affidamento ogni giorno sarebbero inutilizzabili. Ecco perché non sto discutendo contro la crittografia, punto; ma specificamente contro la crittografia dell’intero disco, e solo per certi utenti.

Quello che sostengo è che, per la maggior parte delle persone che affrontano i casi d’uso più comuni, la crittografia dell’intero disco è eccessiva. Questi utenti non godono di alcun guadagno misurabile in sicurezza rispetto alla crittografia alternativa dei dati a riposo, eppure pagano con un colpo di performance misurabile. Questa non è solo una questione di efficienza o di tempi di carico, ma anche un aumento letterale dei costi per gli utenti.

Esistono alternative che permettono ai normali utenti di tutti i giorni, con le normali preoccupazioni di sicurezza di tutti i giorni, un livello di protezione commisurato a quello offerto dalla crittografia a disco intero. Sono certamente un po’ fuori dal sentiero battuto, dato che la maggior parte delle aziende tecnologiche di consumo hanno adottato la crittografia a disco intero, ma sono là fuori.

Ci deve essere un altro modo

Oggi la crittografia a disco intero è di gran lunga il tipo più comune di schema di crittografia per i dati a riposo. Pensate ai dati a riposo come ai dati che conservate su qualche tipo di supporto di memorizzazione (come un disco rigido) per usarli in seguito, non al tipo di dati che si muovono su qualche canale di comunicazione come Internet (che sarebbero dati in transito).

In generale, la crittografia a disco intero è implementata su un livello di complessità del computer che si occupa di come i byte grezzi, disaccoppiati dal contesto della rappresentazione delle informazioni, sono organizzati sul disco rigido. Ci riferiremo a questo livello come il livello del dispositivo a blocchi, poiché la crittografia a disco intero è applicata al dispositivo a blocchi che è una partizione del disco rigido (solo un nome di fantasia per un grande segmento del vostro disco rigido).

Questo livello è superiore al livello del segnale elettrico, ma inferiore al filesystem, quest’ultimo è il punto in cui il vostro computer vede i byte come file invece che solo byte. Il filesystem serve come una specie di organigramma che dice al tuo computer come dire quali byte vanno insieme per formare i file, e come distinguere i file e i tipi di file.

Quindi cos’è esattamente questa crittografia del disco che non è la crittografia completa?

La risposta è la crittografia a livello di filesystem. Con la crittografia a livello di filesystem, chiamata anche “crittografia basata su file”, un sistema crittografa certe directory (cioè cartelle) e tutti i file e le directory al loro interno, ricorsivamente fino a tutto ciò che la directory più in alto contiene. La crittografia a livello di filesystem può anche crittografare un intero filesystem, proteggendo automaticamente tutto ciò che viene salvato su di esso. Per i nostri scopi, tuttavia, considereremo il tipo di crittografia basata su file che permette agli utenti di scegliere quali file e directory crittografare, lasciando il resto da solo.

Per essere precisi, il modello che ho in mente è quello che cripta solo i documenti dell’utente, i media e altri file che sui sistemi Unix finirebbero nella sottodirectory dell’utente sotto la directory /home. In questo modo, i file di sistema principali e i binari del software per i programmi in esecuzione sono lasciati in pace, e solo i dati personali sono protetti.

Questo, come implica il nome, avviene a livello del filesystem, che è un livello superiore a quello in cui opera la crittografia del disco intero. Questo produce alcune importanti implicazioni. Per cominciare, tutti i vostri file criptati sono già intesi come file, il che significa che possono essere decriptati individualmente.

Permette anche agli utenti di aumentare la crittografia dei file con controlli sui permessi dei file. Poiché l’intero disco è crittografato con la crittografia dell’intero disco, un utente che conosce la password di decrittazione del disco deve inserirla prima che qualsiasi altra cosa possa procedere. Ma insieme ai file dell’utente, anche tutti i file di cui il sistema operativo ha bisogno per funzionare sono bloccati. Un avvio riuscito richiede che l’intero dispositivo a blocchi sia sbloccato, e una volta che il disco è sbloccato, è tutto aperto.

Con la crittografia a livello di file, il sistema operativo completo applica le distinzioni per cosa viene decrittografato e quando. Ogni utente può definire quali dei suoi file sono criptati e con quali password. Quindi, con la crittografia basata sui file, un utente potrebbe decifrare i suoi file e lasciare comunque i dati di un altro utente bloccati. Non è necessario decriptare una directory criptata se non si vuole – se non si intende aprire alcun documento o file multimediale, si possono usare i programmi del computer lasciando i file personali bloccati dove, per esempio, il malware non può infettarli.

Show Me What You’ve Got

Non mi sarei preso la briga di proporre la crittografia basata su file se non avesse alcuni vantaggi reali rispetto alla crittografia su disco intero. A tal fine, la più grande forza della crittografia basata su file è che la sua velocità lascia la crittografia del disco intero nella polvere. Questo perché i sistemi crittografati basati su file leggono e scrivono sul disco in modo più efficiente.

Per capire il perché di tutto ciò, cerchiamo di capire come funzionano i dispositivi a blocchi crittografati (come una memoria flash). Giusto per rinfrescare la terminologia, il “testo cifrato” è la forma cifrata dell’informazione, che è illeggibile senza la chiave corretta, mentre il “testo in chiaro” è l’informazione nella sua forma originale, comprensibile.

Quando si decifrano i dati cifrati a riposo, il computer non sta letteralmente cambiando tutti i bit sull’hardware di memorizzazione da testo cifrato a testo in chiaro. Questo richiederebbe troppo tempo, e friggerebbe l’unità in pochissimo tempo scrivendo sull’intera unità ogni volta che si avvia e si spegne il dispositivo. Invece, i bit fisici sul disco rimangono come sono, ma vengono letti e scritti attraverso un buffer che esiste in memoria dopo che la chiave corretta è stata applicata. Il buffer applica un’operazione di decrittazione quando le informazioni vengono lette, e un’operazione di crittografia quando vengono scritte, sul disco. Mentre i vostri dati vengono decriptati e letti, il testo in chiaro è tenuto in memoria in modo da poter essere facilmente referenziato fino a quando non avete finito con esso.

L’aggiunta di questi molti passi extra rallenta molto le cose rispetto alle letture e scritture non criptate, fino a un fattore dieci. Per la crittografia completa del disco, ogni singola cosa che fate sul vostro computer deve essere letta attraverso questo buffer di decrittazione, perché il vostro intero dispositivo a blocchi, e il suo contenuto, è criptato. Fondamentalmente, questo include tutti i binari che eseguono il sistema operativo stesso e tutto il software su di esso.

Ma con la nostra configurazione scelta di crittografia basata su file, solo i vostri documenti utente e i file multimediali necessitano di decrittografia. La maggior parte del software che usi quotidianamente non è tra questi file. Ci sono un sacco di attività informatiche che non hanno bisogno di decifrare proprio nulla. Per fare solo un esempio, viviamo nei nostri browser web così tanto che probabilmente potete contare su una mano il numero di file utente che avete aperto nelle ultime 24 ore.

Ovviamente, il vostro computer dovrà decriptare alcuni dati qualche volta, ma anche allora, poiché la crittografia è implementata a livello di filesystem, il vostro sistema operativo crittografato basato su file può farlo in modo più efficiente rispetto all’analogo crittografato su disco intero.

In definitiva, tutti gli accessi al disco, sia ad un disco completamente criptato che ad un disco criptato a livello di filesystem, richiedono l’approvazione del nucleo del sistema operativo, il kernel. Tuttavia, poiché la crittografia nella crittografia a disco intero è gestita a livello di privilegi amministrativi di sistema, il kernel deve essere coinvolto anche per la lettura del dispositivo a blocchi attraverso il buffer di decrittografia.

La crittografia basata sui file non affronta questo ostacolo, perché richiede solo diritti di utente senza privilegi per decrittografare i file dell’utente. Di conseguenza, la crittografia a disco intero deve ottenere un permesso aggiuntivo dal kernel per leggere o scrivere sul disco, rispetto allo stesso processo nel modello basato su file.

Più efficiente con meno usura

Un altro importante vantaggio della crittografia su file è che riduce l’usura del disco. Per ogni singola operazione di scrittura, un sistema con crittografia basata su file semplicemente scrive meno dati di uno con crittografia a disco intero.

Ancora una volta, la crittografia al lavoro per la crittografia a disco intero è a livello di dispositivo a blocchi, che vede solo blocchi, unità di dimensione uniforme, di byte. Non tutti i dati occupano un intero blocco, però. Infatti, molti di essi non lo fanno. Così la crittografia a livello di blocco in realtà ostacola il meccanismo di efficienza incorporato del computer che sta cambiando solo le parti di un file che sono effettivamente cambiate. Senza la crittografia dell’intero disco, un computer può confrontare la versione aggiornata di un file in memoria con la versione precedente sul disco, determinare quali parti sono ora diverse, e scrivere quelle nuove parti diverse nel file.

Il vostro computer può ottenere una simile economia di scrittura anche con la crittografia basata su file: quando la versione in chiaro del vostro file in memoria viene aggiornata, il file viene filtrato attraverso il buffer di crittografia e tenuto in memoria temporaneamente, e poi il sistema operativo confronta la nuova versione crittografata con la precedente versione crittografata sul vostro disco per determinare quali bit sono effettivamente cambiati, e scrive solo quelli.

La crittografia a disco intero è un’altra storia.

In quel modello, il sistema operativo sa quali parti del file sono cambiate, ma poiché la crittografia è a blocchi e non a file, il sistema operativo ora deve tradurre i file in blocchi, crittografare il blocco e scrivere quei blocchi nel dispositivo a blocchi. Le revisioni in un file che non raggiungono il valore di un blocco di dati possono abbracciare più blocchi, che devono essere tutti filtrati attraverso il buffer crittografato e scritti nella loro interezza sul dispositivo a blocchi. Anche se tutti i dati alterati sono memorizzati in un blocco, l’intero blocco viene riscritto, con conseguente significativo overhead di scrittura.

Per sua stessa natura, la crittografia a livello di filesystem offre flessibilità dove l’alternativa a disco intero non lo fa. Come notato sopra, la crittografia dell’intero disco è tutto o niente. Crittografa l’intero sistema, i file principali e tutti i dati dell’utente. Ciò significa che i dati non sensibili che si desidera caricare più velocemente (ad esempio i supporti video o audio per l’editing) vengono colpiti dal rallentamento della lettura-scrittura.

La crittografia a disco intero inoltre non è ideale per i sistemi multi-utente, come un dispositivo domestico condiviso. Chiunque voglia usare il dispositivo deve conoscere la passphrase di decrittazione del disco completo, o il dispositivo non può nemmeno avviarsi nel sistema operativo. E sbloccando il dispositivo per qualsiasi utente si sbloccano i dati per tutti gli utenti. Questo significa anche che non si possono abilitare funzioni come gli account “ospiti” non privilegiati che possono usare il sistema operativo con l’accesso ai file utente bloccato.

Infine, la crittografia basata su file è più ragionevole per ciò di cui la maggior parte delle persone ha bisogno. L’ho detto io stesso che la sicurezza comporta disagi, e questo è vero. Ma quando si progetta un insieme di pratiche di sicurezza, assumersi più inconvenienti del necessario per mitigare il rischio di attacco non aiuta. Infatti, fa solo male: se le procedure di sicurezza di un utente sono troppo onerose, quell’utente finirà per tagliare la corda.

In parole povere, la crittografia dell’intero disco è eccessiva per il caso d’uso che molto probabilmente avete. Le due configurazioni di crittografia che abbiamo accostato vi proteggono in modi diversi. La differenza principale nel grado di sicurezza tra loro è che la crittografia basata su file protegge solo i vostri documenti utente e i file multimediali. Al contrario, la crittografia dell’intero disco crittografa questi più i file principali del sistema operativo.

Alcuni potenziali svantaggi

Come si potrebbe facilmente intuire, ci sono degli svantaggi nel non crittografare tutto come fa la crittografia dell’intero disco. In teoria, un aggressore con accesso fisico al vostro dispositivo che utilizza la crittografia basata su file potrebbe alterare i dati non crittografati del sistema operativo. Da lì, l’attaccante o avvia la vostra macchina per eseguire il codice che ha appena messo lì, o aspetta che voi avviate la vostra macchina in modo che il loro codice maligno faccia qualcosa per rubare i vostri dati.

Sembra brutto, e lo è, ma probabilmente non vi accadrà. Davvero, la maggior parte o nessuno dei vostri avversari ci proverà nemmeno. O sono così primitivi che la crittografia a livello di filesystem è sufficiente a contrastarli, o sono così sofisticati (cioè potenti) che hanno metodi più efficienti per ottenere i vostri dati.

Per la stragrande maggioranza degli utenti, il problema che la crittografia dei dati a riposo risolve è impedire ai ladri che rubano fisicamente il vostro dispositivo di ottenere i vostri dati. Questo è il motivo per cui i ladri intelligenti non contano di ottenere i vostri dati, e invece ricorrono alla ricettazione del dispositivo per denaro. La crittografia basata su file e la crittografia dell’intero disco funzionano entrambe ugualmente bene in questo scenario.

Al contrario, se il vostro avversario è un’autorità governativa (ad esempio le forze dell’ordine), né la crittografia basata su file né quella dell’intero disco vi salveranno. A seconda della giurisdizione, possono legalmente ordinarvi di sbloccare il vostro dispositivo. Quasi ovunque, i governi possono ordinare ai servizi che immagazzinano i vostri dati nel loro cloud di consegnarvi semplicemente ciò che vogliono – e nei regimi repressivi, diciamo solo che hanno modi più diretti e dolorosi per farvi rispettare.

Diciamo, per amor di discussione, che state affrontando un attore governativo, e tutte le tecniche sopra menzionate non hanno funzionato. La crittografia dell’intero disco funzionerebbe solo se il governo non avesse un modo più sofisticato di attaccare il vostro sistema. Questo non è un problema per la maggior parte dei potenti governi del mondo, poiché sono abbastanza avanzati da poter usare la forza bruta o aggirare la crittografia in qualche modo.

Quindi, non ci sono molti casi in cui la crittografia a disco intero vi salverà davvero: quando il vostro nemico è un governo e potete resistere alla tortura fisica, ma il governo non è in grado di fare l’hacking da film d’azione che praticamente ogni nazione del G20 può fare.

Questo non vuol dire che, a seconda del vostro avversario, non c’è niente da guadagnare nel rendere le cose difficili per il vostro attaccante – rendere la vita del vostro attaccante il più difficile possibile è una strategia di sicurezza di vecchia data – ma rendetevi conto che questo è tutto ciò che la crittografia a disco intero vi può garantire. Ma, di nuovo, questo non è quello che quasi nessuno di voi sta guardando.

Crittografia pratica, implementazione impraticabile

Quelli di voi che sono convinti e vogliono indietro le loro prestazioni di lettura-scrittura e la longevità dell’SSD si stanno probabilmente chiedendo dove potete mettere le mani su questa dolce crittografia a livello di file. Beh, è qui che le cose si complicano. Vedete, è difficile impostarlo in pratica.

La ragione principale di questo è che i principali sistemi operativi di consumo sono già crittografati su disco intero. Apple e Google hanno configurato i loro dispositivi mobili per la crittografia full-disk, e negano agli utenti la possibilità di disabilitarla. Anche Apple e Microsoft abilitano la crittografia dell’intero disco per impostazione predefinita, ma entrambi offrono modi per disabilitarla per gli intrepidi.

Per i sistemi operativi desktop basati su Linux (la mia preferenza personale), installare il sistema con la crittografia a livello di file system era facile come selezionare una casella, ma questo sta rapidamente facendo la fine del dodo. Ubuntu ha recentemente deprecato questa opzione di installazione nel suo installatore grafico, lasciando Linux Mint come l’unica distribuzione che conosco che ancora la offre. Anche le distro fai da te come Arch Linux scoraggiano il tentativo di configurare la crittografia a livello di file. Invece, ti guidano verso la crittografia a blocchi, per la quale la documentazione è molto più approfondita.

Se sei disposto a fare tutto il necessario per disattivare la crittografia su disco, ci sono alcune opzioni disponibili per te. Una delle opzioni più robuste è VeraCrypt. Nato dal desiderio di indossare il mantello del defunto TrueCrypt, VeraCrypt è uno strumento grafico per creare strutture di directory criptate sopra un filesystem esistente. Vanta opzioni per velocità di lettura-scrittura alla pari con i filesystem non crittografati, e anche caratteristiche da super-spia come la crittografia negabile, dove i tuoi dati crittografati sembreranno solo un normale spazio inutilizzato sul tuo disco. Un’esplorazione anche solo delle capacità di base di VeraCrypt andrebbe oltre lo scopo di questo pezzo già lungo, ma forse ha la stoffa per un articolo futuro.

Perché allora ho impiegato tutto questo tempo per parlarvi di qualcosa che non è il più (anche se certamente non il meno) accessibile? Fondamentalmente, è importante sapere cosa è possibile in modo da poter fare le scelte più informate, per creare l’esperienza informatica più rispondente alle vostre esigenze. I computer sono infinitamente personalizzabili, quindi non c’è motivo per cui ad un utente debba essere negata la configurazione che è meglio per lui – non conoscere le proprie opzioni è il peggior motivo di questo tipo.

Apprezzare ciò che è possibile è qualcosa di più che vivere la propria migliore vita digitale, ma fornire il supporto, anche se è solo di utenza, agli sviluppatori che lo rendono possibile. Se questo suona come qualcosa che potrebbe rendere la vostra vita migliore, vi dico, andate avanti e armeggiate!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.