[tc] info PCR tpm
Salvatore Caratozzolo
s.caratozzolo2 a campus.unimib.it
Ven 9 Nov 2007 15:29:11 CET
grazie mille Davide!
le tue spiegazioni sono come oro per me in questi giorni!!
>> 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!
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!)
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?
>> 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!
sono pro e contro contemporaneamente!
cmq grazie Davide per le tue spiegazioni!
spero anche che i miei esempi siano di utilizzo per
qualcuno in futuro!
Maggiori informazioni sulla lista
tc