Descifrado utilizando GRUB y TPM

4

Estoy tratando de planificar la rutina de seguridad para mi nueva instalación de Linux y surgieron algunas preguntas durante la búsqueda de una solución que satisfaga mis necesidades.

  1. ¿Es posible usar una clave privada de TPM en GRUB para descifrar / iniciar la partición ubicada en el almacenamiento externo?
  2. ¿Es posible usar GRUB para descifrar la partición ubicada en el almacenamiento externo con archivos de claves ingresando la contraseña?
  3. ¿Es posible usar estos archivos de claves para descifrar el disco duro interno?
pregunta Matthew 15.07.2015 - 14:55
fuente

1 respuesta

1

El soporte de TPM es muy rudimentario en este momento. Necesitará un gestor de arranque que pueda extender la cadena de confianza y solo conozco TrustedGRUB, que es una versión bastante antigua de GRUB con funcionalidades relacionadas con TPM.

Por otro lado, creo que el TPM es solo una exageración relacionada con Bitlocker, prácticamente proporciona muy poca seguridad (¿tal vez sea por diseño para complacer a las agencias de tres letras?) ya que la máquina ahora tiene todo lo que necesita para arrancar y descifre su contenido sin ningún otro secreto, permitiendo que un atacante que robó la máquina (incluso apagado) la arranque y luego la ataque con DMA o ataques de arranque en frío para recuperar las claves. TPM no protege contra eso. Además, un ataque teórico en el que siempre pienso es simplemente rastrear el bus serie de baja velocidad al que está conectado el TPM y esperar a que transmita la clave de cifrado. Solo requiere algunos cables para soldar en la placa, muy fácil y no requiere equipo costoso.

Una unidad flash USB + archivo de claves / contraseña sería mucho más seguro ya que el material necesario para desbloquear la máquina ahora está separado de ella, si la computadora es robada es esencialmente un ladrillo inútil, no hay absolutamente nada en la máquina que contenga la clave.

Ahora, para responder a tus preguntas específicas.

1) No, se debe ejecutar algún código no cifrado antes de poder descifrar y montar una partición cifrada, por lo que el /boot , sin importar dónde esté, debería estar sin cifrar. El firmware (BIOS / UEFI) en sí no tiene soporte para sistemas de archivos encriptados. Además, en el caso de cifrado de disco, estamos utilizando criptografía simétrica, por lo que no hay noción de clave pública y todo lo que hace el TPM es verificar si los datos que se le suministran (hashes de cada componente ejecutado hasta el momento y sus configuraciones, el firmware , su configuración, el gestor de arranque, etc.) y devuelve un bloque de datos si los hash coinciden cuando el TPM fue "sellado". Este bloque de datos es la clave de descifrado.

2) Primero, GRUB no hace cifrado. El kernel de Linux maneja el criptografía, lo que significa que todo antes de que el kernel deba estar descifrado. Por último, no hay manera de requerir una contraseña y un archivo de claves con LUKS, pero puede cifrar su archivo de claves con algún programa (GPG?) Que incluya en el initrd (sin cifrar) y llamarlo antes de pasar el archivo de claves (descifrado) a LUKS continuar el arranque.

3) Claro. LUKS permite cifrar de forma transparente un dispositivo de bloque al exponer su versión no cifrada como un nodo de dispositivo separado, por lo que el sistema usa eso en lugar del dispositivo de bloque real que ahora contiene datos cifrados. Ya sea un dispositivo interno, externo o algo de magia vudú como un archivo de imagen de disco de un servidor NFS montado como un dispositivo de bucle con LUKS en la parte superior, funcionará igual (el rendimiento no está garantizado para el último). Si utiliza archivos de claves o contraseñas, tampoco cambiará nada.

    
respondido por el Anonymous 16.07.2015 - 04:59
fuente

Lea otras preguntas en las etiquetas