Next: Métodos de autenticación de
Up: Secure Shell. Principios y
Previous: Secure Shell. Principios y
Contents
Existen en la actualidad dos versiones: SSH1 y SSH2. Es ampliamente
aconsejable el uso de SSH2 (incorpora varias mejoras y es más seguro).
Por lo tanto, en el resto del texto nos referiremos siempre a éste
último.
Al conectarse un cliente de SSH con el servidor, se realizan los siguientes
pasos:
- El cliente abre una conexión TCP al puerto 22 del host servidor.
- El cliente y el servidor acuerdan la versión del protocolo a utilizar,
de acuerdo a su configuración y capacidades7.
- El servidor posee un par de claves pública/privada de RSA (llamadas
``claves de host''). El servidor envía al cliente su clave pública.
- El cliente compara la clave pública de host recibida con la que tiene
almacenada, para verificar su autenticidad. Si no la conociera previamente,
pide confirmación al usuario para aceptarla como válida8.
- El cliente genera una clave de sesión aleatoria y selecciona un algoritmo
de cifrado simétrico.
- El cliente envía un mensaje conteniendo la clave de sesión y el algoritmo
seleccionado, cifrado con la clave pública de host del servidor usando
el algoritmos RSA.
- En adelante, para el resto de la comunicación se utilizará el algoritmo
de cifrado simétrico seleccionado y clave compartida de sesión.
- Luego se realiza la autenticación del usuario. Aquí pueden usarse
distintos mecanismos. Más adelante analizaremos los más importantes.
- Finalmente se inicia la sesión, por lo general, interactiva.
Una de las principales fortalezas de SSH es la seguridad: ni bien
se establece la conexión, y antes de la autenticación del usuario,
queda establecido un canal cifrado seguro. En adelante, todo el tráfico
de la sesión será indescifrable.
Next: Métodos de autenticación de
Up: Secure Shell. Principios y
Previous: Secure Shell. Principios y
Contents
Sebastian Gurin
2006-08-03