sabato, giugno 03, 2006

Trusted computing: tra fiducia e controllo.

Si parla sempre più spesso di trusted computing, ma qual'è il significato di questa espressione?
Il concetto originale concepito dal Trusted Computing Platform Alliance(TCPA) parla di "informatica fidata", ed è riferito ad un insieme di specifiche volte a produrre sistemi più sicuri tramite l'esecuzione di alcune operazioni a livello hardware. Ma che cosa si intende per fiducia? Originariamente questo concetto ruotava attorno all'utente:
l'utente deve poter fidarsi del proprio sistema.
Dunque ecco un esempio di scenario plausibile: gli scambi di informaizoni tra periferiche avvengono in modo sicuro, l'utente può decidere di crittografare documenti, rendersi riconoscibile univocamente, essere protetto in modo avanzato da virus, worms, malware etc..
Ora il il tutto è ben diverso, la fiducia è diventata controllo e l'utente è diventato l'obiettivo. Il trusted computing va sempre più a delinearsi come un modo avanzato per i costruttori di hardware e le maggiori software house di monitorare e decidere quello che un utente può fare con il proprio computer.

L'architettura si basa sulla crittografia asimmetrica eseguita a livello hardware. Ogni singolo computer (CPU) è identificato univocamente da una chiave tramite la quale possono essere firmate e cifrate le informazioni elaborate.

Le caratteristiche fondamentali sono:
-Input/Output sicuro: informazioni nei bus di sistema cifrate.
-Memory curtaining: protezione hardware della memoria in uso dagli applicativi in esecuzione.
-Sealed storage: cifratura delle informazioni con chiavi derivanti da combinazioni Hw/Sw.
-Attestazione remota: possibilità attestare da remoto lo stato Hw/Sw di una macchina.

Ecco alcune delle possibili conseguenze del trusted computing:
- Gli utenti sono "obbligati" a utilizzare determinati Hw/Sw.
- Gli utenti hanno estrema difficolta nelle migrazioni di Hw/Sw.
- Gli utenti non hanno il controllo delle informazioni che ricevono.
- Gli utenti non hanno il controllo dei propri dati.
- Perdita dell'anonimato su Internet.
- Censura dei contenuti.
- Possibilità di forti ripercussioni su linux, bsd e sistemi Open Source.
- Scomparsa di tutti i piccoli applicativi freeware.

Intel sta lavorando ad un modulo chiamato LaGrande Technology, mentre quello di AMD è conosciuto come Secure Execution Mode (SEM) o Presidio.
Microsoft implementa il TC con una complessa architettura ora rinominata NGSCB (Next-Generation Secure Computing Base) precedentemente nota come Palladium. Pare che essa non sarà inclusa nella prima release di Windows Vista come tempo fà annunciato, ma bensì introdotta in seguito.

Un folto gruppo di persone in segno di protesta ha da tempo creato una comunità all'indirizzo no1984.org. E' anche possibile scaricare un bellissimo e simpatico video sul trusted computing, che consiglio vivamente di guardare.

Pare che IBM e HP stiano lavorando a una versione Linux conforme al TC, modificando i sorgenti ed elimando una serie di caratteristiche per ottenere la certificazione dal consorzio TCG. A questo punto potrà essere coperta da licenza GPL. Sarà ancora possibile effettuare modifiche sul codice in questa nuova versione, ma in questo caso non si riuscirà ad ottenere il certificato che permetta di accedere al sistema TC.
Si evince che per una serie di difficoltà non di certo tecniche la probabilità che Linux e BSD, restino esclusi dal mondo dell'IT "main stream" nei prossimi anni è molto elevata.

Ovviamente il TC verrà applicato non solo a Server, Desktop, laptop, etc.. ma ben si ad ogni dispositivo di riproduzione, elaborazione, conversione e registrazione di contenuti multimediali.
Riporto il link di un articolo satirico che ipotizza in modo molto simpatico come potrebbe essere la "Vita quotidiana ai tempi del Trusted Computing".

Volevo concludere citando una domanda posta a Ross Anderson, ricercatore, scrittore, consulente industriale e professore alla Cambridge University in in security engineering:
D: "Allora un 'Trusted Computer' è un computer che può violare la mia sicurezza?"
R: "Questo è un modo molto gentile per dire come stanno le cose."

mercoledì, maggio 31, 2006

Opengl e Windows Vista: verso la luce.

Come noto opengl.org il 6 agosto 2005 pubblicò una notizia volta a minare il futuro della nota libreria grafica. L'articolo poi confermato da Ati, nVIDIA ed altre fonti riferiva le intenzioni di Microsoft per l'ormai imminente nascituro Windows Vista: portare OpenGL in emulazione su un sottostrato DirectX-based. I cambiamenti giungono insieme alla nuova tecnologia su cui si basa il layer grafico di windows Vista, Aeroglass. In questo modo non solo OpenGL è rallentata artificialmente fino al 50%, ma viene anche congelata alla ormai obsoleta Vanilla version 1.4, senza possibilità di aggiornamenti. La libreria cross platform, giunta ormai da tempo alla versione 2.0, è attualmente il modo più flessibile per svilupparre software portabile con funzioni di rendering sempre più avanzate. In breve permette di scrivere applicazioni facilmente ricompilabili per windows, linux, palmari, telefonini etc.. La "minaccia" ruotava attorno al fatto che da quanto trapelato Microsoft negava la possibilità anche futura di fornire informazioni per scrivere nuovi driver specifici rendendo impossibile l'interfacciamento diretto con la GPU. Evidentemente questa scelta appariva molto più legata alla diffusione delle applicazioni DirectX che a particolari motivazioni tecniche.

Poco tempo fa un Kam Vedbrat, uno sviluppatore di Windows Vista ha chiarito la questione:
OpenGL può essere usato in 3 modi:
- In primo luogo tramite MSOGL, un’implementazione Microsoft ferma ad OpenGL 1.4, che usa Direct3D
- In secondo luogo tramite i driver di Windows XP. Questi ultimi creano dei problemi con il nuovo gestore di finestre DWM (Desktop Windows Manager). Questo è uno dei motivi per cui in Vista viene di disabilitato il gestore quando un’applicazione che fa uso di OpenGL si serve di un ICD.
- Infine nel terzo modo, OpenGL potrà essere usato senza rinunciare al DWM) grazie ad API fornite da Microsoft e a driver di terze parti.

Il 23 maggio scorso, nVIDIA ha rilasciato la prima release pubblica di ICD per Windows Vista Beta 2. Pare sia una versione per prove di compatibilità e portabilità, dunque le prestazioni potrebbero a parità di hardware essere inferiori rispetto quelle di windows XP. Attualmente alcune applicazioni potrebbero non lavorare correttamente per la nuova architettura nella gestione delle finestre:
- Le applicazioni che usano sia il rendering GDI che il rendering OpenGL in una finestra unica verranno visualizzate non correttamente.
- Le applicazioni che renderizzano direttamente nel front buffer senza chiamare mai Flush() o Finish() potrebbero non mostrare i pixel sullo schermo.
- L'accelerazione OpenGL è disabilitata quando le funzioni di dualview sono attivate.
Poco male, senz'altro un inizio più che soddisfacente, è già stato chiarito che le limitazioni legate al sistema operativo saranno ovviamente corrette e le prestazioni saranno migliorate nelle future releases. Ora non resta altro che aspettare fiduciosi.