È possibile utilizzare TPM per l'archiviazione di alcune chiavi private? Non è una crittografia completa del disco, voglio che sia compatibile con il LUKS esistente, basta aggiungere un'altra chiave e memorizzarla nel TPM.
Prova tpm-luks [1], che è uno script che assisterà nell'archiviazione di un nuovo segreto sia nella NVRAM del TPM che in uno slot della chiave LUKS.
Questo dovrebbe fare il trucco:
$ tpm-luks -c -d <device>
Puoi trovare il tuo dispositivo LUKS con:
# blkid -t TYPE=crypto_LUKS
Ho rilasciato tpm-luks molto recentemente, quindi è disponibile solo su git ATM.
[1] link
Da quello che so, nulla lo impedisce in pratica, ma il codice non è stato ancora scritto. Puoi comunque dare un'occhiata a link
L'idea è usare tpm_sealdata per crittografare un file, e questo può essere sbloccato solo se il boot non è stato imbrogliato.
Potrebbe essere necessario utilizzare una versione patch di grub, chiamata trusted grub. Non penso che questo sia stato integrato in grub2.
Una volta che il file è sbloccato, puoi alimentarlo come chiave per cryptsetup e se fallisce, esegui la normale finestra di dialogo "richiedi la password", permettendo così l'avvio se l'hardware è stato manipolato. Ma naturalmente, ciò significherebbe che il sistema si avvierebbe automaticamente senza password.
Per vostra informazione, con modifiche minori a tpm-luks, ho funzionato con la nostra applicazione per proteggere la chiave LUK della partizione root in NVRAM TPM. Le sceneggiature funzionano come un fascino. È facile se non è una partizione di root ma forse qualche altra partizione o file. Ho collegato la chiave alla NVRAM in base alle PCR da 0 a 9 e anche a 12 e 13. Siate consapevoli che il vostro BIOS dovrebbe essere conforme a NIST SP800-147 - alcuni ricercatori MITER hanno scoperto un buco.
Leggi altre domande sui tag linux encryption key-management trusted-computing