[tc] info digest Trustedgrub

Salvatore Caratozzolo s.caratozzolo2 a campus.unimib.it
Ven 4 Gen 2008 12:42:47 CET


le righe di codice incriminate le trovate nel file 
stage1.S e sono:

/* Preparing and executing TCG_HashAll function call */
  	movw $0x0010, 0x00			/* length input parameter block */
  	movw $stage2_address, 0x04/* start address of data to 
be hashed */
  	movw $0x0000, 0x06			/* left empty */
  	movl $0x00000200, 0x08	/* length of data to be hashed 
*/
  	movl $0x00000004, 0x0C	/* algorithm = SHA1 */
  
  	movw $0xBB05, %ax	/* function = TCG_HashAll */
  	movl $0x41504354, %ebx	/* TCG value */
  	xorl %ecx, %ecx		/* must be zero */
  	xorl %edx, %edx		/* must be zero */
  	movw $0x00, %di		/* pointer to input block */
  	movw $0x28, %si		/* pointer to digest block */
  	int $0x1A		/* TCG interrupt call */
  
  /* Preparing and executing TCG_PassThroughToTPM function 
call */
  	movw $0x002A, 0x12	/* length input parameter block */
  	movw $0x0022, 0x16	/* size of output parameter block */
  	movw $0xC100, 0x1A	/* TPM_TAG_RQU_COMMAND */
  	movl $0x22000000, 0x1C	/* total number of input bytes 
*/
  	movl $0x14000000, 0x20	/* command ordinal */
  	movl $0x08000000, 0x24	/* PCR to be updated */
  	
  	movw $0xBB02, %ax /*function=TCG_PassThroughToTPM */
  	movl $0x41504354, %ebx	/* TCG value */
  	movw $0x12, %di		/* pointer to input block */
  	movw $0x60, %si		/* pointer to output block */
  	int $0x1A		/* TCG interrupt call */

io credo sia il TPM ad effettuare il calcolo hash perchè 
il bootloader chiama TCG_HashAll che mi fa capire che lo 
sta chiamando per eseguire l'hash! che dite?
poi il MBR (512 bytes) secondo me non è abbastanza 
capiente per contenere anche una funzione di calcolo di 
hash!quindi si affida direttamente al TPM, o meglio al 
CRTM!

poi una cosa che vorrei avere chiara (ho letto il file 
TCG_specification_v1_1) :
CRTM calcola se stesso e il bIOS ed estende in PCR[0]
CRTM calcola la configurazione della motherboard e delle 
periferiche in PCR[1]
BIOS calcola il codice delle Option Rom in PCR[2]
BIOS calcola configurazione e dati rilevanti delle Option 
Rom in PCR[3]
BIOS calcola il codice MBR in PCR[4]
MBR calcola le info sulle partizioni presenti nel MBR nel 
PCR[5]
PCR[6] non si capisce!si dice soltanto: Events recorded to 
this PCR are events related to State Transitions and Wake 
Events.
Wake events are measured by the Pre-Boot components.
State Transitions are measured by the Post-Boot components

forse vuol dire che questo PCR viene modificato ad ogni 
evento?quindi da CRTM, BIOS e bootloader?e il suo stato 
cambia ad ogni sleep/awake?


On Fri, 4 Jan 2008 09:56:11 +0100
  "Davide Vernizzi" <davide.vernizzi a gmail.com> wrote:
> Asp. il CRTM misura il boot loader e passa la misura al 
>tpm che ci
> estende i pcr. Poi il boot loader misura il kernel e 
>passa la misura
> al tpm che ci estende i pcr.
> Penso che tgrub abbia al suo interno il codice per 
>calcolare sha1...
> in ogni caso tgrub è sw libero, quindi se il dubbio è 
>così atroce
> guardaci dentro, non dovrebbe essere difficile scoprire 
>una funzione
> chiamata sha1_qualcosa.. e se scopri qualcosa di certo 
>faccelo sapere.
> 
> On Jan 3, 2008 4:40 PM, Alessandro Bottoni
> <alessandro.bottoni a infinito.it> wrote:
>> Salvatore Caratozzolo ha scritto:
>> > hola!
>> > nuova domanda: ma i digest che vengono passati da
>> > Trustedgrub al CRTM per estendere i PCR, sono 
>>calcolati
>> > dal bootloader stesso o il bootloader indica al CRTM 
>>di
>> > quali righe di codice deve calcolare i digest?
>> > atroce dubbio!
>>
>> A me risulterebbe che sia il TPM a calcolare i digest e 
>>mi sembra che
>> sia stabilito nel firmware della macchina che cosa deve 
>>essere misurato.
>> TrustedGRUB chiede solo che vengano calcolati e 
>>memorizzati.
>>
>> Condizionale d'obbligo: non ho un TPM su cui fare dei 
>>test...
>>
>> --
>>
>> Alessandro Bottoni
>> Website: http://www.alessandrobottoni.it/
>>
>> "An expert is a man who has made all the mistakes which 
>>can be made in a
>> very narrow field."
>>      -- Niels Bohr
>>
>> _______________________________________________
>> tc mailing list - http://itlists.org/notcpa
>> tc a no1984.org
>> http://lists.no1984.org/mailman/listinfo/tc
>>
> 
> 
> 
> -- 
> Davide
> _______________________________________________
> tc mailing list - http://itlists.org/notcpa
> tc a no1984.org
> http://lists.no1984.org/mailman/listinfo/tc



Maggiori informazioni sulla lista tc