Sunteți pe pagina 1din 5

1

HTTPS y SSH
Redes de comunicaciones III
Juan Pablo Moreno Rico – 20111020059
Nicolás Steven Rivera Rincón - 20142020021
Ingeniería de Sistemas, Universidad Distrital Francisco José De Caldas
Bogotá, Colombia


Resumen—Los protocolos de seguridad en la conexión HTPS y II. PROTOCOLO HTTPS
SSH permiten el acceso seguro de los usuarios a aplicaciones de
Normalmente, cuando navegamos por internet lo hacemos
servidor mediante la autenticación exhaustiva utilizando varios
métodos y protocolos para ello. utilizando el protocolo HTTP, el cual establece unas
directrices acerca de cómo se va a comunicar nuestro
ordenador (cliente) con un servidor, en esta comunicación los
Palabras Claves—HTTPS, SSH, TCP, TLS, autenticación, port datos se transfieren sin ninguna modificación, esto por lo
forwarding, general no presenta ningún problema ya que por ejemplo si
alguien está realizando una cónsula en una biblioteca virtual
de acceso público como usuario nos es irrelevante que alguien
este monitoreando la información que se transmite entre
I. INTRODUCCION nuestro navegador y el servidor web los problemas inician
cuando estamos trabajando con información más sensible
La seguridad de las conexiones realizadas a través de internet
como podría ser nuestras transacciones bancarias, si esta
se ha convertido en un tema prioritario, los crímenes
información viaja como texto plano a través de la red
informáticos se tipificaron en Colombia por la Ley 1273 de cualquiera podría leerla y hasta suplantar la identidad del sitio
2009 debido a su rápido crecimiento. Solamente en el año al que nos conectamos, por estos inconvenientes surge el
2015 se registraron más de 7118 denuncias de delitos protocolo HTTPS ya que cuando se establece una
informáticos en Colombia siendo el 15% de los delitos comunicación con este protocolo los siguientes elementos son
cometidos contra empresas y su crecimiento se proyecta a una cifrados:
proporción de entre el 50 y 60 por ciento cada año [2]. Pero
este es un problema mundial, presente en mucha mayor • URL del documento solicitado.
proporción en países desarrollados. • Contenido del documento.
Lo anterior es solo un pequeño dato para justificar la • El contenido de los formularios de explorador.
necesidad de desarrollar mecanismos de protección de los • Las cookies enviadas desde el navegador al servidor
datos que circulan a través de internet, principalmente los y del servidor al navegador.
datos de acceso a las plataformas bancarias mediante la • Contenido de la cabecera HTTP.
autenticación. La protección de datos de autenticación en la
web se realiza mediante la combinación de protocolos como La implementación del protocolo HTTPS en un servidor web
HTTP y certificados de autenticidad como SSL, que aseguran depende en gran medida del certificado que se adquiera para
tanto la autenticidad de los sitios web a los que el usuario nuestro servidor y de su correcta instalación, aunque existen
accede, como la identidad del usuario que solicita acceder a certificados que se pueden adquirir de manera gratuita estos
servicios de alta sensibilidad, como son las transacciones solo validan la información del servidor al que se está
transmitiendo nuestros datos, no se puede incluir una
bancarias, entre otros. Así mismo, el acceso a ordenadores de
validación de más campos, a diferencia de certificados de
manera remota ha sido un medio que puede llegar a facilitar el
pago que brindan una certificación extendida con una abanico
robo de información por parte de delincuentes por medio de la de características que le dan confianza a los usuarios y a los
interceptación de los mensajes transmitidos entre una terminal administradores del servidor web.
y la otra, previniendo esto, el protocolo de seguridad diseñado
para este tipo de comunicaciones en la red es Secure Shell De cara al usuario HTTPS presenta en la mayoría de
mejor conocido por sus siglas como SSH, que realiza una navegadores un indicador visual de que se está estableciendo
conexión segura entre las terminales, protegiendo la una comunicación segura, con una variante entre certificados
información que se transmite entre ellas de ataque de gratuitos que tienen la etiqueta Seguro y certificados de pago
interceptación que conlleven pérdida. que puede incluir el nombre de la compañía al que pertenece
como aparece en la mayoría de páginas web de entidades
bancarias.
2

