La Utilización de Recursos de SSH Un Análisis Comparativo



Documentos relacionados
CRIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA

CRIPTOGRAFIA. Qué es, usos y beneficios de su utilización. Universidad Nacional del Comahue

Lección 12 Seguridad y criptografía. Universidad de Oviedo / Dpto. de Informática

Puedo estar tranquilo acerca de la información de mi empresa? Donde puedo poner mis archivos cuando viajo?

Semana 14: Encriptación. Cifrado asimétrico

Tener la WiFi abierta implica tener nuestra conexión a Internet compartida, además de otros riesgos:

Semana 13: Encriptación. Cifrado simétrico

CONFIGURACION DE SERVIDOR SSH EN REDHAT. Redhat para todos. Breve manual de configuración de servidor FTP en redhat

Redes de comunicaciones actuales permiten la conectividad de un gran número de usuarios. Explosión de servicios que necesitan la transmisión de datos

Capitulo V Administración de memoria

Seguridad en la transmisión de Datos

Introducción. Algoritmos

Resumen de Requisitos Técnicos para incorporación de Organismos a la Plataforma Integrada de Servicios Electrónicos del Estado

TELNET SSH FTP. Redes de Computadoras. 1º Cuatrimestre Adrian Juri Juan Pablo Moraes Patricio Tella Arena

CAPITULO 3: SISTEMAS ADICIONALES PARA EL CENTRO DE LLAMADAS DE EMERGENCIA

ANEXOS. Algoritmo que genera un valor hash de algún dato, como una clave de. mensaje o de sesión. Con un buen algoritmo de hash, los cambios que se

Qué es el protocolo SSH y cómo configurarlo para mejorar la seguridad de acceso a los servidores Linux

Introducción a los certificados digitales

Fig. 1: Secuencia de mensajes de la autenticación Kerberos

ESCUELA POLITÉCNICA NACIONAL 28 DE OCTUBRE, 2015 ORTIZ JÁCOME LEONARDO JOSÉ

VULNERABILIDADES CRIPTOGRÁFICAS. Por Alexandre Ramilo Conde y Pablo Prol Sobrado

Para obtener una cuenta de padre

Como sabemos, en un Sistema de Comunicación de Datos, es de vital importancia

Ing. Cynthia Zúñiga Ramos

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente

SEGURIDAD EN REDES. NOMBRE: Daniel Leonardo Proaño Rosero. TEMA: SSH server

Utilizar Enigmail con Thunderbird

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

MANUAL DE USUARIO DE OFICINA CONECTADA

ASISTENCIA TÉCNICA A LA SEGURIDAD EN PYMES DE MELILLA MANUAL PUTTY TRAY

Preguntas y respuestas sobre el cifrado de la información personal. La guía para aprender a cifrar tu información

Capítulo 5: Pruebas y evaluación del sistema. A continuación se muestran una serie de pruebas propuestas para evaluar varias

Capítulo 6: Conclusiones

Redes Privadas Virtuales

La publicación. Pere Barnola Augé P08/93133/01510

Aprendamos sobre el VIH/SIDA. Millones de personas alrededor del mundo mueren de SIDA cada año. No importa de dónde venimos o a dónde vayamos,

INSTITUTO TECNOLÓGICO DE LAS AMÉRICA ITLA

1. Solicitando una cuenta de correo a nuestro proveedor de Internet. 2. Adquiriendo una cuenta de correo a través de la web (webmail).

Guías de ayuda para la configuración de la privacidad y seguridad de las redes sociales

Criptografía. Por. Daniel Vazart P.

UNIVERSIDAD DEL NORTE CENTRO DE INFORMÁTICA REGLAMENTO DE SERVICIOS Y RECURSOS ...

cpbackup le protege frente a cualquier eventualidad: virus, averías de hardware, incendios, desastres naturales...

DIRECCIONAMIENTO IPv4

