¿Cargadores de arranque de Linux que admiten cifrado de disco completo?

28

¿Hay algún cargador de arranque de Linux que admita cifrado de disco completo (a la TrueCrypt )? Sé que hubo trabajo para agregar soporte de encriptación a GRUB2, pero aún no parece estar listo. ¿Alguna otra opción?

(Tenga en cuenta que realmente me estoy refiriendo al cifrado de disco completo aquí, incluido /boot)

La mayoría de las respuestas describen una configuración donde /bootno está encriptada, y algunas de ellas intentan explicar por qué una no encriptada /bootdebería estar bien.

Sin entrar en una discusión sobre por qué realmente necesito / arranque para estar encriptado, aquí hay un artículo que describe exactamente lo que necesito, basado en una versión modificada de GRUB2:

El problema con esto es que estas modificaciones aparentemente no son compatibles con la base de código GRUB2 actual (o tal vez estoy pasando por alto algo).

Grodriguez
fuente
sí, hay un excelente tutorial aquí: wiki.archlinux.org/index.php/…
ebal

Respuestas:

20

Creo que la versión actual de GRUB2 no tiene soporte para cargar y descifrar particiones LUKS por sí misma (contiene algunos cifrados, pero creo que se usan solo para su contraseña). No puedo verificar la rama de desarrollo experimental, pero hay algunos indicios en la página de GRUB de que se planea un trabajo para implementar lo que desea hacer.

Actualización (2015) : la última versión de GRUB2 (2.00) ya incluye código para acceder a las particiones cifradas LUKS y GELI. (El enlace xercestch.com que proporcionó el OP menciona los primeros parches para eso, pero ahora están integrados en la última versión).

Sin embargo, si está intentando cifrar todo el disco por razones de seguridad, tenga en cuenta que un cargador de arranque no cifrado (como TrueCrypt, BitLocker o un GRUB modificado) no ofrece más protección que una /bootpartición no cifrada (como lo señaló JV en un comentario anterior) . Cualquier persona con acceso físico a la computadora puede reemplazarla fácilmente con una versión personalizada. Eso incluso se menciona en el artículo en xercestech.com que vinculó:

Para ser claros, esto de ninguna manera hace que su sistema sea menos vulnerable a los ataques fuera de línea, si un atacante reemplazara su gestor de arranque con el suyo o redirige el proceso de arranque para arrancar su propio código, su sistema aún puede verse comprometido.

Tenga en cuenta que todos los productos basados ​​en software para el cifrado de disco completo tienen esta debilidad, sin importar si usan un cargador de arranque sin cifrar o una partición de arranque / prearranque sin cifrar. Incluso los productos con soporte para chips TPM (Trusted Platform Module), como BitLocker, se pueden rootear sin modificar el hardware.

Un mejor enfoque sería:

  1. descifrar a nivel de BIOS (en placa base o adaptador de disco o hardware externo [tarjeta inteligente], con o sin un chip TPM), o
  2. llevar el código PBA (autorización previa al arranque) (la /bootpartición en este caso) en un dispositivo extraíble (como una tarjeta inteligente o una memoria USB).

Para hacerlo de la segunda manera, puede consultar el proyecto Linux Full Disk Encryption (LFDE) en: http://lfde.org/ que proporciona un script posterior a la instalación para mover la /bootpartición a una unidad USB externa, encriptando la clave con GPG y almacenarlo en el USB también. De esa manera, la parte más débil de la ruta de arranque (la /bootpartición no cifrada ) siempre está con usted (usted será el único con acceso físico al código de descifrado Y la clave). ( Nota : este sitio se perdió y el blog del autor también desapareció, sin embargo, puede encontrar los archivos antiguos en https://github.com/mv-code/lfde solo tenga en cuenta que el último desarrollo se realizó hace 6 años). Como alternativa más ligera, puede instalar la partición de arranque sin cifrar en una memoria USB mientras instala su sistema operativo.

Saludos, MV

MV.
fuente
1
Descifrar a nivel de BIOS sería una muy buena solución de hecho (he considerado esto como una opción) ...
1
No conozco ninguna implementación que funcione, pero EFI / UEFI tiene la opción de incluir un EFI Boot Manager personalizado para reemplazar un cargador de arranque común, tal vez agregando una capa de descifrado para descifrar los datos (por supuesto, necesitará una plataforma EFI ) O tal vez algunos de los proyectos relacionados con CoreBoot (ADLO, SeaBIOS, OpenBIOS, etc.) pueden modificarse para hacerlo. Solo ideas.
44
Solo para agregar más información sobre la debilidad de usar una partición de arranque no cifrada (pero también se aplica a un cargador de arranque no cifrado): twopointfouristan.wordpress.com/2011/04/17/… (cómo modificar el arranque partición en 10 minutos de acceso físico, para recuperar la frase de contraseña de montaje más cualquier otro archivo en la partición cifrada)
1
@ MV: Gracias. Puedo probarlo yo mismo y agregar una respuesta aquí con pasos más detallados para usar /bootparticiones cifradas con GRUB2.
Peque
1
@ 에이 바: no, eso está relacionado (usando LUKS con un TPM) pero no es el mismo proyecto alojado anteriormente en lfde.org (que ahora es un sitio sobre un aeroclub).
MV.
4

