¿Las claves de host del servidor SSH duplicadas son un problema?

19

Estoy haciendo una evaluación de una red pequeña que está usando un poco de virtualización. Han clonado algunas de sus máquinas Linux después de generar sus claves de host del servidor SSH. Así que todos los servidores tienen la misma clave de host. Estoy seguro de que esto es malo, pero no puedo explicar por qué. ¿Puede explicar por qué esto sería o proporcionar un ejemplo de un escenario en el que podría explotarse? ¿O es solo un caso de mala práctica?

    
pregunta user896117 28.08.2013 - 02:29
fuente

3 respuestas

19

Cuanto más se comparte una clave privada, menos privada se vuelve. Esto es solo una evaluación genérica: en algunas situaciones, esto puede ser inofensivo. Lo que significa en el caso específico de los servidores SSH es que la seguridad de estos tres servidores se convierte en un sistema de todo o nada:

  • Cada servidor sabe lo suficiente como para hacerse pasar por cualquiera de los demás.
  • Si uno del servidor es pirateado, el atacante aprende la clave privada compartida y puede hacerse pasar por cualquier otro servidor.

Por otro lado, compartir la clave privada puede tener beneficios reales:

  • Como puede observar, sucede "naturalmente" en algunos casos de clonación de máquinas virtuales.
  • Si el enrutamiento es dinámico de alguna manera (por ejemplo, hay un equilibrio de carga), es posible que un sistema cliente dado no siempre caiga en la misma máquina con el mismo nombre; en ese caso, si los nodos relevantes no comparten la misma clave privada, el cliente gritará, gritará y se quejará.
  • Cuando un cliente se conecta a un servidor dado por primera vez , ese cliente todavía no tiene una clave pública guardada para ese servidor, por lo que el usuario humano debe verificar la huella digital de la clave del servidor con un autor autorizado fuente (por ejemplo, una llamada telefónica al administrador de sistemas). Si todos los servidores comparten la misma clave privada, la única huella digital puede imprimirse en letras grandes y pegarse a las paredes de la oficina; esto es mucho menos práctico cuando hay muchos servidores y cada uno de ellos tiene su propia clave.

Compartir la clave privada es, por lo tanto, una cosa definida "de ninguna manera" cuando las máquinas no están diseñadas para ser equivalentes entre sí con respecto a la seguridad. Sin embargo, cuando son equivalentes, compartir la clave privada puede simplificar algunas operaciones. El intercambio de la clave privada DEBE hacerse cuando se emplean algunas formas de balanceo de carga (aunque el balanceo de carga y el SSH rara vez encajan). Compartir la clave privada puede considerarse una "práctica aceptable" cuando todos los sistemas son elementos de un gran clúster de computación.

    
respondido por el Thomas Pornin 28.08.2013 - 15:50
fuente
7

Esto podría ser malo si una máquina estuviera comprometida y el atacante pudiera robar la clave. Luego podrían suplantar a cualquiera de las otras máquinas sin avisar a los usuarios con una advertencia de cambio de clave de host la próxima vez que intenten iniciar sesión en el host malicioso. Si existen otros mecanismos de seguridad en la red, esta amenaza podría mitigarse en gran medida.

    
respondido por el Richard Salts 28.08.2013 - 06:53
fuente
2

Sí, esto es malo. Como se dijo anteriormente, si un host se ve comprometido, entonces cualquier otro host con la misma clave privada deberá rotarse para evitar los ataques MITM.

Una mejor estrategia sería crear la clave después de que el host se haya levantado, o generar una nueva clave después de las imágenes. Eche un vistazo a lo que hacen algunos de los grandes (AWS, linode, etc.) para obtener ideas sobre cómo aprovisionar muchas máquinas virtuales de manera segura.

    
respondido por el bobmagoo 28.08.2013 - 17:15
fuente

Lea otras preguntas en las etiquetas