Sesión 3 - Movimiento Diferencial

Práctica 5. Curso

Como crear un túnel entre dos PC s usando el Protocolo SSH

Comunicación entre Procesos y Sockets

Curso: FT433 - Introducción a la virtualización con VirtualBox

OpenSSL. Ing Jean Díaz

Guía Teórica Práctico 1: Ventana de Comandos o Terminal

Transport Layer Security (TLS) Acerca de TLS

2003 Global Networked Readiness for Education Survey The World Bank Institute The Berkman Center for Internet & Society at Harvard Law School

Planificación y administración de redes SNMP

pgp4usb cifrar tus texto en mensajes de correo electrónico y cifra tus archivos

Jorge De Nova Segundo

Mini Guía para usar las Keops en el ITAM

Introducción a la Firma Electrónica en MIDAS

Group Sadac Balear SL. Protege sus datos

El Protector de los Datos de su Organización. * Documento sin valor contractual

QUÉ ES Y PARA QUÉ SIRVE UML? VERSIONES DEL LENGUAJE UNIFICADO DE MODELADO. TIPOS DE DIAGRAMAS. INGENIERÍA DEL SOFTWARE (DV00205D)

Encriptación en Redes

Características y ventajas de WinZip

DIPLOMADO EN SEGURIDAD INFORMATICA

Aspectos relevantes relacionados con la seguridad

Capítulo 6: Servicios de Trabajadores a Distancia

Entidad Certificadora y Políticas Pertinentes

Técnicas de cifrado. Clave pública y clave privada:

QUÉ ES BAJO LLAVE? POR QUÉ SER CLIENTE DE BAJO LLAVE?

Unidad 4 Criptografía, SSL/TLS y HTTPS. Despliegue de aplicaciones web

MANUAL DEL PROGRAMA DE ASESORAMIENTO (Asesores) Navegador y limpiar caché/cookies...2 Acceso al programa de Asesoramiento... 7

POLÍTICAS DE USO DEL SERVICIO DE INTERNET ANEXO H

Los elementos que usualmente componen la identidad digital son:

1. Conociendo el equipo

Política de Privacidad del Grupo Grünenthal

Luis Eduardo Barón Bienvenidos al Módulo N. 3 de Internet Para Emprendedores. Yo soy Luis Eduardo Barón. Álvaro Mendoza Y yo soy Álvaro Mendoza.

Seguridad del Protocolo HTTP

SUMARIO. 2 Qué es conpay? 3 Acceso al sistema. 4 Como autorizar prestaciones. 7 Más funcionalidades de conpay. 12 Preguntas frecuentes

Descripción general printeract, Servicios remotos de Xerox

CRECE CON INTERNET. Empieza a navegar por la Red

Facultad de Ciencias del Hombre y la Naturaleza SISTEMAS OPERATIVOS DE REDES CICLO II Materia: Sistemas Operativos de Redes Tema:

1. Introducción Perfiles de Usuarios Definir el primer perfil Añadir perfiles Introducción a Internet

Mi Primer Curso de TIC 1

CONFIGURACION DEL SERVIDOR VIRTUAL EN EL ROUTER E968

Servicio de tecnología de voz IP VoIP.

INTERNET. UN NUEVO MEDIO PARA LOS NEGOCIOS. ESCUELA UNIVERSITARIA DE INFORMÁTICA

Usuarios y Permisos. Capítulo 12

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

CACHIVACHES. Un estilo de vida CASOS DE ÉXITO

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Internet Explorer proporciona diversas características que le ayudan a proteger su privacidad y

Guías de ayuda para la configuración de la privacidad y seguridad de las redes sociales

ECONOMÍA SOCIAL SOLIDARIA

DIRECCIÓN DE SISTEMAS DE INFORMACIÓN DEPARTAMENTO CERES

SECRETARÍA VIRTUAL Perfil Ciudadano

