L'espressione inglese trusted computing (in acronimo TC, ) si riferisce ad una tecnologia nascente, derivata da specifiche del Trusted Computing Group che ha ereditato quelle della Trusted Computing Platform Alliance, con l'obiettivo dichiarato di rendere dispositivi come computer o telefoni cellulari all'uscita di fabbrica garantiti da eventuali manomissioni come la presenza di codici estranei o altro, mediante l'uso di opportuni hardware e software.

Il raggiungimento di questo scopo viene ottenuto inserendo in ogni dispositivo un chip, denominato Trusted Platform Module, dotato di una coppia di chiavi crittografiche univoca per ogni chip, impossibili da modificare anche dal proprietario, e capace di generare altre chiavi per la crittografia di dati o dispositivi, sezione 38, "Revoke Trust". La controversia attorno a questa tecnologia nasce dal fatto che tali dispositivi sarebbero effettivamente sicuri da manomissioni esterne, ma impedirebbero all'utente eventuali utilizzi, definiti impropri.

I principali sviluppatori di questa tecnologia sono i Membri Promotori del Trusted Computing Group, ovvero AMD, HP, IBM, Infineon, Intel, Lenovo, Microsoft e Sun Microsystems . Windows 11 tra i suoi requisiti di sistema richiede un TPM.

Concetti principali Alla base del Trusted Computing vi sono i meccanismi di crittografia asimmetrica. Questi vengono applicati per i seguenti scopi:

Ogni singolo dispositivo è identificato univocamente da una sorta di passaporto elettronico, ovvero da un numero di serie e una chiave di cifratura Le informazioni possono essere cifrate con la chiave della macchina Le informazioni possono essere firmate con la chiave della macchina La cifratura delle informazioni viene eseguita a livello hardware in modalità sicura

L'implementazione di questi meccanismi avviene essenzialmente per mezzo del Trusted Platform Module (TPM), un microchip costruito secondo le specifiche del Trusted Computing Group. Le direttive del Trusted Computing Group specificano che esso debba essere caratterizzato principalmente da un co-processore crittografico per la crittografia asimmetrica, un generatore di chiavi asimmetriche, un generatore di numeri casuali, un motore crittografico HMAC, un motore crittografico SHA-1, un chip di memoria volatile per la memorizzazione di chiavi, utilizzabile anche dall'utente e da un chip di memoria non volatile.

L'unità TPM, secondo le specifiche del Trusted Computing Group, avrà cinque principali funzionalità. Ognuna ha uno scopo diverso, anche se possono essere usate insieme. Però perché siano attive è necessario che anche il software in utilizzo ne implementi il supporto. Queste caratteristiche sono:

Endorsement Key (chiave di approvazione) Secure I/O (Input/Output sicuro) Memory curtaining (separazione della memoria) Sealed storage / Trusted storage (memoria sigillata / memoria fidata) Remote attestation (attestazione remota)

Endorsement Key L'integrità del sistema viene protetta da manomissioni e falsificazioni grazie a una sofisticata tecnica crittografica che impedisce a emulatori software, ad esempio driver, di avviare una transazione sicura con un programma, un dispositivo hardware o un sistema remoto. Ciò sarà realizzabile mediante una coppia di chiavi RSA a 2048 bit, coppia che identifica univocamente ogni TPM. Questa coppia di chiavi, detta Endorsement Key (chiave di approvazione), è diversa per ogni chip e viene generata al momento della produzione del chip. In alcuni casi, ma non sempre, è revocabile e dunque modificabile solo con una password fornita dal produttore. Il TPM è realizzato in modo che non esistano funzioni in grado di estrarre in alcun modo la chiave e lo stesso dispositivo hardware, secondo le specifiche, riconoscerà di essere stato manomesso. All'atto dell'instaurazione di una transazione sicura, i TPM coinvolti dovranno firmare un numero casuale per certificare la loro identità e la propria adesione alle specifiche TCG. Ciò potrà, ad esempio, impedire la falsificazione dell'IMEI di un cellulare rubato.

Le credenziali di Approvazione, Conformità e Piattaforma possono generare, su richiesta del proprietario, una Attestation Identity Key (AIK, "chiave di attestazione dell'identità") univoca da sottoporre a una Autorità di Certificazione. Questa funzionalità potrà estendersi fino alla creazione di una vera e propria infrastruttura a chiave pubblica (PKI) hardware e all'identificazione univoca di ogni dispositivo conforme alle specifiche TCG.

Secure I/O Le operazioni di input/output vengono rese sicure (da qui il nome di "secure I/O") con l'utilizzo dei meccanismi di cifratura a chiave asimmetrica. Tutte le informazioni che transitano sui bus del sistema sono cifrate: in questo modo è impossibile da parte di appositi programmi o meccanismi hardware carpire le informazioni scambiate tra la tastiera e un'applicazione, tra l'applicazione e lo schermo, ...

Sul bus di collegamento tra CPU e TPM, se esterno al processore, i dati viaggiano sempre e comunque cifrati.Principali indicazioni: Un sistema di autenticazione biometrico potrà garantire all'utente che nessun programma spia intercetti, memorizzi e ritrasmetta i dati di accesso (impronte digitali, iride...). Vedi in seguito per ulteriori approfondimenti. In infrastrutture semplici, si potrà garantire l'inefficacia di un keylogger (programma che monitora i caratteri digitati su tastiera) a carpire le chiavi (password) di accesso al sistema. Si potrà impedire a programmi di cattura delle immagini visualizzate su schermo di tentare la lettura di un CAPTCHA o il salvataggio di immagini non copiabili, ad esempio protette da copia non autorizzataIntel Trusted Execution Technology Architectural Overview - Pagina 3, Protected GraphicsOpenTC -D02.2 Requirements Definition and Specification - Pagina 90.

