Sei sulla pagina 1di 39

Introduzione

Ubuntu 9.04 Jaunty è finalmente arrivato. Ora si può iniziare a parlare più seriamente della
sicurezza del nostro PC e di conseguenza dei nostri dati. Le novità portate in dote da Jaunty
infatti permettono di affrontare il discorso in modo decisamente più completo che non in
precedenza. Essendo il discorso un po' lungo questa volta ho optato per una suddivisione in
più articoli, cinque per la precisione. Tutti appaiono come link in questo post sul mio blog.
Il tema è di quelli interessanti ed importanti, quindi meglio distribuirlo a dosi controllate e
ben digeribili. Tutto quanto descritto in questa breve serie di articoli sulla sicurezza dati non
è ovviamente invenzione mia. Quello che c'era da inventare e pensare è già stato fatto e io
ho solamente preso l'impegno di navigare in rete, raccogliere materiale interessante,
testare tutto quanto, e offrirvelo in forma raccolta e ragionata. A me l'esercizio è servito
parecchio per ampliare i miei orizzonti in questo ambito senza essere diventato per questo
un hacker, così spero possa servire anche a qualcuno di voi. La sicurezza informatica è
materia per specialisti e aver potuto toccare con mano vari aspetti, anche spiccioli, della
stessa, mi ha permesso alla fine di avere un bagaglio di conoscenze maggiori ed una
maggiore consapevolezza. Per proteggere il PC e i nostri dati in modo adeguato non è
necessario spendere denaro in apparecchi o software particolari, e non è nemmeno
necessario avere una laurea in ingegneria informatica: basta lavorare con i mezzi già a
nostra disposizione. Ogni installazione standard di Ubuntu e ogni PC includono tutto quanto
ci serve. Con questa serie di articoli provo a dimostrarvelo.

