Práctica 5: Aplicaciones y Seguridad (Teoría de las Comunicaciones)

De Cuba-Wiki
Revisión del 00:21 18 nov 2007 de 200.114.155.201 (discusión) (→‎Ejercicio 04: : Ventaja: Ventana de congestion)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)

Ejercicio 01

Ejercicio 02

Consultas DNS. Explique brevemente qué se consulta y qué significa la respuesta:

$ nslookup -q=cname www.anta.gov.ar
Server: o200.prime.com.ar
Address: 200.44.0.108
Non-authoritative answer:
www.anta.gov.ar canonical name = heidi.anta.gov.ar
Authoritative answers can be found from:
anta.gov.ar nameserver = deisy.anta.gov.ar
anta.gov.ar nameserver = samantha.anta.gov.ar
deisy.anta.gov.ar internet address = 200.10.166.34
samantha.anta.gov.ar internet address = 200.10.166.31

$ nslookup -q=ptr 200.10.166.30
Server: o200.prime.com.ar
Address: 200.44.0.108
30.166.10.200.in-addr.arpa name = heidi.anta.gov.ar
30.166.10.200.in-addr.arpa name = anta.gov.ar
166.10.200.in-addr.arpa nameserver = deisy.anta.gov.ar
166.10.200.in-addr.arpa nameserver = samantha.anta.gov.ar
deisy.anta.gov.ar internet address = 200.10.166.34
samantha.anta.gov.ar internet address = 200.10.166.31

Respuesta:

En el primer caso se pide el canonical name de www.anta.gov.ar. Es decir, cual es el nombre verdadero de la máquina donde se encuentra situado dicho alias. El servidor o200.prime.com.ar, en 200.44.0.108, que no es autoritativo para esa zona, sino que seguramente sea el cache-only DNS que utiliza el cliente para obtener sus respuestas, responde indicando que el nombre canonico es heidi.anta.gov.ar. Indica también los nombres e IP de los nameservers autoritativos de la zona anta.gov.ar de donde se puede obtener dicho resultado.

El segundo caso es un reverse lookup, donde dada una IP se solicita el nombre. Nuevamente la respuesta la otorga o200.prime.com.ar. Dicha IP se encuentra mapeada a los nombres heidi.anta.gov.ar y anta.gov.ar. Para hacer un reverse lookup de la IP A.B.C.D, se debe buscar el record PTR de la direccion D.C.B.A.in-addr.arpa. El servidor también responde con los nombres de los nameservers autoritativos sobre el rango IP 200.10.166.0.

Ejercicio 03

Ejercicio 04

Mencionar ventajas y desventajas de usar HTTP 1.0 (no persistente) versus HTTP 1.1 (persistente).

Respuesta:

HTTP 1.1 reduce la cantidad de conexiones TCP a crear cuando se desean hacer muchos pedidos a un mismo servidor. Una ventaja de tener una sola conexión permanente es que tenemos mejor información de congestión. De esta manera una vez establecida una buena ventana aprovechamos la velocidad en lugar de tener que recomenzar cada vez.

Tiene como inconveniente el hecho de que el servidor debe mantener más conexiones abiertas y saber el tiempo de inactividad de cada una para poder elegir cuál cerrar en caso de quedarse sin recursos; lo cual supone un overhead adicional.

Ejercicio 05

Ejercicio 06

Una empresa decide instalar un servidor Web. Se espera que se conecten hasta 5 clientes simultáneamente.

  • ¿Cuántas direcciones IP diferentes necesita el servidor?
  • ¿Cuántos puertos diferentes debe estar escuchando el servidor WEB?

Respuesta:

Con una única dirección y puerto basta, ya que las conexiones TCP se arman en base a las 4-uplas de direccion-puerto origen-destino.

Ejercicio 07

Ejercicio 08

Si un navegador de Internet usa HTTP/1.1 (persistente) para establecer conexiones y el usuario decide conectarse con un servidor HTTP que solo usa HTTP/1.0 (no-persistente), ¿Qué sucede?

