Verificación de la huella dactilar SSH de un servidor público

4

He leído en alguna parte que los servidores que tienen acceso SSH para los usuarios del público pueden publicar públicamente su clave pública (por ejemplo, en un sitio web), de modo que las personas que accedan a dicho servidor mediante SSH puedan usar esta clave para verificar la huella digital del servidor.

Mi pregunta: si la clave pública es accesible al público, ¿no puede un usuario malintencionado obtenerla y explotarla para las personas que trabajan en el medio y que intentan conectarse a este servidor?

Además, ¿qué es exactamente en esta huella digital SSH? ¿Es solo una clave pública que ha sido hash? ¿O es información específica del servidor que ha sido cifrada (o firmada) por la clave privada del servidor?

    
pregunta Minaj 12.06.2016 - 01:36
fuente

1 respuesta

4

Un usuario malintencionado no puede explotar una huella digital conocida públicamente de una clave pública, porque la verificación no se limita a comparar la huella digital con un valor fijo.

El servidor presenta dos datos a un cliente:

  • una clave pública
  • un mensaje cifrado con su clave privada (que existe solo en el servidor legítimo)

En el lado del cliente, el mensaje se descifra con la clave pública y se verifica su contenido.

El usuario tiene la opción de comparar manualmente la huella digital de la clave pública con un valor conocido.

Al comparar la huella digital de la clave pública, el usuario se asegura de que pertenezca al servidor al que desea conectarse. Al descifrar el mensaje, la aplicación cliente garantiza que el servidor "contenga" la clave privada correspondiente.

El conocimiento de la clave pública o su huella digital no le proporciona al atacante ninguna información sobre la clave privada del servidor (ese es el principio más básico de la criptografía de clave pública).

Si el atacante instaló un servidor malicioso, aún necesitaría usar una clave privada para cifrar la comunicación con el cliente. La comunicación cifrada con esta clave privada requeriría descifrado con una clave pública correspondiente (diferente a la legítima).

El usuario puede comparar la huella digital de la clave pública utilizada con la del servidor legítimo tal como se publicó.

Por supuesto, si un atacante modificó la información sobre la clave pública del servidor y la reemplazó con la suya, ese ataque funcionará. Por lo tanto, el usuario debe evaluar el nivel de confiabilidad del medio del cual aprendió la huella digital. En palabras sencillas: si la información de huellas dactilares se proporciona en un sitio HTTP sin cifrar o a través de un canal comprometido, no se puede confiar.

Históricamente, la huella digital predeterminada se presentó como hash MD5 de 128 bits en forma de valores hexadecimales separados por dos puntos:

 43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8

El valor predeterminado se cambió más tarde a SHA-256 escrito como:

xrcV3g7R6sp8DVZGDEAhCL9s4TD9GFyrCbLCzHXi5iA

Un cliente OpenSSH permite solicitar un hash específico mediante la opción FingerprintHash especificada en .ssh/config o directamente en el comando:

ssh -o FingerprintHash=md5 example.com
    
respondido por el techraf 12.06.2016 - 02:00
fuente

Lea otras preguntas en las etiquetas