Ancora una volta non riuscirò mai a ringraziare a sufficienza la buona stella che cinque anni
or sono mi ha portato ad adottare esclusivamente Ubuntu e quindi Gnu-Linux come sistema
operativo. Man mano che Ubuntu cresceva, crescevo anch'io grazie alla sua apertura e
grazie all'enorme e impagabile apporto della sua comunità di utilizzatori. L'argomento che
inizio ad affrontare oggi, la sicurezza dei dati, non fa eccezione: quando mai avrei potuto
imparare e provare tanto con un sistema operativo chiuso? Basti pensare al fatto che il
sistema operativo più diffuso al mondo (per ora), fino alla sua versione XP non imponeva
una vera gestione delle user, e tutti hanno sempre lavorato tranquillamente con diritti
amministrativi senza rendersi minimamente conto dei pericoli. Con Vista non saprei dire se
le cose sono migliorate perché non l'ho mai usato, ma la sostanza delle cose non cambia: il
confronto con Linux che ha da sempre previsto una rigorosa separazione dei ruoli fra user
amministrative e user normali è impietoso. Il peggio però, almeno secondo me, è che anni
di uso scellerato del PC hanno portato alla convinzione che è così che si deve operare.
Quando un utente Windows prova Linux la prima cosa che chiede è: ma la password la
devo inserire tutte le volte? e la seconda domanda che segue subito dopo è: ma c'è un
modo per entrare senza? Ecco, questi sono i risultati di anni e anni di dominio sul mercato
da parte di prodotti scadenti che diffondono una cultura informatica altrettanto scadente.
L'utente tipo di Windows vede l'uso di una password come un fastidio piuttosto che come
un incremento della sicurezza del suo PC. Poi ci si meraviglia se ci sono tanti virus che
hanno successo!
È dunque stata rilasciata la nuova versione di Ubuntu 9.04 Jaunty Jackalope (se volete
sapere come è fatta una Jackalope andate qui: gli animali di Ubuntu), e fra le novità che ci
porta vi è anche una funzionalità chiave per la sicurezza dei dati: la crittografia
generalizzata. Ne parleremo in seguito naturalmente. Qui mi limito solo a sottolineare
come l'implementazione di questa funzionalità, tuttora in corso per raggiungere la
completa maturità con la prossima versione di Ubuntu 9.10, l'ho potuta seguire grazie agli
articoli sul blog di uno degli sviluppatori (vedi link alla fine dell'ultimo articolo). Questa
possibilità è unica del mondo open source. Con i prodotti proprietari e chiusi le versioni
vengono rilasciate assieme alle caratteristiche implementate mantenendo il segreto fino
all'ultimo o rilasciando notizie controllate. Nel nostro mondo aperto, al contrario, la crescita
del prodotto che usiamo la possiamo seguire passo passo, la possiamo discutere, e la
possiamo anche aiutare avendone le capacità tecniche. Cosa c'è di meglio? Cosa c'è di più
intellettualmente appagante di questa crescita comune e consapevole? Bene. Ora termino
qui la parte di propaganda e mi addentro nell'argomento annunciato da titolo.
All'argomento sicurezza dei dati oggigiorno si associa molto spesso ed esclusivamente il
tema virus perché è il più mediatizzato e spettacolarizzato. A scadenze regolari siamo
bombardati da messaggi provenienti da tutti i tipi di media che ci mettono in allarme per il
virus tal dei tali, più terribile di tutti quanti lo hanno preceduto, che può letteralmente
spazzare via i nostri PC rovinando irrimediabilmente tutti i dati, prelevandoli e diffondendoli
in rete, e via discorrendo con sfracelli vari. Immancabilmente ci viene detto di aggiornare
l'antivirus alla versione più recente (pagando ovviamente), e immancabilmente a tutti
viene una paura blu tale da fare passare la voglia di accendere il PC finché non viene
segnalata la fine dell'emergenza. È un po' come essere in guerra con i bombardamenti:
suonano le sirene, ci si rifugia sotto terra, risuonano le sirene e si torna alla vita di tutti i
giorni. Vero che la minaccia dei virus è un tema serio, almeno per il sistema operativo
Windows che ne è particolarmente colpito, ma forse c'è un altro aspetto della sicurezza dei
dati che viene troppo poco evidenziato: l'accesso non autorizzato al nostro PC non
mediante un virus o altro malware, ma tramite manipolazione diretta. Cosa intendo?
Leggete qui sotto e capirete.

Descrizione delle situazioni e dei


potenziali pericoli
Scenario 1:
i ladri ci entrano in casa e portano via cose di valore, ma anche il nostro PC perché anche
loro ormai sanno che il PC in sé costa poco, ma quello che contiene può valere una fortuna.

Scenario 2:
siamo in viaggio d'affari e dei topi d'albergo fanno irruzione nella nostra camera rubandoci
il portatile.

Scenario 3:
siamo ad un convegno e lasciamo il nostro portatile incustodito. Torniamo al nostro posto e
il portatile è sparito.

Scenario 4:
teniamo in automobile il nostro portatile. Ci fermiamo in autostrada a fare una pausa e al
ritorno ci accorgiamo che hanno rotto i vetri della vettura e il portatile è sparito.

Scenario 5:
siamo andati ad un convegno, una fiera, un incontro qualsiasi con il nostro portatile e
stupidamente l'abbiamo scordato sul posto. Ci accorgiamo quasi subito della dimenticanza,
ma è troppo tardi. Il portatile è già sparito.

Scenario 6:
di tutti gli scenari precedenti possiamo offrire un'alternativa: il PC non viene portato via
fisicamente, ma solo i suoi dati vengono copiati e rubati (sul posto o remotamente). Questo
caso è ancora peggiore in quanto non ci possiamo rendere subito conto del furto perché
l'apparecchio è ancora intatto al suo posto.
Questo campionario di scenari è tutt'altro che inverosimile. Succedono tutti i giorni queste
cose nevvero? Anche senza essere protagonisti di un film di spionaggio è sempre possibile
che il nostro PC attiri sguardi indiscreti e indesiderati. Se poi è un modello di portatile
recente e costoso è ancora più facile. Altri scenari li potete immaginare voi stessi, ma la
sostanza è sempre quella: il PC e di conseguenza i dati in esso contenuti possono essere
rubati come qualsiasi altro bene materiale. Esiste dunque una sicurezza più immediata
della quale preoccuparsi: quella fisica del nostro PC e quella dei dati in esso custoditi. È
sufficiente una stupida dimenticanza da parte nostra e il danno è incalcolabile. Laddove un
virus può forse colpirvi rovinandovi i dati, un accesso non autorizzato o un furto possono
sicuramente rovinarvi la vita o quantomeno crearvi grossi grattacapi. Nel mondo d'oggi, ma
anche nel mondo di tutti i tempi per la verità, le informazioni, anche se impalpabili in se
stesse, sono preziose come e più dell'oro, come e più dei diamanti. Tutti arriviamo a capire
quanto potere possono dare le informazioni a chi le possiede. Entrare in possesso di un PC,
o comunque accedervi, è molto allettante per un malintenzionato del terzo millennio
perché non si sa mai quali informazioni custodisce e cosa si potrebbe ricavarne. Di
malintenzionati è pieno il mondo: da quello che si ritrova un PC fra la refurtiva e ci prova, a
quello che si specializza nel rubare informazioni ed è un tecnico esperto.

E allora chiediamoci: se disgraziatamente il nostro PC finisce nelle mani sbagliate, se


stupidamente lo lasciamo incustodito e qualcuno non può fare a meno di toccarlo e provare
a curiosare, siamo preparati a rendergli la vita difficile?

Sui nostri PC archiviamo documenti di lavoro, privati, intimi, e-mail, scritti, foto, video,
ricordi, insomma oggi come oggi violare un PC equivale a violare la nostra privacy. Equivale
al ladro "vecchia maniera" che irrompe nel nostro appartamento e spacca tutto per portarsi
via qualcosa. Per il povero proprietario o inquilino è oltremodo scioccante vedere il danno,
sentirsi violato nel proprio spazio più intimo, la casa. Ebbene permettere ad un estraneo di
accedere ai dati del nostro PC è la stessa cosa. Molti non ci pensano, o non ci fanno caso,
ma nel nostro mondo odierno, dove tutto è pubblico (blog, social networks, ecc.), i nostri
dati privati sono come il nostro appartamento. Se i ladri ci entrano in casa ci sentiamo
violati nella nostra privacy, ci fa male. Nel mondo virtuale non è diverso, ma forse sentiamo
meno questa sensazione perché non ci vengono toccati oggetti reali, concreti. In realtà non
è così. Oltre ai possibili grattacapi causati dall'estraneo che ormai conosce tutti i nostri
segreti (non necessariamente qualcosa da nascondere intendiamoci, ma la nostra vita
privata si chiama così proprio perché dovrebbe essere solamente nostra), ci sarebbe senza
dubbio un grande senso di perdita, di messa a nudo estremamente spiacevole. Nel mondo
sono milioni e milioni i PC utilizzati in tutte le forme ai quali milioni e milioni di persone
affidano i loro affari, i loro affetti, i loro ricordi, i loro contatti sociali. Ma quanti proprietari
sono veramente coscienti del potenziale pericolo e danno che potrebbe causare loro un
furto del PC, o comunque un accesso non autorizzato? Basti pensare al fatto che ognuno di
noi sicuramente conserva una rubrica più o meno estesa di contatti con altre persone, della
cerchia di conoscenti che a loro volta, causa la nostra negligenza, finirebbero per essere
conosciuti all'estraneo di turno.
Spaventoso vero? Mi chiedo se sono solamente realista, o se sto diventando pessimista
invecchiando. Fatto sta che grazie al mondo Linux, aperto e disponibile, ho imparato
qualche accorgimento di relativamente facile applicazione che permette di limitare
ragionevolmente gli attacchi alla nostra sfera privata custodita nel nostro PC. La cosa
migliore resta evidentemente quella di non perdere, scordare, farsi rubare il PC, ma si sa
nella vita capita di tutto e quindi meglio prevenire per tempo. Evitiamo qui di combattere
contro agenti stile 007 super dotati tecnologicamente che solo nei film riescono sempre ad
intrufolarsi dappertutto, qualsiasi sia il sistema di sicurezza in atto. Mi limito a parlare di
metodi di protezione realistici e alla portata di tutti, ma che hanno la loro bella efficacia.
Paranoia? Non credo, visto che il mondo, tra PC portatili, netbooks e smartphone va
sempre più nella direzione di essere sempre connessi con i propri apparecchi portati in giro
per il mondo con sé.

Andiamo ad iniziare il nostro viaggio. Nel prossimo articolo parleremo dell'attivazione di un


primo baluardo di difesa che agisce ancora prima che il PC sia realmente avviato.

Applicare una password al BIOS del PC e al menu di boot GRUB


Dopo aver introdotto il tema con il primo articolo passiamo ora alle possibili misure di
protezione del nostro PC e di conseguenza dei nostri dati. In questa seconda parte ci
occupiamo di proteggere il PC ancora prima dell'avvio vero e proprio con una password
applicata a livello di BIOS e una password applicata al menu GRUB.

Il BIOS
Il BIOS è un piccolo software contenuto in una memoria nel PC che si occupa dei primissimi
istanti dopo l'accensione. Fa da tramite fra l'hardware del PC e il sistema operativo
consentendo a quest'ultimo di prenderne il controllo per poi svolgere tutti i compiti che ben
conosciamo. È mediante il BIOS che possiamo impostare alcune caratteristiche del nostro
PC come la sequenza delle periferiche durante il boot (prima il CD, poi il disco fisso, ecc.). Il
BIOS, fra le altre cose, include anche la possibilità di essere protetto da password. Se si
attiva questa opzione il PC non può essere avviato se prima non gli si fornisce la password.
Pensate ad una bella password, accendete il PC e premete subito il tasto preposto ad
accedere alle opzioni del BIOS. Questo tasto varia da PC a PC quindi non posso dirvene uno
prefissato (per me ad esempio è F10). Scegliete l'opzione menu per impostare la password
e immettete quella che avete appena pensato. A dipendenza del tipo di BIOS possono
anche esserci più password da impostare (es. password di configurazione e password di
accesso). Già che ci siamo le impostiamo tutte per andare sul sicuro. Abbiamo detto che
nel BIOS è impostata la sequenza di boot. Solitamente quando comperiamo un PC, per
praticità, l'unità CD/DVD è la prima periferica ad essere messa nella sequenza in modo da
facilitare chi deve far partire il PC dal CD. Questo però, come vedremo presto, può causarci
dei problemi con le versioni Live-CD di Linux. Tutte le distribuzioni, Ubuntu compresa,
offrono la possibilità di provare il sistema operativo facendo partire il PC da un CD senza
toccare il disco fisso esistente. Tutto bello e interessante senonché una sessione Live
permette di fare ben di più. Ecco che per nostra sicurezza è meglio modificare la sequenza
di boot nel BIOS mettendo il disco fisso come prima unità di partenza. In questo modo
nessuno può più far partire il PC con un Live-CD senza conoscere la password del BIOS e
modificare così temporaneamente l'unità di partenza. Una volta attivata la password al
successivo riavvio del PC sarà la prima cosa richiesta. ATTENZIONE: non scordate mai
questa/e password altrimenti saranno problemi grossi per poter accedere di nuovo al vostro
PC!
Tutto bene quindi. Il nostro PC è ora ben protetto e possiamo anche finire qui il nostro
viaggio nel mondo della sicurezza? Veramente no.
La password nel BIOS scoraggerà molti malintenzionati, ma non tutti. La memoria del BIOS
è tenuta in vita da una batteria nel PC. Aprendo il PC e trovando dove è collegata la
batteria è possibile staccarla cancellando le informazioni da noi immesse e riportare il BIOS
allo stato originale, o comunque è possibile resettare in qualche modo il BIOS. Risultato?
Niente più password e accesso libero al PC. Certo bisogna avere qualche conoscenza e
attrezzatura per fare tutto ciò. Non è un lavoro per tutti aprire un PC e lavorarci dentro
senza romperlo sapendo dove mettere le mani, ma è comunque possibile. Il BIOS protetto
da password è una buona misura da adottare, ma non può essere la sola. È un primo
bastione, ma niente più. Il grosso delle truppe deve essere posizionato altrove.

Il menu GRUB
Il GRUB è quel menu che può essere visualizzato nei primi secondi del processo di boot
premendo il tasto ESC. Contiene tutte le opzioni per far partire il sistema operativo, fra le
quali ci possono essere più versioni di kernel se installate e presenti contemporaneamente,
oppure ancora le opzioni di recovery che permettono di analizzare e correggere i problemi
del sistema se questo non riesce a partire normalmente. In questo menu vengono
presentati anche altri sistemi operativi se installati a fianco di Linux: un classico è il dual-
boot con Windows.

Ipotizziamo ora che il BIOS del PC non abbia password, oppure che il malintenzionato di
turno sia stato tanto bravo da eliminare l'ostacolo. Il PC è ora libero di partire, di fare il
boot. Ed ecco che si presenta il prossimo ostacolo, quello che dà tanto fastidio all'utente
Windows: la password di login nella sessione (perché l'avete impostata nevvero?). Anche se
il PC esegue il boot appare quanto prima la maschera di login dove gli viene richiesto il
nome dell'utente e la sua password. Per uno sconosciuto quindi in realtà i problemi sono
due: conoscere la o le user presenti nel PC e le rispettive password. Affinché i problemi
rimangano due qui devo dare subito un primo consiglio: evitate di usare un tema GDM (la
grafica di presentazione della maschera di login) che elenchi automaticamente le user.
Questi temi sono belli, ma eliminano uno dei problemi per lo sconosciuto. Se le user sono
già elencate gli basta scegliere e gli rimane solo il problema della password. Quanto
appena detto dimostra già in prima istanza l'importanza di usare una password di sessione,
e avremo ancora in seguito altre prove in suo favore. Secondo consiglio: evitate
assolutamente di usare l'opzione di auto login per togliervi il fastidio di dover digitare una
password. Se lo fate eliminate a chi vuole accedere ai vostri dati anche il secondo problema
e così potrà entrare nel PC esattamente come foste voi stessi. Costruirsi una password
personale, anche complessa ma di facile memorizzazione, non è poi così difficile e ne vale
la pena, credetemi.

Passiamo ora a descrivere uno scenario nel quale aggiriamo la password di sessione
usando il menu GRUB. Ma come?! Direte voi. Tutta sta tirata per dirci che è importante
avere una password di sessione, e poi ci stai per spiegare come aggirarla? Ebbene sì.
Bisogna essere coscienti che ogni sistema operativo, ogni sistema informatico, prevede in
un modo o nell'altro la possibilità di poter accedere al sistema stesso senza l'uso di una
password, oppure permettendo di reimpostare la password originale. Perché? Perché siamo
esseri umani che possono anche scordarsi una password o sbagliarla di continuo facendosi
tagliare fuori dal sistema. Perciò deve sempre essere possibile poter accedere in qualche
modo ad un sistema anche se il diretto interessato non sa più a che santo votarsi. In
qualsiasi parte del mondo dove esiste un sistema informatico esiste sempre almeno un
tecnico sistemista abilitato ad accedere in vece vostra per reimpostare una password. Ma
allora la sicurezza sta nelle mani di questi "tecnici sistemisti"? In pratica semplificando e
riducendo il discorso all'osso, sì. Può sconcertare un attimino di primo acchito, ma bisogna
tener conto del fatto che nelle organizzazioni serie ed importanti sono sempre previste
delle procedure rigorose per poter effettuare operazioni di questo tipo atte ad evitare ogni
abuso. Non è che questi tecnici hanno in mano il mondo e quando gli pare e piace
accedono dove vogliono! È come se pensassimo che tutti quelli che lavorano alla Zecca si
possano arricchire facilmente, tanto i soldi li fabbricano loro e li hanno lì a portata di mano.
Invece non succede mai perché anche lì ci sono procedure rigorose che provvedono ad
annullare le "tentazioni". In fin dei conti quando affidiamo i nostri dati alle ormai famose
nuvole (cloud) di server sparsi per il mondo per salvarli senza fastidi con sistemi tipo
DropBox chi ci garantisce che i sistemisti non accedano ai nostri dati e ne facciano un uso
improprio? Andate a leggere il forum di DropBox e vedrete quanti utenti di tutto il mondo si
pongono le stesse domande. A parte la serietà di un'azienda e quindi il grado più o meno
elevato di fiducia che si può assegnargli, c'è ancora un punto a favore di noi normali utenti:
la concorrenza e la delicatezza del servizio offerto. Aziende come DropBox ce ne sono a
decine che offrono servizi paragonabili. Se succede anche solo un caso di abuso sui nostri
dati, sicuramente l'azienda non potrebbe sopravvivere. Gli utilizzatori scapperebbero a
gambe levate appena saputo che i dati non sono al sicuro come promesso. Ecco questo è
davvero un bel deterrente per quelle aziende che vogliono vivere offrendo un servizio così
delicato e prezioso.

Ma cosa succede invece con i nostri PC privati dove il tecnico sistemista siamo noi, e
magari lo facciamo per tutta la famiglia, i parenti, i conoscenti, gli amici? Qui non c'è una
regola aziendale stabilita che salvaguardia la sicurezza e la privacy, qui si va sulla fiducia
del conoscente, sulla sua certa buona fede. Se qualcuno a noi vicino si scorda la password
ecco che interveniamo noi per reimpostarla. Come? Esattamente con lo stesso sistema che
potrebbe usare il malintenzionato e sconosciuto di turno per accedere ai nostri dati e
rubarceli.
Scenario:
si accende il PC e usando il tasto ESC nei primi momenti della procedura di
boot si accede al menu GRUB. Da questo menu scegliere l'opzione di boot in
"recovery mode":

appare un menu di recovery dal quale scegliere l'accesso alla console "root"

Una volta che appare il prompt della user root tutto è possibile. Anche cambiare una
password senza conoscere quella vecchia. Usare il comando "passwd user", dove user sta
per la user bloccata, e impostare la nuova password. La procedura è molto semplice e
veloce come mostrato qui sotto:
A questo punto la user bloccata possiede una nuova password. Se siamo noi ad aver fatto il
lavoro avremo un parente o un amico contento e felice di poter accedere nuovamente ai
propri dati. Se invece è il malintenzionato di turno si sarà aperto la strada per eseguire
tranquillamente la login nella sessione con la nostra user e tutti i diritti sui dati. Se proprio
non conosco nulla del PC in mio possesso posso dapprima usare il comando "cat
/etc/passwd" per elencare le user del sistema e scegliere quelle alle quali modificare la
password. È un gioco da ragazzi e il disastro è completo!

Come possiamo impedire che questo accada? Semplice: mettiamo una password anche al
menu GRUB in modo che non si possa più accedere così facilmente all'opzione di recovery.
Così facendo impediamo che chiunque trovi (o rubi) il nostro PC possa accedervi a colpo
sicuro. Ecco come procedere:

Prima di tutto dobbiamo preparare una password. Dico questo perché questa password
andrà inserita nel file con le opzioni di menu di GRUB che è un semplice file di testo in
chiaro. Ovvio che una password messa in chiaro in un file di questo tipo servirebbe a ben
poco. Perciò la criptiamo prima e la inseriamo poi. Aprire un terminale e far partire
l'interfaccia minimale di GRUB con il comando "grub". In seguito usare l'utilità "md5crypt"
per introdurre la nostra password e ottenerne la versione criptata come mostrato
nell'immagine seguente:

Tutto quanto segue la voce "Encrypted" è la nostra password criptata e irriconoscibile.


Copiarla e tenerla da parte. Uscire dall'interfaccia di GRUB con CTRL+C. Aprire come utente
amministratore mediante comando "sudo" l'editor Gedit e accedere in modifica al file
/boot/grub/menu.lst. Questo è il file che descrive il menu di GRUB. Facciamo scorrere il
contenuto fino al paragrafo dove si parla di password e attiviamola inserendo la nostra
stringa criptata come mostrato nell'immagine seguente:

Il file del menu di GRUB è ben documentato con degli esempi per ogni tipo di voce. Noi
abbiamo inserito la voce password senza il commento in modo da attivarla. Introdurre la
password però non è sufficiente. Bisogna ancora specificare dove applicarla. Infatti in GRUB
è possibile scegliere quali voci del menu bloccare e quali no. Per quanto ci riguarda
vogliamo bloccare solamente le voci di boot in "recovery mode" perché sono proprio queste
ad essere pericolose per l'incolumità dei nostri dati. Le voci di partenza normale sono già
protette dalla password di sessione e non ci preoccupano. Una cosa alla quale prestare
attenzione è che il menu di GRUB può variare nel tempo, quando ad esempio si aggiungono
versioni di kernel. Ogni versione porta con sé due voci: una di partenza normale e una di
recovery. Per evitare di dover ritoccare di volta in volta il file menu.lst (poco pratico e poi ci
si scorda facilmente) per proteggere con password ogni nuova voce di recovery è possibile
associare la password genericamente a questo tipo di voce del menu. Far scorrere il
contenuto del file fino al paragrafo delle "alternative automagic boot options" e mettere a
"true" l'opzione di lock come mostrato nella figura seguente:
A differenza dell'opzione della password queste opzioni non vanno tolte dal commento.
Sono già riconosciute così e vanno solo attivate o disattivate. Nel nostro caso attiviamo
l'opzione "lockalternative". Se si è allergici al terminale (che io trovo così "hacker-style" e
affascinante proprio perché sempre di più raro utilizzo), c'è una comoda GUI per modificare
le opzioni del menu GRUB. È già presente e pronta nei repository di Ubuntu e i dettagli
sono qui: https://launchpad.net/startup-manager. Abbiamo così terminato la preparazione
del menu e possiamo aggiornarlo con il comando "sudo update-grub".
Per provare il tutto facciamo ripartire il PC e visualizziamo il menu GRUB con il solito tasto
ESC. Scegliamo l'opzione recovery e premiamo ENTER. Ecco cosa viene visualizzato:
Non è più possibile accedere a questa opzione se prima non si fornisce la password. Allora
si torna al menu GRUB e si legge il commento in fondo che dice di premere il tasto "p" per
poter introdurre una password. Lo facciamo e appare in basso allo schermo la voce
"Password:" dove possiamo digitare la nostra parola segreta:
Se sbagliamo la password ovviamente ci viene detto e torniamo al punto di partenza. Se
invece inseriamo quella corretta le opzioni di recovery del menu vengono sbloccate e
tornano disponibili.

Adesso abbiamo tutte le opzioni del menu GRUB nuovamente disponibili come prima di
avere una password.

Benissimo. Adesso ci sentiamo più tranquilli: abbiamo protetto il BIOS e anche il GRUB.
Nessuno può più introdursi nel nostro PC senza conoscere qualche password. Giusto? Mica
tanto.
Vero è che la maggior parte dei malintenzionati occasionali li abbiamo ormai battuti ed
esclusi a questo punto, ma le persone sanno essere ostinate e gli sconosciuti con qualche
conoscenza in più ci sono e possono ancora fare del male al nostro PC e ai nostri indifesi
dati. Come? Usando un Live-CD. Ebbene sì. Uno dei fiori all'occhiello dei sistemi GNU/Linux,
la possibilità di poter provare il sistema senza necessariamente doverlo installare, porta
anche qualche grattacapo di sicurezza. Una volta partita una sessione Live è come essere
attivi con una user amministrativa. Niente ci impedisce di agire come tale e andare a
curiosare nel disco fisso del PC che ci ospita. Cosa significa questo? Se la sequenza di boot
nel BIOS lo permette perché non l'avevamo protetta con password, o perché qualcuno è
riuscito a resettare il BIOS, è possibile far partire tranquillamente il PC con il CD-Live e poi
visualizzare i nostri dati sul disco fisso montando le partizioni esistenti con un semplice clic
in Nautilus. Ancora una volta quando ci sembra di essere ben protetti ci accorgiamo che
esiste un modo facilissimo per rubarci informazioni preziose. Usare il Live-CD è ancora più
subdolo perché non lascia tracce. Si può entrare nel PC, copiare i dati su una penna USB o
un disco USB tascabile, e uscire lasciando il PC intatto. Anche se siamo stati previdenti
impostando dei diritti di accesso restrittivi sulle nostre cartelle conta poco perché nella
sessione Live basta usare il comando "sudo" e tutto ci viene aperto senza nemmeno dover
usare una password. Oltre a ciò non scordiamo nemmeno il fatto che con la sessione Live è
anche possibile creare nuovi utenti e quindi possiamo addirittura creare un utente con lo
stesso ID e lo stesso ID di gruppo di quello originale sul disco fisso (il primo utente che
viene creato durante l'installazione ha l'ID 1000 così come il suo gruppo). Non serve che
l'utente creato abbia lo stesso nome e la stessa password, basta che abbia gli stessi ID di
user e gruppo per poter accedere ai nostri dati come mostrato nelle immagini seguenti:

Impostando dei diritti restrittivi sulla nostra home (nell'esempio la cartella "nicola") per
permettere alla sola nostra user di accedere ci troviamo davanti ai simboli di blocco
dell'accesso, la "x" e il lucchetto. Provando ad aprire comunque la cartella ci appare il
messaggio di errore seguente:
Vediamo che in effetti l'accesso ci è impedito e le proprietà della cartella ci dicono che essa
appartiene ad una user con ID=1000 e gruppo con ID=1000. Proprio quello che ci
aspettiamo da una normale installazione. La user "nicola" è stata creata con il suo gruppo
al momento dell'installazione di Ubuntu e gli è stato assegnato l'ID 1000. Ora possiamo
creare con la nostra sessione Live un nuovo utente che prenderà per difetto un ID=1000
così come il suo gruppo. Ecco qua:
Abbiamo appena creato una user con nome "pallino" e il suo gruppo entrambi con
ID=1000. Ora non ci resta che accedere in sessione con questa user per avere accesso
completo ai dati della home "nicola".
Ecco che magicamente i simboli di blocco dalla cartella "nicola" sono spariti e dalle sue
proprietà vediamo che è diventata proprietà della user "pallino". Da questo momento in
avanti abbiamo accesso libero e completo a tutti i dati sul disco fisso esattamente come se
fossimo l'utente "nicola" originale. Niente male vero?

Ma non è tutto. Esiste anche la possibilità, sempre tramite Live-CD, di annullare lo sforzo
che abbiamo profuso nell'attivare la password per il menu GRUB. Come? Ecco qua i passi
da fare:

• avviare la sessione Live con un LiveCD


• accedere al menu di GRUB (sudo gedit /boot/grub/menu.lst)
• inibire l'opzione che fa chiedere la password (commentare la voce "password" e
mettere a "false" l'opzione di lock delle voci di recovery)
• terminare la sessione Live e togliere il LiveCD
• avviare il PC scegliendo una sessione "recovery mode" che ora senza password è
disponibile
• reimpostare la password della user desiderata
• fare un normale boot con la nostra password

Abbiamo già fatto un bel po' di strada, ma abbiamo ottenuto relativamente poco rispetto
allo sforzo profuso. Stiamo parlando di almeno tre password, una nel BIOS, una nel GRUB
e una di sessione, senza per questo essere riusciti a proteggere con una certa garanzia il
nostro PC. Ne vale la pena allora? Direi proprio di sì. Come già detto nel primo articolo,
proteggere i nostri dati privati è come proteggere noi stessi e la nostra vita; ne vale
sempre la pena. Quanto imparato ed impostato finora ci aiuta in ogni caso a proteggere il
PC dalla stragrande maggioranza dei malintenzionati senza conoscenze particolari in
GNU/Linux e sui PC in generale. Per proteggerci anche da chi è un po' più specializzato
dobbiamo proseguire il nostro viaggio con il terzo articolo della serie.

Criptare la directory home


Un primo accenno a questa promettente tecnologia l'abbiamo già avuto nell'ottobre scorso
con l'arrivo della versione precedente di Ubuntu, la 8.10. Con questa versione è possibile
creare una cartella dal nome prefissato in "Private" che applica la crittografia ai dati in essa
contenuti. Cosa significa? La crittografia, come si può leggere nelle pagine di wikipedia, è
una tecnica tutt'altro che recente. Veniva già applicata nel mondo antico. Lo scopo è quello
di nascondere le informazioni a chi non deve vederle pur mantenendole comprensibili a chi
invece le deve vedere. Manco a dirlo lo stimolo per queste pratiche è venuto dal mondo
militare e non è difficile capire il perché. La crittografia con il tempo è diventata una vera
scienza e con l'avvento di computer sempre più potenti ha anche dato vita ad una gara tra
chi propone metodi sempre più sofisticati e chi sfrutta la velocità di elaborazione dei
calcolatori per sviscerarne "empiricamente" i segreti. Semplificando moltissimo il tutto si
può dire che la crittografia si basa su un sistema di chiavi che usate in un senso rendono
incomprensibile l'informazione, e usate nell'altro fanno ritornare leggibili i dati. So di essere
stato grossolano nel descrivere il sistema, ma insomma all'utente normale quello che
importa è il risultato. Allora diciamo che i dati presenti nella cartella Private sono leggibili
solamente alla nostra user con la nostra password di sessione. Ebbene sì, la buona vecchia
password di sessione! Infatti il sistema adottato in Ubuntu sfrutta la nostra password per
creare casualmente la chiave di cifratura dei dati. Quindi password di sessione e chiave per
rendere illeggibili, rispettivamente leggibili i nostri dati sono indissolubilmente legate. Ecco
qua che salta fuori come promesso l'importanza della password di sessione. Senza di essa
non si va lontano.
Con l'arrivo di Ubuntu 9.04 il concetto è stato ampliato ed ora è possibile creare user con
tutta la home criptata. Dal punto di vista dell'utente comune bisogna dire che la tecnica
non è ancora completamente integrata nella gestione con interfaccia grafica. Infatti sono
necessari dei comandi a terminale, ma il valore aggiunto è così elevato che vale senz'altro
la pena aprire il terminale per pochi minuti. A quanto si legge in rete questa funzionalità
arriverà a completa maturità il prossimo autunno con l'arrivo di Ubuntu 9.10 Karmic Koala.
Attendiamo fiduciosi e sicuri di non rimanere delusi. Il software alla base della cartella
Private è lo stesso di quello usato per crittografare l'intera home (che è pure essa una
cartella come qualsiasi altra), quindi quanto spiegato per l'una vale anche per l'altra.
Vediamo dapprima come si fa a creare una user con la home criptata e in seguito
discuteremo l'effetto di tutto ciò sulla sicurezza del nostro PC e dei dati.

Prima di poter fare qualsiasi cosa è necessario installare il pacchetto ecryptfs-utils che
contiene tutto il necessario alla crittografia. Aprire Synaptic ed installare il pacchetto se già
non lo è. In seguito è necessario aprire un terminale per aggiungere una nuova user con
l'opzione della home criptata. Come detto in precedenza questa opzione non è ancora
disponibile nell'interfaccia grafica di gestione dei gruppi e degli utenti
(Sistema/Amministrazione/Utenti e gruppi). Nell'immagine seguente l'esecuzione del
comando:
Con il comando <sudo adduser --encrypt-home cripton> chiediamo al sistema di
aggiungere una nuova user dal nome "cripton" che abbia la sua home crittografata. La
procedura parte creando la nuova user con ID=1001 e il suo gruppo "cripton" pure lui con
l'ID=1001. Subito dopo viene agganciata la procedura di crittografia e viene generata la
chiave (mount-passphrase) per cifrare i dati. La parte di testo visualizzata fra due righe di
asterischi è estremamente importante. Qui è visualizzata in chiaro la mount-passphrase o
chiave che permette di montare, crittografare e de-crittografare la cartella home. Come
ben specificato nel testo bisogna custodire gelosamente e in posto sicuro questa chiave
perché è l'unico modo per poter recuperare i propri dati in caso di problemi (nel quinto
articolo vedremo come). Non è nemmeno possibile sostituire questa mount-passphrase
con un'altra se prima non si sono salvati i dati in forma non crittografata per poi rimetterli
nella home crittografata con la nuova chiave. Questo concetto è molto importante da
capire e tenere presente: i dati sono salvati in una forma crittografata che è stata costruita
sulla base della mount-passphrase e quindi, finché restano crittografati, non possono
essere disgiunti da essa altrimenti non riusciremo mai più a leggerli. Per questo motivo
voler cambiare la mount-passphrase significa dover dapprima estrarre tutti i dati dalla
home e salvarli in chiaro, cioè non crittografati, e solo dopo crearsi una nuova mount-
passphrase da applicare alla home. Infine sarà possibile rimettere i nostri dati al loro posto
crittografandoli nuovamente sulla base della nuova chiave. Questa chiave è strettamente
legata alla nostra password di login e lavora in coppia con essa. La password di login serve
ad avere accesso alla mount-passphrase, la quale a sua volta serve a poter vedere i nostri
dati. La password non serve a nulla senza la chiave e viceversa. Inutile dire che non serve a
nulla salvare la mount-passphrase nel PC stesso. Meglio magari stamparla o salvarla su un
altro supporto staccato dal PC. La procedura di creazione della nuova user prosegue e
termina chiedendo di assegnare una password, dare il nome esteso dell'utente, e, se si
vuole, altri dati di contorno. Al termine abbiamo dunque una user con la sua home criptata
che viene elencata come qualsiasi altra nell'interfaccia grafica di gestione utenti e gruppi.

