Trusted Computing (Parte I)
Trusted Computing (Parte I) Guida a cura a di: Marco Sprocatti
Introduzione Da tempo ormai molti dei produttori hardware stanno sviluppando con grande impegno una nuova tecnologia di sicurezza chiamata "Trusted Computing" o "Trustworthy Computing" (TC). Annunciato come la rivoluzione dei dispositivi digitali, siano essi computer, lettori MP3, telefoni cellulari piuttosto che ricevitori TV, considerando che i produttori che aderiscono al Trusted Computing Group (TCG) rappresentano circa il 90% del mercato e detengono la maggior parte dei brevetti necessari a produrre qualsiasi dispositivo elettronico, risulta chiaro come questa tecnologia potrebbe diffondersi a tal punto da rendere impossibile acquistare prodotti che ne siano privi. Prima che il mercato ne faccia uso intensivo allora vediamo di conoscere e valutare le opportunità e i rischi che l'adozione di questa tecnologia comporta nell'ambito PC.
Gli scopi Il TC è nato dall'idea di proteggere i computer da minacce quali virus e cracker grazie a strumenti sia hardware che software. La situazione della sicurezza informatica è infatti attualmente talmente grave da rappresentare un problema allo sviluppo dell'intero settore e pare che non sia possibile risolvere tale problema se non con un radicale cambiamento della nostra tecnologia: ognuno di noi è costretto ad utilizzare antivirus, firewall , antispyware e software simili per proteggere se stesso ed i propri dati ogni giorno, ma nonostante questo talvolta qualche malware riesce a bucare il nostro sistema di difesa provocando danni. Il Trusted computing è stato studiato appositamente per dare una risposta definitiva ai problemi di sicurezza degli utenti. Nel suo articolo The need for TCPA, David Safford, ricercatore dell'IBM al lavoro sul Trusted Computing, elenca i punti deboli dei PC: 1) Programmi non sicuri 2) Programmi non correttamente configurati 3) Programmi difettosi 4) Codice sorgente chiuso 5) Scarsissima preparazione tecnica degli utenti 6) Scarso interesse dei privati e aziende per il materiale che hanno memorizzato nel loro PC
Diamo di seguito una spiegazione di ciò che viene inteso con questo elenco. Programmi non sicuri: sono quelli che sono stati progettati senza tenere presenti le esigenze di sicurezza e che quindi risultano insicuri se utilizzati in un ambiente ostile come Internet. Tra questi programmi, David Safford elenca FTP e Telnet, due programmi di rete che hanno la pessima abitudine di inviare password in rete senza proteggerle crittograficamente. Inoltre, nel corso degli ultimi 5 anni, FTP e Telnet sono stati sostituiti quasi ovunque dalle loro controparti sicure, cioè SCP ed SSH, rispettivamente. Secondo il comune buon senso, e secondo molti specialisti, i primi programmi intrinsecamente insicuri che avrebbero potuto (e dovuto) essere citati al posto di FTP e Telnet sono Microsoft Windows, la suite Microsoft Office, Microsoft Internet Explorer e Microsoft Outlook. Tutti questi diffusissimi programmi, infatti, sono stati progettati e costruiti in un epoca in cui la sicurezza non rappresentava ancora un problema così vasto e sono afflitti da pesanti e ben note vulnerabilità, che vengono man mano rattoppate con il rilascio di numerose patch. In questo senso corrispondono perfettamente alla definizione di programma non sicuro.
Programmi non correttamente configurati: sono quelli che pur possedendo le necessarie caratteristiche di sicurezza sono normalmente configurati in modo da non utilizzarle. David Safford cita a questo proposito NFS, il sistema usato per condividere file e stampanti sulle reti Unix. Anche in questo caso, verrebbe più naturale usare altri esempi. NFS, infatti, è stato largamente soppiantato dal più versatile e più sicuro Samba e comunque viene usato solo da amministratori di sistema che sanno bene come usarlo nel modo corretto.
Programmi difettosi: sono quelli che presentano errori progettazione o di implementazione tali da comprometterne la sicurezza. David Safford non fa esempi ma, anche in questo caso, viene spontaneo pensare ai prodotti Microsoft. In pratica , tutti i programmi Microsoft, infatti, sono notoriamente afflitti da seri problemi di questo tipo, al punto che persino enti al di sopra di ogni sospetto come il CERT (Computer Emergency Response Team) è costretto a sconsigliarne l'uso. Queste puntualizzazioni riguardo ai prodotti Microsoft possono sembrare gratuite ed ingiustificate ma non lo sono. Non bisogna dimenticare, infatti, che praticamente tutti i problemi di sicurezza che vengono descritti come “irrisolvibili senza l'ausilio del Trusted Computing” in realtà colpiscono principalemnte l'ambiente Windows. Altri ambienti come Linux, Unix, BSD e MacOS X, sono tradizionalmente immuni da questi problemi senza alcun bisogno di ricorrere a tecnologie hardware/software come il Trusted Computing. Di conseguenza, sostenere che la situazione corrente della sicurezza informatica impone l'adozione del Trusted Computing è quantomeno fuorviante, anche se è vero che la maggior parte dei PC utilizza un sistema operativo Microsoft.
Codice sorgente chiuso: l'abitudine generalizzata di sviluppare software nel segreto delle grandi aziende e di rilasciare solo la versione compilata dei programmi rende impossibile verificare che i programmi vengano progettati dedicando la necessaria attenzione alla sicurezza e che non contengano difetti. L'intero movimento del software Open Source nasce proprio da questa constatazione e, negli ultimi 10 anni, ha chiaramente dimostrato che il software sviluppato in modo “aperto” è nettamente più sicuro di quello tradizionale.
La scarsissima preparazione tecnica degli utenti li mette nella condizione di non saper scegliere il programma giusto, di non saperlo installare e configurare e di non saperlo gestire ed utilizzare nel modo corretto. Questa situazione apre la strada ad una lunghissima serie di attacchi che sono diretti non tanto al software quanto al suo utente. L'esempio più eclatante di questo tipo di attacchi è il phishing (tentativi di truffe e frodi su internet) ma anche la diffusione dei virus attraverso la posta elettronica è solitamente da imputare in larga misura alla impreparazione dell'utente.
Lo scarso interesse dei privati e delle aziende per il materiale presente nel PC li porta a non acquistare programmi antivirus e firewall, a non investire tempo nella formazione degli utenti ed a disinteressarsi dei backup. Questa situazione è una vera manna dal cielo per i malintenzionati. Nessuna tecnologia potrà mai rimediare ai danni che può produrre un utente irresponsabile. Secondo questi osservatori, il problema della sicurezza risiede quindi nell'ambiente umano che vive attorno al software ed ai computer, un ambiente umano fatto di imprenditori avidi e privi di scrupoli da un lato e di utenti ignoranti ed irresponsabili dall'altro. Non si tratterebbe quindi di un problema da affrontare con nuovi strumenti tecnici (come il TC) ma piuttosto attraverso una serie di interventi di carattere sociale ed industriale quali la formazione del personale e l'addestramento del personale ad un uso consapevole e sicuro del proprio PC.
Cos'è il Trusted Computing Il Trusted Computing è una tecnologia composta da dispositivi elettronici (hardware) e da programmi (software) che permette di proteggere un sistema informatico dai principali tipi di attacchi. In realtà, esistono diversi progetti e diverse implementazioni del concetto di Trusted Computing. Queste implementazioni svolgono funzioni diverse e sono caratterizzate da approcci differenti allo stesso problema. Nella tabella che segue sono riassunti i gli elementi da proteggere e il tipo d attacco che il TC è in grado di intercettare e fermare