III. SECURE SHELL SSH Un servidor puede tener varias claves de host simétricas
cifradas con diferentes algoritmos. A su vez varios clientes
Es un protocolo para comunicaciones de red seguras diseñado pueden compartir la clave de host.
para ser relativamente simple y barato de implementar, este En cualquier caso, la clave de host del servidor se utiliza
facilita las comunicaciones seguras entre dos sistemas usando durante el intercambio de claves para autenticar la identidad
una arquitectura cliente/servidor. del host. Para que esto sea posible, el cliente debe tener
Está diseñado para reemplazar los métodos más viejos y inicialmente la clave pública de host del servidor. RFC 4251
menos seguros de inicio de sesión remoto tales define dos alternativas que se pueden utilizar para este
como Telnet o Rsh ya que a diferencia de estos SSH cifra la proceso:
sesión de conexión a su vez también puede utilizarse para 1. El cliente puede tener una base de datos local que
funciones de red como la transferencia de archivos, correo asocia cada nombre de host (usuario) con la
electrónico y tunneling. correspondiente clave pública de host. Este método
no requiere infraestructura administrativa de manera
SSH se divide en tres protocolos que normalmente se ejecutan centralizada, pero resulta en un proceso donde la base
en la parte superior de TCP. de datos de usuarios y claves puede ser muy difícil de
mantener.
2. La asociación name-to-key de host está certificada
por una ‘autoridad de certificación’ (CA). El cliente
sólo conoce la clave raíz de CA y verifica la validez
de todas las claves de host por medio del CA. Esta
alternativa facilita el problema de mantenimiento, ya
que una sola clave de CA debe estar almacenada en
el cliente. Por otra parte, cada clave de host debe
estar debidamente certificada antes de que sea posible
la autorización.
A. Intercambio de paquetes en la capa de transporte

El envió de paquetes sigue los siguientes pasos des del


establecimiento de la conexión hasta él envió de información:

Fig. 1: Grupo de protocolos SSH

Las tareas que cumplen cada uno de estos protocolos son las
siguientes:
 Protocolo de autenticación de usuario: autentica el
usuario al servidor.
 Protocolo de conexión: multiplexa varios canales de
comunicaciones lógicas sobre una sola conexión
subyacente de SSH.
 Protocolo de Capa de Transporte: Proporciona
autenticación con el servidor, confidencialidad e
integridad de la información con forward secrecy (si
una clave es vulnerada no compromete la seguridad
de las claves usadas con anterioridad, opcionalmente
puede brindar compresión.

IV. PROTOCOLO DE CAPA DE TRANSPORTE


Fig. 2: Intercambio de paquetes capa de trasporte.
La autenticación del servidor se produce en la capa de
transporte, el servidor posee un par de claves pública/privada.
3

1) En primer lugar, el cliente establece una conexión


TCP con el servidor. Esto se realiza a través del Byte SSH_MSG_USERAUTH_REQUEST (50)
protocolo TCP y no forma parte del protocolo de la String nombre de usuario
capa de transporte. Una vez establecida la conexión, String nombre del servicio
la información se intercambia como paquetes en el String nombre del método
campo de información de un segmento TCP. … campos específicos de acuerdo al método.
2) Intercambio de cadenas de identificación:
Comienza con el cliente enviando un paquete con una Aquí, el nombre de usuario es la identidad que el cliente
cadena de identificación del formulario: reclama, el nombre del servicio corresponde a aquel que el
SSH-protoversion-softwareversion SP comments CR cliente solicita acceder, en este caso, al protocolo de conexión
LF donde SP, CR y LF son caracteres de espacio, de SSH; y el nombre del método hace referencia al método de
retorno de carro y avance de línea, respectivamente. autenticación usado en la solicitud.
Un ejemplo de una cadena válida es:
SSH-2.0-billsSSH_3.6.3q3 <CR> <LF> Si el servidor rechaza la solicitud, responde con un mensaje de
autenticación fallida, que se estructura así:
El servidor responde con su propia cadena de
identificación. Estas cadenas se utilizan en el
intercambio de llaves. Byte SSH_MSG_USERAUTH_FAILURE (51)
Lista autenticaciones que pueden proceder
3) Negociación del algoritmo:
Bool éxito parcial
Cada lado envía un archivo SSH_MSG_KEXINIT
que contiene listas de algoritmos soportados en el
La lista contiene los nombres de los métodos de autenticación
orden de preferencia para el remitente.
que con los que puede continuar el cliente, si la autenticación
Los algoritmos incluyen intercambio de claves,
es aceptada, el servidor envía un mensaje de un único byte:
cifrado, algoritmo MAC y algoritmo de compresión. SSH_MSG_USERAUTH_SUCCESS (52).
4) Intercambio de claves: La norma permite métodos
alternativos de intercambio de claves, pero en la
actualidad, sólo dos versiones del intercambio de B. Intercambio de mensajes
claves Diffie-Hellman son especificados en el RFC El intercambio de mensajes involucra los siguientes pasos:
2409 y requieren sólo un paquete en cada dirección 1) El cliente envía SSH_MSG_USERAUTH_REQUEST
para completar el proceso. sin indicar nombre del método.
Como resultado de estos pasos, las dos partes 2) El servidor determina si el nombre de usuario es válido.
comparten ahora una clave maestra K. Además, el Si no, responde con un SSH_MSG_USERAUTH_FAILURE
servidor ha sido autenticado en el cliente, ya que el con valor de éxito parcial en falso. Si el nombre s valido, el
servidor ha utilizado su clave para firmar su mitad del proceso continúa.
intercambio Diffie-Hellman. Finalmente, el valor de 3) El servidor envía SSH_MSG_USERAUTH_FAILURE
hash H sirve como un identificador de sesión para con la lista de métodos a usar.
4) El cliente elige uno de los métodos recibidos y envía un
esta conexión.
SSH_MSG_USERAUTH_REQUEST con el nombre de ese
5) El final del intercambio de claves: está señalado por
método y los campos que requiera, en este punto, habría una
el intercambio de SSH_MSG_NEWKEYS paquetes.
secuencia de intercambios para ejecutar dicho método.
En este punto, ambas partes pueden empezar a usar 5) Si la autenticación es exitosa y hacen falta otros
las claves generadas a partir dela clave maestra K. métodos, el servidor procede con el paso 3, con un valor de
Solicitud de servicio: El cliente envía una true de éxito parcial. Si la autenticación falla, el servidor
SSH_MSG_ SERVICE_REQUEST para solicitar la procede con el paso 3 con un valor de éxito parcial de false.
autenticación de usuario o el protocolo de conexión. 6) Cuando ya se han realizado todos los métodos de
Posteriormente, todos los datos se intercambian como autenticación, el servidor responde con un mensaje de tipo
la carga útil de un paquete de capa de transporte SSH, SSH_MSG_USERAUTH_SUCCESS dando fin al protocolo
protegido por cifrado y MAC. de autenticación.

