Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


http, Ejercicios de Ingeniería del Software

Asignatura: Ingeniería del software, Profesor: edgar rivera, Carrera: Ingeniería Informática, Universidad: URJC

Tipo: Ejercicios

2017/2018

Subido el 28/02/2018

alejandra_aragones_quintanero
alejandra_aragones_quintanero 🇪🇸

1 documento

1 / 5

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Práctica 2: Protocolo HTTP Redes de Ordenadores
- 1 -
PRÁCTICA 2: PROTOCOLO HTTP
Traducido de Computer Networking: A Topdown Approach, 5th ed. v2.0 © 2009 J.F. Kurose, K.W. Ross.
En la práctica anterior ya nos hemos familiarizado con el sniffer Wireshark, así que ya podemos comenzar a
utilizarlo para investigar los protocolos que vamos estudiando durante el curso. En esta segunda práctica
veremos el protocolo HTTP, principalmente: la interacción básica GET/respuesta, los formatos de los mensajes
HTTP, la recuperación de archivos HTML de gran tamaño, la recuperación de archivos HTML con objetos
embebidos, y la autenticación y la seguridad de HTTP.
LA INTERACCIÓN BÁSICA HTTP GET/RESPUESTA
Comencemos a investigar el protocolo HTTP descargando un archivo HTML muy simple (corto y sin objetos
embebidos).
Nosotros en el laboratorio, como siempre, emplearemos las trazas ya
capturadas y almacenadas que se proporcionan en
http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip. Para este
apartado se utilizará el fichero http-ethereal-trace-1, que podrás abrir desde
Wireshark.
Para capturar la traza fuera del laboratorio, sigue los siguientes pasos:
1. Inicia tu navegador web.
2. Inicia el Wireshark y comienza a capturar paquetes.
3. En el navegador introduce la página web: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-
file1.html.
4. Detén la captura de paquetes del Wireshark.
5. Filtra los paquetes para mostrar únicamente los de protocolo http.
La interfaz de Wireshark debe mostrar algo similar a lo que aparece en la Figura 1, con los dos mensajes HTTP:
el mensaje GET (desde tu navegador al servidor web) y el mensaje de respuesta (OK) desde el servidor web a tu
navegador. En la figura se encuentra seleccionado el mensaje GET, por lo que en la ventana de contenidos del
paquete se muestran detalles de este mensaje. Recuerda que el mensaje HTTP ha sido transportado dentro de
un segmento TCP, a su vez dentro de un datagrama IP y este dentro de una trama Ethernet, por lo que
Wireshark muestra también la información de los paquetes Trama, Ethernet, IP y TCP. Como nos vamos a
centrar en el protocolo HTTP expandimos esta sección para poder ver su contenido y mantenemos minimizadas
las demás.
Nota: Debes ignorar cualquier HTTP GET y respuesta que tenga que ver con favicon.ico, ya que se trata de una
consulta del navegador al servidor web para saber si tiene este fichero con un icono para mostrar al lado de la
URL. A partir de ahora ignoraremos siempre estas peticiones.
Responde a las siguientes preguntas, indicando dónde has encontrado la información que se pide. Recuerda
que puedes exportar los paquetes a ficheros de texto para poder utilizarlos en tus respuestas a las prácticas.
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga http y más Ejercicios en PDF de Ingeniería del Software solo en Docsity!

PRÁCTICA 2: PROTOCOLO HTTP

Traducido de Computer Networking: A Topdown Approach, 5th ed. v2.0 © 2009 J.F. Kurose, K.W. Ross.

En la práctica anterior ya nos hemos familiarizado con el sniffer Wireshark, así que ya podemos comenzar a utilizarlo para investigar los protocolos que vamos estudiando durante el curso. En esta segunda práctica veremos el protocolo HTTP, principalmente: la interacción básica GET/respuesta, los formatos de los mensajes HTTP, la recuperación de archivos HTML de gran tamaño, la recuperación de archivos HTML con objetos embebidos, y la autenticación y la seguridad de HTTP.

LA INTERACCIÓN BÁSICA HTTP GET/RESPUESTA

