¿Es posible iniciar un servidor cifrado de forma remota y segura?

20

Imagina que tienes un servidor que se encuentra en una ubicación que no es confiable. Las personas pueden tener acceso físico a la máquina y no deben mirar los datos almacenados en ella.

En este escenario, pensé en configurar un servidor con cifrado de disco completo. Esto significa que se debe ingresar la clave antes de que el sistema pueda iniciarse por completo. Siempre que tenga acceso físico, ingresar la clave sin que un tercero lo sepa es posible.

Sin embargo, cuando el servidor debe iniciarse de manera remota, debo ingresar la clave sin estar presente. Linux ofrece la posibilidad de ejecutar un servidor SSH ligero antes de iniciar completamente el sistema para que pueda ingresar la clave. Sin embargo, el certificado para este servidor SSH obviamente debe almacenarse sin cifrar (ya que debe leerse antes de ingresar la clave) para que los atacantes puedan acceder a él y simular que nuestro servidor obtiene el conocimiento de la clave.

¿Hay alguna manera de hacer este proceso seguro? En el mejor de los casos, esto sería incluso independiente del sistema operativo.

    
pregunta Chris 11.03.2014 - 14:53
fuente

4 respuestas

10

La 3ra ley inmutable de Microsoft: "Si un malvado tiene acceso físico sin restricciones a su computadora, ya no es su computadora". Así que tienes que confiar en las personas que manejan tu centro de datos. Eso es lo que significa la confianza en la seguridad de la información: es lo que se ve obligado a hacer de mala gana cuando no puede controlar, evitar o transferir un riesgo por completo.

Aún así, querrás poner tantos controles como puedas. En este caso, un módulo TPM es probablemente su mejor opción: la clave está grabada en el silicio del chip cuando se crea, y por lo tanto es muy difícil de extraer.

Windows y Linux son compatibles con el cifrado de disco completo basado en TPM; Igual que VMWare ESXi, que también le daría independencia con el sistema operativo.

Por último, @ hopelessn00b y otros señalan algo que debería haber recordado: las tarjetas de administración remota que puede obtener en servidores de clase empresarial utilizan un cifrado sólido. Esa es una excelente manera de obtener acceso ssh a la consola en hardware, para que no tenga que meterse con la configuración de su caja.

    
respondido por el Graham Hill 11.03.2014 - 15:33
fuente
10

El problema que describe es preciso. He considerado el mismo problema y he encontrado algunas "soluciones" que pueden ser útiles.

Comencemos enumerando algunos posibles ataques:

Ahora, vamos a enumerar algunas contramedidas.

  • TPM: idealmente, almacenaría las claves en un módulo TPM. Esta pregunta trata sobre cómo se puede configurar LUKS para que sea compatible con TPM. En este punto, podrá almacenar "de manera segura" sus claves SSH de la mayoría de los ataques sin conexión.

  • Chassis Intrustion: le interesaría que alguien abriera su chasis. Muchas placas base vienen con detección de intrusiones que se pueden conectar al chasis. Dependiendo de su placa base, debería poder activar la eliminación de una tecla de apagado + apagado si alguien debe abrir el chasis de la computadora. Puede encontrar una explicación de esto en esta pregunta.

  • Pegamento: cuando el sistema se está ejecutando, no está encriptado. Te gustaría minimizar la superficie de ataque pegándola. Los periféricos USB, los buses PCI, etc. deben ser inaccesibles. Esto, combinado con la intrusión en el chasis, sería difícil llegar a la memoria antes de que la computadora empiece a apagarse.

  • Desactivación de otros métodos de arranque y periféricos: los ataques de arranque en frío pueden usar dispositivos USB de arranque para descargar rápidamente el contenido de la memoria antes de que pierda el estado.

  • Deshabilitar el acceso a la consola: si no está usando la consola, deshabilitarla evitará que otros la usen también. También puede compilar el kernel sin soporte VGA para mantener los monitores conectados apagados

Estas son algunas de las opciones que tiene, algunas más extremas y paranoicas, pero tal vez eso es lo que requiere su configuración.

    
respondido por el Dog eat cat world 11.03.2014 - 15:42
fuente
3

Si tiene una clave criptográfica confidencial para usar en un servidor, debe usar un Módulo de seguridad de hardware . Este es un dispositivo que ofrece resistencia a la manipulación contra ataques físicos. Además, un ataque sin conexión contra este módulo es más difícil de realizar (si el atacante elimina el HSM del servidor que eventualmente lo ve). Algunos modelos también pueden proponer un canal seguro para el acceso remoto para permitir que un usuario remoto con credencial válida desbloquee las claves.

    
respondido por el Jcs 11.03.2014 - 16:17
fuente
1

Bueno, permítame ofrecer una solución teórica a este problema que es segura. Por supuesto, esto solo es útil para propósitos teóricos, pero sugiere que su problema es, al menos en principio, solucionable:

Tienes las siguientes "cosas":
1. Clave: Una clave privada.
2. Plaintext: Sus datos privados
3. Servidor: una máquina no confiable (no confiable porque alguien más tiene acceso físico)

Para actualizar los contenidos del servidor:
1. Cifre todo el texto plano con su clave.
2. Actualice el texto plano cifrado al servidor.

Para recuperar el contenido del servidor:
1. Descargue todo el texto cifrado desde el servidor.
2. Descifra el cyphertext con tu clave.

Creo que este enfoque es demostrable, con la condición de que esté dispuesto a hacer varias suposiciones (es decir, las mismas suposiciones que hace cuando usa SSL y similares).

Por lo tanto, es posible, al menos en teoría, almacenar cosas seguras en una máquina no confiable. Para ir un paso más allá, las personas incluso han encontrado formas (actualmente poco prácticas) de ejecutar instrucciones de CPU encriptadas en una máquina en la que no se confía.

Por lo tanto, creo que teóricamente es posible iniciar un servidor cifrado de forma remota. La siguiente pregunta, por supuesto, es si existe algún tipo de solución práctica y probablemente segura. No estoy seguro. Sin embargo, incluso si la respuesta es no, puede que no lo sea para siempre.

    
respondido por el Brian 24.03.2014 - 20:24
fuente

Lea otras preguntas en las etiquetas