Tecnología de las Comunicaciones II // Unidad 4 · Capa de aplicación

HTTP y HTTPS. Qué ve un tercero cuando mirás una página

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

Trabajo de indagación · 30 de octubre de 2026 Universidad Abierta Interamericana Universidad Abierta Interamericana

La pregunta // 01

Hoy escribiste una contraseña en algún lado. Quién más la vio?

Entre el navegador y el servidor hay una docena de equipos que tocan ese tráfico y no son ninguno de los dos.

No se va a suponer. Se capturó con Wireshark y se muestra en pantalla.

Dónde estamos // 02

HTTP vive arriba de todo lo que ya vimos

AplicaciónHTTP · DNS · SMTP · FTP
TransporteTCP · UDP · puertos
InternetIP · ICMP · ruteo
Acceso a la redEthernet · ARP · MAC

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.

Es la capa que toca el usuario. Las de abajo corresponden a las unidades 1, 2 y 3.

El modelo // 03

El cliente pide, el servidor responde. Nunca al revés

Cliente

Navegador

arranca siempre él

pedido→

Servidor

Demonio escuchando

en el puerto 80 o 443

respuesta←

Cliente

Renderiza

arma la página

Por eso una página de noticias no se actualiza sola. El navegador pregunta cada tantos segundos, el servidor no empuja nada.

La dirección // 04

Una URL tiene más partes de las que parece

https://www.uai.edu.ar:443/alumnos/notas?materia=teleco2#parcial1

El protocolo // 05

HTTP en tres propiedades

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.

La tercera es la que importa para toda la exposición. Es la razón por la que la demostración que viene funciona.

Anatomía // 06

Cómo se ve un pedido por dentro

POST /login HTTP/1.1 Host: www.ejemplo.com User-Agent: Mozilla/5.0 Content-Type: application/x-www-form-urlencoded usuario=aperrotta&clave=teleco2026
← línea de pedido ← encabezados ← línea en blanco ← cuerpo
El encabezado Host es obligatorio desde HTTP/1.1, porque en una misma IP pueden vivir cientos de sitios distintos.

El verbo // 07

Los métodos dicen qué se quiere hacer

MétodoQué haceLleva cuerpo
GETPide un recurso. Es el que dispara el navegador al escribir una dirección los parámetros van en la URL, a la vistaNo
POSTManda datos de un formulario los parámetros van en el cuerpoSí
PUTSube o reemplaza un recursoSí
DELETEBorra un recursoA veces
HEADPide solo los encabezados, sin el contenido para saber si existe o cuánto pesaNo
POST esconde los datos de la barra de direcciones. Pero con HTTP los dos viajan igual de legibles por el cable.

Anatomía // 08

La respuesta tiene la misma forma

HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Content-Length: 1842 Set-Cookie: sesion=a3f9c1d8e04b7f21 <!doctype html>
← línea de estado ← encabezados ← línea en blanco ← cuerpo
Content-Type le dice al navegador qué recibió. Set-Cookie le pide que se guarde algo, y eso aparece en dos diapositivas.

El resultado // 09

Con el primer dígito ya se sabe si salió bien

FamiliaQué significaLos que más aparecen
2xxSalió bien200 OK · 201 Created · 204 No Content
3xxHay que buscarlo en otro lado acá cae el salto de HTTP a HTTPS301 Moved · 302 Found · 304 Not Modified
4xxEl error es del cliente400 · 401 · 403 · 404 Not Found
5xxEl error es del servidor500 Internal · 502 Bad Gateway · 503
Existe el 418 I'm a teapot. Salió como broma del día de los inocentes del 98 y quedó documentado. El código de tres cifras tampoco es exclusivo de HTTP, SMTP y FTP usan la misma idea.

La negociación // 10

En los encabezados pasa casi todo

Los manda el cliente

  • ·Host · a qué sitio le hablo
  • ·Accept · qué formatos entiendo
  • ·Accept-Language · por qué el sitio sale en español sin elegirlo
  • ·Authorization · credenciales
  • ·Cookie · lo que me pidieron que guarde

Los manda el servidor

  • ·Content-Type · qué te estoy mandando
  • ·Content-Length · cuánto pesa
  • ·Set-Cookie · guardate esto
  • ·Location · a dónde va un 301
  • ·Cache-Control · cuánto se puede guardar
Son pares de nombre y valor, y cualquiera puede inventar uno propio. Por eso la lista no termina nunca.

El costo de no recordar // 11

Si el servidor no recuerda nada, cómo sabe que ya entraste?

Pedido 1

POST /login

usuario y clave

→

Respuesta

Set-Cookie

sesion=a3f9c1d8

→

Pedido 2, 3, 4...

Cookie: sesion=a3f9c1d8

el navegador la devuelve sola