Respuesta:

El cliente detectará que el servidor es 1.0 y no se realizará una conexión explícita entre ambos. HTTP 1.1 mantiene compatibilidad hacia atrás con 1.0.

Ejercicio 09

Al visualizar el contenido de una página web se bajan archivos de los siguientes servidores:

  • Server1: 3 archivos JPG y un HTML
  • Server2: 2 archivos GIF
  • Server3: 1 archivo WAV

¿Cuántas conexiones TCP se realizan si se utiliza HTTP 1.0 y HTTP 1.1?

Respuesta:

En el caso de 1.0, se deben realizar 7 conexiones TCP, una por cada GET realizado a cada servidor. Con 1.1 pueden usarse solamente tres conexiones, una por servidor, manteniendolas abiertas hasta realizar todos los pedidos.

Ejercicio 10

Se dice que DNS puede ser tolerante a fallos. ¿Cómo se implementa esto para una zona en particular?

Respuesta:

Se mantiene siempre un servidor slave por lo menos, por cada zona de autoridad. Los servidores que apuntan a dicha zona tienen un registro NS y uno A por cada uno de estos servidores.

Por ejemplo, se tiene la zona dc.uba.ar que depende de uba.ar. Se tienen dos servidores, jose.dc.uba.ar y pepe.dc.uba.ar, el primero master y el segundo slave, con las tablas de los hosts y zonas que dependen del dc. Los records de uba.ar contienen entonces los registros:

<dc.uba.ar, jose.dc.uba.ar, NS, IN>
<jose.dc.uba.ar, 157.92.27.41, A, IN>
<dc.uba.ar, pepe.dc.uba.ar, NS, IN>
<pepe.dc.uba.ar, 157.92.27.42, A, IN>

Ejercicio 11

Ejercicio 12

El siguiente es un extracto de un archivo de log generado por un servidor DNS que recibe consultas. Explique brevemente qué significa cada línea.

Aug 03 10:21:47.999 client 200.11.114.35#51521: query: dymail.com.ar IN MX
Aug 03 10:21:48.070 client 200.11.114.35#51522: query: 241.148.226.168.in-addr.arpa IN PTR
Aug 03 10:21:48.181 client 200.11.114.19#1034: query: 101.20.241.85.IN-ADDR.ARPA IN PTR
Aug 03 10:21:48.397 client 200.11.114.35#51526: query: segemar.inpa.com.ar IN A
Aug 03 10:21:48.440 client 200.11.114.35#51527: query: shell.com IN MX
Aug 03 10:21:48.443 client 200.11.114.35#51528: query: dymail.com.ar IN MX
Aug 03 10:21:48.456 client 200.11.114.22#1028: query: 48.112.18.172.IN-ADDR.ARPA IN PTR
Aug 03 10:21:48.657 client 200.11.114.35#51530: query: gina.inpa.com.ar IN A
Aug 03 10:21:48.662 client 200.11.114.35#51531: query: earthlink.com IN MX
Aug 03 10:21:48.699 client 200.11.114.22#1028: query: clarin.com IN MX
Aug 03 10:21:48.732 client 200.11.114.22#1028: query: smtp.agea.com.ar IN A
Aug 03 10:21:49.904 client 200.11.114.14#32943: query: pop3.inpa.com.ar IN A
Aug 03 10:21:50.058 client 200.11.114.19#1034: query: 128.113.81.206.IN-ADDR.ARPA IN PTR
Aug 03 10:21:50.958 client 200.11.114.205#1806: query: www.clarin.com IN A
Aug 03 10:21:51.175 client 200.11.114.35#51532: query: 14.161.10.200.in-addr.arpa IN PTR

Respuesta:

Cada linea comienza con fecha, hora, IP y puerto del cliente que realizó la consulta.

  • Las queries del estilo dymail.com.ar IN MX son para averiguar la IP del servidor de mail de dymail.com.ar.
  • Las 241.148.226.168.in-addr.arpa IN PTR buscan obtener los nombres asociados a la IP 168.226.148.241 (recordar que se debe escribir la dir IP al reves, ya que la jerarquía en DNS se lee de derecha a izquierda).
  • Las segemar.inpa.com.ar IN A buscan obtener la dirección IP del host con ese nombre.

Ejercicio 13

Ejercicio 14

Acerca de certificados digitales,

  • ¿Qué técnicas de encriptación se utilizan para firmar un certificado digital?
  • ¿Qué protocolos existen para las técnicas mencionadas en el ítem anterior?
  • ¿En qué se basa la seguridad del uso certificados digitales?

Respuesta:

  • Se usan algoritmos de encriptación de clave asimétrica, como RSA. El firmante encripta un mensaje con su clave privada, y cualquiera puede desencriptarlo usando su clave pública. La idea es que solamente quien conoce la clave privada puede encriptarlo de forma tal que la pública funcione.
  • TSL/SSL utilizan certificados digitales en el handshake inicial para que el cliente verifique la autenticidad del servidor y obtenga su clave pública asociada.
  • En que solamente quien posee la clave privada es capaz de generar el certificado, y dicho certificado se encuentra emitido por una autoridad competente. Asimismo, al firmar conjuntamente el nombre y la clave publica del servidor se asegura que no pueda haber un intruso que se haga pasar por él copiando el certificado, ya que cualquier mensaje enviado por el cliente no podra ser desencriptado por el intruso.


Ejercicio 15

Ejercicio 16

Se tiene un servidor DNS que es primario para la zona dc.uba.ar y secundario para las zonas uba.ar y .ar ¿Se puede en ese servidor configurar todo lo necesario para las tres zonas, incluyendo la delegación? ¿Puede este servidor responder por información de otras zonas?

Respuesta:

Chequear: Si, es posible. El servidor tendria registros NS apuntando hacia si mismo para el dominio dc.uba.ar, pero no deberia devolverlo nunca ya que siempre deberia tener la info de todos los hosts. Respecto de devolver info de otras zonas, deberia ser posible, aunque generalmente los authoritative servers tienen la cache deshabilitada y no se usan para estos fines.

Ejercicio 17

Ejercicio 18

Se tienen dos servidores DNS para una zona en particular ubicados en distintos continentes. Uno es primario y el otro es secundario. El primario tuvo problemas con su disco duro y salió de servicio definitivamente. El secundario luego de transcurrido cierto tiempo dejó de responder requerimientos de DNS pero el servidor funciona bien (SO, hard, config de DNS). ¿A qué se puede deber esto?

Respuesta:

A que el servidor secundario, luego de no recibir actualizaciones del primario por un determinado tiempo, droppea las entradas correspondientes por considerarlas obsoletas.

Ejercicio 19

HTTP tiene dos comandos denominados GET y HEAD, donde el GET trae el objeto, datos del objeto y el resultado de la operación y HEAD solamente trae el resultado la operación y datos del objeto. ¿Para qué cree que puede ser útil usar HEAD?

Respuesta:

HEAD puede utilizarse para chequear la validez de un link (que no esté roto y se encuentre disponible) o para obtener la metadata del objeto, como ser el timestamp de última modificación.

Ejercicio 20

Ejercicio 21

En una red, todos los hosts envían sus paquetes IP con TTL=255 por razones de seguridad. Suponga que uno de los hosts de esa red recibe un paquete con dirección origen en esa misma red, pero con TTL<255. ¿Qué puede deducirse del punto de vista de la seguridad?

Respuesta:

Que hay un router intermedio en la red recibiendo y reenviando los paquetes.

Ejercicio 22

Explicar al menos 2 diferencias entre POP e IMAP para acceder al correo electrónico.

Respuesta:

Ambos responden al modelo cliente servidor para acceder a los mails remotamente, pero IMAP es mas potente que POP. Tiene las siguientes ventajas:

  • Las transacciones IMAP pueden durar mucho más tiempo.
  • El servidor guarda información del estado de los mail (si fueron leído o no, si fueron guardados en una carpeta, etc)
  • Se pueden definir distintas carpetas para acceder a distintos mailboxes.
  • Se puede conectar más de un cliente al mismo mailbox.
  • Posee buscadores que se ejecutan en el servidor

En contrapartida, es más complicado de implementar y consume más recursos.

Ejercicio 23

Ejercicio 24

Ejercicio 25

Ejercicio 26

Ejercicio 27

Un servidor Web cuya dirección IP es 168.83.72.5 levanta el servicio en el port TCP/80. En una PC cuya dirección es 157.92.27.33 alguien abre dos ventanas de un navegador y en cada una de ellas abre simultáneamente una página distinta del mismo servidor. ¿Es esto posible? ¿Cómo se distinguen los paquetes que son para una ventana de los que son para la otra?

Respuesta:

Chequear: El cliente sale a la misma página por dos puertos distintos, generando así dos conexiones TCP diferentes.

Ejercicio 28

Ejercicio 29

Ejercicio 30

Ejercicio 31

Una empresa decide instalar un servidor de Web. Se espera que se conecten hasta 5 clientes simultáneamente.

  • ¿Cuántas direcciones IP diferentes necesita el servidor?
  • ¿Cuántos puertos diferentes debe estar escuchando el servidor WEB?
  • Si además se decide agregar el servicio de telnet server para los administradores, ¿se modifican las respuestas anteriores? ¿Por qué?

Respuesta:

  • Con una dirección IP basta
  • Solamente el well-known port para acceso web
  • Chequear: Se debe agregar el puerto correspondiente a telnet server

Ejercicio 32

Ejercicio 33

Ejercicio 34

Ejercicio 35

En HTTP 1.0 generalmente el servidor es el que corta la conexión TCP enviando un RST después de enviada la respuesta al navegador. ¿A qué cree que se debe esto?

Respuesta:

A que HTTP 1.0 no maneja persistencia de conexiones, con lo cual una vez enviada la respuesta del servidor la conexión TCP establecida se termina, entonces es factible enviar el reset.

Ejercicio 36

Ejercicio 37

  1. ¿Cuáles son los factores que afectan el tiempo de respuesta de HTTP?
  2. ¿Qué resultaría mas sencillo, programar un servidor http o un cliente HTTP?
  3. ¿Es posible tener dos servidores http en una misma máquina?
  4. Suponga la siguiente página escrita en HTML que reside en el servidor www.fcen.uba.ar, ¿cuántas conexiones TCP utiliza el browser en total para transferir la totalidad de la información? ¿Cómo indica el servidor que un objeto se transmitió completamente?

<html><head><title>Facultad de Ciencias Exactas y Naturales</title></head> <body bgcolor="#90c8ff" vlink="#0000aa"> <center><font face="arial" size="4">Facultad de Ciencias Exactas<br> y Naturales - FCEyN</font><br> <font face="arial" size="2">Universidad de Buenos Aires <br> Republica Argentina</font><br> <img alt="FCEyN - Pabellon II" src="archivos/e2-400.jpg" height="129" width="400"></center> <br> Facultad de Ciencias Exactas y Naturales <br><br> </body></html>