Haga que su RAMdisk inicial y la carpeta / boot no utilicen cifrado.

Esto abrirá un núcleo "mínimo", con controladores y soporte para cambiar al sistema de archivos raíz "real" que está encriptado.

Antes de reclamar "esto es un hack", recuerde, la mayoría (si no todas) las distribuciones de Linux arrancan de esta manera hoy de forma predeterminada. Esto permite explícitamente que su sistema arranque y cargue su FS raíz, utilizando módulos que necesita cargar desde un sistema de archivos. (Una especie de problema de huevo y gallina). Por ejemplo, si su sistema de archivos raíz estaba en un volumen RAID de hardware, y necesitaba cargar su controlador antes de poder montar su FS raíz.

Puntilla
fuente
3

Revisé el enlace que publicó: aunque no hay una partición de arranque, todavía hay un cargador de arranque no cifrado en el disco duro al que se puede acceder y comprometer mediante un malvado ataque de mucama. He estado buscando una configuración similar, en la que no hay datos sin cifrar en el disco duro, pero hasta ahora solo he logrado ejecutar un cargador de arranque desde una unidad extraíble.


fuente
Sí, todavía hay un gestor de arranque sin cifrar. Esto sería aceptable para mí.
La malvada criada puede infectar el gestor de arranque para hacer una solicitud de contraseña falsa para engañarlo, luego simplemente cargar el núcleo troyano sin cifrar. Cifrar el kernel gana muy poco sin cifrar el cargador de arranque.
Skaperen
1

Creo que la mayoría de ellos lo hacen, lo que necesita es instrucciones sobre cómo instalar el sistema operativo con HD encriptado en primer lugar.

Ubuntu tiene una buena página con instrucciones sobre cómo hacer particiones cifradas, LMVP, carpetas, etc., solo busque en Google su versión de distribución de eso ...

JV
fuente
2
La mayoría de las distribuciones de Linux, incluido Ubuntu, incluyen algún tipo de soporte para encriptar particiones, pero requieren que / boot no esté encriptado. Lo que estoy buscando es un cargador de arranque que pueda manejar un disco completamente encriptado.
1
Al menos una parte del gestor de arranque debe estar sin cifrar, de lo contrario, la CPU no podría ejecutarlo. ¿Hay algún problema en particular que tenga al dejar / iniciar sin cifrar?
2
El gestor de arranque y / boot son cosas diferentes. Estoy buscando un cargador de arranque que pueda arrancar un disco totalmente encriptado. TrueCrypt puede hacer eso para Windows, pero no para Linux.
La diferencia es que el gestor de arranque de Windows está contenido en el mbr en sí mismo, mientras que en Linux el mbr solo se vincula a los archivos / boot necesarios.
JV
1
"La autenticación previa al arranque es manejada por TrueCrypt Boot Loader, que reside en la primera pista de la unidad de arranque", es decir, en Windows crea un mini / arranque. Nuevamente, grub está contenido en / boot, el mbr tiene solo 512 bytes, no lo suficiente para almacenar un algoritmo de descifrado. Sin embargo, ya está hecho, una parte del disco duro debe suministrarse sin cifrar. Es posible que pueda iniciar grub en una partición cifrada desde un gestor de arranque en una completamente diferente, pero eso requeriría un código muy desordenado ...
JV
0

No, creo que no hay.

¿Realmente necesitas cifrar / arrancar? Sospecho que no. El resto del sistema de archivos puede ser encriptado por el software normal de Linux que reside en un initramfs en / boot y solicita al usuario en consecuencia.

MarkR
fuente
2
Sí, necesito cifrar / arrancar. Todo debe estar encriptado, excepto el propio gestor de arranque.
Explique por qué cree que no hay cargadores de arranque que admitan el cifrado de disco completo.
this.josh
@Grodriguez: si se tiene en cuenta / boot sea parte del gestor de arranque, entonces todo está encriptada - todos los binarios utilizados en tiempo de ejecución, todos los datos de usuario, etc
MarkR
2
Como se señaló en un comentario sobre otra respuesta: Sé que siempre debe haber "algo" que no esté encriptado, solo necesito que este "algo" sea el cargador de arranque (MBR + sector de arranque), en lugar de una partición / boot .
0

