lunes, 18 de enero de 2010

ARQUITECTURA DEL PROTOCOLO

La arquitectura del protocolo está definida en el documento RFC4251, donde se pueden distinguir varias capas:

  1. Capa de transporte RFC4253: Gestiona el intercambio inicial de claves para la autenticación del servidor, configura el cifrado, la comprensión, la integridad y la verificación. Transmite a su capa superior inmediata un interfaz para el envío y receptión de paquetes de texto plano de unos 33kB cada uno pudiendo aumentar dicha cifra al implementar el protocolo. La capa de transporte también llega a acuerdos para el intercambio de claves. Fases que se implementan en esta capa: autenticación del servidor (RSA,DSA); gestión de intercambio de clave inicial (Diffie-Hellman); negociación de algoritmos (encriptado simétrico); compresión de datos (opcional).
  2. Capa de autenticación de usuario RFC4252: En esta capa se gestiona la autenticación del cliente proveyendo de varios métodos para ello. Cuando la petición de una contraseña se muestra, puede ser el cliente el que realiza la petición y no el servidor. El servidor únicamente responde a las peticiones de autenticación del cliente. Los métodos más usados de autenticación son: 1.- Autenticación por contraseña: donde el cliente accede al servidor mediante contraseña. Incluye facilidades para cambiar la contraseña y por tanto mantener la seguridad. No es un método implementado por todos los programas cliente de SSH. 2.- Clave pública: método que normalmente soporta el menos pares de claves cifradas mediante algoritmos RSA oDSA con otras implementaciones que permiten el soporte de certificados digitales. 3.- Teclado interactivo: el servidor envia uno o más mensajes para la adquisición de información, el cliente los muestra y envía la respuesta al servidor. Es una autenticación por contraseña en un único paso. Esta imlpementado en algunos servidores OpenSSH.
  3. Capa de conexión RFC4254: Finalmente en ésta se definen los canales. Una única conexión SSH puede alojar múltiples canales SSH simultáneamente, transdiriendo datos cada uno en ambas direcciones. Las peticiones de canal son usadas para la implementación de datos específicos. Puede ocurrir que la petición del cliente para redireccionar un puerto en el servidor remotor, por lo que los canales concluyen: 1.- Ejecución de Shell para terminales remotos que permitan comandos de SSH o envío de ficheros SCP. 2.- Redirección de conexiones TCP/IP para redirigir la información de aplicaciones entre cliente y servidor.
Esta arquitectura proporciona una considerable flexibilidad, permitiendo a los usuarios de SSH una gran variedad de utilidades sobre el propio protocolo. La capa de autenticación del cliente es muy extensa y soporta numerosos métodos de autenticación con distintas configuraciones. Por último la capa de conexión permite multiplexar varias sesiones en una única conexión.




No hay comentarios:

Publicar un comentario