Академический Документы
Профессиональный Документы
Культура Документы
net/publication/240614123
CITATIONS READS
0 3,297
2 authors, including:
Cristian Ulloa
Universidad Técnica Federico Santa María
12 PUBLICATIONS 0 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Implementation of CMDB Open Source for improve management of IT services View project
All content following this page was uploaded by Cristian Ulloa on 26 May 2014.
Miguel Ruiz M.
miguel.ruiz.13@sansano.usm.cl
Cristian Ulloa F.
cristian.ulloa.13@sansano@usm.cl
Santiago, 23 de Mayo de 2013
Resumen
Se realiza el estudio de los protocolos que intervienen en las redes de datos, estudiando el funcionamiento
del stack de protocolos TCP/IP, se describen las relaciones de dependencias que existen, a través del uso
de la herramienta de software “Wireshark”, para la captura y análisis de paquetes en una red de datos.
Palabras claves: sniffer, protocolo, paquete, trama
1. Introducción
La base de los protocolos que soportan Internet se encuentran definidos en el stack TCP/IP que permite la
transmisión de datos entre nodos. Entre los protocolos más conocidos se encuentran HTTP (HyperText
Transfer Protocol) que se utiliza para acceder a páginas web, TCP (Transfer Control Protocol) encargado de
controlar la transferencia de segmentos e IP (Internet Protocol) responsable de la comunicación de
datagramas.
Utilizando el software de captura de paquetes (sniffer) WireShark, se estudiaron los protocolos involucrados
en la comunicación de un cliente web (browser) y un servidor web; como complemento se analizó una
transferencia de archivos mediante FTP.
2. Conceptualización
2.1 Protocolo
1
Un protocolo define el formato y el orden de los mensajes intercambiados, entre dos o más entidades que
se tratan de comunicar, como así de las acciones asociadas, a la transmisión y/o la recepción de un
mensaje u otro evento.
2.2 HTTP
El protocolo HTTP (HyperText Transfer Protocol) es un protocolo de la capa de aplicación, basado en
solicitudes y respuestas entre un cliente y un servidor que poseen implementaciones distintas del mismo
protocolo.
Un cliente envía una solicitud a un servidor en forma de un método de Request, URI (identificador de
recurso), y una versión del protocolo, seguido por un mensaje del tipo MIME (Multipurpose Internet Mail
Extension) que contiene modificadores de la solicitud, información del cliente y posiblemente un área de
contenido, todo esto sobre una conexión al servidor; el servidor responde con su status, la versión del
protocolo y un mensaje de éxito o error, seguido con un mensaje del tipo MIME conteniendo información del
servidor, metadata de la entidad y posiblemente un área para contenido.
Si la comunicación HTTP es nopersistente, una nueva conexión TCP debe crearse cada vez que el cliente
contacta al servidor. Al contrario, cuando la comunicación HTTP es persistente, múltiples mensajes HTTP
del tipo GET/POST pueden enviarse mediante la misma conexión TCP. Esto se traduce en una mejora de
rendimiento.
HTTP utiliza por defecto el puerto TCP 80 del lado del servidor, y es definido por el RFC 1945, RFC 2616 y
RFC 2774.
2.3 HTTPS
El protocolo HTTPS corresponde a una implementación segura de HTTP. Utiliza SSL/TLS para crear un
túnel cifrado por donde circula información. De este modo se consigue que la información sensible
(generalmente contraseñas) no se transmita en forma natural (texto plano); si alguien llegara a interceptar
una comunicación HTTPS, lo único que obtendrá será un flujo de datos cifrados que le resultará imposible
de descifrar.
El puerto estándar para este protocolo es el TCP 443.
2.4 DNS
En la capa de aplicación también se encuentra un servicio muy importante para el funcionamiento de
internet: DNS (Domain Name System). Éste corresponde a un sistema de nomenclatura jerárquica para
cualquier recurso conectado a Internet o a una red privada. Ofrece el servicio de traducción de nombres de
dominios a direcciones IP con el propósito de poder localizar y direccionar estos equipos mundialmente.
En la capa de transporte se utiliza TCP y UDP para el envío de datos (UDP sólo se utiliza cuando el
tamaño del paquete es menor a 512 bytes). El puerto por defecto es UDP 53 y el estándar que lo define
está descrito en el RFC 1034 y RFC 1035.
2
2.5 FTP
FTP (File Transfer Protocol), es un protocolo de aplicación para la transferencia de archivos entre sistemas
conectados a una red TCP, basado en una arquitectura clienteservidor. Desde un nodo cliente se puede
conectar a un servidor para descargar archivos desde él o para usarlo como almacén.
Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero sin
mayor control; el intercambio de toda la información entre el cliente y servidor inclusive las credenciales
del usuario se realiza en texto plano sin ningún tipo de cifrado, con lo que cualquier persona podría revisar
qué se transmite;
Utiliza normalmente el puerto de red TCP 21 en el lado del servidor; el estándar que lo define es el RFC
959.
3. Resultados relevantes
3.1 Descripción actividades realizadas
1. Instalación y configuración del software sniffer WireShark, para la captura de paquetes.
2. Revisión de la documentación asociada al uso del software WireShark. [1]
3. Inicio de la aplicación y ejecución de la captura de datos.
4. Ingreso a la página web www.itau.cl.
a. Inicio de sesión y posterior logout.
5. Análisis de conexiones FTP (como complemento).
a. Inicio de sesión.
b. Descarga de un archivo.
c. Finalización de sesión.
6. Revisión de capturas.
a. Análisis de los protocolos involucrados, su composición e interacción.
7. Análisis de datos. Obtención de conclusiones.
1. Se realiza la instalación del software de captura Wireshark en una máquina con sistema operativo
Linux, se deshabilitan las funciones de firewall del router de forma que no existan restricciones de
tráfico desde Internet hacia la red interna. La topología de la red usada es la siguiente.
3
Imagen 1: Diagrama de red utilizada. Fuente: elaboración propia
2. Se inicia la captura de paquetes de Wireshark.
3. Se digita en el web browser del host la dirección HTTP: www.itau.cl
4. Se emite la consulta DNS en la cual se solicita la dirección IP asociada al dominio consultado;
esta petición se realiza usando el protocolo UDP y va dirigido al servidor de nombres de dominio
(DNS Server) que se encuentra registrado en el host en el puerto 53.
5. Se recibe la respuesta de consulta DNS, en la cual se recibe la dirección IP, asociada al dominio
anteriormente consultado.
6. Se establece una conexión TCP entre el host y el servidor, utilizando la IP del paso anterior.
7. El navegador web realiza una petición GET.
8. El servidor analiza la solicitud y envía una respuesta al cliente.
9. El cliente recibe una respuesta exitosa (HTTP 200 OK). [Imagen 2]
Imagen 2: Captura de una comunicación HTTP exitosa. Fuente: Captura Wireshark
10. Cookies fueron encontradas en los requests. [Imagen 3]
4
Imagen 3: Captura de una comunicación HTTP exitosa. Fuente: Captura Wireshark
Imagen 4: Captura paquete HTTPS. Fuente: Captura Wireshark
1. Se inicia la captura de paquetes de Wireshark.
2. Por medio de un cliente FTP se establece conexión con el servidor ftp.oracle.com, autenticándose
con un usuario y contraseña.
3. Se emite la consulta DNS en la cual se solicita la dirección IP asociada al dominio consultado;
esta petición se realiza usando el protocolo UDP y va dirigido al servidor de nombres de dominio
(DNS Server) que se encuentra registrado en el host en el puerto 53.
4. Se recibe la respuesta de consulta DNS, en la cual se recibe la dirección IP, asociada al dominio
anteriormente consultado.
5. Se establece una conexión TCP entre el host y el servidor, utilizando la IP del paso anterior. (puerto
local y puerto remoto)
6. Se puede apreciar que los datos de nombre de usuario y password son visibles en el paquete
capturado, transmitiendo la información en texto claro. [Imagen 5] [Imagen 6]
5
7. Se carga un archivo de 100KB desde el cliente hacia el servidor.
8. Es posible apreciar que también se realiza una petición ARP.
Imagen 5: Vista de nombre de usuario.Fuente: Captura Wireshark
Imagen 6: vista de password en usuario.Fuente: Captura Wireshark
4. Conclusiones
Esta experiencia nos permitió darnos cuenta de varios aspectos de la comunicación en Internet que están
ocultos. Por ejemplo, revisamos el caso de una petición HTTP asociada a una consulta Web; si bien
estamos interactuando con un servidor en particular, muchos nodos de la red participan indirectamente de
esta solicitud. En muchas ocasiones proveen servicios de apoyo, como lo es DNS, permitiendo que la
comunicación se realice.
Con respecto a los tiempos de respuesta observados, el servicio que más tiempo demoró en entregar
resultados fue DNS. Esto se produce dado que la resolución del nombre de dominio no se encontraba en
caché del nodo local y tampoco se encontraba en el router de la red local, por lo cual se escaló la solicitud
a un nodo en internet. La lentitud en la respuesta está dada por la latencia de los nodos y los múltiples
“hoops” que se debieron realizar.
La comunicación atraviesa todas las capas del modelo TCP/IP; no sólo intervienen los protocolos de
aplicación HTTP, HTTPS y FTP respectivamente, también se utilizan los protocolos TCP (con sus
correspondientes estados) [Imagen 7] y UDP (servicio de DNS), junto al protocolo IP.
6
View publication stats
Imagen 7: Diagrama simplificado de estados TCP[4]. Fuente: Wikipedia
El protocolo HTTP no es un protocolo seguro por defecto. La transferencia de información es en texto plano,
comprobable en la Imagen 6. En este ejemplo, el método GET contiene un RUT como uno de sus
parámetros: “index.php?search=15309967&title=Special”; por el contrario, el protocolo HTTPS provee una
infraestructura capaz de permitir la transmisión de información cifrada, lo que al final se traduce en más
seguridad para el usuario final.
Imagen 8: captura de información HTTP. Fuente: Captura Wireshark
Lo anterior también fue replicado en la comunicación FTP, ya que las credenciales se transmiten en “texto
plano”.
5. Referencias
[1] Wireshark User's Guide http://www.wireshark.org/docs/wsug_html_chunked/index.html
[2] Computer networking A top a down approach, sexta edición, Kurose Ross.
[3] Referencias a RFC’s, The Internet Engineering Task Force (IETF), http://www.ietf.org/rfc/
[4] Diagrama de estados TCP, Wikipedia, http://en.wikipedia.org/wiki/Transmission_Control_Protocol