Saltar la navegación

6.1.2.1. Negociación

Ilustración que muestra el proceso de establecimiento de una comunicación ssh
Unknown author (CC BY-SA)

Para el establecimiento de la conexión es necesario que el servidor esté escuchando peticiones de conexión en el puerto asignado al servicio SSH, que es el 22. El cliente se conecta a dicho puerto mediante el protocolo TCP.

  1. El primer paso es negociar la versión del protocolo SSH a utilizar. Tanto el cliente como el servidor envían una línea que contiene el texto “SSH-x.y-implementación”, donde x.y es el número de versión del protocolo (por ejemplo, 2.0) e implementación es una cadena identificativa del software del cliente o servidor. Si los números de versión no concuerdan, el servidor decide si puede continuar o no: si no puede, simplemente cierra la conexión. Destacar que todo este intercambio de mensajes se lleva a cabo sin cifrar.
  2. A continuación, comienza la fase de negociación entre el cliente y el servidor. Para ello el servidor envía al cliente su clave pública para que éste, a partir de ahora, envíe toda la información cifrada con dicha clave pública. En esta fase de negociación se procede al intercambio de claves y las listas de algoritmos soportados por orden de preferencia:
  1. Algoritmos de intercambio de claves.
  2. Para cada sentido de la comunicación, algoritmos de cifrado simétrico y de compresión.
  3. También se incluye una lista de idiomas soportados por los mensajes informativos.

Para cada tipo de algoritmo, se escoge el primero de la lista del cliente que esté también en la lista del servidor. Los algoritmos criptográficos que contempla SSH2 son los siguientes:

  • Para el intercambio de claves: Diffie-Hellman.

  • Para el cifrado: RC4, 3DES, Blowfish, Twofish, IDEA y CAST-128.

Sea cual sea el algoritmo criptográfico, como resultado final se obtiene un secreto compartido (clave de sesión) y un identificador de sesión. Esta información será enviada de forma cifrada por parte del cliente, usando la clave pública del servidor. Todo este proceso se puede repetir cuando sea necesario la regeneración de las claves.

Si todo es correcto, ya se tendrá establecida la conexión, a expensas de la autenticación del cliente, la cual es necesaria antes de poder hacer nada en el equipo remoto (servidor). Esta parte de autenticación tendrá lugar durante la segunda fase.

Debes conocer

En los siguientes enlaces podrás aprender más asuntos relacionados sobre las técnicas de cifrado empleadas por ssh:

IDEA 

RC4