Parecchie domande specifiche qui, le romperò
What is stopping an attacker from disabling the TPM until after boot?
Niente se l'attaccante controlla sia il FW (UEFI, BIOS, ecc.) che il codice di avvio. Dico il codice di avvio perché a un certo punto verso la fine del boot, il TPM avrebbe dovuto essere inizializzato e messo nel giusto run-level in modo che il sistema operativo non rilevasse nulla di fuori posto. Non puoi semplicemente spegnerlo, perché le applicazioni utente / sistema operativo si aspettano che si trovi in un determinato stato e questo potrebbe distruggere la tua copertura, se sei l'hacker >:)
Devi fidarti del tuo UEFI / BIOS. Hai accidentalmente visualizzato alcuni hacker sh * t sulla tua scheda madre? Questo è l'unico modo in cui funziona. Non farlo.
Then extending the PCRs with whatever he wants
A causa di come funzionano le PCR, questo è "impossibile". Non puoi aggiornare le PCR a valori arbitrari, devi fare sempre le hash nello stesso identico ordine ogni volta - > impossibile da decifrare.
Ma questo lo sai già, hai menzionato l'operazione "estendi" da solo. Le PCR non sono "scritte", sono "estese". Per alcune buone informazioni su questo, vedi qui su link . Una citazione da quella presentazione:
Digging a Little Deeper: PCR Extend
....
Computationally infeasible to forge (must break SHA-1)
Given PCR state N and desired state M, adversary would need to find
X such that hash(X,N)=M; violates one-way assumption
and even recording the input to the extend function of PRC in the authentic boot chain
È dannatamente intelligente, ma come si farebbe? Sonde fisiche sull'autobus? Totalmente possibile !! Ma ora siamo andati oltre le specifiche TCG TPM, che specificamente non proteggono dalla manomissione fisica, AFAIK. Fornisce prove di manomissione fisica ma non protegge da qualcuno che esegue una traccia sui pin.
an attacker can try using the TPM on another system which will also send fake inputs to the PCRs at boot time?
Puoi approfondire come funzionerebbe? Ma no, non è possibile utilizzare in remoto un altro TPM senza software per esporlo a un servizio. È possibile farlo nel sistema operativo, ma se si riuscisse a creare PCR sul computer remoto, è possibile crearli qui.
Ancora una volta, non puoi semplicemente inserire "ingressi falsi" nelle PCR, ma non funziona così.