Está en la página 1de 10

2-4-2018 Taller Protocolos

HTTP y FTP
Universidad Distrital FJC
Profesor: Alonso Gaona

Daniel Pulgarin – Andrés Buitrago


20131020091 - 20141020127
TALLER HTTP y FTP

ROBINSON ANDRES BUITRAGO PINILLA

20141020127

DANIEL ALEJANDRO PULGARIN CRUZ

20131020091

Practica de Laboratorio

Paulo Gaona

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

INGENIERÍA DE SISTEMAS

REDES DE COMUNICACIONES III

BOGOTA
INTRODUCCIÓN

Los analizadores de protocolos son aplicaciones que permiten realizar capturas de todo el tráfico
dentro de una Red. En esta ocasión se utilizará con fines académicos para lograr identificar varios
elementos dentro de una Red a nivel de protocolos, formatos, tipos de transmisiones y en sí conocer
todos los elementos que viajan a través de los medios de transmisión.

OBJETIVOS

 Identificar protocolos que trabajan mediante mecanismos de seguridad Web


 Analizar formato trama TCP y conexiones HTTP
 Analizar formato trama TCP y conexiones FTP
 Realizar un diagrama completo de tres tipos de capturas diferentes de un modelo de
comunicaciones establecidas a nivel Web.
 Realizar un diagrama completo de una captura de un modelo de comunicaciones
establecidas a nivel FTP.
 Implementar mecanismos de seguridad sobre aplicaciones HTTP y FTP.
 Analizar métodos utilizados de sistemas de transacciones Web y mecanismos de seguridad
FTP encontrados.

DESARROLLO DEL LABORATORIO

Estudio de Protocolo HTTP

 Modelo de comunicación de tres vías.


La bandera ACK se utiliza para confirmaciones, ante eventos que son solicitados, ACK es la
confirmación de un evento que se espera.

Es la respuesta a una consulta que se realiza.

La bandera FIN sirve para indicarnos cuando una conexión termina.

Aquí muestra que termino la confirmación de un evento solicitado anteriormente.

 Se utilizaron los puertos

 Se encuentran operando sobre el protocolo TCP (Transmission Control Protocol)

 El tipo de puertos se puede encontrar, puertos inalámbricos y puertos seriales.


 Se usó la versión de https (Hypertext Transport Protocol Secure)
 Las cabeceras de mensajes http fueron tipo GET

 TLS HANDSHAKE PROTOCOL :


Es el responsable de la autenticación y el cambio de claves necesarias para establecer una conexión
segura.
Este primero elige un conjunto de cifrado (el servidor y el cliente hacen contacto y establecen la
clave que van a utilizar para el intercambio), luego autentica en el servidor y el cliente (El cliente se
identifica al cliente y viceversa, el uso de las llaves privadas y públicas es la base de la autenticación),
para posteriormente intercambiar la información de clave de sesión (El servidor y el cliente
intercambian números aleatorios y un número especial llamado secreto pre-maestro , estos datos
se combinan con datos especiales del cliente y el servidor que permite generar el secreto llamado
secreto maestro, para luego con ayuda de las llaves generar la encriptación ).

Estudio de protocolo FTP

 Mostrar el proceso de conexión y transferencia de archivos.

Empezaremos creando un servidor ftp en un entorno Linux

Utilizaremos el programa FileZilla en otro computador para actuar como clientes e intercambiar los
archivos.
Como apreciamos, comienza con un saludo de 3 vías entre el servidor y el cliente, después de pasar
por un proceso de autenticación por parte del cliente se accede satisfactoriamente al servidor. El
cliente le envía la solicitud al servidor de entrar en modo pasivo y por parte del cliente se envía al
servidor una imagen la cual recibe satisfactoriamente.

 ¿Qué puertos se usaron para la transferencia?

El puerto de origen era el puerto: 21