Parece que estás pidiendo algo que es imposible de hacer y lo comparas con una solución de Windows que te oculta la implementación, pero en realidad está haciendo lo mismo que Linux.

La solución más cercana que se me ocurre es utilizar un disco duro que implemente una contraseña de seguridad y cifrado. Algunas de las computadoras portátiles Thinkpad usan estas soluciones de hardware.

Zan Lynx
fuente
2
Lo siento, pero no veo por qué esto debería ser "imposible". El artículo que enlace en mi pregunta demuestra que se puede hacer. Se implementó una prueba de concepto utilizando una versión modificada de GRUB 2. Sé que siempre debe haber "algo" que no esté encriptado; solo necesito este "algo" para ser el gestor de arranque (MBR + sector de arranque). de una partición / boot.
@Grodriguez: su requisito no tiene sentido. ¿Se cumple su requisito al usar una máquina virtual dentro de otro sistema operativo? Si es así, inicie OS One, descifre la unidad e inicie la VM.
Zan Lynx
2
¿Realmente has intentado leer el artículo al que me vinculé? El hecho de que no comprenda el requisito no significa que "no tiene sentido". Tengo razones válidas para esto (en lo que no quiero entrar).
El artículo deja claro en el párrafo 3 que no mejora la situación. Por lo tanto, no tiene sentido seguir el resto, que se centra en cómo configurarlo, en lugar de cómo funciona. Piensa en lo que te dirá que he reemplazado tu kernel, o todo / boot, por el mío (cuando actúo como una maid malvada).
Skaperen
0

La respuesta es insinuada por el artículo. "Esto ahora es posible con extensiones para el cargador de arranque GRUB2 de próxima generación, que ha sido parcheado para soportar no solo" y "deseamos instalar nuestra nueva imagen grub2 habilitada para luks más adelante" y "Ahora compilamos la fuente GRUB2 habilitada para LUKS. " Parece que hay un parche o extensión que necesita obtener e incluir con GRUB2, o una fuente GRUB2 bifurcada.

Skaperen
fuente
0

Grub2 versión 2.02 ~ beta3 puede hacer muchas cosas que Grub2 versión 2.02 ~ beta2 no puede hacer, probado por mí:

  1. Arrancar usando el disco Super Grub 2
  2. Escriba la tecla 'c' para ir a la línea de comando
  3. Escriba comandos para montar la partición cifrada que quiero
    • insmod luks
    • cryptomount (hd0, #) // donde # representa la partición cifrada
  4. Escriba la frase de contraseña y escriba algunos comandos más
    • multiboot (crypto0) /grub/i386-pc/core.img
    • bota

Eso cargará otro Grub2 que está dentro de una partición encriptada, un ataque loco malvado no tiene sentido aquí ... Estoy arrancando desde un CD (medio de solo lectura), luego montando una partición encriptada (sin la frase de contraseña, ¿cómo puede alguien atreverse? ¡inyecte cualquier cosa!), luego inicie desde dentro de la partición cifrada y cargue un Grub2 con su propio menú, etc.

Nota: Tal arranque Grub 2.02 ~ beta3 (uso Super Grub 2 cd) puede estar en una memoria USB, USB HDD, etc.

Advertencia: Grub2 versión 2.02 ~ beta2 no puede hacer lo mismo ya que tiene algunos ERRORES (que parecen estar corregidos en Grub2 versión 2.02 ~ beta3) relacionados con el comando cryptomount ...

Los errores beta2 de los que hablo son:

  1. Realmente no monta la partición encriptada, por lo que no le permite acceder (crypto0) / *
  2. Si hay más de una partición cifrada, el uso cryptomount -asolo solicita una frase de contraseña
  3. Después de ejecutar cryptomount una vez, se ejecuta nuevamente no hace nada

en beta 3:

  1. Realmente monta la partición encriptada y le permite acceder a los archivos a través de (crypto0) / * o (crypto1) / * etc. si se montan más de uno al mismo tiempo
  2. Pide cada frase de contraseña (una por partición encriptada)
  3. Le permite ejecutarlo tantas veces como lo necesite, puede montar uno, luego otro, etc.

Nota al margen: no descubrí cómo desmontarlos, excepto reiniciar o arrancar otro o mismo grub2 / otro gestor de arranque, etc.

Espero que esto ayude a aclarar las cosas, y espero que Grub2 versión 2.02 ~ beta3 se integre en LiveCD para que podamos instalarlo sin necesidad de compilarlo nosotros mismos.

PD: con el disco Super Grub 2 no puedo ver ninguna forma de instalar Grub2 versión 2.02 ~ beta3 en la partición MBR / boot, etc.

Claudio
fuente