Comencemos a investigar el protocolo HTTP descargando un archivo HTML muy simple (corto y sin objetos embebidos).

Nosotros en el laboratorio, como siempre, emplearemos las trazas ya capturadas y almacenadas que se proporcionan en http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip. Para este apartado se utilizará el fichero http-ethereal-trace-1, que podrás abrir desde Wireshark.

Para capturar la traza fuera del laboratorio, sigue los siguientes pasos:

  1. Inicia tu navegador web.
  2. Inicia el Wireshark y comienza a capturar paquetes.
  3. En el navegador introduce la página web: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark- file1.html.
  4. Detén la captura de paquetes del Wireshark.
  5. Filtra los paquetes para mostrar únicamente los de protocolo http.

La interfaz de Wireshark debe mostrar algo similar a lo que aparece en la Figura 1, con los dos mensajes HTTP: el mensaje GET (desde tu navegador al servidor web) y el mensaje de respuesta (OK) desde el servidor web a tu navegador. En la figura se encuentra seleccionado el mensaje GET, por lo que en la ventana de contenidos del paquete se muestran detalles de este mensaje. Recuerda que el mensaje HTTP ha sido transportado dentro de un segmento TCP, a su vez dentro de un datagrama IP y este dentro de una trama Ethernet, por lo que Wireshark muestra también la información de los paquetes Trama, Ethernet, IP y TCP. Como nos vamos a centrar en el protocolo HTTP expandimos esta sección para poder ver su contenido y mantenemos minimizadas las demás.

Nota : Debes ignorar cualquier HTTP GET y respuesta que tenga que ver con favicon.ico, ya que se trata de una consulta del navegador al servidor web para saber si tiene este fichero con un icono para mostrar al lado de la URL. A partir de ahora ignoraremos siempre estas peticiones.

Responde a las siguientes preguntas, indicando dónde has encontrado la información que se pide. Recuerda que puedes exportar los paquetes a ficheros de texto para poder utilizarlos en tus respuestas a las prácticas.

Figura 1. Interfaz de Wireshark tras una interacción básica HTTP

  1. ¿Qué versión del protocolo HTTP utiliza tu navegador, la 1.0 o la 1.1? ¿Y qué versión de HTTP está ejecutando el servidor web?
  2. ¿Qué lenguajes (si hay) le indica tu navegador al servidor como que acepta?
  3. ¿Cuál es la dirección IP de tu ordenador? ¿y del servidor web?
  4. ¿Cuál es el código de estado que devuelve el servidor a tu navegador?
  5. ¿Cuándo se modificó por última vez en el servidor el fichero HTML que estás recuperando?
  6. ¿Cuántos bytes de contenido han sido devueltos a tu navegador?
  7. Si inspeccionas los datos en bruto en la ventana de contenido del paquete, ¿ves alguna cabecera dentro de los datos que no se muestre en la ventana de listado de paquetes? Si es así, ¿cuál?

LA INTERACCIÓN HTTP GET CONDICIONAL/RESPUESTA

Recuerda que la mayoría de navegadores realizan un almacenamiento en caché de objetos, por lo que ejecutan un GET condicional cuando recuperan un objeto HTTP.

contenido en un segmento TCP por separado. Cada segmento TCP se registra en Wireshark como un paquete independiente, y el hecho de que la respuesta HTTP se haya fragmentado en múltiples paquetes TCP es indicado por Wireshark con la palabra “Continuation”. Observa que no hay mensaje de “Continuation” en HTTP, sino en TCP.

Responde a las siguientes preguntas y justifica tus respuestas:

  1. ¿Cuántos mensajes de solicitud HTTP GET fueron enviados por tu navegador?
  2. ¿Cuántos segmentos TCP que contenían datos fueron necesarios para transportar la respuesta HTTP?
  3. ¿Cuál es el código de estado y la frase asociada con la respuesta a la solicitud HTTP GET?
  4. ¿Hay alguna línea de estado HTTP en los datos transmitidos asociados con la “Continuation” de TCP?

DOCUMENTOS HTML CON OBJETOS EMBEBIDOS

