Algoritmos previstos en SSH2
Los algoritmos criptográficos que contempla SSH2 son los siguientes: o Para el intercambio de claves: Diffie-Hellman.
• Para el cifrado: RC4, Triple DES, Blowfish, Twofish, IDEA y CAST-128.
• Para el MAC: HMAC-SHA1 y HMAC-MD5 (con todos los bytes o sólo con los 12 primeros).
Los paquetes que vienen a continuación son los de intercambio de claves, y dependen del algoritmo escogido (aunque SSH2 sólo prevé el algoritmo de Diffie-Hellman).
Se puede suponer que la mayoría de implementaciones tendrán un mismo algoritmo preferido de cada tipo. De este modo, para reducir el tiempo de respuesta se puede enviar el primer mensaje de intercambio de claves después del KEXINIT sin esperar el de la otra parte, utilizando estos algoritmos preferidos. Si la suposición resulta acertada, el intercambio de claves continúa normalmente, y si no, los paquetes enviados anticipadamente se ignoran y se vuelven a enviar con los algoritmos correctos.
Sea cual sea el algoritmo, como resultado del intercambio de claves se obtiene un secreto compartido y un identificador de sesión. Con el algoritmo DiffieHellman, este identificador es el hash de una cadena formada, entre otras, por las cookies del cliente y el servidor. Las claves de cifrado y de MAC y los vectores de inicialización se calculan aplicando funciones hash de varias formas a distintas combinaciones del secreto compartido y del identificador de sesión.
Para finalizar el intercambio de claves cada parte envía un mensaje NEWKEYS, que indica que el siguiente paquete será el primero que utilizará los nuevos algoritmos y claves.
Todo este proceso se puede repetir cuando sea necesario para regenerar las claves. La especificación SSH2 recomienda hacerlo después de cada gigabyte transferido o de cada hora de tiempo de conexión.
Si se produce algún error en el intercambio de claves, o en cualquier otro punto del protocolo, se genera un mensaje DISCONNECT, que puede contener un texto explicativo del error, y se cierra la conexión.
Otros mensajes que se pueden intercambiar en cualquier momento son:
• IGNORE: su contenido debe ser ignorado, pero se puede usar para contrarrestar el análisis de flujo de tráfico.
• DEBUG: sirven para enviar mensajes informativos.
• UNIMPLEMENTED: se envían en respuesta a mensajes de tipo desconocido.
En SSH2, después de finalizado el intercambio de claves el cliente envía un mensaje SERV I CE_RE QUE S T para solicitar un servicio, que puede ser autenticación de usuario, o bien acceso directo al protocolo de conexión si no es necesaria autenticación. El servidor responde con SERVICE_ACCEPT si permite el acceso al servicio solicitado, o con D I S CO NNE C T en caso contrario.
Califica este Artículo
Categoría: Conectividad y Redes.
Deja una respuesta