Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1.1.¿Qué es SSH? 3
1.2.Protocolo 4
1.3.Historia 5
2.1.SSH “Oficial” 7
2.2.OpenSSH 7
2.4.Dentro de SSH 9
4.Conclusiones 14
Referencias y Bibliografía 15
2
1.Introducción a SSH
1.1.¿Qué es SSH?
3
están las aplicaciones estándar y la comunicación se asegura haciendo uso
de toda la potencia criptográfica de SSH. Para ello tenemos que realizar un
procedimiento similar al que supondría subir nuestro coche al tren. SSH
recoge los datos que el cliente quiere enviar y los reenvía por el túnel o canal
seguro, al otro lado del túnel se recogen los datos y se reenvían al servidor
conveniente[1]:
1.2.Protocolo
4
o Algoritmos de integridad: HMAC-SHA1 , HMAC-MD5 etc.
Nivel de autentificación del usuario
En este nivel se supone establecida la encriptación e integridad del
canal, así como la autentificación del servidor.
Para la autentificación del usuario el SSH ofrece varias posibilidades.
La autentificación usando un par de clave pública-privada .
La autentificación del usuario basada en passwords .Hay que señalar
que el password no va encriptado, sino que es el canal por el que va el
password el que si esta encriptado (nivel transporte). Es tarea del servidor la
validación del password en su base de datos correspondiente.
La autentificación del usuario basada en procedencia del host. En esta
situación hay que proteger bien las claves privadas del host por parte del
usuario.
Nivel de conexión
Es el protocolo encargado de simultanear sesiones interactivas de
login, ejecución remota de comandos, forwarding de conexiones TCP/IP,
forwarding de conexiones X11 etc. [2]
1.3.Historia
5
2. Hacer seguros los protocolos inseguros.
De las dos opciones, la segunda permite reutilizar muchos más
clientes y servidores ya programados, ayuda a enmascarar la complejidad de
la seguridad en la transmisión y es una solución siempre escalable, esto es lo
que se hace con ayuda de SSH.
SSH 1.2.12 fue desarrollado por un programador finlandés, Tatu
Ylönen, que publicó su trabajo bajo una licencia libre. Pronto el éxito de su
programa lo llevo a patentar la marca registrada "SSH™" y crear una
empresa con fines comerciales. Las siguientes versiones dejaron de ser libres
y se permitió su empleo únicamente para usos no comerciales.
Entonces surgió el proyecto OpenSSH, cuyo principal objetivo consistió
en desarrollar una implementación totalmente libre de SSH. Los primeros
pasos de este proyecto estuvieron centrados en utilizar solamente código
libre y portable. Tanto es así que pusieron especial empeño en evitar
problemas con patentes y restricciones gubernamentales: la mayoría de los
desarrolladores residían fuera de Estados Unidos, a excepción de Niels
Provos, un alemán afincado en Michigan, que cruzó la frontera a Canadá
para enviar su código desde una pequeña tienda local de informática en
Ontario.
Todos estos esfuerzos no fueron vistos con tan buenos ojos por el
desarrollador inicial de SSH, que veía como su proyecto comercial se iba al
traste. Después de varias demandas judiciales y muchas discusiones,
OpenSSH pudo mantener el "SSH" en su nombre y seguir con el trabajo que
estaban realizando. [1]
6
2.Implementación de SSH
2.2. OpenSSH
7
o Cifrado Fuerte (3DES, Blowfish, AES, Arcfour): el cifrado
comienza antes de la autenticación, toda la información va
encriptada.
o Reenvío por X11 (cifra el tráfico de X Window System): permite el
cifrado del tráfico en entornos de X windows remotos.
o Reenvío por Puertos (canales cifrados por protocolos de legado):
se pueden enviar conexiones TCP/IP por un canal cifrado a una
maquina remota. Esta característica permite que aplicaciones
como POP se puedan asegurar.
o Autenticación Fuerte (Clave Pública, Contraseña de un sólo uso y
Autenticación con Kerberos): protege de DNS spoofing, IP
spoofing y Rutas falsas.
o Reenvío por Agente (ingreso único): permite no tener que guardar
las claves de autenticación de RSA o DSA en ninguna maquina
que no sea la del usuario.
o Interoperabilidad (Conforme con las Regulaciones del Protocolo
SSH 1.3, 1.5, y 2.0): puede operar con las diferentes versiones de
SSH.
o Soporte para cliente y servidor de SFTP en los protocolos SSH1 y
SSH2: soporte completo para SFTP.
o Pases de Ticket de Kerberos y AFS: pasa tickets para Kerberos y
AFS a la maquina remota, evitando reintroducir la contraseña.
o Compresión de Datos: mejora los resultados de la comunicación
en redes lentas.
8
MacOS: MacSSH, Fugu.
Algoritmos de encriptación:
Algoritmo SSH1 SSH2
DES Si No
3DES Si Si
IDEA Si No
Blowfish Si Si
Twofish No Si
Arcfour No SI
Cast128-cbc No Si
9
Se puede observar que SSH2 no incorpora DES ya que es posible
romperlo por fuerza bruta. Tampoco hace uso de IDEA ya que es un algoritmo
patentado en varios países. Blowfish, Twofish son sistemas de cifrado rápido
de bloque. Arcfour es un algoritmo compatible con RC4 de RSA.
o FTP tiene dos conexiones distintas: una para los comandos (control) y
otra para la transmisión de ficheros (datos). La manera estándar de
hacer SSH en una conexión FTP se centra únicamente en la
protección de la conexión de control, es decir, del login/password de la
sesión y de los comandos utilizados. Los ficheros se intercambiarán
sin utilizar SSH.
o Es necesario usar el modo pasivo para la conexión de datos o de lo
contrario el servidor FTP tratará de conectar con la máquina remota
que se encuentre al otro lado de SSH (típicamente la propia máquina
servidora) y no con la máquina cliente que realiza la petición.
Debido a estos problemas de seguridad, en la nueva versión de SSH.
SSH2, en conexiones FTP, está siendo reemplazado por conexiones "sftp",
que proporcionan protección tanto de datos como de comandos.
10
Realizar conexiones Telnet o rsh mediante SSH no tiene ningún
sentido, ya que SSH es ya el protocolo para shell remota de forma segura.
Ahora que a consecuencia del spam casi todos los servidores SMTP
tienen unas políticas de "relay" muy severas, SSH en conexiones SMTP
puede aumentar la comodidad de muchos usuarios.
11
3. Alternativas a SSH: SSL, S-HTTP e IPsec.
12
diferencia esta en que SSH cifra todos los canales que utiliza, mientras que
SSL no.
Secure HTTP (S-HTTP), los protocolos S-HTTP están integrados con
HTTP. Aquí, los servicios de seguridad se negocian a través de las cabeceras y
atributos de la página. Por lo tanto, los servicios de S-HTTP están disponibles
sólo para las conexiones de HTTP. Es un protocolo a nivel de aplicación, que
extiende HTTP para hacerlo seguro. Las negociaciones entre el cliente y el
servidor tienen lugar intercambiando datos formateados. Estos datos incluyen
una variedad de opciones de seguridad y algoritmos a utilizar. La lista completa
de los algoritmos utilizados se encuentra en [9].
IPsec (IP Security) [12] son un conjunto de protocolos desarrollados por
la IETF para soportar intercambio de paquetes de forma segura a nivel IP.
Consigue además, al trabajar a nivel IP, seguridad para los niveles superiores.
En un primero momento fue desarrollado para Ipv6, para posteriormente
adaptarlo para Ipv4. IPsec ha sido ampliamente utilizado para la
implementación de VPNs (Virtual Private Networks) [10]. IPsec soporta dos
tipos de encriptado: Transport y Tunnel. El primero, solo se encripta la porción
de datos de cada paquete, dejando las cabeceras intactas. Por su parte el
modo Tunnel, más seguro, cifra tanto los datos como las cabeceras. De esta
forma un datagrama IP se encapsula por completo en un nuevo datagrama
IPsec. La diferencia principal con SSH, radica en el hecho de que IPsec esta
orientado a proteger todo el trafico que circula por la red, pero sin autentificar al
usuario, mientras que SSH identifica tanto al usuario como al servidor. La
elección de uno u otro, se debe basar en un estudio de las necesidades en
cada situación. Es posible incluso utilizar SSH y IPsec de forma conjunta, de
forma que primero se establece un “túnel” IPsec y luego utilizamos SSH para
hacer login con la maquina remota.
13
4. Conclusiones
14
5.Referencias y Bibliografía
[1] http://www.txipinet.com/ssh.php
[2] http://www.cica.es/seguridad/SSH/ssh.es.html
[3] ftp://ftp.ietf.org/internet-drafts/draft-ietf-secsh-architecture-06.txt
ftp://ftp.ietf.org/internet-drafts/draft-ietf-secsh-connect-08.txt
ftp://ftp.ietf.org/internet-drafts/draft-ietf-secsh-transport-08.txt
ftp://ftp.ietf.org/internet-drafts/draft-ietf-secsh-userauth-08.txt
[4] http://www.openSSH.com
[5] http://www.ayahuasca.net/ssh/ssh-faq.html
[6] http://www.ssh.com
[7] http://www.netscape.com
http://wp.netscape.com/eng/ssl3/
[8] http://www.htmlweb.net/seguridad/ssl/ssl_5.html
[9] http://www.iec.csic.es/criptonomicon/shttp.html
[10] http://www.vpnc.org/
[11] http://www.ietf.org
[12] http://www.ietf.org/html.charters/ipsec-charter.html
15