Transferir datos de forma segura de un punto a otro siempre ha sido un desafío. Además de garantizar que la información se transmita correctamente, también debemos garantizar que permanezca segura. Ahí es donde entran en juego los protocolos de comunicación como Secure Shell (SSH) y otros.
¿Qué es SSH?
SSH es un protocolo de comunicaciones que rige cómo los dispositivos envían datos a través de una red. Proporciona el marco y las instrucciones que determinan cómo se empaquetan y mueven los datos de información. Más importante aún, permite que los datos se envíen de forma segura, incluso a través de redes inseguras.
Por sus características, SSH es adecuado para una amplia gama de aplicaciones. Un uso común es que los administradores de sistemas o servidores se comuniquen de forma segura con servidores remotos. Por ejemplo, los propietarios de sitios web pueden usar SSH para conectarse y transferir datos a Servidores virtuales.
Tatu Ylonen y Linus Torvalds (de Linux fame) desarrolló la primera versión SSH (SSH-1) en 1995. Mientras que algunos todavía usan SSH-1, una versión más común que encontrará hoy es SSH-2.
Cómo funciona SSH
SSH funciona en el modelo Cliente-Servidor donde un dispositivo (el Cliente) envía instrucciones a otro (el Servidor). El servidor es responsable de responder a las instrucciones de los dispositivos Cliente autorizados.
Utiliza tres componentes principales para apoyar esta comunicación; los Protocolo de la capa de transporte (TLP), el Protocolo de autenticación de usuario y el Protocolo de conexión. Cada protocolo tiene un propósito secuencial distinto dentro de SSH.
Ejemplo de uso de SSH
Usemos la solicitud SSH más típica, la de un administrador que desea establecer una conexión SSH con un servidor remoto.
El administrador escribirá el siguiente comando; ssh [correo electrónico protegido]
Este comando indica al dispositivo local (el Cliente) que se desea una conexión SSH. Comprende tres partes. "ssh" es el comando, "nombre de usuario" es la identidad de la cuenta a la que desea acceder en el servidor remoto y "host" es la dirección IP o nombre de dominio del servidor remoto.
Una vez que se envía el comando, aparecerá un mensaje solicitando una contraseña para acceder a la cuenta remota. El servidor remoto está listo para aceptar más comandos si la contraseña es correcta.
Ventajas de SSH
Hay varias ventajas clave al usar SSH.
Cifrado fuerte
SSH es un protocolo seguro que cifra la comunicación entre el cliente y el servidor, lo que dificulta mucho más que los hackers intercepten la información. Es cifrado utiliza AES-256, uno de los niveles de cifrado más altos disponibles en la actualidad.
Autenticación controlada
Cuando se conecta a través de SSH, ambos lados verifican la identidad del otro antes de permitir el acceso al sistema. Puede configurar SSH para que solo ciertos usuarios puedan acceder o de manera que todos los usuarios necesiten una contraseña para iniciar sesión.
Portabilidad
SSH es compatible con todos los principales sistemas operativos, incluidos Windows, macOS, Linuxy basado en Unix. La principal diferencia es que SSH a veces puede no ser una opción predeterminada. Por ejemplo, las máquinas macOS deben habilitar el protocolo antes de su uso.
Desventajas de SSH
SSH es una gran herramienta, pero también tiene algunas desventajas.
Algunos desafíos del usuario
La implementación predeterminada de SSH requiere que los usuarios aprendan las instrucciones de la línea de comandos y establezcan conexiones. Sin estas habilidades, los usuarios necesitarán aplicaciones de terceros para usar SSH para obtener instrucciones básicas.
Problemas de desempeño
En comparación con algunos protocolos como FTP, SSH es más lento. Es más adecuado para comunicar ráfagas cortas de datos como comandos en lugar de transferencia de archivos. El problema es causado principalmente por TCP / IP, lo que crea una sobrecarga más significativa para la comunicación de datos.
Algunas vulnerabilidades conocidas
Incluso se sabe que SSH-2 tiene varias vulnerabilidades. Algunos no son nativos del protocolo, pero son causados por inconvenientes de SSH, como las complejidades de administrar y rastrear claves.
Cómo se compara SSH con otros protocolos de comunicación
SSH frente a Telnet
Necesitarás SSH o Telnet si necesita conectarse a un servidor remoto a través de Internet y escribir comandos en la ventana del terminal. Ambos sirven para el mismo propósito. Sin embargo, es importante tener en cuenta que SSH es la versión segura de Telnet. Este último envía datos en texto sin formato y también es más lento que SSH.
SSH frente a SSL/TLS
SSH y SSL / TLS son dos protocolos que cifran los datos durante la transmisión. Ambos proporcionan autenticación e integridad, pero utilizan métodos diferentes. SSL/TLS admite la autenticación a través de certificados emitidos por una autoridad de certificación (CA).
SSL/TLS es más adecuado que SSH para transacciones de comercio electrónico porque permite que las transacciones se validen mediante firmas digitales.
SSH frente a VNC
La diferencia entre SSH y VNC es que SSH es un protocolo de shell remoto con todas las funciones, mientras que VNC es un protocolo de escritorio remoto (RDP) más sencillo. Debido a esta diferencia, SSH proporciona más funciones que VNC.
Por ejemplo, SSH admite la multiplexación, mientras que VNC no. La multiplexación significa que puede usar un canal para enviar múltiples flujos de información a la vez; esto puede ser útil si se transfiere una gran cantidad de datos entre el cliente y el servidor.
Conclusión
La necesidad de una comunicación cifrada y segura entre computadoras ha seguido aumentando en el mundo interconectado de hoy. El protocolo Secure Shell y su cliente, servidor y herramientas relacionadas se han convertido en algunas de las soluciones de seguridad de red más utilizadas.
SSH y su pariente cercano, OpenSSH, esencialmente pueden considerarse un reemplazo seguro para los protocolos no cifrados como Telnet. Es un conocimiento esencial para cualquier administrador de red o sistema comprender el entorno de Secure Shell en sus sistemas y redes.