Come si vede dalla tabella non sempre il Trusted Computing difende da attacchi esterni , ma anche da attacchi eseguiti dal proprietario del PC o comunque una persona che abbia accesso fisico al sistema. In altri termini, in alcuni casi il TC non difende il sistema (e quindi l'utente) da un attacco esterno ma piuttosto difende un file (e quindi il proprietario dei diritti su di esso) dall'azione dell'utente/proprietario del computer. Questa curiosa caratteristica del TC è alla base di alcune delle critiche più aspre che vengono mosse a questo progetto e verrà quindi discussa ampiamente in questo articolo.
Un altro elemento importante da ricordare è che il TC non è stato concepito solo per essere usato all'interno di un PC , ma all'interno di un qualunque dispositivo digitale. Fisicamente parlando, il TC è formato da tre elementi che poggiano uno sull'altro: 1) Al livello più basso e più fondamentale si trova un particolare chip chiamato TPM (Trusted Platform Module) o, più confidenzialmente, Fritz Chip (in onore del Senatore Fritz Hollings che si è speso instancabilmente per rendere obbligatoria questa tecnologia su tutti i dispositivi digitali commercializzati sul mercato USA). Questo chip svolge solo alcune funzioni crittografiche fondamentali. La tabella seguente le riporta in dettaglio:

Le funzionalità offerte dal Fritz Chip sono molto simili a quelle fornite da alcuni famosi programmi di crittografia a chiave pubblica, come PGP (Pretty Good Privacy http://www.pgp.com/ , http://www.pgpi.org/ , http://www.openpgp.org/) e GPG (GNU Privacy Guardian). Queste funzionalità sono anche le stesse che vengono fornite dal chip ESS (Embedded Security Subsystem) di IBM presente nei laptop IBM e Lenovo ThinkPad di gamma alta (http://www-1.ibm.com/support/docview.wss?uid=psg1MIGR-46391-IT)
Inoltre il Fritz Chip può essere implementato sia sotto forma di microchip separato saldato sulla scheda madre del dispositivo, sia come circuiteria specializzata all'interno della CPU di un computer o di un altro dispositivo.
2) Il Fritz Chip viene utilizzato come componente crittografico di base all'interno di una architettura hardware più complessa. I principali progetti di di “secondo livello” sono il progetto LaGrande di Intel, il progetto Presidio di AMD ed il progetto TrustZone di ARM. Queste architetture hardware mettono a disposizione alcune nuove funzionalità. La seguente tabella elenca ad esempio quelle previste dall'architettura LaGrande di Intel:

Anche in questo caso il TC non sempre difende il sistema (e quindi l'utente) da minacce esterne, ma addirittura in alcuni casi fornisce delle funzionalità che servono soprattutto a difendere un interlocutore esterno (ad esempio un fornitore di software o di contenuti multimediali) dall'azione del legittimo proprietario del sistema. E' questo il caso dell'attestazione remota ad esempio.
3) L'ultimo strato di TC è rappresentato dal sistema operativo e dai programmi (applicazioni). Microsoft ha in avanzata fase di sviluppo una particolare versione di Windows Vista che conterrà il software necessario a sfruttare le potenzialità offerte dall'architettura LaGrande di Intel (e forse Presidio di AMD). Nella terminologia di Microsoft questo progetto è noto come NGSCB (Next Generation Secure Computing Base) o "Palladium". Lo strato software non fornisce nuove funzionalità ma rende finalmente possibile lo sfruttamento di quelle messe a disposizione dall'hardware.
Funzionalità del Trusted Computing Per capire meglio quali siano le funzionalità fornite dalla tecnologia TC e che cosa esse comportano per l'utente occorre analizzarle in modo più approfondito.
Esecuzione protetta (Protected Execution) Questa è la caratteristica meno contestata rispetto alle altre. Significa semplicemente che durante la sua esecuzione un programma viene protetto dalla interferenza di altri programmi. Questo dovrebbe rendere inefficaci alcuni tipi di attacco (exploit) che attualmente vengono portati a termine ai danni dei servizi di sistema (come, ad esempio, il servizio software che gestisce la condivisione di file e cartelle nelle reti Windows).
Memoria Protetta (Curtained Memory) Anche la memoria protetta è la conseguenza di una esigenza legittima. Questa funzionalità permette di proteggere i dati usati da un programma dall'azione di altri programmi che vogliano leggere questi dati o li vogliano modificare. Questa funzionalità può anche essere usata per proteggere i contenuti multimediali da copie abusive.
Identificazione univoca del chip , del sistema e dell'utente La presenza del Fritz Chip permette di identificare in modo sicuro ed univoco il sistema che lo ospita e, indirettamente, il suo utente e/o proprietario. Questo risultato può essere ottenuto direttamente, grazie ad un identificatore crittografico univoco inciso nel silicio del Fritz Chip od indirettamente, in base ad un meccanismo più complesso legato alla generazione di chiavi crittografiche.
Microsoft ad esempio prevede esplicitamente che il Fritz Chip usato per implementare la sua architettura di TC NGSCB sia dotato di un identificatore univoco. Comunque, sia la tecnica prevista dal TCG che il numero di serie menzionato da Microsoft possono essere usati per identificare con certezza ed in modo univoco il chip, il sistema su cui è installato, la configurazione di questo sistema e, in certi casi ed a certe condizioni, anche l'identità dell'utente. Ma a cosa serve questa funzionalità? Che sicurezza aggiuntiva ci fornisce? All'utente normale, probabilmente nessuna. Per identificare l'utente quanto basta per i nostri scopi sono sufficienti i metodi già esistenti. Una volta identificato l'utente attraverso il suo indirizzo di posta elettronica, o attraverso una password di accesso, non interessa sapere null'altro. Molto diversa è la situazione di chi vende software e contenuti multimediali, magari attraverso Internet. Fa molta differenza se il cliente sta guardando il film che ha acquistato sul suo computer o se invece ha "prestato" questo materiale e le relative password di accesso ad uno o più dei suoi amici che li stanno "consumando" sul rispettivo hardware. Attestazione (Attestation) L'attestazione consiste nella generazione di un identificatore crittografico univoco, chiamato "hash", che descrive la struttura corrente di un documento, di un programma o di una intera configurazione. Da un punto di vista logico, si tratta della stessa operazione che viene eseguita quando si genera l'hash di un file usando un CRC32 od un MD5. Hash di questo tipo vengono già ampiamente utilizzati per "fotografare" lo stato corrente di un file e per verificare, in seguito, che il file non abbia subito cambiamenti a nostra insaputa (ad esempio a causa di un virus). Questa tecnica è normalmente usata dai sistemi di rilevamento delle intrusioni (IDS, Intrusion Detection System) come TripWire e AIDE. Anche il sistema di abilitazione di Windows XP prevedeva una operazione di questo tipo: la configurazione hardware e software del sistema veniva "fotografata" (o “misurata”) generando un hash e questo hash veniva inviato alla Microsoft via Internet. Microsoft rispondeva inviando una "password" che autorizzava all'uso del sistema operativo. Se un elemento del sistema, ad esempio il disco rigido, veniva sostituito bisognava ripetere la procedura. In questo modo Microsoft ha messo in atto una prima, rudimentale forma di lotta alla pirateria digitale. Il TC utilizza ampiamente questa tecnica per stabilire che un programma, un componente hardware od una intera configurazione non siano stati sostituiti o modificati. Questo permette di rilevare immediatamente eventuali virus ma permette anche di rilevare facilmente eventuali modifiche al sistema. Quest'ultima funzionalità è alla base di un meccanismo che permette di impedire eventuali violazioni delle licenze d'uso del software (EULA: End User Licence Agreement) o dei diritti d'autore sui contenuti digitali. Ad esempio, se si tentasse di bypassare il sistema anticopia di un file musicale MP3 usando un lettore diverso da quello originale, il sistema TC sarebbe in grado di rilevare questa sostituzione del programma e di impedire l'accesso al file MP3.
Attestazione Remota (Remote Attestation) L'attestazione viene normalmente usata per attestare (certificare) all'utente, ed ai programmi che egli usa, che il sistema non abbia subito cambiamenti rispetto ad una situazione già nota in precedenza e ritenuta sicura. L'attestazione remota certifica la stessa cosa ad un interlocutore esterno, di solito un altro computer connesso in rete (ad esempio un server web). Questa caratteristica è decisamente curiosa. Perché mai si dovrebbe certificare ad un ente esterno che un computer non ha subito variazioni rispetto alla volta precedente? La spiegazione ufficiale è che questo serve a stabilire una relazione iniziale di fiducia tra il computer in esame e quello remoto. Una spiegazione alternativa è che i produttori di hardware e software non si fidino degli utenti e vogliano controllare e bloccare ogni azione a loro sconveniente (per esempio fare il backup di un CD regolarmente acquistato). Se vi sembra strano che sia un sistema hardware/software a “stabilire una relazione di fiducia reciproca tra le parti”, sappiate che non siete i soli. L'attestazione Remota è una delle più contestate.
Queste spiegazioni ufficiali non fanno altro che spostare la nostra domanda iniziale su un piano leggermente più tecnico: per quale motivo il sistema remoto ha bisogno di conoscere la configurazione della nostra macchina per potersi fidare di noi? Non gli basta identificarci con una normale password? Tecnicamente, il fatto di sapere che la nostra configurazione non è cambiata permette al nostro interlocutore di sapere che nessun elemento del nostro sistema è stato cambiato a nostra insaputa, ad esempio da un virus, ma questo è un nostro problema e non lo dovrebbe riguardare. In realtà, l'aspetto più interessante dell'attestazione remota è che permette al nostro interlocutore di scoprire se noi abbiamo intenzionalmente cambiato qualche elemento del sistema. Ad esempio, potremmo avere installato un programma che finge di essere un lettore multimediale conosciuto ma che invece provvede a salvare abusivamente sul nostro disco rigido dei brani musicali protetti da copyright. Se il nostro interlocutore è un sito web che vende musica online, questa caratteristica può fare una grande differenza. In altri termini, l'attestazione remota non difende noi da qualche minaccia esterna ma difende invece il nostro interlocutore dalle conseguenze delle nostre azioni. Seth Schoen arriva anche a proporre una possibile soluzione a questo problema e la chiama Owner Override (sovrascrittura da parte dell'utente). Ne parleremo in dettaglio più avanti nel testo.
Memorizzazione Sigillata (Sealed Storage) La memorizzazione sigillata non deve essere confusa con la semplice memorizzazione protetta. La memorizzazione protetta consiste nel crittografare un file prima di scriverlo su disco. Questo file può essere copiato e spostato come qualunque normale file ma solo chi conosce la password necessaria può aprirlo e accedere al suo contenuto. Nella memorizzazione sigillata invece non basta più la password per decriptare il file: bisogna anche usare lo stesso programma e lo stesso ambiente che sono stati usati per crittografarlo. Il programma e l'ambiente vengono certificati grazie alle funzionalità di attestazione descritte in precedenza. Ma a cosa serve questa nuova caratteristica? Perché condizionare l'apertura del file all'uso dello stesso programma usato per crittografarlo? Non basta la conoscenza della password a dimostrare che si è legittimamente autorizzati a farlo? Se ci si limita ad esaminare le normali esigenze crittografiche dell'utente, questa funzionalità è chiaramente inutile e probabilmente dannosa. La sua utilità diventa chiara se ci si mette nella posizione di chi vende musica o film su Internet. Se la decriptazione non è più condizionata solo alla conoscenza della password, ma è vincolata anche all'uso della stessa macchina che è stata utilizzata al momento dell'acquisto del file non è più possibile effettuare una copia abusiva. Input/Output Protetto (I/O protected) Sia Microsoft, con NGSCB, che Intel, con LaGrande, aggiungono alle specifiche del TCG una funzionalità originariamente non prevista: la protezione crittografica dei canali di comunicazione tra l'utente ed il computer. Sfruttando le funzionalità di codifica e decodifica dei flussi di dati in tempo reale messe a disposizione dall'hardware TC, le comunicazioni che avvengono tra il mouse e la tastiera da un lato e il computer dall'altro vengono crittografate e rese impenetrabili agli estranei. Lo stesso avviene per i flussi di dati che arrivano da Internet o dai lettori (CD, DVD, MP3, etc.) presenti sul computer e che sono diretti allo schermo ed alle casse acustiche. Anche questa è una funzionalità piuttosto curiosa: per quale motivo è necessario proteggere i flussi di dati che scorrono all'interno del computer? Ufficialmente, questa caratteristica serve a proteggere questi flussi di dati dai programmi spia che rilevano la pressione dei tasti della tastiera (key logger) o che registrano quanto viene visualizzato sullo schermo (screen capture). Viste sotto questa luce queste funzionalità sono sicuramente un passo avanti in termini di sicurezza. Tuttavia, se si osservano queste funzionalità sotto un'altra luce le cose cambiano in modo significativo. Cosa succederà ai programmi che al giorno d'oggi vengono usati per "catturare" i flussi di dati audio e video e quindi per salvare abusivamente una copia di brani musicali e di film coperti da copyright? Che succederà ai programmi come Total Recorder, SoundRecorder, Audio Haijack? Ovviamente questo tipo di programmi non potrà più funzionare.
Avviamento Protetto (Protected Launch) Grazie alle funzionalità di attestazione messe a disposizione dal Fritz Chip i computer dotati di tecnologia TC sono in grado di fotografare una determinata configurazione hardware/software e di controllare in seguito se essa sia stata modificata o meno. Questa funzionalità viene sfruttata dai computer TC per fotografare i vari stadi dell'avviamento del sistema e per verificare in seguito che nessun elemento critico sia stato sostituito da un altro simile ma non uguale. In altri termini, questa funzionalità permette al computer di accorgersi se è stata inserita una nuova scheda al posto di una esistente o se un certo elemento del sistema operativo sia stato sostituito. Ufficialmente, questa funzionalità serve per rilevare gli effetti di una contaminazione da virus e per difendere il sistema da eventuali hacker che abbiano accesso fisico al sistema. Qualunque programma che fosse stato sostituito da una copia contaminata da virus verrebbe immediatamente bloccato. Se questa funzionalità dovesse realmente servire soltanto a questo, non si capisce né per quale motivo vengano rilevati anche i cambiamenti all'hardware né per quale motivo questa funzionalità non sia sottoposta al controllo dell'utente. Dopotutto, l'utente ha pienamente il diritto di cambiare un elemento hardware o software del suo computer. Se si guarda questa funzionalità da un altro punto di vista, diventa tutto molto più comprensibile. Cosa succede se l'utente decide di installare una scheda TV "pirata" che è in grado di salvare su disco i film trasmessi via satellite in "barba" alle protezioni digitali applicate da chi trasmette? La nuova scheda viene immediatamente rilevata ed il resto del sistema si rifiuta di collaborare, rendendo impossibile la copia abusiva. Che succede se si cerca di avviare l'intero sistema con un sistema operativo diverso da Windows Vista, ad esempio Linux? Il sistema si avvia ma le funzionalità TC necessarie per accedere ai file protetti rimangono inaccessibili. In parole povere questa funzionalità non serve tanto a difendere l'utente da un ipotetico hacker o dai virus. Quanto più a proteggere gli interessi di chi detiene i diritti di copyright sui file multimediali dall'azione dell'utente del sistema.
Come funziona il TC? Date queste funzionalità, come funziona un sistema dotato di Trusted Computing? Come viene avviato? Come vengono lanciati ed eseguiti i programmi? Cosa succede se si cerca di eseguire programmi che non sono compatibili con lo standard TC? Che succede se si cerca di accedere a documenti protetti dal sistema TC? Cerchiamo di rispondere a queste domande.
Chiariamo subito un punto: un computer dotato di tecnologia TC può essere avviato con un sistema operativo e dei programmi di tipo tradizionale, come Linux. In questo caso, si comporta semplicemente come un qualunque computer di tipo tradizionale. Questo chiarimento è necessario perché una delle principali critiche che vengono mosse al TC è quella che riguarda una sua sostanziale incompatibilità con tutto ciò che non si attiene al suo standard. Da più parti si sostiene che il TC renderà impossibile l'uso di Linux e di molti altri programmi Open Source. Questo non è vero, od almeno non lo è a questo livello.
Microsoft spiega molto bene questo punto nelle sue FAQ su NGSCB: [Utente]: Ho sentito che NGSCB imporrà agli utenti di usare solo software approvato da Microsoft [Microsoft]: Questo è semplicemente falso. Il chip SSC e gli altri elementi di NGSCB non vengono coinvolti nel processo di avviamento del sistema operativo e nella sua decisione di caricare una applicazione che non fa uso di NGSCB. Dato che non viene coinvolto nel processo di avvio della macchina, NGSCB non può impedire di funzionare ad un programma che non si attiene al suo standard. Solo l'utente può decidere cosa viene fatto girare sul suo computer. Tutti in linea teorica possono scrivere software che fa uso delle funzionalità offerte da NGSCB senza bisogno di notificare la cosa a Microsoft o di ottenere la sua approvazione. Naturalmente, rimane possibile scrivere software che richiede NGSCB per funzionare. Questo tipo di applicazioni può fare uso di tecniche crittografiche e di qualche meccanismo di gestione delle licenze per funzionare. Comunque, sarà solo questa applicazione a fare uso di queste caratteristiche e questo non avrà effetti sulle altre applicazioni. NGSCB isola una applicazione dall'altra per cui nessuna applicazione può impedire ad un'altra di funzionare.
Anche Intel, nella sua LaGrande Technology Overview, parla chiaro su questo punto: LT permette di lanciare un ambiente protetto senza riavviare la macchina ed il software tradizionale può funzionare senza modifiche.
Attenzione: Diverso è il caso di un computer TC che viene avviato con un sistema operativo e dei programmi di tipo TC (come avviene anche nel caso di tutti i dispositivi digitali in cui non è possibile cambiare il software di controllo, come i lettori DVD/CD da salotto, i telefoni cellulari e via dicendo). In questo caso, il funzionamento del sistema è molto diverso e segue la logica prevista dallo standard TC.
All'avvio (bootstrap) il sistema controlla che nessun elemento hardware o software sia stato sostituito. Se viene rilevato qualche cambiamento, i dati che erano stati crittografati prima di questo cambiamento non saranno più accessibili. Questo è un effetto voluto e serve ad evitare che i dati riservati siano accessibili ad un estraneo che riesce ad avere accesso fisico al sistema. Al giorno d'oggi, per bypassare alcuni tipi di protezione, come le password di sessione di Windows, è sufficiente riavviare il PC da una distribuzione Live di Linux. Il TC rende impossibile questo tipo di attacco.
Dal punto di vista fisico questo effetto viene realizzato nel seguente modo: - Al momento della cifratura dei dati, viene fotografato il sistema (cioè ne viene calcolato un hash che lo identifica in modo univoco) - Al momento della decifrazione viene nuovamente fotografato il sistema e si verifica che esso non sia stato modificato. - Solo se il sistema è rimasto identico a sé stesso, il Fritz Chip rilascia le chiavi di cifratura necessarie per accedere ai dati. In caso contrario, queste chiavi rimangono al sicuro all'interno del Fritz Chip, dove nessun programma non autorizzato può arrivare.
In alcuni casi, come nel caso della sostituzione di un elemento hardware, è possibile ritornare in possesso di questi dati usando una particolare procedura detta di "migrazione delle chiavi". Questo permette di aggiornare o riparare il sistema senza perdere i dati che esso contiene.
Se il sistema parte regolarmente, è possibile eseguire su di esso dei programmi che fanno uso della tecnologia TC. In questo caso, sono disponibili tutte le protezioni offerte dalla tecnologia TC: - I programmi possono essere eseguiti in ambienti isolati e protetti da ogni interferenza esterna. Anche la memoria da loro utilizzata per immagazzinare i dati viene protetta da accessi non autorizzati. - Tutti i canali di comunicazione tra l'utente ed il dispositivo (mouse, joystick, game pad, microfono, tastiera, schermo o casse audio) sono protetti da accessi non autorizzati. - In alcuni casi , anche le comunicazioni tra i componenti interni (schede) ed esterni (stampanti) del computer sono protette crittograficamente. - Il sistema ed ogni suo componente hardware e software può essere identificato in modo univoco e si può verificare che non sia stato modificato rispetto al precedente controllo. - I dati memorizzati sul computer possono essere crittografati in modo tale che non sia possibile decriptarli su un'altra piattaforma nemmeno conoscendo la password di accesso. - Il computer può essere "certificato" e può ottenere l'accesso a servizi particolarmente critici su Internet (home banking) od a servizi commerciali di altri tipo (iTunes ed altri rivenditori di brani musicali su Internet ad esempio).
L'utente non deve preoccuparsi in modo particolare del TC. Il sistema è in grado di effettuare tutte le operazioni necessarie da solo, senza nessuna assistenza da parte sua. Secondo la terminologia tipica del settore, la tecnologia TC è detta “trasparente”, cioè “invisibile” all'utente. La presenza del sistema TC diventa visibile solo quando l'utente tenta di accedere a dati cifrati e gli viene chiesto di identificarsi (di solito fornendo una password).
Nell'uso normale, un sistema TC è sostanzialmente indistinguibile da un sistema tradizionale. D'altra parte, le differenze tra i due sistemi esistono e sono rilevanti. Ad esempio, l'utente non può più effettuare le seguenti operazioni: - Copiare abusivamente un CD od un DVD. - Registrare abusivamente un brano musicale od un film da Internet o da un canale radio/TV satellitare o digitale terrestre. - Usare software non legalmente acquistato. Come abbiamo già detto, su un sistema TC possono essere usati programmi non TC. La principale limitazione che si incontra in questo caso è che i dati creati con applicazioni TC non saranno accessibili. La possibilità di rendere inutilizzabili i programmi tradizionali sui sistemi TC esiste, ma non è prevista dalle specifiche tecniche del TC. Approfondiremo questo punto cruciale in una apposita sezione.
Le differenze tra un sistema tradizionale ed un sistema TC si notano solo quando si tenta di effettuare una delle seguenti operazioni:
Accedere ad un servizio di rete protetto Per acquistare musica su iTunes (un famoso negozio di musica online gestito da Apple) è necessario registrarsi, cioè farsi riconoscere dal sistema e ”firmare” il registro degli accessi. Fino ad ora il servizio richiedeva che l'utente provvedesse di persona a questa procedura, nota come login, digitando nome utente e password. In futuro sarà il computer TC stesso a provvedere e lo farà inviando al sistema remoto un identificatore digitale che svolgerà due funzioni: da un lato certificherà in modo univoco l'identità del sistema chiamante e dall'altro certificherà che l'hardware ed il software non hanno subito cambiamenti rispetto ad un momento precedente ritenuto “affidabile” dal servizio di rete. Al momento della prima registrazione, il servizio di rete può stabilire se un interlocutore remoto è “affidabile” utilizzando le capacità crittografiche del sistema TC per identificare l'hardware ed il software utilizzati dall'interlocutore stesso. Se in seguito anche uno solo di questi elementi viene cambiato, il sistema si rifiuta di concedere l'accesso al servizio.
Accedere a dati protetti (locali o remoti) Quando si tenta di accedere a dati cifrati, sul proprio disco rigido o su un server di rete, è il sistema TC a registrarsi al posto dell'utente e lo fa inviando lo stesso tipo di certificato usato per accedere a servizi remoti. Anche in questo caso il certificato provvede ad identificare in modo sicuro l'utente ed a identificare in modo altrettanto sicuro l'hardware ed il software che egli utilizza. Se anche uno solo di questi elementi viene cambiato, il sistema si rifiuta di decifrare i dati e renderli accessibili.
Spostare dati e/o programmi da una macchina ad un'altra Spostare dati o programmi da un macchina all'altra è equivalente a cambiare tutti o quasi tutti i componenti del computer su cui risiedono questi dati o questi programmi. Di conseguenza, il sistema TC si rifiuterebbe di rendere accessibili i dati cifrati e/o di rendere utilizzabili i programmi che sono sottoposti ad una licenza d'uso che non preveda esplicitamente il diritto dell'utente di cambiare hardware. Per risolvere il problema dello spostamento legittimo di dati e programmi da un sistema all'altro è prevista una apposita (e piuttosto complessa) manovra di “migrazione delle chiavi crittografiche”.
Ripristinare dati e/o programmi dopo un backup Anche la manovra di ripristino dei dati e dei programmi dopo un backup (ed un eventuale crash del sistema) è logicamente equivalente a cambiare tutto o parte del sistema su cui sono ospitati i dati ed i programmi protetti dal sistema TC. Anche in questo caso si rende necessaria una manovra di migrazione delle chiavi.
L'articolo prosegue nella Parte II.
|
|