Vous êtes sur la page 1sur 6

T RABAJO P RCTICO C APA DE A PLICACIN

Tema: Secure Shell (SHH)

El presente trabajo es un desarrollo un tanto breve sobre Secure Shell debido a lo extenso de este tema, en el cual se enfoca ms el desarrollo del contenido a la versin 2 de dicho protocolo, pero sin dejar de mencionar las caractersticas que comparten, y algunas diferencias.

Chripczuk, Hctor Javier | Legajo 918354 16/03/2009

16-3-2009

TRABAJO PRCTICO CAPA DE APLICACIN


Tema: Secure Shell (SHH)
Se deber seleccionar un protocolo de la capa de aplicacin y realizar una presentacin entre 5 y 10 pginas que comprenda los siguientes tems:

1- Descripcin del servicio. Importancia del mismo. Aplicacin. 2- Arquitectura asociada. (Cliente/Servidor, Entre pares) 3- Primitivas del Servicio. 4- Formato de las PDU y explicacin de las mismas. Campos, Contenido, etc. 5- Servicios requeridos a la capa 4 6- Ejemplificacin del protocolo mediante la captura de tramas utilizando el Software Wireshark o equivalente (deber estar los diagramas de flujo, rendimiento, Tiempos, etc.). Filtrar las tramas correspondientes a la captura y anexar las mismas al trabajo.

INTRODUCCIN
Secure Shell (SSH) es un protocolo para conexin remota segura y otros servicios de red seguros sobre una red insegura. Este est dividido en 3 protocolos internos, o sub-protocolos, que se describen a continuacin: La capa de protocolo de transporte [SSH-TRANS] provee servicio de autentificacin, confidencialidad e integridad, con un cifrado fuerte. Opcionalmente puede proveer tambin compresin. La capa de transporte operar tpicamente sobre una conexin TCP/IP, pero tambin puede ser utilizado sobre cualquier otro flujo de datos fiable. No autentifica al cliente, sino que permite hacer esto en un protocolo superior. El protocolo de transporte negocia el mtodo de intercambio de claves, el algoritmo de clave pblica, el algoritmo de cifrado simtrico, el algoritmo de autentificacin de mensajes y el algoritmo de hash. La capa de protocolo de autentificacin de usuario [SSH-USERAUTH] autentifica al usuario del lado del cliente en el servidor. Este opera sobre el protocolo de la capa de transporte. Presupone que los protocolos inferiores proporcionan integridad y confidencialidad de los datos. Este protocolo recibe el identificador de sesin generado por el protocolo inferior. Este identificador de sesin es nico para la misma, y adecuado para realizar firmas, de modo que pueda probarse la posesin de una clave privada. Tambin necesita conocer si el protocolo inferior realmente proporciona confidencialidad. La capa del protocolo de conexin [SSH-CONNECT] multiplexa el tnel encriptado en varios canales lgicos. Este opera sobre el protocolo de autentificacin de usuario. El servidor dirige la autentificacin diciendo al cliente los mtodos soportados. El cliente puede elegir cualquiera de ellos e ir probando en cualquier orden. De este modo el servidor tiene el control, pero brinda la suficiente flexibilidad al cliente de operar como quiera. Al estar dividido en estos sub-protocolos permite definir nuevos protocolos que coexistan con los mencionados.

16-3-2009

El protocolo de conexin SSH ha sido diseado para operar sobre la capa de transporte SSH y el protocolo de autentificacin de usuarios ([SSH-TRANS] Y [SSH-USERAUTH]). Esto provee sesiones de conexin interactiva, ejecucin remota de comandos, tuneleo de conexiones TCP/IP, y conexiones X11. Internet hace posible realizar una gran variedad de operaciones remotas, en especial, administrar un servidor y transferir archivos. El protocolo Telnet y los comandos BSD R (rhs, rlogin y rexec) que permiten que los usuarios realicen estas tareas, tienen la gran desventaja de transmitir el intercambio de informacin en texto plano en la red, en particular, el nombre de acceso y la contrasea para acceder a equipos remotos. Tal es as que alguien que se encuentre ubicado en una red entre el usuario y un equipo remoto puede controlar el trfico, es decir, por medio de una herramienta puede capturar paquetes que circulan en la red (sniffing) y acceder as a la informacin que estamos transmitiendo/recibiendo, o incluso modificarla. Si la informacin intercambiada no tiene un alto nivel de seguridad, el hacker puede obtener incluso acceso a una cuenta en el equipo remoto y aumentar sus privilegios en este equipo para obtener acceso como administrador. Ya que es imposible controlar todas las infraestructuras fsicas ubicadas entre el usuario y el equipo remoto, la nica solucin es confiar en la seguridad a un nivel lgico (al nivel de los datos). El protocolo SSH (Secure Shell) es la respuesta a este problema ya que posibilita a sus usuarios (o servicios TCP/IP) acceder a un equipo a travs de una comunicacin cifrada (llamada tnel).