V. PROTOCOLO DE AUTENTICACIÓN DE USUARIO


El protocolo de autenticación de usuarios provee los
mecanismos por los cuales el cliente es autenticado ante el
servidor.
A. Tipos de mensajes y formatos
Hay tres tipos de mensajes que siempre se usan en este
protocolo, el primero es la solicitud de autenticación que
realiza el cliente, este mensaje tiene el siguiente formato:
4

Cuando alguno de los participantes desea abrir un canal,


separa el número del canal y envía un mensaje con la siguiente
forma:

Byte SSH_MSG_CHANNEL_OPEN
String tipo de canal
Uint32 canal emisor
Uint32 tamaño inicial de ventana
Uint32 máximo tamaño de paquete
… datos específicos del canal

El tipo de canal identifica la aplicación de este canal, el canal


emisor es el número de canal elegido. El tamaño inicial de
ventana indica cuantos bytes pueden enviarse por el canal y el
máximo tamaño de paquete establece un límite para el tamaño
de los paquetes enviados, por ejemplo, para una conexión
interactiva conviene más enviar paquetes pequeños para
Fig. 3: Intercambio de mensajes en protocolo de autenticación. obtener una mejor respuesta en conexiones lentas.
Si el lado remoto de la conexión puede abrir el canal responde
con un SSH_MSG_CHANNEL_OPEN_CONFIRMATION
C. Métodos de autenticación
que incluye el número de canal de ambos y los tamaños de
El servidor puede requerir uno o más de los siguientes ventana y paquete para el tráfico entrante, de lo contrario
métodos de autenticación: responde con SSH_MSG_CHANNEL_OPEN_FAILURE y un
1) Llave pública: Los detalles de este método dependen código que indica la razón de la falla.
del algoritmo de llave pública elegido. El cliente envía al Una vez abierto el canal, comienza la transferencia de datos
servidor un mensaje con su llave pública, firmado con su usando mensajes SSH_MSG_CHANNEL_DATA. Estos
llave privada. Cuando el servidor lo recibe, revisa que esa mensajes seguirán enviándose mientras el canal esté abierto.
llave sea aceptable para autenticación y que la firma sea Cuando alguno decida cerrar el canal, enviará un mensaje
correcta. SSH_MSG_CHANNEL_CLOSE con el número de canal a
2) Contraseña: el cliente envía un mensaje con la cerrar.
contraseña en texto plano, este mensaje s protegido con
encriptación por el protocolo de la capa de transporte.
3) Basado en host: La autenticación es realizada en el host
del cliente en lugar del servidor. En este caso el servidor
SSH verifica la identidad del host cliente en lugar de la del
usuario y acepta lo que este host diga del usuario cuando ya
se ha autenticado.

