Hashing un disco duro antes de apagarse

1

Problema: Actualmente no hay forma de verificar la integridad de mi sistema encriptado sin conexión. Me gustaría asegurarme de que el sistema no haya sido manipulado físicamente mientras he estado lejos de él.

(Para aclarar: si bien soy consciente de que el sistema no se puede modificar sin obtener acceso a mi clave de cifrado. Esta pregunta es para evitar la posibilidad de que el cifrado se omita de alguna manera. Es decir, obtienen acceso a mi clave de cifrado .)

Solución propuesta: hash el contenido del disco duro y se le ha agregado ese hash a la memoria USB que mantendré bajo control.

Pregunta:

  1. ¿Qué tan difícil sería obtener un hash para un disco duro antes de cada cierre del sistema y tener ese hash agregado a un registro en una unidad de disco que puede validarse después de cada inicio de sesión?

  2. ¿Necesitaría tener el sistema desmontado para garantizar que este método sea válido?

  3. ¿Ya existe una solución preempaquetada que conozca para este problema?

Consideraciones:

  1. Debería garantizar la seguridad física de la unidad de disco para asegurarse de que la coincidencia de las sumas de verificación sea válida (mantener la seguridad física de una unidad de disco es mucho más fácil que llevar una computadora conmigo)

  2. Este método probablemente se implementaría más fácilmente en máquinas virtuales (aunque eso no hace nada si el host está comprometido).

  3. Tener un USB de Live Linux en la unidad de disco para crear el hash en la unidad desmontada puede ser un método más simplista, aunque no tan racional.

Otros pensamientos: Soy consciente de que el cifrado del sistema ofrece cierto nivel de seguridad de integridad. Pero en la remota posibilidad de que el cifrado sea violado, me gustaría saberlo.

SO: Arch Linux

    
pregunta Jay Holister 06.11.2014 - 16:54
fuente

2 respuestas

6

Casi imposible, o al menos muy difícil. Primero, hay demasiados datos. Tomaría mucho tiempo calcular un hash de todo el disco duro en cada apagado y nuevamente para cada arranque. Puede alternativamente usar el encadenamiento de hashes para evitar eso, pero requeriría un sistema de archivos especializado. Sin embargo, en segundo lugar, incluso si estuviera dispuesto a esperar un hash completo o utilizar un sistema de archivos que encadene así, los valores cambiarán durante el proceso de inicio. Se crearán archivos temporales, los archivos de paginación cambiarán, etc., por lo que no funcionará en una unidad del sistema sin un cargador de arranque especializado en la memoria USB que podría validarse desde las primeras etapas.

De cualquier manera, el hash es irrelevante si la clave de cifrado se mantiene de forma segura. No puede cambiar significativamente los datos cifrados si no tiene la clave de cifrado. Puedes corromperlo, pero una comprobación de paridad básica encontraría ese tipo de manipulación. Si la clave de encriptación se ve comprometida, se atornilla de cualquier manera ya que sus datos podrían leerse sin alterar la unidad.

Un atacante elaborado también podría hacer algo como cargar en el firmware o en la memoria antes de que su hash pueda ejecutarse y luego reemplazarse después de su comprobación, evitando así la detección por este medio (y alterando el hash después de la primera vez) a menos que haga algo. montaje personalizado realmente elaborado que procesará todo, desde el disco duro como no confiable y solo cargará cosas que pasen el encadenamiento de validación.

También es mucho más fácil si lo está montando como una unidad fuera de línea después del inicio y puede confiar en el hardware que se está conectando, ya que no requiere un cargador de arranque confiable. Si no puede confiar en el hardware, los bios y otros firmwares del sistema también se convierten en una preocupación.

No hay mucho para tratar de manejar esta situación, ya que casi todos los modelos de amenazas consideran que el sistema no funciona si la clave está comprometida.

    
respondido por el AJ Henderson 06.11.2014 - 16:56
fuente
1

Un atacante tendría que tener acceso a la clave de cifrado para descifrar el volumen, modificar un archivo y luego volver a cifrarlo. Un atacante no podía simplemente modificar los datos cifrados directamente. Luego, cuando fue a descifrar los datos, el descifrado fallaría. Siempre que la clave de cifrado sea segura, no debería tener ningún problema.

Si le preocupa la integridad de los archivos, hay programas como TripWire que pueden indicarle cuándo se han modificado archivos específicos en el disco. . Mantiene hashes de los archivos que le digas para preocuparse. Si uno de ellos se cambia en el disco, esto se registra. Podrías verificar cada vez que montes el volumen si se cambia algún archivo. Creo que esta sería tu mejor opción. Tenga en cuenta que si el atacante tiene acceso a las claves de cifrado, todo esto puede modificarse mientras la unidad está en línea.

Para responder a sus preguntas específicamente:

  

¿Qué tan difícil sería obtener un hash para un disco duro antes?   Cada apagado del sistema y que hash agregado a un registro en un   unidad de memoria que se puede validar después de cada inicio de sesión?

Esto sería muy poco práctico. Tendría que hacer un hash de todo el volumen, que es esencialmente un escaneo de todo el volumen. Esto puede llevar de 30 minutos a horas, dependiendo del tamaño de la unidad.

  

¿Debería tener el sistema desmontado para garantizar que este método sea   válido?

Para que la verificación de integridad sea válida, la unidad debe estar en línea y montada. Sin embargo, un atacante podría ocultarse mientras el disco está en línea. Por lo que serían incluidos en la verificación de integridad. Una especie de quién está en la primera situación allí.

  

¿Ya existe una solución preempaquetada que conoce?   problema?

La respuesta corta es no, no que yo sepa. Para garantizar la integridad de la unidad debe estar en línea y descifrado. Pero un atacante puede esconderse en la verificación de integridad de esta manera. Usted querría hacer una verificación de integridad fuera de línea, pero luego la unidad está encriptada. Creo que eliges el cifrado o eliges la integridad fuera de línea. Creo que es poco práctico tener ambos.

Yo mismo estaría satisfecho con la opción de cifrado. Entonces solo me puedo culpar si las claves de cifrado están comprometidas.

    
respondido por el RoraΖ 06.11.2014 - 17:05
fuente

Lea otras preguntas en las etiquetas