[tc] TPM hardware attack

Davide Vernizzi davide.vernizzi a gmail.com
Gio 19 Lug 2007 09:27:27 CEST


Maledette scorciatoie da tastiera di gmail...

Replicarlo può essere complicato vista la "pericolosità" dell'attacco. Sul
> tradurlo in italiano se ne può discutere. Per chi fosse un po' curioso,
> l'attacco funziona pi
>
> l'attacco funziona più o meno così:

premesse:
1. il tpm è montato su un bus particolare per pilotare periferiche a basso
costo e basse prestazioni
2. il bus dovendo essere a basso costo è poco protetto
3. il tpm è un chip normalissimo, con i pin che lo collegano al bus visibili
e facilmente accessibili
4. il tpm ha un pin di RESET

attacco:
1. si accende la macchina e la si avvia con il proprio sistema operativo
preferito (linux, ad esempio)

2. il tpm avrà alcuni valori nei pcr. Per chi non lo ricorda, i pcr sono dei
registri che possono essere scritti solo dal tpm e che contengono lo stato
della macchina (ad esempio versione del bios avviata, del boot loader, del
kernel, dei sw o quello che volete). Inoltre i pcr sono fatti in modo che
non è possibile scriverci dentro un valore arbitrario, ma solo un valore che
è derivato dal valore precedente e dal nuovo valore: NUOVO PCR = F(VECCHIO
PCR + VALORE DA AGGIUNGERE); il tutto è pensato in modo che non sia
possibile determinare il VALORE DA AGGIUNGERE per ottenere un NUOVO PCR.
Questa operazione si chiama ESTENSIONE dei PCR.
   2.a. se si è avviato un sistema (linux ad esempio) la macchina sarà in
uno stato S_L (Stato Linux, per intenderci). A questo punto i pcr possono
essere estesi a piacere (l'utente può estendere i valori dei pcr come e
quando vuole), ma diventa impossibile prevedere i VALORI DA AGGIUNGERE per
portare la macchina nello stato in si troverebbe se avessimo avviato un
altro sistema operativo (ad esempio Windows: S_W).

3. a questo punto si apre il case della propria macchina e si fa l'attacco
fisico vero e proprio. In pratica semplicemente si corto cirtcuita il pin di
RESET con il pin a MASSA in modo da effettuare un reset del tpm. Notate che
questo attacco è possibile grazie all la semplicità del bus e ad alcuni
errori nella progettazione del tpm.

Il reset del tpm comporta l'azzeramento del pcr, ma vista la modalità con
cui è stato effettuato, non ha comportato il reset della macchina. La
situazione a questo punto è la seguente: abbiamo una macchina avviata con un
certo sistema operativo in grado di pilotare il tpm. E poi abbiamo un tpm
che è stato resettato.

4. ora ci basta fare l'estensione dei pcr in modo da far registrare al tpm
uno stato diverso da quello che effettivamente ha (ad esempio S_W).

5. si fa un'attestazione remota in cui si convince un'entità remota che
stiamo effettivamente eseguendo Windows (invece, dato che non abbiamo fatto
il reset, stiamo ancora eseguendo Linux).


Spero di essere stato chiaro, ma se avete domande...

-- 
Davide
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.no1984.org/pipermail/tc/attachments/20070719/3b97440f/attachment-0001.htm 


Maggiori informazioni sulla lista tc