La cookie de sesión es la identidad en ese sitio. Mientras alguien la tenga, para el servidor es esa persona.

Debajo // 12

Antes de pedir nada, TCP abre la conexión

Cliente

SYN

quiero abrir

→

Servidor

SYN + ACK

dale, yo también

→

Cliente

ACK

confirmado

recién ahí→

HTTP

GET /login

el pedido

HTTP usa TCP porque una página tiene que llegar entera y en orden. Puerto 80.

De dónde viene // 13

Treinta años con el mismo protocolo

VersiónAñoQué trajo
HTTP/0.91991Un GET y nada más. Sin encabezados ni códigos de estado
HTTP/1.01996Encabezados, códigos de estado y tipos de contenido
HTTP/1.11997Conexión persistente, Host obligatorio, cacheo es la versión que sigue andando hoy
Antes de la 1.1, cada imagen de una página abría su propia conexión TCP. Una página con cuarenta imágenes eran cuarenta handshakes.

La prueba // 14

Se capturó el mismo tipo de tráfico dos veces

  • 1Wireshark escuchando la placa de red
  • 2Tráfico HTTP, al puerto 80
  • 3El mismo tráfico por HTTPS, al puerto 443
  • 4Comparación de lo que se lee en cada captura
Las capturas son propias, del TP obligatorio de Wireshark de esta materia, sobre la red del grupo. Capturar tráfico ajeno sin autorización está penado por la ley de delitos informáticos.

La herramienta // 15

El modo promiscuo apaga el filtro de la placa

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.

Lo que se ve no es un truco de la herramienta. Es lo que ve cualquiera conectado a esa misma red. En un wifi abierto, o con envenenamiento de ARP, eso es mucha gente.

Demo uno // 16

Ventana de Wireshark con filtro http, mostrando un GET y una respuesta 301

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

Está todo ahí, sin desencriptar nada

El método, la ruta, el servidor, el navegador con su versión, los idiomas aceptados. Y abajo, el principio de una cookie.

La banda tapa el valor porque la captura es de una máquina del grupo. El punto es que viaja en texto plano, igual que el resto.
Volcado hexadecimal con la columna de texto legible a la derecha

Demo uno // 18

La cookie es peor que la contraseña

GET /cuenta HTTP/1.1 Host: www.ejemplo.com Cookie: sesion=a3f9c1d8e04b7f21
Si roban la contraseña, se cambia. Si roban la cookie de sesión, el que la tiene ya está adentro y del otro lado nadie se entera. Muchos sitios de la época cifraban solo el login y mandaban el resto por HTTP.

El costo // 19

Primero, espiar

El que escucha solo mira y guarda. No modifica ni un paquete, no manda nada, no interrumpe nada.

Es completamente pasivo. Del otro lado la conexión anda perfecto. No hay forma de detectarlo ni desde el cliente ni desde el servidor.

Origen

Manda el login

En el camino

Alguien escucha

y no toca nada

Servidor

Responde normal

El costo // 20

Segundo, modificar en el camino

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

Pasó de verdad. Inyectar scripts, cambiar un número de cuenta, reemplazar un link de descarga. Algunos proveedores de internet metían publicidad en páginas que no la tenían.

El costo // 21

Tercero, entrar como otro

De la captura

Copia la cookie

sesion=a3f9c1d8

→

En otro navegador

La pega

→

Servidor

Para él es la persona

no tiene cómo distinguir

Se llama secuestro de sesión. Sin contraseña y sin romper ningún cifrado, copiando y pegando un texto. Es la más fácil de las tres.

Pasó de verdad // 22

Firesheep, 2010

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

  • ·2011 · Facebook y Twitter ofrecen HTTPS permanente
  • ·2012 · pasa a ser el valor por defecto
  • ·2014 · Google lo empieza a usar como criterio de posicionamiento
Que hoy casi todo sea HTTPS se explica en buena medida por esto.

Hoy // 23

Dónde sigue pasando esto

  • ·Wifi abiertos de bares, aeropuertos y hoteles
  • ·Internet de las cosas. Cámaras y domótica barata todavía hablan HTTP puro
  • ·Paneles de administración de equipos de red viejos
  • ·Redes internas mal configuradas
  • ·Y el más común. Escribir la dirección sin el https adelante
Ese primer pedido sale por HTTP aunque el servidor después redirija. Es exactamente el 301 que aparece en la captura. Tiene solución, y la explica Mauro al final.

Una objeción // 24

Y si se cifra solo la contraseña?

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 protección tiene que estar en el canal entero, no en un dato suelto.

La solución // 25

HTTPS es el mismo HTTP, adentro de un túnel

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.

La S es de TLS, que antes se llamaba SSL. Por eso todavía se dice certificado SSL aunque SSL esté discontinuado. Y cambia el puerto, del 80 al 443.

