[tc] info PCR tpm
Davide Vernizzi
davide.vernizzi a gmail.com
Ven 9 Nov 2007 16:11:10 CET
On Nov 9, 2007 3:29 PM, Salvatore Caratozzolo
<s.caratozzolo2 a campus.unimib.it> wrote:
> grazie mille Davide!
> le tue spiegazioni sono come oro per me in questi giorni!!
Figurati.. so come ci si sente a spulciare nelle specifiche del TCG e
cercare di capire come funziona...
> >> se il codice dello stadio1 è stato modificato...che fa??
> >> cioè..come se ne accorge?
> >
> > Non te ne accorgi durante il boot, ma te ne accorgi
> >durante
> > l'attestazione remota facendo un contronto con dei
> >valori attesi
> > oppure cercando di fare l'unsealing che fallisce.
>
> ma se io non ho nessuna ragione ho intenzione di usare
> l'attestazione remota allora non mi accorgero' mai dei
> cambiamenti!
> magari me ne accorgo se guardassi dopo ogni boot in che
> stato si trovano i pcr da 0 a 7!e se vedo che qualcosa è
> cambiato dai soliti valori allora comincio a
> insospettirmi!
> a questo punto se voglio avere realmente una chain of
> trust devo per forza usare la remote attestation!
Diciamo che la chain of trust c'è sempre, ma la usi praticamente solo
con la remote attestation ed il sealing.
> cmq per kiarirmi le idee mi faccio un esempio:
> se questi sono i pcr al primo avvio
> pc0 = afffa
> pc1 = bdfdf
> pc2 = fhhhf
> pc3 = uuioo
> pc4 = yyuiu
> pc5 = 7yt5s
> pc6 = loij8
> pc7 = ijg78
>
> al secondo bootstrap i valori non devono cambiare! perchè
> i pcr vengono settati tutti a 0 ad ogni avvio!
> e se voglio eseguire un seal sul file /etc/esempio.txt ,
> lo cifro con una chiave asimmetrica, salvo la chiave nel
> TPM e con il comando seal dico al TPM che se voglio
> decifrare il file i pcr devono per forza trovarsi in
> questo stato:
> pc0 = afffa
> pc1 = bdfdf
> pc2 = fhhhf
> pc3 = uuioo
> pc4 = yyuiu
> pc5 = 7yt5s
> pc6 = loij8
> pc7 = ijg78
> pc10 = kjhgu (digest del nome utente)
> pc11 = òlko9 (digest del soft usato dall'utente)
>
> cioè i pcr devono avere gli stessi valori del primo avvio
> + quelli da me indicati(pcr10 e pcr11)!
> se poi un attaccante riesce a modificare lo stadio1, il
> pcr1 avarà un valore diverso da bdfdf quindi l'unseal non
> potrà essere eseguito!e il file rimarrebbe cifrato.
> l'attaccante non ha modo di modificare il pcr1 in modo da
> avere bdfdf perchè il metodo utilizzato dall'extend
> considera anche il dato già presente sul pcr1 (sha1(old |
> new) e anche perchè la funzione SHA1 crea una stringa di
> caratteri univoca, quindi è impox avere due file con lo
> stesso digest!! giusto? (su questo devo informarmi
> meglio!)
Esatto... anche se nella tesi non direi che avere 2 file con lo stesso
hash è impossibile... piuttosto molto improbabile... cmq wikipedia
sarà sicuramente più esaustiva di me in questo argomento. Ed un'altra
cosa: non cifri il file con una chiave asimmetrica, ma con una
simmetrica. La simmetrica viene poi cifrata con una asimmetrica
mantenuta dal tpm. Tutto questo per motivi di prestazioni.
> cmq volendo potrei eseguire un seal di un altro file, ad
> esempio /root/file2.txt legato ai pcr
> pc0 = afffa
> pc1 = bdfdf
> pc2 = fhhhf
> pc3 = uuioo
> pc4 = yyuiu
> pc5 = 7yt5s
> pc6 = loij8
> pc7 = ijg78
> pc10 = kjhgu (digest del nome utente)
> pc11 = òlko9 (digest del soft usato dall'utente)
> pc12 = kjhyu (digest del file /etc/esempio.txt in
> chiaro!!)
>
> per obbligare l'utente o il programma a eseguire l'unseal
> prima di /etc/esempio.txt e poi di /root/file2.txt
> potrebbe essere un modo di essere più al sicuro?
Puoi, ma non ne vedo molto il motivo.
> >> con che comando? e poi perchè salvare nei PCR se questi
> >> possono essere ESTESI da chiunque senza che ne prenda
> >> possesso!(questo mi è stato detto dal tipo
> >>dell'Enforcer!)
> >
> > Questo non mi sembra possibile... devi aver preso
> >possesso del tpm...
> > quello che è vero è che puoi estendere un pcr anche
> >senza essere
> > l'owner.
>
> giusto hai ragione, mi sono confuso!
>
> scusate se sto scrivendo molte domande ma questa
> tecnologia mi sta aprendo gli occhi poco alla volta!per
> certi versi mi sembra assurdo vendere il TPM a un utente
> finale che potrebbe strapparsi i capelli dopo aver fatto
> una caz**a ,ma mi sembra anche molto intelligente che sia
> venduto alle società e ai servizi militari dove di sicuro
> c'è personale + esperto! dipende dal contesto d'utilizzo!
Quello è vero per qualunque cosa. Ma non toglierei gli utenti dalle
persone che potrebbero giovarne. Basta sapere come le cose funzionano
e farle funzionare come piace a noi.
> sono pro e contro contemporaneamente!
Pure io.
> cmq grazie Davide per le tue spiegazioni!
> spero anche che i miei esempi siano di utilizzo per
> qualcuno in futuro!
Lo spero anche io. È il motivo per cui ho preferito mantenere il
thread pubblico. Spero che possa chiarire i dubbi a tutti quelli che
li hanno.
--
Davide
Maggiori informazioni sulla lista
tc