A questo punto si possono modificare i diritti della nuova user facendola diventare
amministratore in modo che possa essere quella principale di lavoro. Uscendo dalla
sessione della user corrente ed entrando in quella nuova appena creata (cripton) non ci
accorgiamo di nulla. Possiamo lavorare come sempre, creare documenti, elaborare
immagini, caricare ed ascoltare musica. Le cose cambiano se tentiamo di accedere ai dati
archiviati in questa home dal di fuori della sua sessione. A scopo didattico e dimostrativo ci
proviamo comunque e i risultati ci dimostrano che ora i dati non sono più liberamente
leggibili. Ecco qua un paio di immagini esemplificative:
Questo è il risultato del tentativo di aprire un'immagine jpg crittografata.
E questo invece è il risultato dell'apertura in OpenOffice di un documento crittografato. Non
si capisce nulla.

I dati sono scritti sul disco fisso in forma crittografata usando la chiave legata alla nostra
password di sessione, cioè la mount-passphrase spiegata sopra. Qualsiasi altro tipo di
accesso, Live-CD o meno, comporta l'impossibilità di poter leggere in chiaro il contenuto
dei nostri dati. Il massimo che si può arrivare a fare è accedere all'elenco dei file archiviati,
ma niente più. Anzi, è anche possibile criptare i nomi dei file come vedremo più avanti,
quindi per il malintenzionato di turno sarà ancora peggio.