El puerto de destino era el puerto: 33412


 ¿Sobre qué protocolo de transporte se encuentran operando?

En nuestro caso el protocolo FTP el cual pertenece a la capa de aplicación se encuentra operando
sobre TCP que corresponde a la capa de transporte.

 ¿Qué tipos de puertos se usaron?

Puertos 20 y 21:

Es un servicio basado en arquitectura cliente-servidor: Un servidor FTP conectado a la red


proporciona el servicio a través de los puertos:

Puerto 20: Para la transferencia de datos (No se utiliza en modo pasivo)

Puerto 21: Para control (órdenes)

El cliente se conecta al servidor desde un puerto superior al 1024 y hace la solicitud al servidor por
el puerto 21, que siempre está escuchando las peticiones de los clientes por ese puerto. Una vez
establecida la conexión y a puede hacer uso de las órdenes específicas de transferencia de archivos.

Este puerto es comúnmente utilizado por los servidores FTP. El Protocolo de Transferencia de
Archivos es un protocolo que sirve para distribuir archivos. Haciendo una analogía, es como el
explorador de Windows pero a una máquina remota. Se puede ver al FTP como un "canal" de
comunicación por medio del cual se envía la información. En la web generalmente nos brindan
opciones para descargar y subir archivos por medio del FTP. El puerto 21 no es necesario tenerlo
abierto a menos que se utilice un servidor de FTP (Navegar por la web, programas como FileZilla,
etc.), lo cual es casi siempre.

 ¿Qué cabeceras de mensajes http se usaron?

Como tanto el cliente como el servidor funcionaron dentro de una red local, no fue necesario el uso
de una conexión web por lo que no existe ningún parámetro dentro de la captura que esté bajo el
protocolo http.

Para el escenario sin seguridad:

En este escenario accedimos al servidor de manera anónima, por ende, no es necesario de ingresar
un usuario o contraseña.

Usuarios anónimos: No disponen de cuenta y para conectarse al servidor FTP introducen una cuenta
simbólica (anonymous).

En este modo el cliente solo tiene acceso a una carpeta específica dentro del servidor.

 Escenario de trabajo

Como mencionamos arriba el cliente solo tiene acceso a una carpeta del servidor por lo cual
decidimos crear un archivo dentro de esta carpeta y enviarla directamente al cliente.
Para el escenario seguro:

 ¿Qué tipo de autenticación está utilizando? Explíquelas

El tipo de autenticación que se usó en este escenario fue el de autenticarse con un usuario y
contraseña bajo los protocolos de seguridad TLS/SSL.

Transport Layer Security (TLS; en español «seguridad de la capa de transporte») y su antecesor


Secure Sockets Layer (SSL; en español «capa de puertos seguros») son protocolos criptográficos que
proporcionan comunicaciones seguras por una red, comúnmente Internet.

 Modo de operación.

El protocolo SSL intercambia registros; opcionalmente, cada registro puede ser comprimido, cifrado
y empaquetado con un código de autenticación del mensaje (MAC). Cada registro tiene un campo
de content_type que especifica el protocolo de nivel superior que se está usando.

Cuando se inicia la conexión, el nivel de registro encapsula otro protocolo, el protocolo handshake
(o protocolo de acuerdo), que tiene el content_type 22.

El cliente envía y recibe varias estructuras handshake:

o Envía un mensaje ClientHello especificando una lista de conjunto de cifrados,


