Cifrado de disco desatendido

2

Se me ha pedido que implemente el cifrado de disco en una máquina que debe poder ejecutarse sin supervisión. La máquina tiene dos discos. El primer disco tiene una partición de inicio y una partición del sistema operativo, mientras que el segundo disco solo tiene una partición y se usa para el almacenamiento de una aplicación. El objetivo es proteger los datos en la partición de almacenamiento para que no sean leídos, en caso de que alguien decida robar los discos.

Mi plan es usar el módulo dm-crypt de Linux para cifrar el sistema operativo y las particiones de almacenamiento. Me imagino que tiene más sentido utilizar una clave para cada partición cifrada. Sin embargo, estoy luchando para descubrir la mejor manera de almacenar cada clave.

Para la clave de la partición de almacenamiento, parece seguro almacenarla en la partición del sistema operativo. Sin embargo, parece que la única opción para almacenar la clave para la partición del sistema operativo es mantenerla en la partición de inicio. Sería realmente bueno si hubiera algún tipo de TPM u otro almacenamiento local en la máquina, pero desafortunadamente no hay otro almacenamiento disponible.

Por lo tanto, ya que necesitaré usar un initramfs para descifrar el disco del sistema operativo de todos modos, pensé que almacenaría la clave para la partición del sistema operativo en el initramfs, que se incrustaría en el kernel, que se almacenaría en el partición de arranque. Esto evitaría que los datos sean leídos por alguna persona aleatoria que tenga ganas de robar algunos discos. Sin embargo, me doy cuenta de que esto no es lo ideal, porque un atacante con suficiente conocimiento podría extraer los initramfs del kernel y extraer la clave de la imagen de initramfs.

De la forma en que lo veo, no importa cuán complejo sea el esquema que se me ocurra, necesito poder decirle a la máquina cómo llevar a cabo la rutina de descifrado; un atacante solo necesita leer la rutina de descifrado para determinar cómo descifrar el sistema.

Con el almacenamiento disponible, ¿hay una mejor manera de cifrar las particiones que sean más resistentes contra un atacante que tenga posesión de los discos?

    
pregunta millinon 14.06.2017 - 17:07
fuente

4 respuestas

3

Este es el problema interminable de: Sé cómo cifrar esto de forma segura, pero ¿dónde debería guardar la clave de forma segura? . Desafortunadamente, no hay una buena solución, porque si desea permitir un reinicio desatendido, la clave debe ser accesible desde la máquina. Eso significa que solo puedes confiar en un algo que tienes .

Dicho de otra manera, si solo le roban el disco de almacenamiento, su sistema estará seguro, pero si ambos discos lo son, el atacante tendrá todo lo que necesita para descifrar todo.

La mejor solución técnica que puedo imaginar, sería utilizar un HSM para descifrar las claves. Pero solo agrega seguridad si puede esperar que el HSM no sea robado con los discos. Eso significa que la única forma eficiente será mejorar la seguridad física del centro de datos.

    
respondido por el Serge Ballesta 14.06.2017 - 17:45
fuente
0

"Un sistema criptográfico debe ser seguro, incluso si todo lo relacionado con el sistema, excepto la clave, es de conocimiento público". Principio de Kerckhoff

Ya que ya hay una respuesta excelente, la señalaré aquí: ¿Qué tan valioso es el secreto de un algoritmo?

    
respondido por el anon 14.06.2017 - 17:23
fuente
0

Como ha dicho, y otros también, el problema es permitir que la computadora se reinicie mientras almacena su clave en algún lugar legible.

Dice que el sistema estará desatendido, por lo que asumiré que no tengo cabeza / inaccesible. ¿Has considerado usar KVM sobre IP? Obviamente, con esto hay un problema potencial de que un atacante en el sitio apague la computadora y coloque un rastreador entre los puertos del teclado antes de tomar los discos. Mi única idea real aquí es decente en la seguridad del sitio.

    
respondido por el hexnet 14.06.2017 - 22:12
fuente
0

La mejor solución es usar un HSM. Pero si no puedes hacer eso, entonces necesitas un servidor de claves. Este servidor clave debe ser otra máquina que esté en la misma red segura o que se acceda a través de una VPN si le preocupa el robo físico. El servidor de claves debe mantener la clave y ser accesible solo desde las máquinas locales (es decir, no debe estar expuesto públicamente). En el momento del arranque, las máquinas deben solicitar la clave de descifrado del servidor de claves.

El servidor de claves podría ser su único punto débil, aún deberá ingresar la clave de descifrado en el propio servidor de claves manualmente cuando necesite reiniciar el servidor de claves. Como alternativa a ingresar manualmente la clave en el servidor de claves, puede tener clusters de servidores de claves redundantes. Cuando el servidor de claves se reinicie, buscará claves de descifrado de otros servidores de claves similares. De esta manera, cualquier máquina en su sistema puede reiniciarse sin supervisión, aunque debe tener cuidado de que los servidores de claves no se reinicien todos simultáneamente.

Es posible que desee que el servidor de claves registre todos los accesos de claves y, posiblemente, envíe alertas por correo electrónico cuando se acceda a las claves desde el servidor de claves.

    
respondido por el Lie Ryan 15.06.2017 - 04:54
fuente

Lea otras preguntas en las etiquetas