Volendo riassumere possiamo dire che la crittografia dell'intera home si basa su un sistema
a doppia chiave dove: la password di login permette di accedere alla mount-passphrase
archiviata nella cartella ~/.ecryptfs (questo è un link alla vera cartella che si trova in
/var/lib/ecryptfs/cripton), che a sua volta ci apre il contenuto in chiaro della home. Da qui
l'importanza di avere una buona password di login, mentre per la ben più lunga e
complessa mount-passphrase ci pensa il sistema a crearla e gestirla.
Prima abbiamo sottolineato l'importanza di conservare la mount-passphrase per i casi di
emergenza. Se proprio ci siamo scordati di salvarla al momento di creare la nuova user
possiamo comunque recuperarla con il seguente comando a terminale:

cripton@nicola-laptop:~$ ecryptfs-unwrap-passphrase
~/.ecryptfs/wrapped-passphrase <== questo è il file che contiene
la mount-passphrase
Passphrase: <== qui si mette la password di login
Warning: Using default salt value (undefined in ~/.ecryptfsrc)
98305ad145b92d3634c1b7357dccc6d9 <== questa è la mount-passphrase
ritornata dal comando
cripton@nicola-laptop:~$
Il nome prefissato del file che contiene la mount-passphrase è "wrapped-passphrase" e non
lo si deve cambiare perché il sistema ecryptFS lo cerca e si aspetta di trovarlo così.
Prendiamo la mount-passphrase visualizzata e salviamola in un posto sicuro. In caso
d'emergenza ci servirà per poter accedere nuovamente ai nostri dati. Senza di essa i dati
sono irrimediabilmente illeggibili per chiunque e quindi perduti. Parleremo più diffusamente
di questi aspetti nel quinto e conclusivo articolo di questa serie perché è sì importante
proteggere i nostri dati, ma lo è altrettanto garantirsi di poterli sempre avere a
disposizione.

Se non fosse sufficiente l'avviso nel terminale, la prima volta che accediamo alla nuova
user con la home criptata dopo qualche istante appare la seguente finestra che ribadisce
ulteriormente l'importanza di conservare la nostra mount-passphrase:
Nella finestra si ribadisce quanto già spiegato sopra: quando tutto funziona normalmente
alla login la home viene de-crittografata automaticamente, mentre la mount-passphrase è
necessaria solo in caso d'emergenza. Premendo il pulsante "Esegui questa azione ora"
viene visualizzato un terminale con la chiave in chiaro da copiare e salvare altrove.

Il comando eseguito è il medesimo che abbiamo mostrato sopra.

Se per un qualsiasi motivo vogliamo eliminare dal nostro sistema una user con la home
criptata per poi ricrearla identica, tenere presente di:
• cancellare l'utente
• cancellare il suo gruppo (spostando eventuali altri utenti temporanemante in altri
gruppi)
• cancellare la sua cartella home
• cancellare la sua cartella in "var/lib/ecryptfs"
In questo modo si fa perfettamente pulizia di tutte le tracce esistenti e si può ricreare
l'utente con la sicurezza che tutto funzionerà correttamente senza interferenze da parte di
tracce della vecchia user lasciate indietro.
Partendo dal Live-CD è possibile installare Ubuntu chiedendo già da subito di creare la user
con home criptata. Basta fare così:
• inserire il CD e far partire il PC
• scegliere la lingua dal menu che esce automaticamente
• premere F6 per accedere alle opzioni aggiuntive di boot e poi premere ESC per
tornare al menu principale. Adesso in basso è presente una riga di opzioni
• proprio prima dei due segni "--" aggiungere la seguente opzione: user-
setup/encrypt-home=true
• la riga delle opzioni sarà ora tipo questa: Boot Options
.nitrd=/casper/initrd.gz quiet splash user-setup/encrypt-
home=true --
• al momento dell'installazione quando arriva il passo in cui si chiede di creare una
user, la finestra cambia come mostrato nell'immagine seguente:

Consiglio: per una questione di praticità in caso di problemi, il mio consiglio è quello di
creare anche una user amministrativa non criptata da usare non per archiviare dati, ma
solo per le emergenze. È indifferente creare da subito la user con home criptata e in
seguito quella non criptata o viceversa. L'importante, secondo me, è avere sempre nel
sistema una user con la quale poter effettuare la login in ogni caso senza impedimenti. Se
ci sono problemi con la nostra user principale criptata, avremo così un accesso comodo e
pratico al PC senza dover far capo a lenti Live-CD o penne USB. Entrambe le user avranno
ovviamente diritti amministrativi perché sarebbe inutile avere una user d'emergenza
limitata come un normale utente. Questo è comunque solo un consiglio dettato dalla
praticità. Niente preclude l'uso di un Live-CD in caso d'emergenza, ma è decisamente più
veloce e pratico usare una user alternativa sullo stesso PC.

Nota: criptare la home implica una certa, seppur infinitesimale, degradazione delle
prestazioni, perché il sistema deve continuamente criptare (scrittura) e de-criptare (lettura)
i documenti. Tuttavia ecryptfs è così ottimizzato e integrato nel kernel che è assolutamente
impossibile accorgersene ad occhio.

E così siamo arrivati alla fine anche di questo terzo articolo e ci tocca, come sempre, tirare
le somme del lavoro fatto.
Ci siamo creati la home con applicata la crittografia dei dati. Siamo finalmente al sicuro
ora? I nostri dati sono al riparo dai malintenzionati più smaliziati che non siamo riusciti a
fermare con le precauzioni precedenti? Questa volta la risposta è decisamente più
ottimistica che non nell'articolo precedente. Allo stato attuale possiamo dire che finché la
nostra password di login è conosciuta solo a noi siamo effettivamente al sicuro. Non c'è
possibilità alcuna per un malintenzionato di poter accedere ai nostri dati in chiaro se non
attraverso la conoscenza della nostra password. Come sappiamo, la chiave che cripta i dati
è legata alla password, quindi conoscendo l'una si arriva ad usare l'altra. E qui sta ancora
un punto debole della nostra linea di difesa: generalmente una password di login non è
eccessivamente complessa perché un essere umano deve anche essere in grado di tenerla
a mente. Un malintenzionato maledettamente ostinato potrebbe anche riuscire a carpire la
nostra password se non la creiamo complessa a sufficienza. Esistono metodi mnemonici e
piccoli gradi di crittografia personale per crearsi una password più complessa del normale.
Per esempio sostituendo lettere con simboli della tastiera che le richiamano. Se voglio
usare come password il termine "accesso" potrei trasformarlo in "@cc€$$0", dove @=a,
€=e, $=s, 0=o. Insomma questo è un metodo semplice per mantenere facile una password
per noi e rendere la vita decisamente più difficile ai malintenzionati. Tuttavia niente è
sicuro e garantito al 100% e c'è pur sempre un piccolo, remoto, rischio che qualcuno per
bravura e/o fortuna azzecchi la nostra password. In questo caso la crittografia è come se
non esistesse e i dati sarebbero visibili in chiaro a chiunque.
Ma allora, giunti a questo punto possiamo ancora fare di più? Possiamo davvero, con i
nostri umili mezzi casalinghi, migliorare ulteriormente e definitivamente la sicurezza dei
nostri dati? Certamente!. C'è ancora un passo da fare per garantirci l'incolumità dei dati e
lo vedremo nel prossimo articolo.

Separare la chiave di decriptazione dai


