Roma – I sistemi Trusted Computing che vedremo sugli scaffali dei negozi non saranno dotati soltanto del Fritz Chip (TPM) che viene descritto dalle specifiche standard del Trusted Computing Group. Quasi tutti i produttori di hardware stanno sviluppando delle proprie soluzioni di Trusted Computing che fanno uso del TPM ma che ne estendono anche le capacità in modo drastico grazie all’aggiunta di alcuni componenti hardware e software. Questo è il caso di Intel ma anche di AMD, ARM e TransMeta. Tutte queste aziende stanno freneticamente sviluppando soluzioni di Trusted Computing che estendono di molto le capacità del TPM, a volte fino a stravolgere completamente la visione del Trusted Computing proposta dal TCG.
Intel sta attivamente sviluppando una sua soluzione di Trusted Computing che si chiama LaGrande Technology . Questa tecnologia aggiunge diverse nuove ed importanti funzionalità a quelle già previste dal Trusted Computing Group.
Esecuzione protetta (Protected Execution) : l’esecuzione dei programmi avviene all’interno di un ambiente protetto, in modo che nessun’altro programma, di nessun tipo, possa accedere alla RAM ed alle altre risorse usate dal programma.
Memorizzazione sigillata (Sealed Storage) : grazie a questa funzionalità è possibile cifrare dati sensibili su una determinata piattaforma (PC+Sistema Operativo+Programmi) e garantire che questi dati possano essere decifrati solo sulla stessa, identica macchina (Stesso hardware, stesso Sistema Operativo, stessi programmi, stessa configurazione, stesso utente).
Input/Output protetto (Protected Input/Output) : i canali di comunicazione che portano dati dentro il sistema, come le connessioni USB della tastiera e del mouse, e quelle che portano dati fuori dal sistema, come i canali che portano le immagini al display ed i segnali audio alle casse, sono protetti crittograficamente in modo che nessuno, tranne il programma in esecuzione, possa accedervi.
Attestazione (Attestation) : questa funzionalità permette di esaminare da remoto la vostra piattaforma (hardware, sistema operativo, programmi) e decidere se è possibile fidarsi di essa sulla base di una serie di “liste” di componenti affidabili (liste che non sono meglio specificate da Intel). Questa funzionalità permette anche di “fotografare” lo stato del sistema in uno specifico momento e verificare in seguito che non si siano verificati cambiamenti anche minimi nella sua configurazione. Questa funzionalità può essere usata, attraverso una rete, da un interlocutore remoto per esaminare e verificare la configurazione della vostra macchina e/o per verificare che voi non la abbiate modificata in nessun modo rispetto ad un momento precedente. Per stessa ammissione di Intel, è più facile verificare l’integrità della vostra piattaforma per un sistema remoto che si collega ad essa attraverso la rete di quanto lo sia per voi stessi che agite dalla tastiera della vostra macchina:
Attesting the environment of a local machine to a human user is more challenging, given that most humans cannot perfom cryptographic calculation in their heads (Da Intel LaGrande Technology Overview , pagina 7)
Avviamento protetto (Protected Launch) : questa funzionalità permette di avviare il sistema passando attraverso una serie di stadi certificati e “affidabili”. In altri termini, permette di verificare che tutti gli elementi coinvolti nel processo di avviamento (hardware, BIOS, sistema operativo, programmi) siano affidabili (dal punto di vista del TPM). Se uno soltanto di questi elementi risulta compromesso o modificato, le funzionalità del Trusted Computing vengono disabilitate ed i dati protetti con gli strumenti crittografici del TC restano inaccessibili.
Per implementare queste funzionalità aggiuntive, Intel prevede di produrre una serie di nuovi componenti hardware.
CPU : i futuri processori Intel disporranno delle funzionalità necessarie per garantire l’esecuzione protetta dei programmi e per controllare l’accesso dei programmi stessi alle risorse hardware (RAM, registri, interrupt etc.). Sembra anche probabile che la prossima generazione di CPU Intel possa integrare le funzionalità del TPM al suo interno.
Chipset : anche il chipset presente sulle motherboard subirà delle pesanti modifiche. In particolare sono necessari nuovi componenti o nuove funzionalità per supportare l’accesso controllato e protetto alla RAM, i canali protetti di input/output e l’interfaccia verso il TPM.
Keyboard e Mouse : naturalmente, saranno necessari nuovi tipi di tastiere e di mouse compatibili con questa tecnologia.
Schede Audio e Video : esistono già alcune schede audio dotate di dispositivi DRM intesi ad impedire che venga catturato il flusso di dati digitali all’uscita della scheda e che esso venga abusivamente salvato su disco. In futuro, per motivi di compatibilità con Intel LaGrande e con le altre implementazioni del TC, funzionalità di questo tipo diventeranno elementi standard sia delle schede audio che delle schede video.
Per godere dei vantaggi offerti dalla Tecnologia LaGrande, come il privilegio di permettere ad un estraneo all’altra estremità della connessione di rete di sapere esattamente cosa gira sulla vostra macchina, sarà quindi necessario sostituire completamente l’hardware esistente .
Secondo Intel, resterà comunque possibile eseguire software non “Trusted” sulle macchine della prossima generazione. Questo software verrà eseguito in un ambiente untrusted parallelo a quello trusted e da esso rigidamente separato.
Gli elementi che vengono più criticati della architettura Intel LaGrande sono tre.
Whitelist : da alcuni elementi della documentazione di Intel si deduce che verranno stilate delle liste di componenti hardware (a partire dai TPM) e di componenti software (a partire dai sistemi operativi) ritenuti affidabili da parte dei produttori e che solo ad essi sarà concesso di sfruttare le funzionalità del TC, a partire dalla possibilità di accedere ai dati (film, musica, software, servizi di rete, database etc.) protetti con tecnologie TC.
Questo si deduce, ad esempio, dal seguente brano del documento LaGrande Technology Overview .
Establishing Initial Trust
A sealed secret can only be unsealed and accessed by the same domain manager environment. If a secret known only to a user was sealed to an environment that the user chose to trust, then if this secret can be re-displayed the user knows the same trusted environment is currently running. A similar method uses a secret shared with a remote agent, allowing the remote agent to know that the same trusted environment is currently running. But that leaves the question of how the user or remote agent determines that the environment should be trusted before a shared secret exists. To put the question more succintly: how do we determine initial trust?
LT supports an optional, verifiable reporting mechanism, called attestation. Attestation permits either the user or, optionally, a remote agent to measure the currently running environment using measurement and reporting mechanisms supported by the TPM. Based upon these reported measurements, the user or remote agent may use this information to decide whether to trust the current platform environment.
For a remote agent, the attestation process involves standard cryptographic methods. A remote agent generates a random value (called a nonce or challenge), and sends it to the system to be tested. At that system, the TPM creates a record containing the nonce and the current PCR values (which represent the currently running domain manager environment). The TPM signs this record with its private key and the signed record is returned to the remote agent, along with the TPM’s public key and credentials. The remote agent may examine the credentials to determine that this public key does; in fact, represent a real TPM, then uses the public key to verify the signature on the record and, then extracts the data from the record. The extracted data may now be checked against various lists to determine if this is an environment acceptable to the remote agent.
Si noti come sia prevista una modalità di certificazione del TPM rispetto ad un database esterno di firme digitali di TPM ritenuti affidabili, in modo da impedire l’uso di TPM “pirata” , emulati in software od in hardware, da parte dell’utente. Ovviamente questa lista permette anche di associare un determinato TPM al suo proprietario e/o utente, dando origine ad una grave violazione della privacy.
Attestazione remota : questa funzionalità viene fortemente contestata da tutti gli osservatori indipendenti che si sono occupati di Trusted Computing per le seguenti due ragioni.
1) Permette ad un estraneo di conoscere l’esatta struttura della nostra macchina e non permette a noi, legittimi proprietari della macchina, di decidere cosa l’estraneo debba essere in grado di sapere su di essa.
2) Permette di associare il proprietario del sistema al codice identificativo del TPM, violando palesemente ogni diritto alla privacy dell’utente. Questo è tecnicamente possibile a dispetto di molte assicurazioni fornite da Intel e dal TCG. Ne parleremo a fondo in un prossimo articolo.
Protezione dei canali di input/output : questa funzionalità, pur utile e giustificabile ai fini della sicurezza, è palesemente orientata alla creazione di sistemi DRM di seconda generazione sostanzialmente inviolabili. La diffusione sul mercato di nuovi e più sofisticati sistemi DRM, proprio in un momento in cui infiamma la polemica attorno all’uso di questi sistemi, è a dir poco inopportuna. Basti pensare al caso Sony/BMG.
Come abbiamo detto, anche AMD ed altri produttori di hardware stanno sviluppando soluzioni proprietarie simili ad Intel LaGrande. Si sa ancora poco di quasi tutte queste soluzioni ed in particolare di quella di AMD, chiamata “Presidio”. Tuttavia, data la necessità di essere compatibili con le tecnologie di Intel, è verosimile che queste soluzioni siano molto simili a quella che abbiamo appena descritto.
Link utili:
http://www.intel.com/technology/security/
Alessandro Bottoni
http://laspinanelfianco.wordpress.com/
Le precedenti release di Untrusted sono:
Untrusted/ We don’t trust you
Untrusted/ Soldato Fritz