EL PROTOCOLO SSH
El protocolo SSH (Secure Shell) se desarroll en 1995 por el finlands Tatu Ylnen. Es un protocolo que hace posible que un cliente (un usuario o incluso un equipo) abra una sesin interactiva en una mquina remota (servidor) para enviar comandos o archivos a travs de un canal seguro. Los datos que circulan entre el cliente y el servidor estn cifrados y esto garantiza su confidencialidad (nadie ms que el servidor y el cliente pueden leer la informacin que se enva a travs de la red). Como resultado, no es posible controlar la red con un rastreador. El cliente y el servidor se autentifican uno a otro para asegurarse que las dos mquinas que se comunican son, de hecho, aquellas que las partes creen que son. El hacker ya no puede adoptar la identidad del cliente o de su servidor (falsificacin). El objetivo de la versin 1 del protocolo (SSH1), propuesta en 1995, ofreca una alternativa a las sesiones interactivas (shells) tales como Telnet, rsh, rlogin y rexec. Sin embargo, este protocolo tena un punto dbil que permita a los hackers introducir datos en los flujos cifrados. Por este motivo, en 1997 se propuso la versin 2 del protocolo (SSH2) como un anteproyecto del IETF. Se puede acceder a la especificacin de este protocolo en http://www.ietf.org/rfc/rfc4251.txt (arquitectura) y http://www.ietf.org/rfc/rfc4251.txt (protocolo de conexin). Vale aclarar que el IETF (Internet Engineering Task Force) es el Grupo de Trabajo en Ingeniera de Internet. Secure Shell Versin 2 tambin incluye un protocolo SFTP (Secure File Transfer Protocol; en castellano, Protocolo Seguro de Transferencia de Archivos).

16-3-2009

SSH es un mtodo estndar que permite a los equipos establecer una conexin segura. Como tal, existe una variedad de implementaciones de clientes y servidores SSH. Algunas requieren el pago de una cuota, en tanto que otras son gratuitas o de cdigo abierto.

VERSIONES
Como ya se dijo, existen dos versiones de SSH (SSH1 y SSH2) con diferentes funcionalidades e incompatibles entre s (SSH2 soluciona problemas de seguridad de SSH1). A pesar de estas mejoras, existen razones a favor del uso de una y otra versin: SSH1 tiene fallos estructurales que le hacen vulnerable a ciertos tipos de ataques SSH1 puede sufrir un ataque del tipo "Man In The Middle" (intercepcin de las claves pblicas en el intercambio de las mismas) SSH1 est soportado en ms plataformas que SSH2 SSH1 permite autentificacin de tipo .rhosts (propuesta en SSH2) SSH1 permite mtodos de autentificacin ms diversos (AFS, Kerberos, etc.) SSH1 tiene mejor rendimiento que SSH2

El cifrado utilizado para cuestiones de autentificacin utiliza RSA para SSH1 y DSA para SSH2. En cuanto a la arquitectura vale aclarar que el desarrollo por sub-protocolos se encuentra en el SSH2 pero no en el SSH1.

CMO FUNCIONA SSH


Una conexin SSH se establece en varias fases: En primera instancia, se determina la identidad entre el servidor y el cliente para establecer un canal seguro (capa segura de transporte). En segunda instancia, el cliente inicia sesin en el servidor.

ESTABLECER UN CANAL SEGURO