VI. PROTOCOLO DE CONEXIÓN


El protocolo de conexión de SSH se ejecuta sobre el protocolo
de la capa de transporte y asume que ya hay una conexión
autenticada y segura que es el resultado del protocolo de
autenticación de usuario. A esta autenticación segura se le
llama túnel y la usa el protocolo de conexión para realizar
multiplexación de canales.
A. Mecanismo de canales
Todos los mecanismos de comunicación con SSH utilizan Fig. 4: Ciclo de vida de los canales de comunicación.
canales separados. Para cada canal, cada extremo de la
conexión crea una asociación con un número único de canal
que puede ser distinto en cada extremo. El flujo en los canales B. Tipos de canales
se controla con un mecanismo de ventana. No se enviarán Se reconocen cuatro tipos de canales en el protocolo de
datos por un canal hasta recibir un mensaje que indique conexión SSH:
espacio de ventana disponible.
El ciclo de vida de una canal tiene tres fases: apertura del
canal, transferencia de datos y cierre del canal.
5

1) Sesión: la ejecución remota de un programa, típicamente algoritmos de encriptación diferentes brindando una mayor
una consola de comandos, transferencia de archivos o correo seguridad.
electrónico o algún sistema pre construido. Una vez el canal
de sesión es abierto, le siguen una serie de solicitudes para El protocolo de autenticación de usuarios de SSH utiliza
iniciar el programa remoto. varios métodos, de manera que se asegure la identidad del
2) X11: hace referencia a un sistema de interfaz gráfica de usuario autenticado, que luego podrá hacer uso de los canales
usuario para computadores en red, permite la ejecución de de transmisión que son multiplexados por un mismo túnel de
aplicaciones en un servidor de red mostrándose en un conexión segura por medio del protocolo de conexión de SSH.
computador de escritorio.
3) TCPIP remitido: puertos remotos remitidos (port El port forwarding, tanto a nivel local como a nivel remoto,
forwarding). hace un manejo de puertos TCP en la transmisión de datos que
4) TCPIP directo: puertos remitidos locales. dificulta la tarea de rastreo de mensajes por parte de atacantes.

C. Puertos remitidos (port forwarding)


REFERENCIAS
Esta es de las principales características de SSH, permite
convertir una conexión TCP insegura en una conexión SSH [1] Stallings, W., Network security essentials. Cuarta edición. Prentice Hall,
2011.
segura. También llamado tunneling. Un puerto es la [2] http://www.eltiempo.com/archivo/documento/CMS-16493604
identificación de un usuario de TCP, cualquier aplicación que Recuperado el 08/10/2017
requiera TCP tiene un número de puerto, así, el que un flujo [3] HTTPS and SSL tutorial.
de tráfico llegue a la aplicación correspondiente de debe al Disponible en: https://www.youtube.com/watch?v=_p-LNLv49Ug
número de puerto que usa para ello. Para asegurar esta
conexión, SSH establece una conexión TCP entre el cliente
SSH y el servidor con los números de puertos TCP
correspondientes, se establece un túnel sobre esta conexión
TCP de manera que el tráfico del cliente es tomado por la
entidad local SSH y esta lo envía a través del túnel a la
respectiva entidad SSH del servidor, que finalmente lo remite
a la aplicación del servidor correspondiente.
Hay dos tipos de remisión de puertos: local y remota. La
remisión local permite al cliente tomar el tráfico de una
conexión TCP insegura para enviarlo a través de un túnel SSH
que está configurado en puertos específicos. En el otro
extremo, el servidor SSH envía el tráfico entrante al puerto de
destino indicado por la aplicación del cliente.
En la remisión remota, el cliente SSH del usuario actúa del
lado del servidor. El cliente recibe el tráfico con un número de
puerto específico, lo ubica en el puerto correcto y lo envía al
destino elegido por el usuario. Un ejemplo típico es el acceso
a un servidor remoto desde un computador en casa, ya que el
servidor se encuentra detrás de un firewall no es posible
acceder con una solicitud SSH desde el computador en casa,
sin embargo, en el servidor se puede configurar un túnel por el
que se realice la conexión.

VII. CONCLUSIONES
El protocolo HTTPS es una opción fiable para proteger
nuestra información cuando viaja atreves de la red, la medida
de protección está ligada al tipo de certificado que se use en el
servidor web.

El protocolo SSH brinda gran seguridad al poder tener claves


encriptados con diferentes algoritmos y poder entablar una
negociación entre usuario y servidor por cada conexión para
elegir un tipo de encriptación que se usara en la comunicación,
lo que permite que muchas conexiones trabajen con

S-ar putea să vă placă și