dati
Ed eccoci arrivati all'ultima tappa del nostro viaggio verso la sicurezza garantita. Il
prossimo articolo, quello conclusivo, è da considerare come un'appendice che
approfondisce alcuni aspetti dell'uso della crittografia in Ubuntu. Finora siamo riusciti ad
ottenere ottimi risultati, quasi perfetti. Abbiamo disseminato di ostacoli il percorso che un
malintenzionato deve percorrere per giungere ai nostri amati e preziosi dati. Abbiamo
messo una password al BIOS, ne abbiamo messa un'altra al menu GRUB, e abbiamo
criptato la nostra home. Le nostre truppe di difesa sono finalmente ben dispiegate e
possiamo dormire sonni decisamente più tranquilli. La nostra privacy è salva...o quasi. Per
dirci veramente tranquilli ci manca ancora una raffinatezza: implementare l'autenticazione
a due fattori. Di cosa si tratta? Il concetto che sta dietro la pomposa definizione di
"autenticazione a due fattori" è in realtà molto banale. Si tratta di separare fisicamente i
dati della home criptata dalla loro mount-passphrase. In pratica si salva la chiave
crittografica su un altro supporto diverso dal PC stesso, come una chiavetta USB, e il gioco
è fatto. Al giorno d'oggi tutti possiedono almeno una chiavetta USB: si tratta di periferiche
di memorizzazione molto pratiche e di piccole dimensioni. Possono essere agganciate al
portachiavi proprio come una qualsiasi altra chiave. Questo fa sì che il proprietario del PC
possa sempre avere la chiavetta USB con sé e usarla per accedere ai suoi dati. Chiunque
altro, non possedendo la chiave crittografica, non potrà mai leggere in chiaro i nostri dati.
Per assurdo possiamo anche scordarci del PC, l'importante è non perdere mai la chiavetta
USB. Solo l'uso congiunto di PC e chiavetta USB ci permette di accedere ai dati
normalmente.

A scopo didattico continuiamo anche in questo articolo ad usare la user "cripton" che
abbiamo creato nel precedente. Quando si fa il boot del PC con la chiavetta USB già
connessa, questa viene montata come qualsiasi unità disco permettendo al sistema di
accedervi. Archiviando la mount-passphrase sulla chiavetta e creando un link ad essa nella
cartella originale /var/lib/ecryptfs/cripton si riesce a fare normalmente la login
esattamente come se la mount-passphrase effettiva fosse presente nella cartella sul disco
fisso. La differenza la si nota se si fa partire il PC senza chiavetta USB connessa: in questo
caso alla login dopo aver fornito user e password tutto si ferma e lo schermo rimane nero.
Perché? Perché la home è completamente criptata e se non è stato possibile accedere alla
chiave per de-crittografare i dati la procedura di boot non può leggere le impostazioni di
sessione e di conseguenza non può farci entrare in sessione. Semplice ed efficace vero?
Tutto questo implica che mantenendo separato il PC dalla chiavetta USB i nostri dati sono
illeggibili e quindi assolutamente sicuri.

Per poter applicare correttamente quanto appena descritto occorre tuttavia un piccolo
lavoro preparatorio per garantire che la chiavetta USB connessa venga montata in tempo
per essere letta alla login e soprattutto sempre nello stesso punto di mount. Questo è
importante perché nella cartella /var/lib/ecryptfs/cripton abbiamo creato un link alla
vera mount-passphrase sulla chiavetta e il percorso del link deve rimanere quello. In caso
contrario saremmo nei pasticci perché il link risulterebbe interrotto e la login non
funzionerebbe più. Niente di complicato comunque e poi fatto una volta non ci si pensa più.
La procedura a mio avviso più rapida e semplice è la seguente:

1. verifica cartella di mount: connettere la chiavetta USB e verificare nella cartella


/media quale sottocartella è stata creata per montarla. Solitamente le chiavette USB
vengono vendute già formattate in FAT o FAT32 con una loro etichetta che dà anche il
nome alla sottocartella. Se l'etichetta non c'è o non piace, o non piace nemmeno il
sistema FAT, allora è sempre possibile usare il programma gparted per riformattare la
chiavetta assegnandogli un'etichetta diversa. Supponiamo che abbiamo una
chiavetta con etichetta UBUNTU. Verrà montata nella cartella /media/UBUNTU.
2. l'identificativo UUID: che cosè l'UUID? Questa sigla sta per "Universal Unique
Identifier" e corrisponde ad una stringa alfanumerica che identifica univocamente
una partizione di disco nel sistema, oppure una periferica di memorizzazione esterna
connessa al PC. È molto importante per noi perché ci permette di identificare
univocamente la nostra chiavetta USB indipendentemente da qualsiasi altro
parametro nel sistema. Per sapere quale UUID ha la nostra chiavetta si possono
aprire le proprietà della sua icona sul desktop, ma per copiare la stringa
comodamente è meglio usare a scelta uno dei comandi seguenti con un terminale:

nicola@nicola-laptop:~$ ls -l /dev/disk/by-uuid <== prima possibilità:


un elenco completo di tutti gli UUID
totale 0
lrwxrwxrwx 1 root root 10 2009-05-11 16:58 232a0fa0-433e-4bc0-81a3-
b9cc9464e7ec -> ../../sda8
lrwxrwxrwx 1 root root 10 2009-05-11 16:58 28e5b08b-c8bb-48ce-9aa3-
0d756c0b4f6e -> ../../sda6
lrwxrwxrwx 1 root root 10 2009-05-11 16:58 29090639-ad6d-4f49-80c9-
1d1115d3f76f -> ../../sdb1
lrwxrwxrwx 1 root root 10 2009-05-11 16:58 41a8d0b3-bbc1-4f7f-87cd-
499913a26575 -> ../../sda9
lrwxrwxrwx 1 root root 9 2009-05-11 16:58 46A4-939F -> ../../sdc
lrwxrwxrwx 1 root root 10 2009-05-11 16:58 51dbd594-9d67-4dcc-ab65-
259021e1d0e1 -> ../../sda2
lrwxrwxrwx 1 root root 10 2009-05-11 16:58 7b6692f4-49d0-406c-aac3-
dc4101d9ffe2 -> ../../sda5
lrwxrwxrwx 1 root root 10 2009-05-11 16:58 80c57916-dbe1-4c5b-ad71-
b25b403742a4 -> ../../sda1
lrwxrwxrwx 1 root root 10 2009-05-11 16:58 b80407c3-58b5-4212-9f6b-
ac31a92e75eb -> ../../sda3
lrwxrwxrwx 1 root root 10 2009-05-11 16:58 f57f595f-28ed-4e7e-b693-
b633595129b1 -> ../../sda7

nicola@nicola-laptop:~$ sudo vol_id -u /dev/sdb1 <== seconda


possibilità: leggere l'UUID di uno specifico device
[sudo] password for nicola:
29090639-ad6d-4f49-80c9-1d1115d3f76
Le stringhe alfanumeriche più o meno lunghe visualizzate nel terminale sono i diversi
UUID di partizioni del disco fisso del PC (sdan) o di unità di memorizzazione connesse
(sdbn, sdcn, ecc.). Prendiamo nota dell'UUID della nostra chiavetta e teniamolo pronto
per usarlo fra poco.
3. creazione della cartella di mount: smontare la chiavetta USB e sconnetterla dal PC.
Accedere con diritti di amministratore alla cartella /media e creare la cartella
/UBUNTU. In questo modo abbiamo fissato nel sistema la cartella sulla quale vogliamo
che la nostra chiavetta venga sempre montata. Contrariamente all'automount, che
crea solo temporaneamente la cartella che poi sparisce quando la chiavetta viene
sconnessa, creando noi la cartella questa rimane permanentemente.
4. modifica di fstab: abbiamo la cartella dove montare la chiavetta e il suo codice UUID.
Ora possiamo aprire il file delle partizioni /etc/fstab e modificarlo aggiungendo la
chiavetta. Le opzioni della voce da aggiungere in fstab sono poche e semplici. Si
possono copiare dall'esempio che mostro qui sotto e adattarle alla propria situazione.

# /etc/fstab: static file system information.


#
# <file system> <mount point> <type> <options> <dump> <pass>
# /dev/sda9
UUID=41a8d0b3-bbc1-4f7f-87cd-499913a26575 /home ext3
relatime 0 2
# /dev/sda5
UUID=7b6692f4-49d0-406c-aac3-dc4101d9ffe2 /usr ext3
relatime 0 2
# /dev/sda3
UUID=b80407c3-58b5-4212-9f6b-ac31a92e75eb none swap
sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660
user,noauto,exec,utf8 0 0
# penna USB
UUID=ce848eb6-6d80-4382-84c5 /media/UBUNTU ext2
user 0 0
# memoria USB del coltellino Victorinox
UUID=4B7B-6D1F-777g-o0234 /media/VICTORINOX vfat
user 0 0
Nell'esempio qui sopra vediamo un estratto di un file fstab dove il disco fisso del PC è
stato suddiviso in più partizioni, poi c'è l'unità del lettore di CD/DVD e infine ci sono
due esempi di chiavette USB aggiunte manualmente. Una delle chiavette, quella da
montare sulla cartella UBUNTU, è stata formattata in ext2, mentre l'altra, quella da
montare sulla cartella VICTORINOX, è stata lasciata con la formattazione di fabbrica
FAT32 (vfat). Per adeguare il proprio file fstab basta copiare una di queste righe e
adattare UUID e cartella dove montare l'unità. Per concludere salvare il file fstab. Per
provare se tutto funziona correttamente si può connettere e sconnettere almeno una
volta la chiavetta USB.

A questo punto tutto è pronto per far sì che ad ogni partenza del PC la chiavetta USB, dove
risiede la mount-passphrase, venga montata sempre nello stesso punto e al momento
giusto. Ad ogni login il link alla mount-passphrase sarà attivo e funzionante permettendo la
corretta apertura e inizializzazione della sessione di lavoro criptata. Volendo riassumere in
un'immagine la situazione di cartelle e link vi presento la seguente:

Da destra verso sinistra o dal basso verso l'alto se preferite: nella home della user "cripton"
si trova un link alla cartella /var/lib/ecryptfs/cripton (freccia 1). A sua volta questa cartella
contiene un link alla mount-passphrase che è archiviata sulla chiavetta USB (freccia 2).
Questo è il link che abbiamo creato noi. Come avrete notato, nella chiavetta USB la mount-
passphrase si trova archiviata in una cartella nascosta (.qwertz1234) e con un nome
totalmente diverso da "wrapped-passphrase" (file_superman). Queste sono due ulteriori
precauzioni che possiamo prendere per proteggere la nostra mount-passphrase
memorizzata sulla chiavetta USB. Infatti il nome "wrapped-passphrase" deve essere
mantenuto tale solo nelle cartelle sul PC, mentre il file vero e proprio che agganciamo con
un link può chiamarsi come vogliamo.

Per terminare questa parte ancora un paio di note sull'argomento della home criptata:
• un vantaggio non indifferente nell'usare la crittografia dei dati è il seguente: anche se
dei malintenzionati ci rubano il PC e si accorgono che non possono accedervi,
sicuramente lo apriranno per estrarre il disco fisso pensando di poterlo connettere ad
un loro PC eliminando così tutte le barriere che abbiamo imparato a mettere. Al
questo punto però si accorgerebbero che comunque i dati scritti nel disco sono
criptati e quindi illeggibili e inservibili. Noi ci abbiamo perso un PC, ma loro non ci
hanno guadagnato nulla.
• la chiavetta USB dove abbiamo salvato la mount-passphrase viene usata proprio
come una chiave vera, cioè come una chiave che apre la porta di casa e poi viene
tolta dalla toppa perché non serve più fino alla volta successiva. Infatti, finché la
sessione resta attiva, non abbiamo più bisogno di avere la chiavetta USB connessa.
La possiamo togliere appena terminato il login rimetterla in tasca. Anche se lasciamo
il PC incustodito, ma con la sessione bloccata mi raccomando, chi vuole rubarci i dati
non può fare altro che 1) indovinare la password (poco probabile), 2) forzare il reboot
del PC nella speranza di accedervi altrimenti (Live-CD, altro). Purtroppo per lui gli
mancherà pur sempre la mount-passphrase che abbiamo con noi in tasca o
agganciata al portachiavi.
• allo stato attuale resta solo una parte del disco non criptata e quindi non protetta. Si
tratta dell'area di swap. Nell'area di swap possono finire dati in chiaro durante il
normale lavoro in sessione e anche se spegniamo il PC con la funzione Hibernate. La
copertura di questo "buco" è allo studio degli sviluppatori che provvederanno a
crearla entro la prossima versione di Ubuntu 9.10. Sapendo però che l'area di swap è
un po' particolare e non facilmente raggiungibile e leggibile come le altre aree del
disco, non mi preoccuperei più di tanto. Inoltre è un problema temporaneo in via di
soluzione.

