El protocolo SSH

El protocolo SSH

hace 6 años · Actualizado hace 6 años

SSH es una aplicación diseñada para substituir determinadas herramientas de acceso remoto usadas tradicionalmente en los sistemas Unix, como rsh (Remote Shell), rlogin (Remote Login) o rcp (Remote Copy), por nuevas versiones con servicios de seguridad.

El nombre de esta aplicación, SSH, es la abreviatura de Secure Shell, que viene a significar “versión segura del programa Remote Shell”.

La aplicación define un protocolo propio para la transmisión segura de los datos, el protocolo SSH. Este protocolo se sitúa directamente por debajo de la capa de transporte, (concretamente del transporte TCP) y, como veremos en este apartado, proporciona servicios análogos a los del protocolo SSL/TLS.

Aparte de establecer conexiones seguras, el protocolo SSH también ofrece otras funcionalidades como, por ejemplo, la redirección de puertos TCP o la comunicación entre clientes y servidores de ventanas X, a través de una conexión SSH.

El autor de la primera implementación del SSH, Tatu Ylönen, de la Universidad Tecnológica de Helsinki, publicó el año 1995 la especificación de la versión 1 del protocolo. Desde entonces se ha trabajado en la especificación de una nueva versión del protocolo, la 2.0, actualmente en fase de borrador a la espera de su publicación oficial como RFC. Aunque la funcionalidad que proporciona es básicamente la misma, la nueva versión incorpora muchas mejoras y es sustancialmente distinta de la anterior. La versión antigua y la nueva del protocolo se referencian habitualmente referenciadas como SSH1 y SSH2, respectivamente.

En este apartado nos centraremos sobre todo en el protocolo SSH2.

1.1. Características del protocolo SSH

SSH proporciona servicios de seguridad equivalentes a los del protocolo SSL/TLS.

-Confidencialidad. SSH sirve para comunicar datos, que habitualmente son la entrada de una aplicación remota y la salida que genera, o bien la información que se transmite por un puerto redirigido, y la confidencialidad de estos datos se garantiza mediante el cifrado.

Como en el caso del protocolo SSL/TLS, en SSH se aplica un cifrado simétrico a los datos y, por lo tanto, será necesario realizar previamente un intercambio seguro de claves entre cliente y servidor. Una diferencia respecto a SSL/TLS es que en SSH2 se pueden utilizar algoritmos de cifrado distintos en los dos sentidos de la comunicación.

Un servicio adicional que proporciona SSH es la confidencialidad de la identidad del usuario. Mientras que en SSL 3.0 y TLS 1.0, si se opta por autenticar al cliente, éste tiene que enviar su certificado en claro, en SSH (y también en SSL 2.0) la autenticación del usuario se realiza cuando los paquetes ya se mandan cifrados.

Por otro lado, SSH2 también permite ocultar ciertas características del tráfico como, por ejemplo, la longitud real de los paquetes.

-Autenticación de entidad. El protocolo SSH proporciona mecanismos para autenticar tanto el ordenador servidor como el usuario que se quiere conectar.

La autenticación del servidor suele realizarse conjuntamente con el intercambio de claves. En SSH2 el método de intercambio de claves se negocia entre el cliente y el servidor, aunque actualmente sólo hay uno definido, basado en el algoritmo de Diffie-Hellman.

Para autenticar al usuario existen distintos métodos; dependiendo de cuál se utilice, puede ser necesaria también la autenticación del ordenador cliente, mientras que otros métodos permiten que el usuario debidamente autenticado acceda al servidor desde cualquier ordenador cliente.

-Autenticación de mensaje. Igual que en SSL/TLS, en SSH2 la autenticidad de los datos se garantiza añadiendo a cada paquete un código MAC calculado con una clave secreta. También existe la posibilidad de utilizar algoritmos MAC distintos en cada sentido de la comunicación.

Igual que SSL/TLS, SSH también está diseñado con los siguientes criterios adicionales:

-Eficiencia. SSH contempla la compresión de los datos intercambiados para reducir la longitud de los paquetes. SSH2 permite negociar el algoritmo que se utilizará en cada sentido de la comunicación, aunque solamente existe uno definido en la especificación del protocolo. Este algoritmo es compatible con el que utilizan programas como gzip (RFC 1950–1952).

A diferencia de SSL/TLS, en SSH no está prevista la reutilización de claves de sesiones anteriores: en cada nueva conexión se vuelven a calcular las claves.

Esto es así porque SSH está pensado para conexiones que tienen una duración más o menos larga, como suelen ser las sesiones de trabajo interactivas con un ordenador remoto, y no para las conexiones cortas pero consecutivas, que son más típicas del protocolo de aplicación HTTP (que es el que inicialmente se quería proteger con SSL). De todas formas, SSH2 define mecanismos para intentar acortar el proceso de negociación.

-Extensibilidad. En SSH2 también se negocian los algoritmos de cifrado, de autenticación de usuario, de MAC, de compresión y de intercambio de claves. Cada algoritmo se identifica con una cadena de caracteres que representa su nombre. Los nombres pueden corresponder a algoritmos oficialmente registrados, o bien a algoritmos propuestos experimentalmente o definidos localmente.

Adaptación de SSH a idiomas locales

Por otro lado, SSH2 facilita la adaptación de las implementaciones a los idiomas locales. Donde el protocolo prevé la transmisión de un mensaje de error o informativo que pueda ser mostrado al usuario humano, se incluye una etiqueta que identifica el idioma del mensaje, de acuerdo con el RFC 1766.

Tanto estos mensajes como los nombres de usuario se representan con el juego de caracteres universal ISO/IEC 10646 mediante la codificación UTF-8, de acuerdo con el RFC 2279 (el código ASCII es un subconjunto porque en UTF-8 los caracteres con código menor a 128 se representan con un solo byte, de valor igual al código).

 

Fuente:

Aspectos avanzados de seguridad en redes
UOC
Jordi Herrera Joancomartí (coord.)
Joaquín García Alfaro
XP04/90789/00892
Xavier Perramón Tornil

Si quieres conocer otros artículos parecidos a El protocolo SSH puedes visitar la categoría SEGURIDAD INFORMATICA.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tu puntuación: Útil

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Subir