¿Es posible usar TPM para el almacenamiento de alguna clave privada? No es un cifrado de disco completo, quiero que sea compatible con los LUKS existentes, solo agregue otra clave y guárdelo en el TPM.
Pruebe tpm-luks [1], que es un script que ayudará a almacenar un nuevo secreto tanto en la NVRAM del TPM como en la ranura de la llave LUKS.
Esto debería hacer el truco:
$ tpm-luks -c -d <device>
Puedes encontrar tu dispositivo LUKS con:
# blkid -t TYPE=crypto_LUKS
Recientemente lancé tpm-luks, así que solo está disponible en git ATM.
[1] enlace
Por lo que sé, nada impide esto en la práctica, pero el código aún no estaba escrito. Sin embargo, puede echar un vistazo a enlace
La idea es usar tpm_sealdata para cifrar un archivo, y luego esto puede ser desbloqueado solo si el arranque no fue manipulado.
Es posible que deba usar una versión parcheada de grub, llamada grub de confianza. No creo que esto se haya integrado en grub2.
Una vez que el archivo está desbloqueado, puede introducirlo como una clave para cryptsetup y, si falla, ejecute el cuadro de diálogo habitual "preguntar por la contraseña", lo que permite iniciar si el hardware no se ha ejecutado correctamente. Pero, por supuesto, eso significaría que el sistema arrancaría sin contraseña de forma predeterminada.
Para su información, con pequeños cambios en tpm-luks, lo conseguí trabajando con nuestra aplicación para asegurar la clave LUK de la partición raíz en la NVRAM TPM. Los guiones funcionan a la perfección. Es fácil si no es una partición raíz, pero tal vez alguna otra partición o archivo. Conecté la clave a la NVRAM basada en los PCR 0 a 9 y también a los de 12 y 13. Tenga en cuenta que su BIOS debe cumplir con NIST SP800-147; algunos investigadores de MITER descubrieron un agujero.
Lea otras preguntas en las etiquetas key-management encryption linux trusted-computing