Memory curtaining Il memory curtaining (separazione della memoria) prevede che l'hardware impedisca a ogni programma la lettura e la scrittura delle zone di memoria (lo spazio in cui normalmente i programmi parcheggiano i dati che stanno elaborando in quel momento) utilizzate dagli altri applicativi in esecuzione.

Nemmeno il kernel del sistema operativo sarà in grado di accedere a queste zone di memoria, anche perché i dati in esse sono cifrati, quindi le informazioni saranno al sicuro anche nel caso in cui un intruso riuscisse a prendere il controllo dell'intero sistema.

Qualcosa di molto simile può essere ottenuto anche con il software, ma l'approccio hardware fornisce una soluzione più elegante e affidabile. Questo meccanismo può però anche rendere impossibili alcuni metodi di debugging (correzione degli errori di applicazioni difettose).

Sealed storage Il sealed storage (memoria sigillata), o trusted storage (memoria fidata), protegge le informazioni per mezzo della cifratura usando una chiave che deriva dallo stato del sistema, ovvero dal software utilizzato e dall'hardware su cui esso è in esecuzione. Questo significa che queste informazioni possono essere fruibili solo con la stessa combinazione di software e hardware. Per esempio, gli utenti che tengono un proprio diario privato sul proprio computer non vogliono che altri programmi o altri computer siano in grado di leggerlo. Oggi un virus (Sircam faceva qualcosa di simile) può cercare il diario, leggerlo e inviarlo a qualcun altro. Una volta caduto nelle mani sbagliate, anche se fosse protetto da una password, un cracker può tentare di accedere al diario per mezzo di un attacco basato su un dizionario. Si potrebbe accedere alle informazioni contenute nel diario dell'utente anche modificando il software di scrittura dello stesso: usando il sealed storage, il diario viene cifrato in modo sicuro cosicché soltanto il programma per la sua gestione (non modificato) presente in quel computer è in grado di accedervi.

Questo metodo di cifratura dei dati impedisce anche di rimuovere un disco da un computer e utilizzarlo in un altro computer. per accedere ai dati in esso contenuti.

Nel trusted storage il compito di decidere chi sia autorizzato ad accedere ai dati fidati ricade sullo stesso dispositivo di memorizzazione e non sull'applicazione che ha creato i dati. Ciò permette ad esempio di assegnare della memoria del disco alle applicazioni fidate di cui le altre applicazioni ignorano l'esistenza o di creare un disco rigido i cui dati siano leggibili solo da un certo computer. Un disco rigido trusted deve contenere un processore crittografico, per essere in grado di garantire prestazioni elevate nella criptazione del disco, e si pone come radice (: root) di una catena di fiducia (: chain of trust) in cui controlla e firma le periferiche a cui l'utente decide di garantire l'accesso al computer.

Remote attestation

La remote attestation (attestazione remota) permette a terzi di interrogare il sistema e di conoscerne lo stato, ovvero di rilevarne le sue variazioni. In questo modo si può evitare che informazioni riservate siano inviate da un computer compromesso o non sicuro, o che da questo siano ricevuti comandi "pericolosi". Il meccanismo si basa sul protocollo di Direct Anonymous Attestation, ovvero utilizzando un certificato digitale generato dall'hardware che garantisce l'anonimità del processo. Il sistema può presentare questo certificato ad altri sistemi remoti per mostrare che esso non è stato compromesso.

L'attestazione remota è di solito effettuata per mezzo della cifratura a chiave pubblica, in modo tale che le informazioni scambiate possano essere lette soltanto dai programmi coinvolti nell'attestazione e non da malintenzionati.

Per riprendere l'esempio del diario, il programma per la sua gestione potrebbe inviare le informazioni contenute in quest'ultimo ad altri computer soltanto se questi sono in grado di attestare che su di essi è in esecuzione una copia sicura del programma di gestione dello stesso. Combinata con altre tecnologie, l'attestazione remota fornisce un canale più sicuro per i dati: l'I/O sicuro li protegge in fase di digitazione sulla tastiera e di visualizzazione sullo schermo, il memory courtaining li protegge mentre questi vengono elaborati, il sealed storage quando vengono salvati sul disco fisso; infine l'attestazione remota protegge i dati da utilizzi non autorizzati anche quando questi vengono utilizzati su altri computer.

Supporto del Trusted Computing Il Trusted Computing è supportato da qualsiasi sistema operativo. Linux lo supporta dalla versione 2.6.13, mentre in Microsoft Windows è implementato sia dal sistema operativo stesso, attraverso BitLocker Drive Encryption in Windows Vista, sia da programmi sviluppati da terze parti. Anche la piattaforma Java supporta il Trusted Computing attraverso un Trusted Software Stack open source chiamato jTSS.

La distribuzione Linux Gentoo supporta il Trusted Computing attraverso il Trusted Software Stack open source Trousers, ed esiste una versione del boot loader GRUB modificata che supporta il Trusted Computing, chiamata TrustedGrub.

Applicazioni del Trusted Computing Reti Informatiche Sicure

Attraverso il Trusted Computing è possibile creare reti informatiche sicure. Il Trusted Computing Group ha pubblicato le specifiche di un'architettura di rete, chiamata Trusted Network Connect, che attraverso il protocollo AAA è in grado di garantire l'attestazione anonima sicura di ogni dispositivo che cerca di connettersi alla rete. Ogni dispositivo, al momento della connessione, invia all'autenticatore una serie di informazioni cifrate sulle proprie generalità e sul proprio stato, che vengono confrontate da un sistema di controllo con dei database per garantire o rifiutare l'accesso.

Cifratura del disco rigido