Primero, explicaré aproximadamente cómo planeo usar el TPM:
Estoy usando algo llamado tpm-luks
que almacena una clave en la NVRAM del TPM y agrega la clave a una de las llaves de LUKS. Luego, initramfs descifra la partición cifrada con LUKS usando la clave que obtiene del TPM. También utilizo tpm-luks
para sellar la clave para que la clave se libere de la NVRAM TPM solo cuando los registros de PCR de TPM están en un estado determinado (por ejemplo, después de un cargador de arranque predeterminado, initramfs, linux han sido cargados). TrustedGRUB [2] se utiliza como gestor de arranque para registrar sus propios hashes en los PCR de TPM.
También planeo hacer actualizaciones remotas y desatendidas al sistema de vez en cuando (por ejemplo, actualizando el kernel que también cambiará los hashes de los archivos del kernel, etc.). Para solucionar este problema, tpm-luks
proporciona una manera de pre-calcular los hashes y volver a sellar la clave usando los nuevos valores antes de reiniciar la máquina para que la clave pueda desbloquearse nuevamente con el nuevo PCR estado.
Este proceso actualmente requiere que ingrese la contraseña de propietario de TPM cada vez que hago una actualización y quiero agregar una nueva clave.
Mis preguntas son:
- ¿Está bien usar la contraseña conocida de 20 bytes de 0s como contraseñas de propietario / SRK?
tpm-luks
tiene las opciones para usar esas contraseñas conocidas para realizar estas operaciones para que no sean interactivas. Dado que el sistema está bloqueado, ¿asumo que nadie podrá explotar esto? - Si no, ¿sería factible mantener las contraseñas en la partición raíz cifrada? Se confía en el sistema para el momento en que se descifra la partición raíz, por lo que debería ser seguro almacenar la contraseña allí (y acceder a ella de forma segura).
- ¿Sería mejor mantener las contraseñas en otra ubicación segura y enviarlas a la máquina si necesita realizar tales operaciones? No estoy seguro si es más seguro que la segunda opción anterior.
- ¿Hay alguna otra solución mejor para lograr los objetivos anteriores (almacenamiento no interactivo de claves para NVRAM TPM)?