métodos de compresión y la versión del protocolo SSL más alta permitida. Éste
también envía bytes aleatorios que serán usados más tarde (llamados Challenge de
Cliente o Reto). Además puede incluir el identificador de la sesión.
o Después, recibe un registro ServerHello, en el que el servidor elige los parámetros
de conexión a partir de las opciones ofertadas con anterioridad por el cliente.
o Cuando los parámetros de la conexión son conocidos, cliente y servidor
intercambian certificados (dependiendo de las claves públicas de cifrado
seleccionadas). Estos certificados son actualmente X.509, pero hay también un
borrador especificando el uso de certificados basados en OpenPGP.11
o Cliente y servidor negocian una clave secreta (simétrica) común llamada master
secret, posiblemente usando el resultado de un intercambio Diffie-Hellman, o
simplemente cifrando una clave secreta con una clave pública que es descifrada con
la clave privada de cada uno. Todos los datos de claves restantes son derivados a
partir de este master secret (y los valores aleatorios generados en el cliente y el
servidor), que son pasados a través una función pseudoaleatoria cuidadosamente
elegida.
 Escenarios de trabajo.

El escenario que se trabajó en este caso fue el enviar y recibir correctamente una imagen.

 Falencias.

Para el modo de acceso que usamos vemos que al acceder con un usuario y contraseña tenemos
acceso a todas las carpetas y archivos alojados en el servidor y viceversa, por lo que un mal manejo
puede conllevar a manipulación incorrecta de los archivos o que el cliente sea interceptado por
personas inescrupulosas las cuales puedan borrar o cambiar información útil.

 Modo de implementación.

Usuarios autentificados: son usuarios que se deben indicar su nombre de usuario y contraseña.
Dentro de los usuarios autentificados se pueden distinguir los usuarios FTP y los usuarios virtuales.
Los usuarios FTP son usuarios del sistema y pueden acceder a las partes del sistema de archivos que
tienen permisos. Mientras que para los usuarios virtuales se crean sus cuentas en base de datos tipo
MySQL y sólo se autentifican para utilizar el FTP.

La clave y contraseña de acceso pueden ser cambiadas mediante comandos o desde el archivo de
las configuraciones de ftp.
CONCLUSIONES

 El protocolo FTP y HTTP está incluido dentro del modelo cliente-servidor, es decir, un equipo
envía órdenes (el cliente) y el otro espera solicitudes para llevar a cabo acciones (el
servidor). Durante una conexión FTP, se encuentran abiertos dos canales de transmisión: un
canal de comandos (canal de control) y un canal de datos.

 Entre el cliente y el servidor, además existen distintos dispositivos que gestionan los
mensajes HTTP. Dada la arquitectura en capas de la Web, la mayoría de estos dispositivos
solamente gestionan estos mensajes en los niveles de protocolo inferiores: capa de
transporte, capa de red o capa física, siendo así transparentes para la capa de
comunicaciones de aplicación del HTTP, además esto aumenta el rendimiento de la
comunicación. Aquellos dispositivos, que sí operan procesando la capa de aplicación son
conocidos como proxies. Estos pueden ser transparentes, o no (modificando las peticiones
que pasan por ellos), y realizan varias funciones:

 caching (la caché puede ser pública o privada, como la caché de un navegador)
 filtrado (como un anti-virus, control parental, ...)
 balanceo de carga de peticiones (para permitir a varios servidores responder a la
carga total de peticiones que reciben)
 autentificación (para el control al acceso de recursos y datos)
 registro de eventos (para tener un histórico de los eventos que se producen)

REFERENCIAS

[1] http://www.um.es/docencia/barzana/DIVULGACION/INFORMATICA/Introduccion_a_TCPIP.pdf
(Consultado el 1/Abril/2018)

[2] https://msdn.microsoft.com/es-es/library/windows/desktop/aa380513(v=vs.85).aspx
(Consultado el 1/Abril/2018)

[3] Bellovin, S. (1994). Firewall-friendly FTP (No. RFC 1579).

[4] da Silva, L. F., Trindade, R. G., Boufleuer, R., & Lima, J. V. F. (2017). Virtualización de Imágenes de
Sistemas Operacionales en Laboratorios de Informática. Revista Brasileira de Iniciación Científica,
4(5).

[5]https://es.ccm.net/contents/263-protocolo-ftp-protocolo-de-transferencia-de-archivos
(Consultado el 1 de abril de 2018)