Presentado a: Milton García. Presentado por: Paula Díaz Heidy solano Wilmar Albarracín

Capítulo 8 Seguridad en Redes Conexiones TCP Seguras: SSL

Como crear una red privada virtual (VPN) en Windows XP

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

ASISTENCIA TÉCNICA A LA SEGURIDAD EN PYMES DE MELILLA MANUAL TIGHTVNC

Transcripción:

La Utilización de Recursos de SSH Un Análisis Comparativo Lourdes Sánchez Guerrero Universidad Autónoma Metropolitana, Unidad Azcapotzalco Departamento de Sistemas Av. San Pablo #180, Col. Reynosa-Tamaulipas, C.P. 02200, México, D.F. lsg@correo.azc.uam.mx Mariem Henaine Abed Universidad Autónoma Metropolitana, Unidad Azcapotzalco Departamento de Sistemas Av. San Pablo #180, Col. Reynosa-Tamaulipas, C.P. 02200, México, D.F. ham@correo.azc.uam.mx Guillermo Rodríguez Abitia Departamento de Sistemas de Información Tecnológico de Monterrey, Campus Estado de México Km. 25,Carretera Lago de Guadalupe,Col. Margarita Maza de Juárez, C.P. 52926,Estado de México grdrz@itesm.mx Abstract This paper is derived from the research project AUTENTICATION, ENCRIPTION AND NON- REPUDATION ALGORITHM FOR COMPUTER NETWORKS. This document shows the comparison between the ways in which resources can be used on the different SSH coding options, as well as the analysis of the public implementation of openssh. SSH (or Secure Shell) is a protocol for creating secure conexions between two systems, among which it is possible to transmit autentication information to the server, such as user s name and the cyphered password format. All the data sent and recived during the conection, are transformed by means of stong encryption, making at extremely difficult to descypher or read. Keywords: security protocol of SSH, SSH(Secure SHell), encrypt, decrypt, cryptography. Resumen El siguiente documento se deriva del proyecto de investigación ALGORITMO DE AUTENTICACIÓN, ENCRIPTAMIENTO Y NON-REPUDATION (NO- RECHAZO) PARA REDES DE COMPUTADORA. Este muestra la comparación de la forma de uso de los recursos en algunas de las diferentes opciones de cifrar de SSH, así como el análisis la implementación pública de openssh. SSH (o Secure Shell) es un protocolo para crear conexiones seguras entre dos sistemas, entre las cuales es posible transmitir información de autenticación al servidor, como el nombre de usuario y la contraseña en formato cifrado. Todos los datos enviados y recibidos durante la conexión se transfieren por medio de encripción fuerte, haciendo extremadamente difícil de descifrar o leer esta información. Palabras Claves: protocolo de seguridad SSH, SSH(Secure Shell), encriptar, desencriptar, criptografía.

