¿Existen ventajas de seguridad al eliminar la clave privada de un servidor web https después de iniciarla?

2

Supongamos que tiene un servidor web que ofrece páginas a través de HTTPS. Después de que el proceso comience a ejecutarse, si eliminara la clave privada, ¿esto evitaría la recuperación de la clave privada en caso de que el servidor se vea comprometido? Suponiendo que un atacante obtenga acceso privilegiado, ¿no podría un raspador de memoria recuperar la clave privada?

¿Es este diseño solo un mal ejemplo de seguridad a través de la oscuridad?

    
pregunta Python Novice 20.12.2015 - 22:02
fuente

2 respuestas

3

No vale la pena.

Entiendo que esa pregunta significa: "Si almaceno la clave privada solo en la RAM, ¿esto ayuda a la seguridad?"

Tal vez. Pero esto deletrea el despliegue del infierno.

Me imagino que esta situación es similar a un servidor donde tienes que estar físicamente presente para reiniciar. Como con una contraseña de arranque. Esto es muy poco práctico. Lo que obtienes de este modelo es la resistencia contra un ataque sin conexión. Como si alguien se aleja con el servidor. Es posible que desee defenderse contra esto si realmente no confía en la seguridad física del servidor. Pero la forma más tradicional de defenderse contra los ataques sin conexión sería el cifrado completo del disco.

Si desea una clave privada no extraíble, debería considerar comprar un HSM . (El más barato que conozco es el $ 500 YubiHSM .) O guarde las teclas fuera del servidor de alguna manera, tal vez en el camino CloudFlare Keyless SSL funciona .

La ventaja de estas soluciones es que Ataques en línea ya no funcionan. Tampoco puedes extraer la clave privada de la memoria RAM. (Y las claves privadas AFAIK son una de las agujas más fáciles de encontrar en el pajar de la memoria RAM si ya tiene root en la caja. Link: ErrataSec , Link: HeartLeech , Link: SecSe .)

    
respondido por el StackzOfZtuff 21.12.2015 - 10:39
fuente
2

Estás hablando de dos tipos de seguridad:

  1. Confidencialidad de la conexión SSL que depende de la clave privada que esté disponible y
  2. Integridad del sistema, que se ve comprometida antes de que una clave privada se vuelva vulnerable.

La conexión SSL que se establece entre los clientes y los servidores web depende de que la clave privada esté disponible para que pueda completar el intercambio de claves de sesión.

Si un atacante obtiene acceso a tu sistema y obtiene privilegios elevados, asegúrate de que la clave privada en el sistema de archivos no sea fructífera, pero un superusuario también puede MMAP_PHYS en toda la memoria del sistema y escanear las claves con solo un poco. más problemas.

Entonces, no, eliminar las claves privadas no evitaría la recuperación de las claves privadas (de la memoria), excepto si hay un corte de energía, reinicio o algo así. Básicamente, la integridad del sistema DEBE estar asegurada para mantener los recursos (claves) de su sistema a salvo de intrusos.

¿Es este diseño solo un mal ejemplo de seguridad en la oscuridad?

No, no seguridad a través de la oscuridad. SSL se basa en conceptos criptográficos de sonido. La seguridad en profundidad exige que las claves privadas (leer: integridad del sistema) estén protegidas por otras capas de seguridad, como los controles de acceso obligatorios.

    
respondido por el Whome 21.12.2015 - 02:45
fuente

Lea otras preguntas en las etiquetas