A Ovest Di Paperino

Welcome to the dark side.

Cazzate a iosa: i fissati del trusted computing

A tre settimane tre dal rilascio di Vista avrei pensato che le cazzate che si sarebbero lette in giro avrebbero avuto un andamento asintotico rispetto al tempo (almeno in quantità). Qualcosa tipo:

Dove x è il tempo, f(x) è la quantità di cazzate. E invece. Quasi in un gioco di chi la spara più grossa su Punto Informatico di "oggi" Giovedì 22 Febbraio c'è il secondo articolo intitolato "Untrusted/ Windows Vista ed il Trusted Computing". Cominciamo con la carrellata delle cazzate e pazienza se questo post è un papiro.

Cazzata numero 1:

Nonostante le iperboli delle riviste del mondo Microsoft, Windows Vista non è significativamente più sicuro delle precedenti versioni di Windows e resta nettamente meno sicuro di Linux e di tutte le varie versioni di Unix, compreso MacOS X. Più esattamente, dal punto di vista della sicurezza, il nuovo Windows equivale alla situazione che si poteva ottenere con il vecchio Windows 95 dopo aver installato ZoneAlarm (il più diffuso firewall personale gratuito) e AdAware (il più diffuso sistema antiadware e antispyware gratuito).
Mi rendo perfettamente conto del fatto che questa è una affermazione pesante e che molti lettori non saranno d'accordo, ma basta un attimo di riflessione per rendersi conto del fatto che le cose stanno proprio in questo modo.
La dimostrazione più immediata di quello che ho appena detto è il fatto che Windows Vista, come tutti i suoi predecessori, impone comunque l'installazione di un buon antivirus. Microsoft stessa si premura di raccomandare questa misura di sicurezza preventiva. Non solo: tutti gli osservatori indipendenti sono d'accordo con la casa madre nel ritenere che si tratti di una misura di sicurezza indispensabile per Windows Vista. Come noto, né Linux, né BSD, né MacOS X né nessuno degli altri sistemi operativi conosciuti ha bisogno di un antivirus per funzionare in condizioni di sicurezza.

Inutile che sto a ripetere come la penso sull'equazione "meno virus = sistema più sicuro". Se fosse vera il C64 sarebbe il sistema più sicuro al mondo e mi verrebbe da ridere. Ma da qui a paragonare Vista a Windows 95 (che non aveva nessun meccanismo di separazione della memoria tra i processi) ce ne vuole davvero tanto di coraggio.

Cazzata numero 2:

Come abbiamo detto, in questo caso il TPM viene usato come "cassaforte" per memorizzare la chiave di cifra usata per cifrare e decifrare la partizione del disco che ospita il sistema operativo ed i programmi. Le funzionalità di sicurezza della Trusted Platform sottostante vengono quindi usate solo in piccola parte.
L'uso del TPM è così ridotto che, di fatto, questo componente può essere rimpiazzato da una normale chiave di memoria USB su cui viene memorizzata la chiave di cifra. Più esattamente, la chiave USB può essere usata sia in alternativa al TPM che in associazione ad esso. Si può condizionare l'accesso ai dati contenuti nella partizione cifrata ad uno o più dei seguenti elementi di controllo.

1) La chiave di cifra memorizzata nel TPM
2) Un codice di startup memorizzato nella chiave USB
3) Un PIN simile a quello usato nei telefoni cellulari
Può essere usata una qualunque combinazione di questi tre elementi di controllo.
Questo è già un primo punto su cui sarebbe il caso di riflettere: se il TPM viene usato così poco da poter essere sostituito da una chiave di memoria USB, probabilmente i vantaggi che fornisce non sono molto diversi da quelli tipici della chiave di memoria o di un CD-ROM.

Già il fatto che qualcuno dica che la nuova tecnologia XYZ è inutile in quanto c'è già la tecnologia ABC mi fa abbondantemente sorridere. Se così fosse a che serve inventare le chiavette USB? Ci sono i CD-R... A che servono i CD-R? Ci sono i floppy... ecc. Una tecnologia ha senso se risolve problemi pratici.

Problema pratico:

se memorizzo la chiave crittografica del mio PC di ufficio su pendrive USB e dimentico (o peggio smarrisco) il pendrive, che ne sarà di me?