1 INTRODUCCIÓN El tema de seguridad es un área de conocimiento fundamental en Tecnologías de la Información. Este documento muestra la comparación de la forma de uso de los recursos en algunas de las diferentes opciones de cifrar de SSH, así como el análisis la implementación pública de openssh. A continuación se hace una breve descripción de algunos de los conceptos de seguridad. 1.1 Criptografía Criptografía es la ciencia de la escritura secreta. Es un brazo de las matemáticas, parte de la criptología. Criptología tiene otro hijo, que es el criptoanálisis, es la ciencia del análisis de la criptografía. Las acciones principales de seguridad en las aplicaciones están dirigidas por la criptografía. Primero, las aplicaciones necesitan asegurarse que los usuarios son quienes dicen ser. Proveer identificación, es llamado autenticación (autentificación). En una computadora, se usa un nombre y un password (clave) para autentificarse. La criptología provee métodos más seguros, llamados firmas y certificados. Aplicaciones de computadoras, necesitan proteger sus datos de accesos no autorizados. Se requiere confiabilidad, y sin cambios y/o alteraciones en la información (asegurar la integridad de los datos). Datos guardados en un disco, por ejemplo, pueden ser vulnerables ser vistos o robados. Datos transmitidos a través de la red están sujetos a todo tipo de ataques. La criptografía provee soluciones. Un ejemplo es la seguridad en el correo electrónico. 1.2 Confiabilidad Casi toda la información en internet es transmitida sin seguridad, por ejemplo el correo electrónico es frecuentemente mal enviado, sí se escribe erróneamente la dirección, del correo le puede llegar a un administrador de sistemas en algún lugar. Es sorprendentemente que información que se piensa que es confidencial está disponible a miles de personas en internet. Para proteger los datos en el disco duro, se podría encriptar antes de escribirla en el disco. Y desencriptar el texto cifrado cuando se quiera ver la información (ó cuando se quiera imprimir una copia de un archivo). Los cifradores útiles usan llaves para encriptar y desencriptar datos. Una llave es un valor secreto; como un password ó un NIP (número de identificador personal). La llave es una secuencia de bytes y puede ser guardado en la memoria ó en el disco. Sí se encripta el mismo texto en claro usando diferentes llaves, se obtiene diferentes textos cifrados. De la misma forma, el texto cifrado puede ser solamente desencriptado usando la llave apropiada. La palabra criptografía viene del griego de Escritura Secreta Criptografía ha sido usada por los militares desde los días de las guerras Helénicas y ha crecido firmemente en la sofisticación en paralelo con las Matemáticas y Tecnologías de Información. Todos los sistemas criptográficos, sin importar cuan complejos tienen las siguientes cuatro partes básicas. 1.- Plaintex (texto en claro). Es el mensaje antes de aplicarle cualquier cosa, este es entendible por los humanos o en un formato que cualquier software adecuado pueda usar. 2.- Texto Cifrado. 2

Es el mensaje en plaintext después de que ha sido modificado para hacerlo ilegible. El proceso de convertir texto en claro a texto cifrado se dice encriptar y la operación inversa es desencriptar. 3.- Algoritmo de Encripción. Es la operación usada para convertir texto en claro a texto cifrado y viceversa. 4.- Llave. 1.3 Cifradores Simétricos Un cifrador simétrico usa la misma llave al encriptar y desencriptar. Los cifradores simétricos también son llamados cifradores de llave privada o llave secreta. 1.4 Cifradores Asimétricos Los cifradores asimétricos (también llamados cifradores de llaves públicas) involucran una llave pública, que puede ser libremente distribuida, y una llave privada, que puede ser secreta. Estas llaves siempre son generadas en parejas. Llaves públicas realmente son públicas, nadie puede violar tu privacidad sin la llave privada. El mecanismo de distribuir las llaves públicas, sin embargo, es un gran reto. Los datos encriptados usando la llave pública pueden ser desencriptados usando la llave privada. Ninguna otra llave puede desencriptar los datos, y la llave privada solo puede desencriptar los datos que fueron encriptados con su pareja (la llave pública). En algunos algoritmos el proceso inverso también funciona, los datos encriptados con la llave privada pueden ser encriptados con la llave pública. Los cifradores asimétricos son mucho más lentos que los cifradores simétricos, y por eso no son usualmente usados para encriptar mensajes muy largos. 1.5 Integridad La integridad de datos nos permite estar seguros de que los datos no han sido cambiados (por ejemplo, que nadie haya cambiado el contenido de un e-mail o cambiado un programa que deseamos bajar de la red y que alguien lo cambie por un programa con algún tipo de virus). Un message digest(md) puede ser usado para verificar la integridad de datos. Un message digest es un número calculado por un conjunto de datos de entrada (por ejemplo, un archivo). La forma de usarlo es generalmente publicarlo junto con los datos cuya integridad queremos asegurar el resultado del algoritmo de MD, así cuando una persona transfiera los datos a su computadora, le puede aplicar el mismo algoritmo de MD a los datos y podrá comparar los resultados. Un CÓDIGO DE AUTENTICACIÓN DE MENSAJE (MAC o Message Authentication Code), por ejemplo, es básicamente un MD con una llave asociada. Produce un valor corto basado en tanto en su entrada como en su llave. En teoría, solo alguien con la misma llave puede producir el mismo MAC para la misma entrada de datos. Una forma de autenticación viene de la combinación de MD y un cifrador asimétrico. Si alguien encripta el MD con su llave privada, otra persona tiene que usar la llave pública de la primera para desencriptar el MD, y así no solo saber que los datos son íntegros, sino además, saber quien es el que esta enviando los datos. El MD encriptado es llamado una firma, de hecho la primera persona a firmado el archivo. 3