El establecimiento de una capa segura de transporte comienza con la fase de negociacin entre el cliente y el servidor para ponerse de acuerdo en los mtodos de cifrado que quieren utilizar. El protocolo SSH est diseado para trabajar con un gran nmero de algoritmos de cifrado, por esto, tanto el cliente como el servidor deben intercambiar primero los algoritmos que admiten. Despus, para establecer una conexin segura, el servidor enva al cliente su clave pblica. El cliente genera una clave de sesin de 256 bits que cifra con la clave provista por el servidor y luego la enva al mismo junto con el algoritmo utilizado. El servidor descifra la clave de sesin con su clave privada y enva al cliente un mensaje de confirmacin cifrado con la clave se sesin. Despus de esto, las comunicaciones restantes se cifran gracias a un algoritmo de cifrado simtrico, mediante la clave de sesin compartida entre el cliente y el servidor. La seguridad de la transaccin se basa en la confianza del cliente y el servidor en que las claves host de cada una de las partes son vlidas. As, cuando se conecta por primera vez con el servidor, el cliente muestra generalmente un mensaje en el que le pide que acepte la comunicacin (y posiblemente le presenta un hash de la clave host del servidor).

16-3-2009

Para obtener una sesin segura propiamente dicha, es mejor pedirle directamente al administrador del servidor que valide la clave pblica presentada. Si el usuario valida la conexin, el cliente guarda la clave host del servidor para evitar tener que repetir esta fase. Por el contrario, dependiendo de su configuracin, el servidor puede, a veces, verificar que el cliente es quien dice ser. Si el servidor tiene un lista de hosts autorizados para la conexin, cifrar el mensaje utilizando la clave pblica del cliente (que se encuentra en la base de datos de claves del host) para verificar si el cliente es capaz de descifrarla con su clave privada, esto se llama challenge.

AUTENTIFICACIN
Una vez que se ha establecido la conexin segura entre el cliente y le servidor, el cliente debe conectarse al servidor para obtener un derecho de acceso. Existen diversos mtodos: el mtodo ms conocido es la contrasea tradicional. El cliente enva un nombre de acceso y una contrasea al servidor a travs de la conexin segura y el servidor verifica que el usuario en cuestin tiene acceso al equipo y que la contrasea suministrada es vlida. un mtodo menos conocido, pero ms flexible, es el uso de claves pblicas. Si el cliente elige la clave de autentificacin, el servidor crear un challenge y le dar acceso al cliente si ste es capaz de descifrar el challenge con su clave privada. El challenge, tambin conocido como protocolo de desafo-respuesta.

Cada paquete tiene el siguiente formato:


uint32 tamao paquete byte tamao relleno byte[n1] datos; n1 = tamao paquete - tamao relleno 1 byte[n2] relleno aleatorio; n2 = tamao relleno byte[m] mac (message authentication code); m = tamao_mac Tamao del paquete: el tamao del paquete sin incluir el campo MAC ni el propio campo

tamao.
Tamao del relleno: el tamao del relleno Datos: los datos tiles del paquetes. Si la compresin est activada, est comprimido. Inicialmente, la compresin debe de estar desactivada ("NONE"). Relleno aleatorio: relleno para que el tamao de todo el paquete, excepto el campo mac, tenga un tamao mltiplo de 8, o el tamao del bloque de cifrado, lo que sea mayor. Tiene que tener, como mnimo, 4 bytes, y cmo mximo 255. mac: bytes para la autentificacin del mensaje.

El tamao mnimo del paquete es 16 bytes, y el tamao mximo del paquete debe de poder enviar 32768 bytes de datos sin comprimir, con un tamao total del paquete de 35000 bytes. Las implementaciones deberan de soportar paquetes mayores para tareas especficas.

16-3-2009

CAPTURA DE PAQUETES Y DIAGRAMA DE FLUJO DE DATOS


Estos se adjuntan en el .rar. La captura de paquetes se realizo con Wireshark Version 1.0.4 (SVN Rev 26501). La comunicacin se realiz entre una PC (10.0.0.8:2405) y un modem-router (10.0.0.2:22), utilizando SSHv2. El programa cliente utilizado fue: PuTTY 0.6, y el programa servidor: dropbear 0.46. Las acciones llevadas va SSH sobre el modem-router solamente se limitaron a navegacin por el panel de administracin del mismo.

FUENTES
http://bardok.net/2004/10/31/trabajo-sobre-ssh/ | El protocolo SSH http://es.kioskea.net/contents/crypto/ssh.php3 | Criptografa - Caparazn seguro (protocolo SSH) http://www.ietf.org/rfc/rfc4251.txt | The Secure Shell (SSH) Protocol Architecture http://www.ietf.org/rfc/rfc4254.txt | The Secure Shell (SSH) Connection Protocol

Vous aimerez peut-être aussi