Ma di più, facciamo un passo indietro. Che senso ha criptare un drive (più precisamente la partizione contenente il SO)? Serve a prevenire attacchi di tipo offline. Cioé significa che se perdo il mio laptop e la partizione con l'OS non è criptata, qualcuno ne potrebbe smontare l'HD, installarlo su un PC, copiare il file delle password hashes, tentare un attacco di forza bruta (con le rainbow tables meno di qualche ora), recuperare la password ed avere accesso TOTALE e INCONDIZIONATO anche a partizioni criptate usando EFS. Questa non è una debolezza di Windows ma di tutti i S.O. Cioè non si può memorizzare un segreto in maniera sicura su qualcosa di facilmente accessibile (nel caso specifico l'HD). Il chip TPM rende tale tipo di attacco impossibile (a meno di tentare un attacco di forza bruta sul FS direttamente) restando al tempo stesso molto pratico (nessun pin da memorizzare, nessuna chiavetta da portare appresso, ecc.): per i più paranoici più "elementi di controllo" possono essere usati contemporaneamente. Trovo poi esilarante che proprio poche notizie più in giù su punto informatico figuri "Hard disk usati? Una miniera d'oro di dati"

Cazzata numero 3:

Le funzionalità DRM (anticopia) del Trusted Computing sono quindi già pienamente disponibili su Windows Vista persino con questo livello minimo di sfruttamento della Trusted Platform sottostante. Si tratta, di fatto, della tanto temuta funzionalità di "Secure boot" del Trusted Computing, anche se Microsoft si guarda bene dal chiamarla con questo nome.
Questa funzionalità non aggiunge molto alla protezione anticopia di Windows Vista, già garantita da altri mezzi, ma fornisce un potente strumento anticopia ai programmi di terze parti che si insediano sulla stessa partizione cifrata del sistema operativo.
Ma non facevamo prima con un Live CD?
La sicurezza aggiuntiva che fornisce il Trusted Computing al sistema è piuttosto limitata, soprattutto se viene confrontata con ciò che il mercato fornisce da anni, gratuitamente, su tutte le piattaforme.
Questa stessa funzionalità, infatti, può facilmente essere ottenuta, da diversi anni e su qualunque sistema operativo esistente, grazie all'uso di uno qualunque dei vari sistemi di verifica della integrità del file system, come Tripwire, e di un qualunque supporto esterno per la memorizzazione delle chiavi (un CD-ROM, una chiave USB, etc.).
Questi sistemi funzionano in questo modo:

1) Un apposito programma (Tripwire o simili) genera un apposito "checksum" (MD5 o CRC) che identifica univocamente ogni singolo file che si vuole tenere sotto controllo.
2) Questi checksum sono piccoli file che vengono memorizzati fuori dalla portata di eventuali malfattori, di solito su un CD.
3) Al momento del bootstrap, si esegue il programma, si ricalcolano i checksum e li si confronta con quelli memorizzati. Se uno di questi non corrisponde, vuol dire che il file è stato modificato o sostituito ed il bootstrap viene interrotto in attesa dell'intervento dell'amministratore.

C'è mica bisogno di spiegare perché un sistema sicuro già dal boot è più sicuro di un sistema sicuro "a posteriori"? Esempio pratico il rootkit. Un rootkit può far credere a qualsiasi software - di sistema o meno - di leggere un file mentre il file è stato modificato. Questo significa che in presenza di un rootkit sistemi come "tripwire o simili" sono destinati semplicemente a fallire. Il "secure boot" rende la vita molto difficile (non impossibile!) a chi scrive questa roba.

Cazzata numero 4:

Una soluzione ancora più semplice (e già molto diffusa nella realtà) consiste nell'usare una distribuzione "Live" di Linux (Knoppix, Ubuntu, etc.) e magari salvare i dati su una chiave USB. Questa soluzione non richiede nessuna particolare competenza tecnica e mantiene il sistema operativo al sicuro sul CD (che non è scrivibile e quindi non può essere modificato). Questa soluzione viene usata, ad esempio, per creare dei server resistenti a qualunque tipo di attacco o dei "chioschi" in grado di ripartire da una situazione sicura dopo un possibile crash.

Se proprio vuoi essere sicuro di avere il controllo di quello che viene scritto sul tuo HD, butta via l'HD. Bella roba. Poi vorrei capire come si fa a far girare applicazioni per Windows su Linux Live.