1.6 Autenticación En un momento dado, se quieres estar seguro de que las personas con las que tratas son realmente quienes ellas dicen ser. Este proceso de identificación se llama autenticación. Cuando usas un cajero automático, tu tarjeta magnética y tu NIP (número de identificación personal) te autentican con el banco, alguna otra persona podría usar tu tarjeta magnética pero sin tu NIP presumiblemente no podría obtener los servicios bancarios. La mayoría de los sistemas de cómputo usan un identificador de usuario y un password para la identificación y autenticación. Un cifrador asimétrico puede ser usado para la autenticación. Una persona puede autenticar a otra pidiéndole que encripte cualquier cosa con su llave privada, pues solo su llave pública podrá desencriptarlo correctamente. Los cifradores asimétricos son muy caros computacionalmente (muy lentos). Desafortunadamente, no es práctico usar los cifradores asimétricos para conversaciones enteras. Típicamente, los cifradores asimétricos se usan para autenticar a los participantes de una conversación, la conversación se encripta usando algún cifrador simétrico, usando una llave secreta que se genera solo para esa conversación, llamada, llave de sesión. Aquí el reto es intercambiar la llave de sesión sin que nadie la descubra. El Secure Socket Layer (SSL) hace exactamente eso (el SSL es ampliamente usado en BROWSERS de la World Wide Web (WWW) ). 1.7 Certificados Un certificado es una declaración, hecha por una persona. Esencialmente, un certificado, es una llave pública firmada. El certificado se crea por una persona que poniendo algunos datos sobre ella, otros datos sobre la persona de la llave pública y la llave pública en un archivo, después la primera persona firma el archivo (encriptandolo con su llave pública). 1.7.1 Cadenas de Certificados Para verificar un certificado, se necesita una llave pública. Para verificar una llave pública, se necesita un certificado. Un certificado puede verificar a otro, que es verificado por otro, y así. Esto se le llama una cadena de certificados. La cadena no puede ser infinita, así que la cadena empieza con un certificado cuya persona que certifica y el que lo generó es el mismo. Usualmente este certificado es generado por una Autoridad de Certificación (CA), una institución como VeriSign. Usar certificados para la autenticación depende de la cadena de certificados que al final termina con un certificado que esta firmado por la misma persona que género el certificado. Los certificados firmados por la misma persona no son seguros, cualquier persona puede generar su propio certificado diciendo que él es VeriSign o algún otro. Cómo podrías confiar en un certificado firmado por el mismo? Una forma fácil de hacer esto es generar un MD del certificado, usualmente llamado huellas dactilares del certificado (certificate fingerprint). Para verificarlo, llamas a las personas que supuestamente hicieron el certificado y verificas el MD del certificado. Por lo general la CA pública en 4