Respuesta:

  1. Afecta la calidad de la red TCP subyacente, la cantidad de clientes a los que está sirviendo el servidor, su capacidad de procesamiento, el tamaño de los recursos y la disponibilidad de los mismos (tiempo de acceso a disco, por ejemplo), entre otros.
  2. Los dos son complicados y no me metería con ninguno. El cliente (si abarca hasta el browser) tiene la complejidad de tener que parsear el HTML recibido para hacer los pedidos de los demás objetos. El servidor tiene la complejidad de ser un servidor, y tener que manejar muchos hilos y concurrencia para atender los pedidos.
  3. Sí, se denominan servidores virtuales. Para poder acceder a ellos, es necesario usar la ruta completa al recurso en la URL de un GET si se usa HTTP 1.0. El problema está resuelto en HTTP 1.1 con el agregado del header obligatorio host.
  4. Si es 1.0, debe hacer dos conexiones TCP. En la primera obtiene el código HTML, en la segunda, la imagen archivos/e2-400.jpg. En 1.1 puede intentar mantener abierta la conexión y hacer el segundo GET en cuanto obtiene el HTML. El servidor indica la transmisión completa de un objeto especificando la longitud del cuerpo mensaje y, en el caso de 1.0, generalmente cerrando la conexión TCP.

Ejercicio 38

El mecanismo original de resolución de nombres usaba una tabla central de hosts.txt, que era distribuida a todos los hosts cada pocos días. Describa las razones por las que este mecanismo no es utilizado en la actualidad.

Respuesta:

Porque hay demasiados clientes y demasiados dominios como para que la transmisión de un único archivo de tal tamaño sea distribuido frecuentemente a todos los hosts. Además, actualmente la asignación nombre de dominio a host TCP/IP es mucho más dinámica, y se logra a través de los DNS; sería imposible de mantener con un archivo centralizado. Este archivo además resultaría demasiado grande como para poder recorrerlo eficazmente. También sería un mecanismo más lento a reconocer nuevos dominios, o bajas de los mismos.

Ejercicio 39

Ejercicio 40

Ejercicio 41

Ejercicio 42

Ejercicio 43

¿Puede una máquina con un solo nombre DNS tener múltiples direcciones IP? ¿Cómo podría esto ocurrir?

Respuesta:

Sí, hay un tipo de registro DNS particular para indicar aliases.

Ejercicio 44

Ejercicio 45

Ejercicio 46

¿Cuántas conexiones TCP usará una sesión de FTP, donde el cliente lista los archivos que están en un directorio y luego baja dos de ellos?

Respuesta:

Cuatro. Una conexión de control (siempre presente), otra para obtener la lista de archivos y las otras dos para bajar los archivos.

Ejercicio 47

Dos personas que nunca se vieron ni se conocen desean comunicarse entre sí, pero no hay ningún tercero de confianza o una cadena de confianza entre ellos que pueda certificar la identidad de uno ante el otro. ¿Es posible establecer una comunicación segura entre ellos? Puede usar criptografía de clave pública o secreta, pero no puede basarse en que un tercero (de ningún tipo) certifique la identidad de los interlocutores.

Respuesta:

No, lo mínimo que se necesitaría es que algún tercero provea la clave pública de los interlocutores. De lo contrario, un intruso podría colocarse entre ambos y enviar claves públicas distintas a las verdaderas (las cuales generó el mismo, con lo que posee las privadas), y filtrar toda la información haciéndose pasar por el interlocutor.

Ejercicio 48

Ejercicio 49

Ejercicio 50

Ejercicio 51

Para un canal de comunicación segura, ¿Qué aspectos NO son cubiertos por el uso de algoritmos de clave pública/privada?

Respuesta:

El hecho de que las claves públicas de los interlocutores efectivamente les pertenezcan, y no sean las de un intruso que se hace pasar por los interlocutores.

Ejercicio 52

Ejercicio 53

Ejercicio 54

Para un canal de comunicación segura, ¿En qué se basa la seguridad si trabaja con certificados digitales?

Respuesta:

Se basa en que la autoridad, la cual emitió el certificado que autentica la identidad y clave pública del servidor, se supone confiable.

Ejercicio 55

¿Pueden dos conexiones FTP iniciadas desde una máquina A estar bajando el mismo archivo del mismo servidor B al mismo tiempo?

Respuesta:

Deberian, pues cuando se genera una conexión FTP para bajar un archivo, se indica en ese momento el puerto a utilizar, con lo que se podrían tener dos conexiones TCP cada una usando puertos distintos.

Ejercicio 56

Ejercicio 57