SSH1 frente a SSH2
SSH (Secure Shell) es un protocolo que se utiliza para habilitar la seguridad de la comunicación de datos a través de las redes. SSH fue encontrado por Tatu Ylonen (SSH Communications Security Corporation) en 1995. Este protocolo proporciona la infraestructura para asegurar el transporte de datos, la ejecución de comandos remotos y los servicios de red habilitados para la seguridad entre dos computadoras en una red. La comunicación se gestiona según arquitectura cliente – servidor (Cliente SSH y servidor SSH). El protocolo SSH se ha desarrollado con dos versiones denominadas SSH1 y SSH2.
SSH1 (Secure Shell versión 1)
La versión 1 del protocolo SSH se encontró en 1995 y consta de tres protocolos principales, llamados SSH-TRANS, SSH-USERAUTH y SSH-CONNECT.
SSH-TRANS: Es el protocolo de la capa de transporte (TCP/IP) que básicamente proporciona autenticación, confidencialidad e integridad del servidor.
SSH-USERAUTH: Es el protocolo utilizado para la autenticación de usuarios en el establecimiento de comunicación. Este protocolo autentica al cliente SSH en el servidor SSH. Este protocolo también se ejecuta sobre la capa de transporte.
SSH-CONNECT: Es el protocolo de conexión que multiplexa datos cifrados en algunos flujos lógicos. Este protocolo se ejecuta sobre el protocolo SSH-USERAUTH.
Para iniciar la conexión segura, el cliente envía su información de autenticación al servidor SSH con encriptación de 128 bits. Cada host del servidor tiene una clave de host, que es para verificar la comunicación correcta entre el servidor y el cliente. Además, debe tener una clave pública del servidor SSH correspondiente. Cada segmento de datos transferidos se cifra mediante algoritmos de cifrado (DES, 3DES, IDEA, Blowfish).
Además del inicio de sesión remoto, SSH se puede usar para túneles, conectividad X11, SFTP (Protocolo de transferencia de archivos SSH), SCP (Copia segura) y también reenvío de puerto TCP. El protocolo SSH utiliza el puerto TCP 22 de forma predeterminada. La compresión de datos también es compatible con SSH. Esta característica es útil cuando el enlace cliente-servidor tiene poco ancho de banda y puede usarse para mejorar el rendimiento de la conexión.
En la versión 1.5 de SSH, los desarrolladores han identificado alguna vulnerabilidad. En esta versión, era posible la inserción de datos no autorizados en medio del flujo de datos cifrados, lo que puede causar un alto riesgo para la seguridad de los datos. Además, en 2001 se identificó la vulnerabilidad de un servidor de autenticación malintencionado y no autorizado para reenviar la autenticación a otro servidor.
SSH2 (Secure Shell versión 2)
SSH2 se introdujo en 2006 con muchas mejoras significativas sobre SSH1. Aunque es una mejora de SSH1, SSH2 no es compatible con SSH1. SSH2 se reescribió agregando más mecanismos defensivos para evitar vulnerabilidades.
SSH2 utiliza un conjunto diferente de algoritmos mejorados y más fuertes para el cifrado y la autenticación, como DSA (Digital Signature Algorithm). SSH2 ya no es un software gratuito como SSH1; el desarrollador de SSH2 ha restringido el uso gratuito de SSH2. A diferencia de SSH1, el programa SFTP (Secure File Transfer) está integrado en el paquete SSH2 y utiliza los mismos protocolos de cifrado que utiliza SSH2 para cifrar flujos de datos.
¿Cuál es la diferencia entre SSH1 y SSH2?
Muchos sistemas operativos basados en UNIX tienen capacidad SSH incorporada y muchas consolas compatibles con SSH también se han desarrollado para sistemas Windows (TeraTerm, Putty, OpenSSH, WinSCP, etc.).
• Como se mencionó anteriormente, SSH2 es una versión mejorada de SSH1.
• SSH1 tiene algunos problemas documentados conocidos que se corrigen y se vuelven a codificar en SSH2.
• Normalmente, la última versión de cualquier aplicación es compatible con sus versiones anteriores, pero SSH2 no es totalmente compatible con SSH1 y también SSH2 requiere licencia.