diferentes lugares sus MD de sus propios certificados para que las personas puedan verificar sus certificados. 2 QUE ES SSH SSH (o Secure Shell) es un protocolo para crear conexiones seguras entre dos sistemas. Entre las cuales es posible transmitir información autenticada al servidor, un ejemplo de ello sería el nombre de usuario y la contraseña en formato cifrado, todos los datos enviados y recibidos durante la conexión se transfieren la información en el medio encriptada fuertemente, haciendo extremadamente difícil de descifrar o leer esta información. El SSH es un protocolo y conjunto de programas creado por Tatu Ylönen (Finlandia) la primera versión fuente se liberó en julio de 1995, medio año después fue liberada la versión 1.2.13 por la compañía SSH Communications Security Corp la cual fue fundada Tatu atendiendo a la petición de los interesados en adquirir esta versión (casi 150 correos electrónicos que recibía al día a finales de 1995). La versión 1.2.28 fue la primera versión comercial. Hoy en día www.ssh.com vende la versión comercial sucesora de los esfuerzos de Tatu (el cual continúa trabajando en la compañía como director de tecnología). Las versiones pueden ser utilizadas para Unix, Linux y Windows. El Openssh ( www.openssh.org ) es la versión de código abierto y se deriva del esfuerzo de código público para obtener esta versión de SSH, basada en libgmp (con licencia de LGPL Lesser GNU Public Licence ). Esta versión se estableció a partir de la versión 1.2.12 de Tatu, la cual esta clasificada como versión libre, el iniciador de este esfuerzo se le atribuye a Björn Grönvall en 1999, gracias a este trabajo de investigación se generó la primera liberación de OpenSSH 1.2.2 la cual esta integrada con OpenBSD 2.6 diciembre de 1999. Hoy en día existen diferentes compañías que venden o distribuyen versiones de SSH. SSH es un conjunto de protocolos y programas cuya función es: Un protocolo para ofrecer el servicio de acceso remoto (login) y otros servicios de red sobre una red insegura. [1] En términos generales, SSH permite establecer una sesión segura (con autentificación y cifrada) entre dos computadoras conectadas por una red. Permite diferentes formas de autentificación y cifrado. Utiliza el mecanismo de llaves públicas para autentificar y para distribuir una llave privada para utilizarla junto con algún algoritmo de cifrado y crear un canal seguro para la transmisión de datos. Los programas de SSH son: slogin o ssh para remplazar a telnet o rlogin. scp o sftp para remplazar a rcp o ftp. sshd que es el servidor de ssh y remplaza a telnetd, rlogind, ftpd etc. varios programas para la creación y administración de llaves públicas como: ssh-keygen, ssh-add ssh-agent. 5

2.1 Protocolos de SSH Existen varios protocolos de SSH, de los cuales mencionaremos los siguientes: SSH: El nombre original del protocolo, se pueden encontrar existen muchas implementaciones y actualmente se esta desarrollando otra por el IETF [1]. SSH 1.3: El protocolo de la primera versión de OPENSSH, hoy en día casi en desuso. SSH1.5,SSH1.99 y SSH2.0: Las diferentes versiones de protocolo actualmente usadas en Internet, la versión mayormente usada es 1.99 según [3], hoy en día la tendencia de uso es mayor a la versión 2.0. Los servicios que puede ofrecer SSH: Retomando lo mencionado anteriormente SSH puede ofrecer la misma funcionalidad de telnet y rlogin para la creación de sesiones de trabajo (login), así como los de ftp o rcp para la transferencia de archivo. Además de estos servicios, SSH crea un canal de comunicación encriptado que se puede multiplexar, esto es, con solo una conexión de TCP entre dos máquinas, dentro de esta única conexión se pueden crear varios canales de comunicación para diferentes usos, los que le permite a SSH dar la funcionalidad de VPN (Virtual Private Network) de tal forma que no solo puede conectar 2 procesos en forma segura, sino también crear un canal seguro de comunicación entre 2 redes. La funcionalidad de multiplexar la comunicación también permite a SSH el crear un canal de comunicación seguro para tráfico de X11 (Xwindows), lo que permite conectar a un servidor de Xwindows con sus clientes de una forma segura y sin tener que permitir la conexión de los clientes del servidor X sin tener que abrir al servidor para conexión en la red (para el servidor de Xwindows los clientes les hace parecer que sus procesos están corriendo localmente). 2.2 Como Funciona SSH El objetivo de este trabajo no es explicar en forma detallada el protocolo de SSH, solo diremos que permite la autentificación a través de llaves públicas (con el conocido algoritmo de RSA que terminó su protección del patente en el año 2000). SSH negocia entre el cliente y el servidor los algoritmos de autentificación y cifrado, además del algoritmo de verificación de datos, que por default usa el hmac-md5. Los algoritmos de cifrado que define la propuesta [1] son los siguientes: aes128-ctr, AES en modo SDCTR 1 llave de 128-bit. aes192-ctr, AES llave de 192-bit. aes256-ctr, AES llave de 256-bit.. 3des-ctr, 3DES en modo SDCTR. blowfish-ctr, Blowfish en modo SDCTR. twofish128-ctr,twofish en modo SDCTR llave de 128-bit. twofish192-ctr,twofish llave de 192-bit. twofish256-ctr,twofish llave de 256-bit. serpent128-ctr,serpent en modo SDCTR llave d 1 e 128-bit 1 SDCTR : stateful-decryption counter véase [1] 6

