¿Es una buena manera de proteger mis datos eliminar las teclas LUKS durante la operación?

1

Digamos que Alice posee un servidor que almacena datos altamente confidenciales. Supongamos que los datos valen mucho, pero perder todos los datos es un problema mucho menor que que el mazo atacante los lea.

Para que los datos estén seguros en el funcionamiento normal, todos los discos duros tienen LVM y LUKS con el cifrado de volumen completo habilitado. Hay un keylot habilitado. El servidor está protegido contra la pérdida de energía a través de UPS.

Alice pudo ver a Mallet, intentando físicamente robar los discos duros, ingresando, ssh en el servidor y emitiendo cryptsetup luksErase para destruir permanentemente el encabezado y así hacer que los datos no se puedan recuperar.

Sin embargo, si Mallet se coló en la sala de servidores, desenchufó el servidor del UPS sin apagarlo y luego extrajo las unidades, los encabezados LUKS con las llaves aún estarían allí. Suponiendo que Mallet tuviera el poder de cómputo en sus manos para romper la contraseña, podría desbloquear los volúmenes.

Ahora se me ocurrió esto: ¿qué sucede si el servidor, una vez que se desbloquean los volúmenes, sobrescribe los encabezados? En un caso de pérdida repentina de energía, todos los datos desaparecerían para siempre. Cuando Alice necesita reiniciar, puede copiar los datos del volumen desbloqueado a otro disco, reiniciar, reinicializar el volumen LUKS y restaurar los datos, luego destruir el disco externo.

¿Sería eso más seguro o es suficiente elegir una contraseña lo suficientemente larga para LUKS? (Sin mencionar que la solución es seguramente paranoica, pero solo en teoría)

    
pregunta RenWal 25.10.2016 - 19:09
fuente

2 respuestas

2

¿Su solución sería más segura que elegir una contraseña realmente larga?

Eso depende del tamaño de la frase de contraseña.

El encabezado luks contiene una clave de tamaño determinado y iv. No conozco los tamaños en bits de esos dos sin buscarlos, pero supongamos que juntos tienen una longitud de 512 bits.

Si sobrescribe el encabezado luks, para descifrar la partición, debe adivinar correctamente estos 512 bits. Actualmente es imposible hacerlo en un tiempo útil (piense en cualquier momento antes de que el sol explote ...)

Si asume que luks no hace ningún estiramiento de las teclas (lo que hace), necesita una frase aleatoria de 64 caracteres para que coincida con esto. Puede producir fácilmente una clave de este tipo:

$ dd if=/dev/random of=my-key bs=64 count=1

Incluso puede pasar esa clave directamente mientras crea una partición luks. Así es como funciona el intercambio encriptado en linux. La partición de intercambio se reinicializa con una nueva clave aleatoria cada vez que se inicia el sistema, por lo que los antiguos contenidos de intercambio se destruyen de forma segura.

Para su sistema, puede facilitar el manejo almacenando la tecla luks en la memoria (o / dev / shm). Cuando el sistema se apaga inesperadamente, la partición se pierde. cuando desee reiniciar, almacene la clave en el disco (o la exporte a través de la red) y abra el contenedor luks utilizando la clave almacenada después de reiniciar. Luego reemplaza la llave con una nueva, que de nuevo solo conserva en la memoria.

De esta manera, no perderá los datos en los cierres programados.

    
respondido por el Pascal 04.11.2016 - 20:26
fuente
0

Esto parece bastante complicado ya que existe una solución mucho más simple. En lugar de tener la clave de cifrado generada por una contraseña que se puede encontrar por fuerza bruta, téngala generada por una contraseña que no se puede encontrar por fuerza bruta.

Una contraseña no se puede adivinar en virtud de ser una contraseña, se puede adivinar porque es demasiado corta, o más precisamente porque tiene muy poca entropía. Si una contraseña tiene 128 bits de entropía, no es más fácil de adivinar que cualquier otra clave de 128 bits. (Reemplace "128" por "256" si cree en magia criptoanálisis cuántico).

Una contraseña tan larga no puede ser recordada de manera realista por un humano, pero puede ser escrita y escrita por el operador, o, mejor dicho, almacenada en una tarjeta inteligente insertada por el operador. El operador es necesario para iniciar su sistema de todos modos ya que alguien tiene que proporcionar las credenciales.

Puede, y debe, seguir utilizando múltiples ranuras para que pueda revocar una de las claves sin invalidar las otras (por ejemplo, si le roban la tarjeta inteligente o el trozo de papel de un operador).

Ya que está preocupado por un atacante con acceso físico, es probable que desee aplicar el parche TRESOR a protéjase contra el atacante que viene con una lata de aire comprimido, extraiga los módulos de RAM y vuelva a leer la clave de la RAM.

    
respondido por el Gilles 04.11.2016 - 22:37
fuente

Lea otras preguntas en las etiquetas