Prima di dichiarare concluso il nostro viaggio nel mondo della sicurezza alla portata di
chiunque voglio ancora fornire alcuni consigli sparsi che possono contribuire ad
ulteriormente migliorare la sicurezza del nostro PC.
• attivare in Synaptic l'opzione di installazione automatica degli aggiornamenti di
sicurezza. Questa opzione fa in modo che gli aggiornamenti molto importanti di
sicurezza vengano scaricati e installati senza attendere la conferma dell'utente.
• evitare di usare repository di pacchetti software dubbi o non ufficiali. Meglio usare
sempre solo repository ufficiali di Ubuntu, i PPA degli sviluppatori presenti in
Launchpad, e altri pochi notoriamente fidati come Medibuntu.
• con GParted è possibile formattare una penna USB in modo diverso che non FAT16 o
FAT32 usati di default dai fabbricanti. Questi file system permettono di scambiare
facilmente dati fra sistemi operativi diversi, ma appunto per questo rendono più
vulnerabile il contenuto. Per darci un ulteriore vantaggio di sicurezza possiamo
formattare la penna USB con la nostra mount-passphrase in EXT2, EXT3 o EXT4,
impedendo così ad una gran fetta di malintenzionati di accedere al contenuto,
presupponendo che questi siano dotati di sistemi alternativi come Windows o Mac OS-
X che di default non leggono i file system Linux. Questo implica nella peggiore delle
ipotesi che ci formattino la penna USB rubata o trovata, ma non possono sfruttarne il
contenuto.
• un'altra misura di sicurezza è quella di impostare la password principale di Firefox.
Questo impedisce di usare le password salvate per accedere ai siti protetti a
chiunque trovi incustodito il nostro PC. In ogni caso impedisce di entrare nelle opzioni
a visualizzare le password salvate.
• un'ulteriore misura di sicurezza è quella di attivare l'opzione "Nascondere riscontro
visivo nel campo password" nella scheda generale delle preferenze della finestra di
accesso (Sistema/Amministrazione/Finestra di accesso). Questa opzione fa sì che non
si possa dedurre la lunghezza della password che state digitando perché vengono
nascosti i soliti pallini corrispondenti ai caratteri digitati con la tastiera. è un po' come
digitare una password nel terminale: non si vede niente di ciò che si digita.
• Sempre parlando della finestra di accesso (Sistema/Amministrazione/Finestra di
accesso) è preferibile non usare temi grafici che elenchino tutte le user esistenti nel
sistema. Questi temi, per altro accattivanti, in apparenza sono più confortevoli perché
permettono di scegliere la user con un clic e poi si deve digitare solo la password, ma
nel contempo facilitano il compito al malintenzionato che non deve più cercarsi da
solo questa informazione.
• attivare sempre il blocco della sessione all'avvio dello screensaver. Evitate di attivare
un qualsiasi screensaver che non sia lo schermo nero perché consuma energia per
nulla. Per default lo screensaver si attiva dopo un intervallo di inattività di 10 minuti.
Lo si può anche accorciare in modo che se siete sbadati e lasciate il PC incustodito
con la sessione non bloccata, ci pensa lo screensaver a farlo per voi.
• abituatevi ad usare la scorciatoia di tasti CTRL+ALT+L. Questa scorciatoia è quella
che blocca la sessione immediatamente. Dovete arrivare ad essere talmente abituati
ad usarla che vi viene automatico farlo ogni volta che vi alzate dalla sedia davanti al
PC prima di abbandonarlo. Tutti i discorsi sulla sicurezza fatti finora sono
perfettamente inutili se lasciate incustodito il vostro PC con la sessione aperta.
Bloccatela sempre con CTRL+ALT+L, non è difficile da memorizzare e vi può salvare i
dati e quindi la vostra privacy. Bloccare la sessione significa dover digitare la
password di login per poter rientrare, non scordatelo mai.
• se è stata usata la funzione "encryptfs-unwrap-passphrase" per
recuperare la mount-passphrase è una buona idea cancellare
successivamente la storia del terminale per evitare che qualcuno possa
scorrerla e trovarvi la chiave in chiaro. Per cancellare la storia del
terminale usare il comando <history -c>

Finalmente! Adesso sì che possiamo dire di aver concluso il nostro viaggio. Adesso sì che
possiamo ragionevolmente dire di aver fatto tutto il possibile per salvaguardare i nostri
dati. Come promesso non vi ho fatto acquistare software o aggeggi particolari per
raggiungere lo scopo. Solo qualche comando a terminale. Tutto gratuito, tutto funzionante
e sicuro. Nel prossimo articolo, che conclude la serie, approfondiremo vari aspetti del
sistema di crittografia ecryptfs molto importanti per cavarsi d'impaccio in caso di problemi.

Approfondimenti su EcryptFS, il sistema


di crittografia adottato da Ubuntu
Per concludere degnamente il viaggio sulla sicurezza del nostro PC e dei nostri dati in
questa quinta ed ultima parte voglio parlare più approfonditamente delle opzioni e delle
possibilità che offre il sistema EcryptFS adottato da Ubuntu. Si tratta di un sistema incluso
nel kernel Linux, quindi non è niente di aggiunto "artificialmente" come può essere
Truecrypt. EcryptFS non richiede di riservare spazio disco apposito per creare aree criptate,
ma lavora in perfetta sintonia con il filesystem presente sul PC. L'integrazione è
perfettamente trasparente. Come già detto nell'articolo precedente EcryptFS è ancora
acerbo, non come tecnologia in quanto tale, ma come interfaccia utente. Infatti per
usufruirne in Ubuntu 9.04 bisogna ancora far parecchio capo al fidato terminale. Con ogni
probabilità nel prossimo futuro arriverà anche un'interfaccia grafica che faciliterà il compito
per gli utenti non molto avvezzi ai comandi del terminale. I primi indizi in questo senso si
possono leggere qui: prove di integrazione in Nautilus .
Criptare i nomi dei file
Come già accennato nell'articolo precedente, oltre a crittografare il contenuto dei file è
anche possibile crittografarne il nome. In questo modo si può nascondere proprio tutto al
malintenzionato di turno che non può giudicare l'importanza dei nostri dati nemmeno dal
nome dei file archiviati nel PC. Questa opzione non è attivata per default per una ragione
pratica semplicissima. Attivando la criptazione dei nomi dei file i nomi stessi vengono
notevolmente allungati. La conseguenza è che i file con nomi in chiaro già piuttosto lunghi
possono raggiungere il massimo consentito dal file system e non possono essere archiviati.
Per poterlo fare si è costretti ad accorciare dapprima il nome in chiaro. Dalle prove che ho
fatto posso dire che i file possono avere i nomi lunghi al massimo una cinquantina di
caratteri. Oltre questa lunghezza si rischia di non poterli salvare. Quindi tenere presente
che se si vuole proprio attivare questa opzione bisogna dapprima accertarsi che tutti i
nostri file abbiano nomi al di sotto dei 50 caratteri. Un esempio di come attivare la
crittografia sui nomi dei files lo si trova più sotto al capitolo Criptare qualsiasi cartella.

Qui un'immagine con l'errore di nome troppo lungo che può apparire:

Qui invece un paio di immagini che esemplificano l'effetto della crittografia applicata ai
nomi dei file:
la stessa car
la cartella "nomi" non è montata e presenta i nomi dei file criptati chiaro

Modifica della password di login


Se desiderate cambiare la vostra password di login, o se siete obbligati a farlo perché
lavorate in una struttura che lo prevede a scadenze regolari, allora dovete effettuare un
paio di operazioni a terminale per garantirvi continuità nell'accesso alla vostra home
completamente criptata. Tenete presente che finché si resta connessi in sessione, anche se
la password è cambiata, si può lavorare normalmente perché il file system crittografato
continua a lavorare con la mount-passphrase già attiva dalla login precedente che come
sappiamo è accoppiata alla password di login. L'importante è non uscire dalla sessione
dopo aver cambiato password se prima non si sono fatte le operazioni che seguono. In caso
contrario non potremmo più effettuare la login in quanto la mount-passphrase è ancora
accoppiata alla vecchia password e noi ormai abbiamo una nuova password da usare. Se
proprio dovesse capitare, perché magari usate un PC da tavolo e la corrente elettrica viene
a mancare proprio in quel momento, allora siete in una situazione di emergenza e dovete
leggervi più avanti il capitolo Non si riesce più ad accedere al PC.

Qualcuno potrebbe chiedersi come mai è stato reso così scomodo cambiare una password.
Addirittura bisogna ricordarsi di usare dei comandi a terminale! In fin dei conti bastava fare
in modo che il sistema ecryptfs ci pensasse lui a rendere nuovamente tutto coerente con la
nuova password e la mount-passphrase. Ebbene credo proprio che le cose siano impostate
così di proposito in modo che non sia possibile per il malintenzionato di turno entrare
semplicemente nel PC con la console di root, come abbiamo imparato a fare nel secondo
articolo, e modificare la password garantendosi così l'accesso ai dati criptati senza colpo
ferire. Ci fosse un automatismo che aggiorna automaticamente il legame fra password di
login e mount-passphrase buona parte della forza di protezione della crittografia sarebbe
vanificato. L'impostazione attuale invece costringe chi vuole cambiare la password di login
a conoscere almeno la vecchia password, o addirittura la mount-passphrase. Mi sembra
ovvio il guadagno per la sicurezza, non sembra anche a voi?

Per cambiare la password di login si procede come di solito accedendo alla gestione utenti
e gruppi dal menu Sistema/Amministrazione. Subito dopo aver modificato la password si
può provare a leggere la mount-passphrase con il comando seguente:

cripton@lepre:~$ ecryptfs-unwrap-passphrase ~/.ecryptfs/wrapped-passphrase


Passphrase: <== digitare la nuova login password
Warning: Using default salt value (undefined in ~/.ecryptfsrc)
Error: Unwrapping passphrase failed [-5]
Info: Check the system log for more information from libecryptfs
come si vede dall'errore visualizzato la nuova password di login e la mount-passphrase
sono scompagnate. Se si uscisse ora dalla sessione e si provasse la login non
funzionerebbe più. Quindi ci affrettiamo a riassociare la mount-passphrase alla nuova
password. La prima possibilità è usare il seguente comando che non richiede l'uso diretto
della mount-passphrase:

cripton@lepre:~$ ecryptfs-rewrap-passphrase ~/.ecryptfs/wrapped-passphrase


Old wrapping passphrase: <== digitare la vecchia login password
New wrapping passphrase: <== digitare la nuova login password
Warning: Using default salt value (undefined in ~/.ecryptfsrc)
cripton@lepre:~$
Siccome in un terminale non si vede nulla quando si digitano parole segrete non possiamo
essere sicuri al 100% di aver digitato le due password correttamente. In questo momento
potremmo anche aver inserito la nuova password in modo errato e quindi creato
un'associazione non funzionante con la mount-passphrase. Il risultato sarebbe
problematico perché alla prima nuova login, convinti di poter accedere alla nostra sessione,
verremmo inesorabilmente rifiutati e ripagati con un bel schermo nero. Pertanto è
decisamente consigliabile fare una verifica con lo stesso comando usato all'inizio:

