En la versión 1 del protocolo SSH, el servidor tiene una clave RSA (siempre) y el cliente cifra asimétricamente un blob aleatorio con la clave pública del servidor. El blob aleatorio se utiliza como base para la clave de sesión que se utilizará para cifrar los datos.
En la versión 2 del protocolo SSH, el cliente y el servidor utilizan Diffie-Hellman (o una variante de curva elíptica de la misma) para establecer una clave de sesión compartida. El servidor firma su mitad del protocolo con su clave, que puede ser RSA o DSA.
Si bien RSA encryption y RSA signature pueden usar el mismo tipo de objeto matemático (una "clave RSA"), aún así son algoritmos distintos. La forma SSHv2 además ofrece Perfect Forward Secrecy , lo cual es bueno (si alguien roba la clave del servidor, puede descifrar las conexiones SSHv1) que grabó, pero no así con conexiones SSHv2).
En el modelo SSH, el cliente se asegura de que habla con el servidor correcto al recordar la clave pública de cada servidor (que es el archivo .ssh/known_hosts
). Cuando encuentra una nueva clave (un servidor al que el cliente todavía no se ha conectado), quiere mostrar algo que el usuario humano puede usar para confirmar que la clave pública del servidor es genuina. La huella digital es un valor hash; se supone que el usuario debe llamar al administrador del sistema del servidor deseado, para dictar la huella digital y obtener la confirmación de que es la correcta.
El "arte aleatorio" es una visualización de la huella dactilar de una manera que se supone que es fácilmente recordada por un ojo humano & cerebro. La idea es que el usuario primero memorice el "arte" asociado con el servidor, y más tarde compruebe visualmente que el "arte" recalculado es el mismo. (Escenario previsto: poder usar máquinas cliente aleatorias mientras viaja).
Personalmente prefiero aprender de memoria la huella digital; al menos puedo calcular la probabilidad de éxito del atacante. Mejor aún, viajo con mi propio dispositivo, que al menos debería tener menos virus que una máquina aleatoria de un cibercafé.