Dónde entra // 26

TLS se mete entre la aplicación y el transporte

HTTP · puerto 80

HTTP
TCP
IP
Ethernet

HTTPS · puerto 443

HTTPsin un solo cambio
TLS
TCP
IP
Ethernet
Para HTTP, TLS se ve como TCP. Para TCP, TLS se ve como una aplicación cualquiera. Ninguna de las dos se tuvo que modificar, y es el mismo principio de independencia de capas de toda la materia.

Qué da TLS // 27

Tres garantías, no una

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.

Son exactamente los tres ataques del bloque anterior, uno por garantía. Y van juntas, si falta una el esquema no sirve.

El problema // 28

Cómo acuerdan una clave dos máquinas que nunca se vieron?

Lo único que tienen en común es el cable. Y el cable es justamente donde está el que escucha.

Si el servidor manda la clave, el que escucha la ve pasar. Si no la manda, no hay con qué cifrar. Hay que acordar un secreto hablando en público. Durante siglos eso fue imposible. Se resolvió en 1976.

La herramienta // 29

Dos criptografías, y TLS usa las dos

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.

TLS usa la asimétrica solo para acordar una clave simétrica. De ahí en adelante todo viaja con la rápida. Se llama cifrado híbrido.

El handshake // 30

Cómo se ponen de acuerdo, en cuatro pasos

ClienteServidor
→ClientHelloqué versiones de TLS y qué cifrados soporto, más un número al azar
←ServerHello + certificadoelijo este cifrado, acá va mi número al azar y mi certificado con la clave pública
→Verificación y secretosi el certificado no valida se corta acá. Si valida, cifro un tercer número con su clave pública
↔Finished · clave simétrica listacada lado calcula la misma clave con los tres números, por su cuenta
La clave que cifra los datos nunca viajó por la red. Viajaron tres números, uno de ellos cifrado, y cada punta calculó la clave sola.

El documento // 31

Qué hay adentro de un certificado

Emitido para: www.uai.edu.ar Emitido por: R11 · Let's Encrypt Válido desde: 12/09/2026 Válido hasta: 11/12/2026 Clave pública: RSA 2048 bits Firma: SHA-256 válida

Se puede mirar ahora mismo en cualquier sitio. Clic en el candado, detalles del certificado, y está todo.

El certificado solo no prueba nada. Armar uno que diga Banco Nación lleva dos minutos. Lo que lo hace válido es la firma.

La confianza // 32

Y por qué se le cree al certificado?

Lo que llega

Certificado del sitio

www.uai.edu.ar

firmado por→

Intermedia

CA intermedia

la que lo emitió

firmada por→

Raíz

CA raíz

ya está en el sistema operativo

Toda la seguridad depende de que esas autoridades se porten bien. Hubo casos de autoridades comprometidas, y cuando pasa los navegadores las sacan de la lista y se cae todo lo que firmaron.

La verificación // 33

Cuatro chequeos, y tienen que pasar los cuatro

  • 1La firma valida hasta una raíz que ya está instalada
  • 2El nombre coincide con el sitio al que se entró. Un certificado válido de otro dominio no sirve
  • 3No está vencido ni tiene fecha futura
  • 4No está revocado por la autoridad que lo emitió
Si falla uno solo, no hay conexión. El navegador no pregunta, la frena.

Cuando falla // 34

Pendiente · captura del navegador

La advertencia de certificado inválido, no la página roja.
Se saca entrando a expired.badssl.com en ventana de incógnito, porque si ya se aceptó la excepción el navegador no la vuelve a mostrar.

La pantalla que casi todos saltean

El botón de avanzar igual está escondido abajo de configuración avanzada. Está hecho a propósito.

Cuando aparece hay dos posibilidades. Que el certificado venció por descuido, o que hay alguien en el medio. Y desde el navegador no se puede distinguir cuál.

Demo dos // 35

El mismo tráfico, por el puerto 80

POST /login HTTP/1.1 Host: www.ejemplo.com Cookie: sesion=a3f9c1d8e04b7f21 usuario=aperrotta&clave=teleco2026
Método, servidor, cookie y credenciales. Todo en texto.

Demo dos // 36

El mismo tráfico, por el puerto 443

17 03 03 01 2f 8a f1 3b c0 9e 44 d7 21 b6 05 ee 3c 91 a8 7f 02 dd 6b 14 f9 30 c7 85 2a bb 48 e1 76 0d 93 ca 5f 11 e8 37 9b 60 4c d2 a5 18 ff 72 8e 23 b1 09 46 cd 7a f4 51 e0 96 2d 3f c8 1b 84 07 b9 ec 35 a2 68 df 50
No es que estén escondidos. Sin la clave simétrica esos bytes no significan nada. Y la clave nunca pasó por el cable.