Ahora que hemos visto cómo muestra Wireshark los paquetes capturados de archivos grandes HTML, podemos ver qué pasa cuando tu navegador descarga un archivo con objetos embebidos, como por ejemplo un documento HTML que incluye imágenes que están alojadas en otro servidor.

Para este apartado se utilizará el fichero http-ethereal-trace-4, que podrás abrir desde Wireshark.

Para capturar la traza fuera del laboratorio, sigue los siguientes pasos:

  1. Inicia tu navegador web y asegúrate de vaciar su caché.
  2. Inicia Wireshark.
  3. Introduce la siguiente URL en tu navegador: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark- file4.html que se trata de un pequeño fichero HTML con referencias a dos imágenes, es decir, las imágenes no están incluidas en el archivo HTML sino las URLs para poder encontrarlas. Será el navegador, por tanto, el que recupere esas imágenes de los sitios web que indican las URLs.
  4. Detén la captura de paquetes y filtra los resultados por “http” para ver únicamente los mensajes HTTP en la ventana de listado de paquetes.

Responde a las siguientes preguntas y justifica tus respuestas:

  1. ¿Cuántos mensajes de solicitud HTTP GET fueron enviados por tu navegador? ¿A qué direcciones IP se enviaron estas solicitudes GET?
  2. ¿Puedes saber si tu navegador descargó las dos imágenes en serie o si las descargó de los dos sitios web en paralelo?

AUTENTICACIÓN HTTP

Finalmente, visitemos un sitio web que tenga protección por contraseña y examinemos la secuencia de mensajes HTTP intercambiados. La URL http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP- wireshark-file5.html está protegida con contraseña (nombre de usuario: wireshark-students y contraseña: network).

Para este apartado se utilizará el fichero http-ethereal-trace-5, que podrás abrir desde Wireshark.

Para capturar la traza fuera del laboratorio, sigue los siguientes pasos:

  1. Inicia tu navegador web y asegúrate de vaciar su caché.
  2. Inicia Wireshark.
  3. Introduce la siguiente URL en tu navegador: http://gaia.cs.umass.edu/wireshark- labs/protected_pages/HTTP-wireshark-file5.html e introduce el nombre de usuario y contraseña indicados.
  4. Detén la captura de paquetes y filtra los resultados por “http” para ver únicamente los mensajes HTTP en la ventana de listado de paquetes.

Veamos ahora lo que ha capturado Wireshark y responde a las siguientes preguntas justificando tu respuesta^1.

  1. ¿Cuál es la respuesta del servidor (código de estado y frase) en respuesta al mensaje inicial HTTP GET de tu navegador?
  2. Cuando tu navegador envía el mensaje HTTP GET por segunda vez, ¿qué campo nuevo se incluye en el mensaje HTTP GET?

El nombre de usuario (wireshark-students) y la contraseña (network) que has introducido son codificadas en la cadena de caracteres (d2lyZXNoYXJrLXN0dWRlbnRzOm5ldHdvcms=) que aparece a continuación de la cabecera “Authorization: Basic” en el mensaje del cliente HTTP GET. Puede parecer que el nombre de usuario y contraseña estén encriptados, pero simplemente están codificados en un formato conocido como Base64, por lo que ¡NO están encriptados!. Puedes comprobarlo en alguna herramienta de conversión de formatos (como por ejemplo, la página http://home1.paulschou.net/tools/xlate/) y cuando introduzcas la cadena codificada y pulses a “Decode” verás cómo se transforma a texto (formato ASCII) y puedes ver tu nombre de usuario y contraseña en claro… Recuerda que cualquiera puede descargarse Wireshark e inspeccionar los paquetes que circulan por su adaptador de red (no únicamente los que van destinados a ellos), y como cualquiera puede traducir de Base64 a ASCII como acabas de hacer, está claro que la protección mediante simples contraseñas de los sitios web no es seguro a no ser que se complemente con otras medidas adicionales.

(^1) Puede serte de utilidad consultar el material sobre “HTTP Authentication Schemes” disponible en la página

web http://frontier.userland.com/stories/storyReader$2159.