Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Temas
• Breve revisión de internetworking
– ¿Que es la Internet?
– Modelos de red: OSI y TCP/IP
– Protocolo IP
– Direccionamiento: Direcciones IP, ruteo
– DHCP
– UDP
– TCP: control de flujo y congestión, recuperación de
errores
– Aplicaciones Tradicionales:
– HTTP, FTP y DNS
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
¿Que es la Internet?
• Un conjunto de redes interconectadas
• Un conjunto de servicios
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Modelo de Red TCP/IP
• Vista diferente – 4 capas
– Capa 1 : Enlace
– Capa 2 : Red
– Capa 3 : Transporte
– Capa 4 : Aplicación
7th
Application Layer
6th
Presentation Layer Application Layer
5th
Session Layer
4th
Transport Layer
Transport Layer
3rd
Network Layer
Network Layer
2nd
Link Layer
Link Layer
1st
Physical Layer
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Encapsulación de Paquetes
Los datos se envían a través del stack de protocolos
Cada capa agrega datos mediante la inclusión de cabeceras
64 to 1500 Bytes
La Capa de Enlace
“link - enlace”
Algo de terminología:
• hosts y routers son nodos
• Canales de comunicación que cone
ctan nodos adyacentes a lo largo
de un camino de comunicación son
enlaces
– Enlaces cableados
– Enlaces inalámbricos
– LANs
• El paquete de capa 2 es un frame
(o trama), encapsula un datagra
ma
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Direcciones MAC y ARP
• Direcciones IP son de 32-bit:
– Son direcciones de la capa de red
– Son usada para conducir un datagrama a la subred destino
• Dirección MAC (o LAN o física o Ethernet):
– Son usadas para conducir un datagrama a otra interfaz física
mente conectada (en la misma red)
– Son de 48 bits (en mayoría de LANs) están grabadas en una R
OM de la tarjeta adaptadora
LAN
(cableada o
= adaptador
inalámbrica)
71-65-F7-2B-08-53
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
ARP: Address Resolution Protocol
0C-C4-11-6F-E3-98
237.196.7.88
broadcast
Es posible que otro sistema distinto al B pueda intentar convencer al Sistema A que el es el sistema B
al intentar responder al mensaje ARP request. ¿Le trae algún recuerdo este escenario, como el
ataque del MIG en el medio
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Estructura Paquete ARP
El ataque anterior es posible y se denomina ataque del hombre en el medio ya que la respuesta que
envía el pseudo Sistema B no lleva ninguna información que permita autenticar el origen de mensaje.
Observe que la estructura del paquete ARP se transmite además en texto plano.
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
IP
• Es responsable de la transmisión host a
host
• Gestiona datos en paquetes individuales
• El tamaño máximo de un paquete es
determinado por la red
– Usa fragmentación si paquetes es muy
grande
• No confiable
– Paquetes se podrían perder, corromper,
duplicar, o ser entregados desordenados
Direcciones IP
• 4 bytes (IP v4)
– e.g. 163.1.125.98
– Cada dispositivo posee normalmente una ( o
mas)
– En Teoría hay 4 mil millones de direcciones
disponibles (232)
• Pero…
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Routing
• ¿Como sabe un dispositivo hacia donde
enviar un paquete?
– Todos los dispositivos requieren saber las
direcciones IP de aquellos conectados a
redes alcanzables
– Si el destino es local envíelo directamente
Routing (cont)
• Si el destino no es local
– La mayoria de los outers envian todo a un
unico router local
– Los routers necesitan saber que direcciones
IP le corresponden a una red
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Paquetes IP
• Direcciones IP de origen y destino
• Numero de Protocolo
– 1 = ICMP, 6 = TCP, 17 = UDP
• Varias opciones
– e.g. controlar fragmentación
• Time to live (TTL)
– Prevenir loops por ruteo
Datagrama IP
0 4 8 16 19 24 31
Vers Len TOS Total Length
Identification Flags Fragment Offset
TTL Protocol Header Checksum
Source Internet Address
Destination Internet Address
Options... Padding
Data...
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Ruteo IP
Source Destination
Application Application
Transport Router Transport
Network Network Network
Link Link Link
• Tabla de ruteo
Dirección IP de Destino
Dirección IP del próximo router
Flags
Especificaciones de la interfaz de red
Observe que un router, que tiene como fin la entrega de paquetes de datos desde el origen al
destino de este, no procesa cabeceras correspondientes a protocolos de capa superior, tales como
TCP, HTTP, o DNS, por nombrar los más conocidos.
Servidor
223.1.1.0/24
DHCP
223.1.1.1 223.1.2.1
223.1.3.1 223.1.3.2
223.1.3.0/24
16-07-2017
Catedra #13
Un protocolo básico que permite configurar un nuevo equipo al momento que este desea
incorporarse a una red es a través del protocolo DHCP (Dynamic Host Configuration Protocol).
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Escenario cliente-servidor DHCP
DHCP server: 223.1.2.5 DHCP discover Cliente
Recien llegado
src : 0.0.0.0, 68
dest.: 255.255.255.255,67
yiaddr: 0.0.0.0
transaction ID: 654
DHCP offer
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 654
lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
transaction ID: 655
lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 655
lifetime: 3600 secs
16-07-2017
Catedra #13
Note que, ya sea en el mensaje DHCP discover o el DHCP request, el nuevo recien llegado busca a
alguien que otorgue la configuración de acceso a la red (dirección IP, dirección de router por defecto,
dirección del servidor de resolución de nombres (DNS)). Observando el tráfico de la diapositiva, ¿El
recién llegado tiene alguna prueba de confianza que la información de respuesta es confiable?
16-07-2017
Catedra #13
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Análisis de Seguridad
• ¿Qué ataques podría ejecutar Trudy sobre IP y
DHCP?
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
UDP
• Delgada capa sobre IP
• Agrega largo paquete + checksum
– Detección de paquetes corruptos
• Agrega además puertos de origen y
destino
– Los puertos se usan para asociar a un
paquete con una aplicación especifica en
cada terminal o host
• Es no confiable:
– Duplicación, perdida, entrega fuera de
orden es posible
Datagrama UDP
0 16 31
Source Port Destination Port
Length Checksum
Application data
Field Purpose
Source Port 16-bit port number identifying originating application
Destination Port 16-bit port number identifying destination application
Length Length of UDP datagram (UDP header + data)
Checksum Checksum of IP pseudo header, UDP header, and data
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Típicas aplicaciones de UDP
• Cuando la perdida de paquetes es
enfrentada de mejor forma por la capa de
aplicación
• Cuando no deseamos el sobrecosto de
establecer una conexión
– VOIP
– NFS – Network File System
– La mayoría de los Juegos en Línea
TCP
• Confiable, full-duplex, orientado a
conexión, entrega de flujo de bytes
– La interfaz que se presenta a la aplicación no
requiere manejar los datos directamente de
paquetes individuales
– Se garantiza que los datos llegaran todos, en
el orden correcto y sin duplicaciones
• O se cancelara la conexión
– Impone sobrecostos significativos
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Aplicaciones de TCP
• ¡Son la mayoría disponible en la Internet!
– HTTP, FTP, SMTP, DNS …
Implementación de TCP
• Las conexiones se establecen usando un
saludos de manos de 3 vías (three-way
handshake)
• Los datos son divididos por el SO en
paquetes
• Los paquetes son enumerados y los
paquetes recepcionados son acusados sus
recibos
• Las conexiones son explícitamente cerradas
(o podrían anormalmente terminar)
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Saludo de manos de 3 vías TCP
16-07-2017
Averigüe si existe algún ataque donde se intente establecer saludos de manos a medias.
¿Qué propósito tendría este protocolo?
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Paquetes TCP
• Puertos de origen + el de destino
• Numero de secuencia (usado para ordenar
paquetes)
• Numero de acuso de recibo (usado para
verificar recepción de paquetes)
Dado que TCP es el protocolo que garantiza confiabilidad en la transferencia de datos, este debe
identificar cada segmento TCP, con el propósito de identificar un segmento duplicado o bien un
segmento perdido. Cada segmento TCP recepcionado es acusado su recibo al emisor para permitir
que el emisor pueda transmitir nuevos segmentos. Los detalles de la cabecera de un segmento se
aprecian en la siguiente diapositiva
Segmento TCP
0 4 10 16 19 24 31
Source Port Destination Port
Sequence Number
Acknowledgment Number
Len Reserved Flags Window
Checksum Urgent Pointer
Options... Padding
Data...
Field Purpose
Source Port Identifies originating application
Destination Port Identifies destination application
Sequence Number Sequence number of first octet in the segment
Acknowledgment # Sequence number of the next expected octet (if ACK flag set)
Len Length of TCP header in 4 octet units
Flags TCP flags: SYN, FIN, RST, PSH, ACK, URG
Window Number of octets from ACK that sender will accept
Checksum Checksum of IP pseudo-header + TCP header + data
Urgent Pointer Pointer to end of “urgent data”
Options Special TCP options such as MSS and Window Scale
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Averigüe para que se emplea el campo flags y detalle al menos dos ataques que
busquen enviar paquetes con valores declarados no compatibles con el estándar en
este campo.
14
Control de Flujo y Congestión son dos mecanismos de control que ejecuta TCP para evitar generar
segmentos en demasía que pudieran saturar el búfer de quien recepciona los segmentos (control de
flujo) o pudiera agregar demasiado tráfico sobre un router, cuyo búfer de recepción se encuentra al
borde de la saturación. En tal caso el router eliminara cualquier paquete que reciba para el cual no
te recursos para procesarlo ocasionando la perdida de paquetes.
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Algunas Aplicaciones Tradicionales de
la Internet
• HTTP
• SMTP
• DNS
Revisaremos tres de las aplicaciones más tradicionales y populares que operan en la Internet.
Web y HTTP
Primero, una revisión…
• Una pagina web consiste de objetos
• Un objeto puede ser un archivo HTML, imagen JPEG, applet Java, archi
vo de audio,…
• Una pagina web consiste de un archivo base HTML que incluye varios ob
jectos referenciados . Cada objeto es direccionable con una URL, e.g.,
www.algunaUniversidad.cl/algunDept/pic.gif
16-07-2017 Catedra #5
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Introducción a HTTP
HTTP: hypertext transfer protocol
• Protocolo de capa de aplicación
de la web
iphone corriendo
navegador Safari
16-07-2017 Catedra #5
16-07-2017 Catedra #5
Como su principal objetivo es la recuperación de hypertexto (html), por tanto este protocolo
requiere emplear un protocolo de capa de transporte que garantice confiabilidad como es el caso de
TCP.
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Mensaje de petición HTTP
16-07-2017 Catedra #5
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Mensaje de respuesta HTTP
Línea de status
(protocolo
Código estado HTTP/1.1 200 OK\r\n
Frase estado) Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n
Server: Apache/2.0.52 (CentOS)\r\n
Last-Modified: Tue, 30 Oct 2007 17:00:02 GMT
\r\n
Líneas de ETag: "17dc6-a5c-bf716880"\r\n
Accept-Ranges: bytes\r\n
cabecera Content-Length: 2652\r\n
Keep-Alive: timeout=10, max=100\r\n
Connection: Keep-Alive\r\n
Content-Type: text/html; charset=ISO-8859-1\
r\n
\r\n
datos, e.g., datos datos datos datos datos ...
archivo HTML
solicitado
16-07-2017 Catedra #5
Este es una respuesta HTTP típica. Note el campo server el cual informa al cliente detalles de la
aplicación servidor empleada, detalles de la página web, tipo de contenido y confirmación de la
solicitud de persistencia. Note que al igual que una petición HTTP, la cabecera de respuesta es de
largo arbitrario y el fin de la cabera se señala con una línea vacía (el último par de \r\n). Note que el
contenido html es transmitido donde se señalan los datos.
200 OK
– Petición exitosa, objeto solicitado viene mas tarde en este
mensaje
301 Movido Permanentemente
– Objeto solicitado fue movido, nueva ubicación es especificad
a mas tarde en este mensaje (Ubicación)
400 Petición Errónea (Bad Request)
– Mensaje de petición no fue entendida por el servidor
404 No Encontrado (Not Found)
– Documento solicitado no fue encontrado en este servidor
505 HTTP Version Not Supported
16-07-2017 Catedra #5
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Algunas Aplicaciones Tradicionales de
la Internet
• HTTP
• SMTP
• DNS
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Correo Electrónico: SMTP [RFC 2821]
• usa TCP para transferencia de correo confiable desde el cliente al
servidor, puerto 25
• Transferencia directa: servidor que envía al servidor que recibe
• Tres fases de la transferencia
– handshaking (saludo)
– Transferencia de mensajes
– cierre
• Interacción comando/respuesta
– comandos: texto ASCII
– respuesta: código y frase de estatus
• Mensajes deben estar en ASCII de 7 bits
06/05/16 Catedra #6
Se detallan las principales características del protocolo empleado para el envío de emails (Send Mail
Transfer Protocol, SMTP)
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Ejemplo Interacción SMTP
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hola crepes.fr, un gusto en conocerte
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr... Emisor ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... Recipiente ok
C: DATA
S: 354 Escriba correo, finalice texto con una nueva
linea y un ".“
C: ¿Te gusta el ketchup?
C: ¿ y los pickles?
C: .
S: 250 Mensaje aceptado para entrega
C: QUIT
S: 221 hamburger.edu cierra conexion
06/05/16 Catedra #6
Este es la típica interacción entre un servidor SMTP actuando como cliente (C) cuando gestiona el
envío de correo con un servidor SMTP que actúa como servidor (S).
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
DNS: domain name system
(Servidor de dominios de nombres)
16-07-2017 Catedra #6
DNS es uno de los protocolos de capa aplicación más usados pero del cual no somos conscientes de
ello. Esto es debido a que este protocolo es fundamental para la infraestructura que permite la
existencia de la web. No tan solo nos sirve para conocer la dirección IP asociada a un nombre o
dominio, pero también conocer cuál es el servidor SMTP asociado a un dominio, ubicación
geográfica de un servidor por nombrar solo alguno de diversos datos que podemos obtener de un
dominio.
En síntesis, el DNS no es más que una base de datos distribuida de nombres a direcciones IP y
viceversa.
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Componentes de un DNS
… …
16-07-2017 Catedra #6
En el mundo hay al menos 13 servidores DNS, los cuales no conocen toda la informacion sobre
resolución de nombres en la web pero si conocen las direcciones IP de los servidor de alto nivel. Es
decir aquellos servidores responsables por dominios tales como el .com, .org, .fr , etc,
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
Resolvers
Query
Response
18
Un Cliente DNS (Resolver) realiza diversas consultas para resolver un nombre como en el ejemplo
que se señala en la siguiente diapositiva.
Resolucion Iterativa
a.root s
erver
a3.nstl a.gtld-
d.com server
5
Udel ns1.goo
server gle.com
7
3 iterative response (referral)
“I don't know. Try a.root-servers.net.”
iterative response (referral) 9
“I don't know. Try a.gtld-servers.net.”
1 iterative response (referral)
“I don't know. Try a3.nstld.com.”
iterative response (referral)
2 4 “I don't know. Try ns1.google.com.”
6 Respuesta iterativa
8 “La direccion IP de www.google.com
client 10 es 216.239.37.99.”
Petición iterativa
“¿Cual es la dirección IP de www.google.com?”
20
Primero un cliente le preguntara al DNS que obtiene luego de recibir esta informacion de un
servidor DHCP. Si este primer servidor DNS no conoce la respuesta, este le enviara la consulta a un
servidor raíz (root). Si este segundo servidor desconoce la respuesta, al menos le dirá al cliente quien
es el servidor TLD por el dominio .com a quien se le reenvía la consulta. Si este tercer servidor
tampoco puede resolver el nombre declarado, al menos responderá con la dirección IP del servidor
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
DNS responsable por el dominio google.com. Finalmente este último servidor conoce la dirección IP
del servidor web de google y por tanto envía la respuesta al cliente.
Existen otros protocolos usados como telnet, POP3, IMAP que no son recomendados su uso debido a
que la ejecución de estos protocolos requiere el intercambio de datos confiables a través de la red
entre un cliente y un servidor. En estos protocolos no se exige proteger la confidencialidad de los
datos por ende algún host revisando el tráfico entre el cliente y un servidor podría capturar estos
datos.
Si deseas profundizar tus conocimientos sobre networking, un excelente libro es [1]. Si deseas un
análisis más acabado de las deficiencias de los protocolos de la Internet desde el punto de vista de la
seguridad te recomiendo el texto del profesor Douglas Jacobson [2
Referencias:
[1] Kurose and Ross “Computer Networking: A top down approach”, 5th Ed. Wiley, 2012.
[2] Jacobson “Introduction to Network Security”, 1st Ed. Chapman & Hall/CRC Computer and
Information Science Series, 2008.
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados
© 2016 Patricio Galdames – IUT de Bayonne et du PaysBasque (UPPA) – Todos los derechos reservados