La versión de hoy // 37

TLS 1.3 simplificó bastante

TLS 1.2 · 2008TLS 1.3 · 2018
Viajes del handshake2 idas y vueltas1 sola
Algoritmos viejosTodavía admitidosEliminados
Secreto hacia adelanteOpcionalSiempre
Secreto hacia adelante quiere decir que si mañana roban la clave privada del servidor, no se pueden descifrar las conversaciones de hoy que hayan quedado guardadas. Cada sesión usa claves distintas.

La letra chica // 38

Lo que HTTPS no esconde

  • ·La IP de destino · tiene que viajar en claro o el paquete no llega
  • ·El nombre del sitio · va en claro en el primer mensaje
  • ·El tamaño y el ritmo de lo que se manda y se recibe
  • ·Cuánto dura la sesión
Se llama análisis de tráfico. Hay trabajos que identifican qué video de YouTube está mirando alguien solo por el patrón de tamaños, sin descifrar nada. HTTPS hace que no puedan leer la carta, no que no sepan a quién se le escribió.

La letra chica // 39

El nombre del sitio viaja en claro, y no es un error

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.

ClientHello versiones TLS: 1.2, 1.3 cifrados: AES-256, ... server_name: www.uai.edu.ar random: 8a f1 3b c0 ...
Ese campo se llama SNI. Hay una extensión nueva que lo cifra, ECH, pero todavía no está en todos lados. Hoy, el que mira el tráfico ve la lista de sitios visitados.

La letra chica // 40

El candado dice que nadie te escucha. No dice que el sitio sea honesto

Sacar un certificado válido hoy es gratis y tarda minutos. Un sitio de phishing lo tiene igual que el banco.

De hecho la mayoría de los sitios de phishing hoy tienen HTTPS, justamente porque se le enseñó a la gente a mirar el candado. Certifica el canal, no la intención de quien está del otro lado.

El primer pedido // 41

El problema del primer pedido, y cómo se tapa

Se escribe

uai.edu.ar

sin https adelante

en claro→

Servidor

301 → https

acá se puede interceptar

→

Con HSTS

El navegador ya lo sabía

y no intenta HTTP nunca

El servidor manda un encabezado que dice a este sitio se entra siempre por HTTPS, y el navegador se lo anota por un año. Hay además una lista precargada en los navegadores para los sitios que la pidieron.

Por qué cambió // 42

El motivo fue económico, no técnico

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

~25%
2014
+90%
hoy
La criptografía ya estaba desde los noventa. Lo que cambió fue que dejó de costar plata y de llevar trabajo.

Qué vino después // 43

HTTP/2 dejó de ser texto

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.

En teoría HTTP/2 puede andar sin cifrado. Pero ningún navegador lo implementó así. En la práctica HTTP/2 es siempre HTTPS, así que desde ahí el cifrado dejó de ser opcional de hecho.

Qué vino después // 44

HTTP/3 se bajó de TCP

HTTP/2

HTTP/2
TLS
TCPconfiabilidad acá
IP

HTTP/3

HTTP/3
QUICconfiabilidad y TLS adentro
UDPno garantiza nada
IP
QUIC reimplementa los números de secuencia y la retransmisión, pero en el espacio de la aplicación, para poder cambiarlo sin que el mundo actualice el sistema operativo. Y el cifrado está adentro, no existe QUIC sin cifrar.

El costo // 45

Y qué cuesta todo esto?

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.

Con HTTP/3, como QUIC junta el handshake de transporte con el de TLS, la conexión cifrada se establece más rápido de lo que tardaba la conexión sin cifrar con TCP. Terminó siendo más rápido con cifrado que sin él.

Todo junto // 46

Lo que pasa entre que escribís la dirección y ves la página

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

Es la materia entera, en orden, cada vez que se abre una pestaña. Y pasa en menos de un segundo.

En cuatro líneas // 47

Lo mismo, con y sin candado

  • ·Con HTTP un tercero ve todo. Método, servidor, navegador, cookie y contenido. No es una suposición, está la captura
  • ·Con HTTPS no ve el contenido, porque la clave nunca viajó por la red
  • ·Pero sí ve con quién se habló, cuándo y cuánto
  • ·Y el candado certifica el canal, no al que está del otro lado

Para cerrar // 48

Cinco preguntas que deja la exposición

  • ?Si al final todo se cifra con la clave simétrica, para qué hace falta la asimétrica
  • ?Qué sigue viendo un observador cuando el tráfico ya está cifrado
  • ?Por qué el nombre del sitio no puede viajar cifrado en el primer mensaje
  • ?Qué garantiza el candado del navegador y qué no garantiza
  • ?Si UDP no asegura entrega ni orden, cómo hace HTTP/3 para ser confiable