cripton@lepre:~$ ecryptfs-unwrap-passphrase ~/.ecryptfs/wrapped-passphrase


Passphrase: <== digitare la nuova login password
Warning: Using default salt value (undefined in ~/.ecryptfsrc)
903d8f11ff9a231d1dc90c6b11930df9
cripton@lepre:~$
molto bene in questo caso è tutto a posto. La mount-passphrase è visualizzata e significa
che la nuova password di login è stata digitata correttamente e l'associazione è
funzionante. La procedura di cambio password finisce qui e possiamo tranquillamente
uscire e rientrare in sessione.

Se però abbiamo fatto un errore di digitazione della nuova password, allora la verifica qui
sopra darebbe l'errore che abbiamo già visto all'inizio. A questo punto non sappiamo più
cosa fare. Non sappiamo dove abbiamo fatto l'errore di battitura e quindi ci è impossibile
ripetere il comando perché la password alla quale abbiamo associato la mount-passphraase
ci è di fatto sconosciuta, come se anche noi fossimo uno sconosciuto qualsiasi. L'unica cosa
da fare per mettere a posto il pasticcio è ricreare da zero l'accoppiata password - mount-
passphrase con la seconda possibilità di comando che richiede però l'introduzione della
mount-passphrase stessa:

cripton@nicola-laptop:~$ ecryptfs-wrap-passphrase ~/.ecryptfs/wrapped-


passphrase
Passphrase to wrap: <== introdurre la mount-passphrase (digitarla con cura
o se possibile incollarla da un altro documento)
Wrapping passphrase: <== digitare la nuova login password
Warning: Using default salt value (undefined in ~/.ecryptfsrc)
cripton@nicola-laptop:~$
Ecco fatto. Abbiamo appena ricreato il file che associa la nuova password di login e la
mount-passphrase. Naturalmente anche in questo caso bisogna assicurarsi di aver digitato
le due parole segrete in modo corretto. Ripetere quindi la verifica già fatta in precedenza.
Se viene visualizzata la corretta mount-passphrase (deve corrispondere a quella in chiaro in
nostro possesso), allora siamo a posto. Se invece viene visualizzata una mount-passphrase
scorretta o addirittura viene visualizzato un errore, allora dobbiamo ripetere il comando
facendo più attenzione. Mi raccomando: non uscite di sessione e ripetete il comando e la
verifica finché non ottenere la giusta mount-passphrase con la giusta password di login.

Non si riesce più ad accedere al PC: come


recuperiamo i nostri dati criptati?
Questo è un capitolo molto importante che probabilmente tranquillizzerà molti tentati dalla
crittografia dei dati, ma spaventati dal poterli perdere irrimediabilmente causa qualche
operazione errata. Anche un banale problema al PC, come l'interruzione di corrente citata
in precedenza, può portare all'impossibilità di accedere nuovamente ai nostri dati in chiaro.
La crittografia è una gran bella cosa per la salvaguardia dei nostri dati, ma se qualcosa si
inceppa che guaio!
Eppure il nostro mondo open source è così elastico, dinamico ed adattabile, che ci
permette di cavarcela anche in queste situazioni di emergenza. Eh sì, proprio di emergenza
si tratta e come tale dobbiamo percepire questo capitolo. Meglio che esista, ma molto
meglio non averne mai bisogno (un po' come il medico no?).
Qui di seguito presento come fare per poter accedere alla propria home criptata anche
senza regolare accesso da sessione con user e password di login. Immagino che l'utente
comune, come capitato a me la prima volta che ho guardato la sequenza delle operazioni,
si senta intimorito e perso davanti a tanti oscuri comandi da terminale. In ogni caso niente
è così difficile come appare e vi assicuro che basta seguire passo passo quanto spiegato e
tutto funziona perfettamente. Non è necessario capire ogni comando e ogni opzione. Per i
più curiosi ho inserito qualche commento quà e là, ma in definitiva basta rispettare la
sequenza di comandi proposta senza porsi troppe domande. Dopotutto se state leggendo
questo capitolo è perché siete in difficoltà e in questi momenti, lo so bene io, qualsiasi
aiuto va bene, basta riuscire a riavere i propri dati. Dunque partiamo con l'operazione di
pronto soccorso.

Avviare il PC con il Live-CD e montare l'unità del disco fisso del PC scegliendola dal menu
Risorse come si fa comunemente. Aprire il Monitor di sistema e un terminale. Il Monitor di
sistema ci serve per conoscere la giusta sigla di device che hanno le diverse partizioni
montate nel sistema (vedi scheda "File system"). Per sigla di device intendo le solite sdax,
sdbx, ecc. Per il nostro esempio assumiamo che il disco fisso del PC abbia la sigla di device
"sda1" che è anche quella che solitamente prendono tutti i dischi fissi principali. Iniziamo
con il montare il disco fisso del PC anche sulla cartella /mnt del Live-CD.

ubuntu@ubuntu:~$ sudo mount /dev/sda1 /mnt/ <== monta il disco fisso sulla
cartella /mnt della live session
nota: se avete suddiviso il disco fisso del PC in più partizioni l'operazione è un più
complessa perché dovete ricreare la stessa struttura nella cartella /mnt usando
più comandi di mount. Alcune delle cartelle necessarie saranno in partizioni
diverse con sigle di device diverse e vanno montate separatamente (un punto a
favore della non partizione del disco fisso del PC). Per esempio se ho le cartelle "/"
sul device sda2, "boot" sul device sda1, "var" sul device sda7 e "home" sul device
sda9, dovrò usare questa sequenza:
nicola@nicola-laptop:~$ sudo mount /dev/sda2 /mnt/ <== importante
partire dalla cartella fonte di tutte le altre "/"
nicola@nicola-laptop:~$ sudo mount /dev/sda9 /mnt/home
nicola@nicola-laptop:~$ sudo mount /dev/sda1 /mnt/boot
nicola@nicola-laptop:~$ sudo mount /dev/sda7 /mnt/var

Per le cartelle citate nei tre comandi seguenti (dev, proc, sys) non dobbiamo preoccuparci.
Basta che siano presenti come sottocartelle di /mnt. I tre comandi seguenti infatti
sostituiscono il contenuto originale delle cartelle nel disco fisso del PC (montate con il
primo comando) con le corrispondenti cartelle della sessione Live-CD. In pratica si passa
sopra il mount originale. Grazie all'opzione <-o bind> del comando <mount> si possono
avere più cartelle con lo stesso contenuto montato. Nel nostro caso, dopo l'esecuzione dei
tre comandi seguenti, avremo le stesse cartelle montate sia nella cartella /mnt che nella
sessione Live-CD. In pratica la cartella /mnt sarà un misto fra contenuto del disco fisso del
PC e queste tre cartelle che invece provengono dalla sessione Live-CD.

ubuntu@ubuntu:~$ sudo mount -o bind /dev/ /mnt/dev/


ubuntu@ubuntu:~$ sudo mount -o bind /proc/ /mnt/proc/
ubuntu@ubuntu:~$ sudo mount -o bind /sys/ /mnt/sys/

ubuntu@ubuntu:~$ sudo chroot /mnt/ <== attiva la user di root sulla cartella
/mnt preparata con i comandi precedenti

root@ubuntu:/# su - cripton <== sostituisce la user corrente con quella che


ci interessa, cioè la nostra "cripton"
Dopo tutta la sequenza di comandi appaiono i seguenti messaggi che non devono
preoccupare perché previsti dalla procedura. Infatti ci viene suggerito di usare il comando
<ecryptf-mount-private> per montare e decriptare la cartella home di cripton.

keyctl_search: Required key not available


Perhaps try the interactive 'ecryptfs-mount-private'
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

cripton@ubuntu:~$ ls <== facciamo dapprima una verifica per capire se siamo


correttamente approdati alla cartella home di cripton
Access-Your-Private-Data.desktop README.txt
Vediamo che in effetti sono elencati i soliti due files che si vedono anche in Nautilus quando
si apre una cartella non montata con contenuto crittografato. Siamo messi bene e allora
procediamo con il comando suggerito per montare la cartella home.

cripton@ubuntu:~$ ecryptfs-mount-private <== questo comando è anche quello


contenuto nei due file che abbiamo elencato prima
Enter your login passphrase: <== digitiamo la password di login di cripton e
diamo ENTER

Warning: Using default salt value (undefined in ~/.ecryptfsrc)


Inserted auth tok with sig [d4d091cd8e6a0893] into the user session keyring

INFO: Your private directory has been mounted.


INFO: To see this change in your current shell:
cd /home/cripton <== questa è l'agognata conferma che siamo riusciti a
montare e decriptare la home

cripton@ubuntu:~$ cd $HOME
cripton@ubuntu:~$ ls
Documenti Immagini Musica Scrivania
examples.desktop Modelli Pubblici Video <== e questa ne è la prova
tangibile con il contenuto finalmente leggibile. Eureka!
cripton@ubuntu:~$
Mi raccomando dopo tanta fatica non chiudere il terminale e non usare il comando <exit>
per fare il logout da cripton. È questa sessione di terminale che mantiene de-crittografati i
nostri dati e quindi prelevabili. Se si chiude il terminale immediatamente tutto torna ad
essere criptato. Ora possiamo fare praticamente quello che vogliamo con i nostri dati.
Siamo riusciti dalla sessione Live del CD ad accedere alla nostra home prendendo una
strada alternativa a quella normale che ci è preclusa in questo momento. Se la nostra
priorità è quella di estrarre i dati per salvarli altrove e poter così re-installare tutto il PC
abbiamo due metodi possibili.
Metodo da terminale: meno pratico dell'uso di Nautilus, ma per chi è abituato va senz'altro
bene. I dischi esterni dal terminale con user cripton non sono accessibili (non so bene il
perché ma è così), quindi non si possono salvare direttamente i dati su qualche disco USB
connesso al PC, ma bisogna fare un passo intermedio. Se esiste, è possibile sfruttare la
home non criptata della user d'emergenza (vedi terzo articolo) come cartella di appoggio
per spostarvi tutti i dati con i comandi <mv> o <cp>. Se non c'è una home d'emergenza
perché non l'abbiamo sul nostro sistema creare comunque una cartella sotto la /home del
disco fisso che fungerà da cartella di appoggio non criptata. Lo scopo è quello di recuperare
i nostri dati in chiaro (non più criptati), metterli nella cartella d'appoggio, per poi usare
ancora il terminale, ma questa volta dalla user "ubuntu" della sessione Live-CD che può
accedere ai dischi esterni. Usare ancora comandi <mv> o <cp> per spostare
definitivamente i dati recuperati su supporto esterno.

Metodo con Nautilus: per l'utente comune è senz'altro il metodo più spiccio ed appropriato.
Una volta fornita la password di login e aperta la strada con la mount-passphrase alla
nostra cartella criptata, possiamo aprire Nautilus e andare nella cartella
/mnt/home/cripton e accedere normalmente ai nostri dati de-crittografati. Solo nel nostro
mount provvisorio riusciamo a vedere i dati in chiaro, mentre nella home originale
/disk/home/cripton, dove "disk" è l'unità montata del disco fisso del PC, i dati sono
ancora criptati e non leggibili. Lo vediamo nelle due immagini seguenti:
La home montata su /mnt è decriptata La home nella

note:
• l'insieme di quanto visto fin qui serve solo se si parte completamente al di fuori delle
sessioni del PC. Se il PC funziona ancora a sufficienza per fare la login almeno con la
user d'emergenza, allora nel terminale si può eseguire subito il comando <su -
cripton> perché tutte le cartelle necessarie sono già montate. È sufficiente quindi
sostituire la user corrente con quella criptata per poi recuperare i dati.
• tutto quanto descritto qui presume che il file "wrapped-passphrase" sia presente al
suo posto nella cartella /var/lib/ecryptfs/cripton. Se invece è stato separato su
una penna USB o altro supporto, al suo posto abbiamo solo un link. Per eseguire le
nostre operazioni di recovery dei dati è molto più pratico tuttavia copiare dalla
chiavetta USB il file rimetterlo nella cartella inibendo temporaneamente il link. Così
facendo ricreiamo le condizioni affinché tutto funzioni al primo colpo come mostrato
qui sopra. Successivamente è sempre possibile rimettere le cose a posto riattivando il
link e tornando ad utilizzare la chiavetta USB.

Criptare qualsiasi cartella


Finora ci siamo concentrati sulla sola home come cartella privilegiata per essere criptata.
Tutto bene, ma il discorso può essere ampliato a qualsiasi cartella e quindi anche e
soprattutto a quelle presenti sui dischi esterni. In questo caso non dovremmo più
preoccuparci di lasciare incustoditi i nostri dischi esterni con i backup dei nostri dati. Se
applichiamo la crittografia anche qui, i malintenzionati possono anche rubarci i dischi, ma
non ne ricaveranno nulla. Il principio è sempre quello, solo che lo usiamo un po'
differentemente come vedremo tra poco. Il funzionamento si basa sul fatto che con la
cartella montata vedo i miei file in chiaro e ci posso lavorare, poi smontandola non vediamo
più niente, né io, né gli altri. Usando questo sistema di "mount al volo" come lo chiamo io si
hanno diversi vantaggi:
• usando dischi esterni connessi via usb non c'è il problema di doverli montare per
tempo come la penna USB con la chiave di decriptazione della home. Anche se un
disco esterno viene connesso successivamente non importa; basta eseguire il mount
solo al momento che si necessita di accedere ai propri dati presenti su quel disco.
• le cartelle crittografate con un "mount al volo" non si automontano alla partenza del
PC. Questo è un bel vantaggio perché implica un'azione volontaria prima di poter
accedere ai dati in chiaro. Senza conoscere la password di login (necessaria ad
eseguire il comando di mount), e senza conoscere la mount-passphrase giusta per
de-crittografare i dati non c'è verso di accedervi. Questo è un vantaggio anche
rispetto alla predefinita cartella "Private" che è impostata in modo da eseguire il
mount all'avvio del PC.
• applicando la crittografia con questa modalità a tutte le nostre periferiche di
archiviazione possiamo tranquillamente lasciarle incustodite a casa nostra senza la
paura che qualcuno possa prelevarle o comunque prelevarne il contenuto.
• nel sistema Linux tutto gira attorno all'albero delle cartelle dalla root "/" più in alto
nella gerarchia in giù con tutte le sottocartelle. In Linux tutto è gestito con cartelle e
tutte le cartelle possono essere tecnicamente trattate nello stesso modo, cioè anche
crittografate. Mi raccomando però: non crittografate le cartelle di sistema se non
volete trovarvi bloccati con un PC che non parte più! È anche possibile montare
cartelle crittografate all'interno della home già crittografata. Niente lo impedisce.

Passiamo ora alla parte pratica. Per esempio vogliamo crittografare il contenuto della
cartella /Segreta che è una sotto cartella della home. Il primo passo è ovviamente creare la
cartella, oppure, se esiste già, svuotarla temporaneamente del suo contenuto in chiaro. È
importante che prima di montarla la cartella sia vuota, altrimenti i dati già contenuti non
verranno crittografati e rimarranno in chiaro. Ovviamente vengono crittografati solo i file
creati sul momento e quelli importati nella cartella dopo che è stata montata. Ricordarsi
anche di assegnare dei diritti di accesso restrittivi a questa cartella, cioè di consentirne
l'accesso solamente alla vostra user. Anche questa precauzione contribuisce ad infastidire il
malintenzionato di turno. Preparata la cartella possiamo procedere con il mount. La prima
volta che si esegue l'operazione è possibile usare il comando in modo che faccia apparire
dei menu in sequenza che ci guidano e aiutano nella procedura.

cripton@lepre:~$ sudo mount -t ecryptfs /home/cripton/Documenti/Segreta/


/home/cripton/Documenti/Segreta/ <== il comando ridotto all'osso
[sudo] password for cripton: <== digitare la password di login e premere
ENTER
Passphrase:
La richiesta della mount-passphrase qui sopra è la più importante di tutte. La sequenza
segreta che si specifica qui è quella che verrà usata per criptare e decriptare i dati ed è
quella che dovrà essere immessa ad ogni successivo mount della cartella. Se si perde
questa chiave anche i dati sono irrimediabilmente persi. Questa mount-passphrase non ha
niente a che vedere con quella della home, ma ha lo stesso ruolo e la stessa importanza.
Ogni cartella ha la sua e la impostiamo in questo momento durante il primo mount. Può
essere una sequenza mnemonica facile da riprodurre per noi, oppure una serie casuale e
complessa come la chiave della home, ma in tutti i casi bisogna salvarla, stamparla,
conservarla con cura estrema e in luogo sicuro esattamente come quella della home.
Potete anche prepararla nell'editor di testi e poi copiarla e incollarla qui. Proseguiamo con
la sequenza della operazioni:

Select cipher:
1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
2) blowfish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded)
Selection [aes]: 1 <== confermare il default che va bene e dare ENTER
Select key bytes:
1) 16
2) 32
3) 24
Selection [16]: 1 <== confermare il default che va bene e dare ENTER
Enable plaintext passthrough (y/n) [n]: n <== confermare il default e dare
ENTER
Enable filename encryption (y/n) [n]: y <== qui invece scegliamo di
criptare anche i nomi dei files per mostrare come si fa
Filname Encryption Key (FNEK) Signature [b54f4073f2a0ca6f]: <== questa è la
chiave che sarà usata per criptare i nomi dei files. Dare ENTER
Attempting to mount with the following options: <== qui di seguito vengono
riassunte le opzioni di mount scelte
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=b54f4073f2a0ca6f
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=b54f4073f2a0ca6f
WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt],
it looks like you have never mounted with this key
before. This could mean that you have typed your
passphrase wrong. <== qui veniamo avvisati che è la prima volta che proviamo
a montare la cartella con questa chiave (lo sappiamo!)