serpent192-ctr,serpent llave de 192-bit. serpent256-ctr,serpent llave de 256-bit. idea-ctr,idea en modo SDCTR. Pero para la prueba actual se usaron: Algoritmos de cifrado aes128-cbc aes192-cbc aes256-cbc 3des-cbc blowfish-cbc cast128-cbc Arcfour Descripción AES(Advanced Encryption Standerd) es un nuevo estándar adoptado por el gobierno de U.S.A. que remplazará a DES/3DES. AES también es conocido como el algoritmo de encripción Rijndael, el cual es muy veloz. El número después del nombre del algoritmo es el tamaño de cifrado que usa. DES y 3DES fueron los primeros 2 algoritmos de encriptamiento disponibles. Creados por la NSA (Nacional Security Agency de USA), a principios de los de la década de los 70. Éstos algoritmos han sido susceptibles a análisis criptográfico, por lo que no son muy recomendados si se tiene otros algoritmos disponibles. Blowfish es un algoritmo de cifrado en bloque con llave simétrica diseñado por Schneier que usa una llave de tamaño variable y un bloque de 64 bits. La llave puede ser de 32 a 448 bits. Los datos son pasados por la función de encriptamiento 16 veces. CAST-128 es un algoritmo parecido a DES que tiene una buena resistencia al análisis criptográfico. Arcfour es un algoritmo basado en RC4 y SHA-1, simétrico y de stream. Tiene un nivel bajo en seguridad. Tabla 1: Algoritmos de Cifrado 2.3 Las Pruebas de SSH Las pruebas se realizaron bajo la versión de openssh 1.99 (la más común en Internet [3]), bajo la versión de Linux/Redhat con kernel 2.4.24, la versión específica fue la SSH-1. 99-OpenSSH_2.9p2, con equipos PC Pentium a 800Mhz y una red Ethernet 100Mbps. El énfasis en las pruebas es la comparación entre los diferentes algoritmos de encriptamiento en la transferencia de datos, y no en el inicio de la sesión ni en el tipo de autentificación. Además la prueba es más parecida a una transferencia de archivos, más que a conocer la latencia que tendría cada algoritmo en una sesión (login). El programa que a continuación se muestra es el que generó la información en el servidor: #include <stdio.h> main(int narg,char **arg) { int i; int j; char buf[1024]; 7

