Tecnología de las Comunicaciones II // Unidad 4 · Capa de aplicación
Pablo Cruz · Angelo Perrotta · Lucía Muñiz · Mauro Neschuk
Universidad Abierta Interamericana · Facultad de Tecnología Informática
Ingeniería en Sistemas · 3º A · Sede Lomas de Zamora
La pregunta // 01
Entre el navegador y el servidor hay una docena de equipos que tocan ese tráfico y no son ninguno de los dos.
Dónde estamos // 02
HTTP no reemplaza nada de lo de abajo. Se apoya en todo eso.
Al pedir una página, abajo sigue habiendo una trama Ethernet con su MAC, un datagrama IP con su dirección y un segmento TCP con su puerto.
El modelo // 03
Cliente
Navegador
arranca siempre él
Servidor
Demonio escuchando
en el puerto 80 o 443
Cliente
Renderiza
arma la página
La dirección // 04
El protocolo // 05
Cliente y servidor
El navegador pide, el servidor responde. El servidor nunca empieza la conversación.
Sin estado
Cada pedido es independiente. El servidor no recuerda el anterior. Esto tiene un costo.
Texto plano
Lo que viaja son letras, no binario. Se lee como una carta.
Anatomía // 06
El verbo // 07
| Método | Qué hace | Lleva cuerpo |
|---|---|---|
| GET | Pide un recurso. Es el que dispara el navegador al escribir una dirección los parámetros van en la URL, a la vista | No |
| POST | Manda datos de un formulario los parámetros van en el cuerpo | Sí |
| PUT | Sube o reemplaza un recurso | Sí |
| DELETE | Borra un recurso | A veces |
| HEAD | Pide solo los encabezados, sin el contenido para saber si existe o cuánto pesa | No |
Anatomía // 08
El resultado // 09
| Familia | Qué significa | Los que más aparecen |
|---|---|---|
| 2xx | Salió bien | 200 OK · 201 Created · 204 No Content |
| 3xx | Hay que buscarlo en otro lado acá cae el salto de HTTP a HTTPS | 301 Moved · 302 Found · 304 Not Modified |
| 4xx | El error es del cliente | 400 · 401 · 403 · 404 Not Found |
| 5xx | El error es del servidor | 500 Internal · 502 Bad Gateway · 503 |
La negociación // 10
Los manda el cliente
Los manda el servidor
El costo de no recordar // 11
Pedido 1
POST /login
usuario y clave
Respuesta
Set-Cookie
sesion=a3f9c1d8
Pedido 2, 3, 4...
Cookie: sesion=a3f9c1d8
el navegador la devuelve sola
Debajo // 12
Cliente
SYN
quiero abrir
Servidor
SYN + ACK
dale, yo también
Cliente
ACK
confirmado
HTTP
GET /login
el pedido
De dónde viene // 13
| Versión | Año | Qué trajo |
|---|---|---|
| HTTP/0.9 | 1991 | Un GET y nada más. Sin encabezados ni códigos de estado |
| HTTP/1.0 | 1996 | Encabezados, códigos de estado y tipos de contenido |
| HTTP/1.1 | 1997 | Conexión persistente, Host obligatorio, cacheo es la versión que sigue andando hoy |
La prueba // 14
La herramienta // 15
Modo normal
La placa mira la MAC destino de cada trama. Si no es la suya, la descarta y ni se entera.
Es lo que se vio en la unidad 1.
Modo promiscuo
El filtro se apaga. La placa guarda todo lo que pasa por el cable, sea para ella o no.
Es lo que hace Wireshark.
Demo uno // 16
Captura propia del TP de Wireshark. Arriba la lista con el filtro http, al medio el paquete desarmado por capas, a la derecha el volcado en bytes.
Demo uno // 17
El método, la ruta, el servidor, el navegador con su versión, los idiomas aceptados. Y abajo, el principio de una cookie.
Demo uno // 18
El costo // 19
El que escucha solo mira y guarda. No modifica ni un paquete, no manda nada, no interrumpe nada.
Origen
Manda el login
En el camino
Alguien escucha
y no toca nada
Servidor
Responde normal
El costo // 20
Servidor
Manda la página real
Hombre en el medio
La cambia
inyecta, reemplaza, agrega
Destino
Recibe la cambiada
y no tiene cómo saberlo
El costo // 21
De la captura
Copia la cookie
sesion=a3f9c1d8
En otro navegador
La pega
Servidor
Para él es la persona
no tiene cómo distinguir
Pasó de verdad // 22
Una extensión de Firefox que automatizaba todo esto. Se instalaba, se entraba a un wifi abierto y aparecía la lista de sesiones abiertas de la gente alrededor, con foto y nombre. Doble clic y se entraba.
Su autor la publicó a propósito. El argumento fue que el problema no era la extensión, sino que los sitios mandaban las sesiones en claro.
Qué pasó después
Hoy // 23
Una objeción // 24
La sesión sigue en claro
Y con la cookie sola ya alcanza para entrar.
El cifrado se puede cambiar
Desde el medio se modifica el JavaScript que cifra, antes de que llegue al navegador.
El contenido sigue a la vista
Los mensajes, los movimientos, lo que se está leyendo.
La solución // 25
No cambia ni un método, ni un encabezado, ni un código de estado. Lo único que cambia es que antes de hablar, las dos puntas montan una capa cifrada.
Dónde entra // 26
HTTP · puerto 80
HTTPS · puerto 443
Qué da TLS // 27
Confidencialidad
Nadie del camino puede leer el contenido.
Contra el espionaje.
Integridad
Nadie puede modificarlo sin que se note. Si cambia un byte, la conexión se corta.
Contra el hombre en el medio.
Autenticación
El servidor es el que dice ser. De esto se encarga el certificado.
Contra la suplantación del sitio.
El problema // 28
Lo único que tienen en común es el cable. Y el cable es justamente donde está el que escucha.
La herramienta // 29
Simétrica · una sola clave
La misma clave cifra y descifra. Es muy rápida y aguanta volumen. El algoritmo de hoy es AES.
El problema es cómo hacerle llegar esa clave al otro.
Asimétrica · un par de claves
Lo que cifra la pública solo lo abre la privada. La pública se puede publicar, no importa quién la vea.
El problema es que es cientos de veces más lenta.
El handshake // 30
El documento // 31
Se puede mirar ahora mismo en cualquier sitio. Clic en el candado, detalles del certificado, y está todo.
La confianza // 32
Lo que llega
Certificado del sitio
www.uai.edu.ar
Intermedia
CA intermedia
la que lo emitió
Raíz
CA raíz
ya está en el sistema operativo
La verificación // 33
Cuando falla // 34
Pendiente · captura del navegador
La advertencia de certificado inválido, no la página roja.El botón de avanzar igual está escondido abajo de configuración avanzada. Está hecho a propósito.
Demo dos // 35
Demo dos // 36
La versión de hoy // 37
| TLS 1.2 · 2008 | TLS 1.3 · 2018 | |
|---|---|---|
| Viajes del handshake | 2 idas y vueltas | 1 sola |
| Algoritmos viejos | Todavía admitidos | Eliminados |
| Secreto hacia adelante | Opcional | Siempre |
La letra chica // 38
La letra chica // 39
Es un problema de huevo y gallina. El servidor necesita saber qué certificado mandar, porque en una IP puede haber cientos de sitios. Pero para saberlo necesita que el cliente le diga a cuál va.
Y eso tiene que pasar antes de que exista el cifrado.
La letra chica // 40
Sacar un certificado válido hoy es gratis y tarda minutos. Un sitio de phishing lo tiene igual que el banco.
El primer pedido // 41
Se escribe
uai.edu.ar
sin https adelante
Servidor
301 → https
acá se puede interceptar
Con HSTS
El navegador ya lo sabía
y no intenta HTTP nunca
Por qué cambió // 42
Antes un certificado costaba entre 50 y varios cientos de dólares por año, más un trámite. Para un blog o el proyecto de una materia no daba, entonces no se ponía.
En 2016 arrancó Let's Encrypt. Gratuito, automático, un comando y se renueva solo.
Navegación por HTTPS
Qué vino después // 43
Binario en vez de texto
Más rápido de interpretar para la máquina. Deja de poder leerse a simple vista.
Multiplexación
Muchos pedidos a la vez por la misma conexión. Antes iban en fila y si el primero se trababa, los de atrás esperaban.
Qué vino después // 44
HTTP/2
HTTP/3
El costo // 45
Hace quince años
El handshake agregaba viajes. El cifrado consumía procesador. Los servidores grandes necesitaban hardware dedicado para aguantarlo.
Hoy
Cualquier celular trae instrucciones de procesador para AES. El handshake de TLS 1.3 es un solo viaje y hay reanudación de sesión.
Todo junto // 46
Clase 12
DNS
el nombre a una IP
Clase 2
ARP
la MAC del gateway
Unidad 3
Ruteo
por la red de destino
Unidad 2
TCP
abre la conexión
Hoy
TLS + HTTP
GET y 200 OK
En cuatro líneas // 47
Para cerrar // 48