Would you like to proceed with the mount (yes/no)? yes <== confermare di sì
e dare ENTER
Would you like to append sig [b54f4073f2a0ca6f] to [/root/.ecryptfs/sig-
cache.txt]
in order to avoid this warning in the future (yes/no)? yes <== confermare di
sì e dare ENTER
Successfully appended new sig to user sig cache file
Mounted eCryptfs
cripton@lepre:~$
Ecco fatto. Ora la cartella /Segreta è montata con attivata la crittografia. Da questo
momento in avanti qualsiasi file creato o copiato nella cartella viene crittografato. Finché la
cartella resta montata non ci accorgiamo di nulla. I dati sono leggibili ed elaborabili in
chiaro come sempre. Appena smontiamo la cartella però ci accorgiamo della differenza. Il
comando per smontare la cartella è il seguente:

cripton@lepre:~$ sudo umount /home/cripton/Documenti/Segreta/


se ora accediamo alla cartella abbiamo due scenari possibili: se anche i nomi dei files sono
crittografati vediamo solo una sequenza di file con nomi lunghissimi e illeggibili (vedi
esempio all'inizio di questo articolo). Se invece i nomi dei files non sono criptati li possiamo
leggere normalmente, ma qualsiasi tentativo di aprire uno dei files porta ad un errore
perché il contenuto è criptato.
La sequenza a terminale presentata qui sopra può anche essere evitata raggruppando tutte
le opzioni in un solo comando. Qui sotto l'esempio dello stesso comando raggruppato:

cripton@lepre:~$ sudo mount -t ecryptfs /home/cripton/Documenti/Segreta/


/home/cripton/Documenti/Segreta/ -o
key=passphrase,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthroug
h=no,ecryptfs_enable_filename_crypto=yes
[sudo] password for cripton: <== digitare la password di login e dare ENTER
Passphrase: <== digitare la mount-passphrase stabilita al primo mount
Filname Encryption Key (FNEK) Signature [d947b2fadb13dcdf]: <== dare ENTER.
Questa richiesta avviene solo se anche i nomi dei file sono criptati
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=d947b2fadb13dcdf
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=d947b2fadb13dcdf
Mounted eCryptfs
cripton@lepre:~$
La cartella è già montata. Tutto ciò che segue l'opzione "-o" non è altro che l'insieme delle
stesse opzioni che abbiamo specificato la prima volta nella sequenza delle domande a
terminale (ATTENZIONE: il comando è composto da una sola riga, ma qui nel testo si
suddivide in due per ovvie ragioni di spazio). Per maggiore praticità questo comando può
essere assegnato ad un lanciatore che si crea con il tasto destro sul desktop. Ricordarsi di
crearlo come "Applicazione nel terminale" in modo che si apra automaticamente un
terminale per l'inserimento della password e della mount-passphrase.

nota: anche la cartella home viene montata con un comando e delle opzioni simili. Per
visualizzarle possiamo usare il comando seguente:

cripton@nicola-laptop:~$ grep '/home/cripton' /etc/mtab <== dopo l'ENTER


viene visualizzato tutto quanto segue
gvfs-fuse-daemon /home/cripton/.gvfs fuse.gvfs-fuse-daemon
rw,nosuid,nodev,user=cripton 0 0
/home/cripton/.Private /home/cripton ecryptfs
ecryptfs_sig=d40ac8fc720fe01a,ecryptfs_fnek_sig=a9799cf3c087b051,ecryptfs_ci
pher=aes,ecryptfs_key_bytes=16 0 0
/dev/fuse /home/cripton/.gvfs fuse rw,nosuid,nodev,user=cripton 0 0
cripton@nicola-laptop:~$

dove è citato il termine "ecryptfs" ci sono le opzioni di mount della cartella. Nel nostro
esempio la home di cripton ha queste opzioni:
/home/cripton ecryptfs
ecryptfs_sig=d40ac8fc720fe01a,ecryptfs_fnek_sig=a9799cf3c087b051,ecryptfs_ci
pher=aes,ecryptfs_key_bytes=16 0 0
gli ultimi due zeri rappresentano le due opzioni ecryptfs_passthrough=no e
ecryptfs_enable_filename_crypto=no. Per attivarle andrebbero messe a 1, ma per la
home va bene così in modo da non incappare nella limitazione della lunghezza dei nomi dei
files come abbiamo visto all'inizio di questo articolo.

Conclusione
In rete si può leggere che per i più paranoici sono previsti ulteriori sviluppi nel sistema
ecryptfs che renderanno, se possibile, ancora più sicuro e difficile poter accedere ad un PC
così protetto se non si è il legittimo proprietario. Stiamo a vedere cosa succederà e
soprattutto se le nuove funzionalità saranno altrettanto facilmente applicabili di quelle viste
in questa serie di articoli. Sono così giunto al termine della mia fatica che spero possa
essere utile anche ad altri così come lo è stata per me. Tutto quanto descritto qui è stato
provato sul mio PC reale e anche (soprattutto) nella Vitualbox con Ubuntu 9.04 installato.
Con la fine degli articoli sono anche arrivato ad applicare tutto sul PC reale e funziona
benissimo, quindi mi sento di dire che quanto ho cercato di spiegare qui nel modo più
chiaro e semplice possibile è anche affidabile.
Prima di chiudere voglio ancora elencare qualche link utile che mi è stato di ispirazione:
Homepage del progetto EcryptFS
Blog di uno degli sviluppatori
Pagina wiki con la documentazione

Potrebbero piacerti anche