for(i=0;i<1024;i++) buf[i] = '='; buf[1023] = '\n'; j = atoi(arg[1]); } for(i=0;i<j;i++) write(1,buf,1024); Este programa genera una salida de 100,000 * 1024 Bytes por la forma que fue llamado. El programa generador de llamadas desde el cliente fue: for i in aes128-cbc 3des-cbc blowfish-cbc cast128-cbc arcfour aes192-cbc aes256-cbc do echo $i date ssh cd ifconfig eth0 ifconfig eth0 time ssh -c $i cd /home/lsg/c 100000 > /dev/null ssh cd ifconfig eth0 ifconfig eth0 done Las pruebas comparan el uso de cpu y el número de paquetes y bytes transmitidos en la de red. Los resultados de las corridas se pueden ver en la tabla que a continuación se muestra, es importante notar que las columnas IN y OUT son paquetes ethernet y bytes transmitidos en MegaBytes, las columnas de los tiempos están en segundos y solo se muestran los tiempos en el cliente, y las columnas de los usos de cpu son porcentajes de utilización del cpu, tanto en el servidor como en el cliente. Las columnas de uso de CPU se obtuvieron con la herramienta sar de linux. Prueba IN OUT Tiempo real Seg. aes128-cbc 21886/ 1.43 74769/ 102.64 Tiempo cpu (user+ sys ) Seg. Uso CPU Servidor User/sys/idle Uso CPU cliente User/sys/idle 12.88 8.88 55/25/20 55/20/25 3des-cbc 38846/ 2.49 75085/ 102.64 48.64 19.00 95/5/0 35/5/60 blowfishcbc 27101/ 1.75 74687/ 102.59 12.90 6.88 55/20/25 40/15/45 cast128-cbc 38775/ 2.49 75051/ 102.62 18.33 6.96 85/15/0 25/15/60 arcfour 37123/ 2.38 74623/ 102.58 12.87 4.88 30/20/50 25/15/60 8

aes192-cbc 20090/ 1.32 74942/ 102.66 12.57 10.29 70/20/10 65/20/15 aes256-cbc 20359/ 1.34 74971/ 102.66 12.87 11.02 75/20/5 75/15/10 Tabla 2: Resultados de Pruebas 3 RESULTADOS Los mejores tiempos reales están todos alrededor de los protocolos aes*-cbc, blowfish-cbc y arcfour, pero el mejor tiempo en uso de cpu lo tiene arcfour, de hecho, los tiempos reales fueron iguales debido a que todos estos procesos estuvieron esperando a poder transmitir la información en la red, pero arcfour tiene el tiempo más bajo de utilización del cpu en el cliente, así como la menor utilización de uso de cpu tanto en el cliente como en el servidor. El siguiente mejor tiempo lo obtuvo cast128-cbc, como se puede observar con una utilización de 0.5 veces más de cpu tanto en el servidor como en el cliente. El peor tiempo lo obtuvo 3des-cbc, con un uso de 4 veces más de cpu que arcfour. [1] http://www.ietf.org/internet-drafts/draft-ietf-secsh-architecture-16.txt El actual 'draft' del propuesto protocolo de SSH (junio 2004). [2] Véase http://www.seifried.org/security/articles/20020414-ssh-name.html un artículo excelente sobre SSH y OPENSSH, con entrevistas de gente involucrada en su historia. [3] http://www.openssh.org/usage/graphs.html un interesante estudio sobre el uso de SSH en Internet, basado en scanssh, con fecha de 2002. Referencias [1] Brunce Schneider, Applied Crytography, (USA,1994), John Wiley & Sons,Inc., ISBN0-47-5976-2. [2] Anuff, Ed, JAVA Sourcebook, (USA, 1995), O Reilly & Associates. Inc, ISBN 0-471-14859-8. [3] Danesh, Arman, Teach Yourself JAVAScript, (USA, 1996), Samsnet, ISBN 1-57521-0738. [4] Cooper,Frederic J. Chris Goggans, Implementing Internet Security, (USA,1995 ), New Riders Publishing, ISBN 1 56205-471-6. [5] Dening, Dorothy, Cryptography and Data Security, (USA 1982), Addison Wesley, ISBN 0-201-1 0150-5. 9