Cazzata numero 5:

Il Trusted Computing di Windows Vista, quindi, non fornisce nessuna funzionalità realmente innovativa. Ciò che si può fare con il TPM, può essere fatto con altri mezzi da molti anni, gratuitamente.
Si noti che, a differenza di quanto avviene nel caso di Windows Vista e del suo TPM, sia usando Tripwire che il Live CD il controllo resta sempre e comunque nelle mani dell'utente (o amministratore) del sistema. Non può succedere, nemmeno per sbaglio, che il controllo del sistema passi, anche solo in parte o temporaneamente, ad un programma non autorizzato dall'utente o ad una persona diversa dall'utente legittimo del sistema (ad esempio un fornitore).

La prima frase è un riassunto di riflessioni sbagliate, quindi sbagliata in se. Come faccia l'utente ad essere sicuro di avere il controllo del PC, senza un controllo di integrità che comincia con il boot, resta ancora un mistero.

Cazzata numero 6:

Di conseguenza, anche se il Trusted Computing di Windows Vista fosse, per ipotesi, una funzionalità utile, resterebbe comunque qualcosa riservato ad una èlite. Per nostra fortuna, questo vuol anche dire che non succederà mai che ci rifilino una macchina dotata di TPM e di Windows Vista Enterprise od Ultimate senza che ce ne accorgiamo.

I venditori di PC sono persone pratiche. Anche se il bitlocker fosse disponibile su tutte le versioni di Windows, non ce li vedo che lo installino di default. Tra l'altro bitlocker, come tante altre feature, è attivabile/disattivabile a volontà (non facilmente). Non c'è nessuna versione di Windows che viene distribuita con un "bitlocker per forza". Sinceramente tutto questo allarmismo mi sembra a tratti estremamente ridicolo.

Cazzata numero 7:

Per quanto riguarda la sicurezza dei sistemi operativi, è importante far sapere che Microsoft sta attivamente lavorando su una interessante alternativa al Trusted Computing: i sistemi operativi "intrinsecamente sicuri" ("Intrisecally Safe Operating System").

[...]

Il progetto di sistema operativo intrinsecamente sicuro di Microsoft si chiama Singularity ed è stato presentato ufficialmente alla stampa nei mesi scorsi con una serie di interviste ai suoi sviluppatori. Microsoft ha pubblicato queste interviste video sul suo canale VideoOverIp Channel 9. Singularity è solo un sistema operativo "da ricerca". Non è destinato a raggiungere il mercato. Tuttavia, Singularity dimostra in modo inequivocabile come esistano delle alternative credibili al Trusted Computing e come Microsoft stessa sia un vero protagonista nel loro sviluppo.

Sistemi come Singularity tendono a risolvere un tipo di problema diverso (che richiederebbe un post intero). D'altra parte questo pezzo dell'articolo contraddice in maniera sostanziale quanto detto nella cazzata numero 1, visto che tutte le nuove features di sicurezza di Vista secondo l'autore non servono ad un c###o.  Delle due l'una:

  1. in Singularity (o sistemi intrinsecamente sicuri) è impossibile scrivere codice tipo "System.Drive["C"].Format"; in tal caso ci ritroveremmo con un OS utile quanto quello del c64: non un gran passo avanti.
  2. Codice come quello nel punto 1 è possibile. Ma chi decide se tale codice deve girare? Se è l'utente saremmo non lontani da dove siamo oggi (sindrome dell'utente che clicca dappertutto); se è l'OS davvero non riesco a capire quali dei tanti algoritmi di lettura del pensiero potrebbe provarsi utile.

Infine la cazzata numero 8, quella conclusiva:

Tuttavia, il pur limitato supporto al Trusted Computing di Windows Vista è socialmente pericoloso. Lo è perché mette un potente strumento di controllo nelle mani, non sempre pulitissime, delle aziende che producono e distribuiscono software e contenuti multimediali. Per capire quanto questo possa essere pericoloso, basterà pensare a cosa è successo l'anno scorso con i CD musicali di Sony/BMG (afflitti niente meno che da un rootkit!).

Se ci fosse stato il "secure boot" su XP secondo voi Sony sarebbe riuscita a certificare il suo rootkit o si sarebbe dovuta limitare a quanto offre l'OS? Io propendo per la seconda.

-quack