Cómo funcionan las redes (sin el póster OSI).
IP, TCP, DNS, TLS — recorridos a través de una sola petición curl. Qué aporta cada capa y en cuáles puede mentir un atacante.
La introducción estándar a las redes es una tarta de capas — siete de ellas, en el modelo OSI —, seguida de un póster en la pared y un examen. Vamos a saltarnos el póster. La forma más útil de aprender qué está pasando es seguir una sola petición curl y detenernos a explicar todo lo que le ocurre.
La petición
Esto es lo que escribes:
$ curl -v https://example.com/
Desde el momento en que pulsas Enter hasta que ves el HTML, los bytes pasan por cinco conversaciones. Cada una añade algo, y en cada una un atacante puede hacer algo hostil.
1. DNS — convertir un nombre en una dirección
Tu ordenador no sabe qué es example.com. Se lo pregunta a un resolver (a menudo tu router; el router suele preguntárselo a tu proveedor de internet). El resolver, a su vez, le pregunta a uno de los servidores raíz, luego al servidor de .com y luego al propio servidor de example.com. La respuesta es una dirección IP, normalmente 4 bytes para IPv4 o 16 bytes para IPv6.
$ dig +short example.com
93.184.216.34
Lo que un atacante puede hacer aquí: si se sitúa entre tú y el resolver, puede mentir y enviarte a su servidor en lugar del correcto. Esto es el "DNS spoofing". DNS-over-HTTPS (DoH) y DNSSEC existen para ponérselo más difícil.
2. TCP — abrir una tubería fiable
Ahora tu ordenador ya tiene una IP. Abre una conexión TCP al puerto 443 de esa IP. TCP es la capa que convierte el caos con pérdidas y sin orden de internet en algo que se siente como una línea telefónica: los bytes llegan, en orden, exactamente una vez.
El handshake son tres paquetes, que suelen representarse como SYN, SYN-ACK, ACK.
tú → ellos SYN seq=x
ellos → tú SYN-ACK seq=y ack=x+1
tú → ellos ACK ack=y+1
Una vez hecho esto, ambos extremos tienen una sesión y pueden transmitir bytes.
Lo que un atacante puede hacer aquí: el clásico SYN flood consiste en enviar millones de SYN sin responder nunca, agotando la tabla de conexiones del servidor. En una LAN, el ARP spoofing redirige la capa IP de debajo para que la conexión TCP termine en la máquina equivocada — un auténtico ataque de "máquina en el medio".
3. TLS — hacer la tubería confidencial
Has usado https://, así que TCP por sí solo no basta. TLS ahora se superpone encima y hace tres cosas en aproximadamente una ida y vuelta:
- Autenticación: el servidor demuestra que es example.com presentando un certificado firmado por una CA en la que tu ordenador ya confía.
- Intercambio de claves: los dos extremos acuerdan una clave simétrica compartida mediante un handshake de clave pública (ECDHE). Tu ordenador nunca envía la clave directamente — la deriva de un intercambio público que un fisgón no puede revertir.
- Selección de cifrado: eligen un cifrado simétrico (AES-GCM o ChaCha20-Poly1305) y empiezan a cifrar y autenticar cada registro.
Si quieres ver esto en acción, ejecuta openssl s_client -connect example.com:443 -showcerts. La cadena que ves es la ruta de confianza que tu navegador está validando antes de enviar un solo byte de HTTP.
Lo que un atacante puede hacer aquí: casi nada — de eso se trata. Pero si te ha engañado en la capa de DNS para que resuelvas hacia su servidor, y de algún modo ha conseguido un certificado válido para example.com (algo raro), puede leerlo todo. Por eso existen los registros de transparencia de certificados.
4. HTTP — la aplicación habla
Dentro de la tubería cifrada, tu ordenador envía ahora una petición HTTP. Todo es texto:
GET / HTTP/1.1
Host: example.com
User-Agent: curl/8.0
Accept: */*
El servidor responde con una línea de estado, cabeceras, una línea en blanco y el cuerpo. HTTP/2 y HTTP/3 estructuran esto de forma distinta por rendimiento, pero la semántica es la misma.
Lo que un atacante puede hacer aquí: casi todo lo interesante en seguridad web ocurre en esta capa. Inyección de cabeceras, smuggling, fijación de sesión, CSRF, todo el OWASP Top 10 — todos viven en la petición y en la respuesta, no en TCP ni en TLS.
5. La respuesta, de vuelta hasta el final
La respuesta vuelve a través de TLS (cifrada y autenticada), a través de TCP (dividida en segmentos, confirmada, reensamblada), a través de IP (enrutada salto a salto) y finalmente se entrega a curl, que la imprime.
El modelo mental
Si te quedas con un solo diagrama en la cabeza, que sea este:
| Capa | Identifica quién | En qué puede mentir un atacante |
|---|---|---|
| HTTP | Por URL / cookie / cabecera | Falsificar peticiones, robar tokens |
| TLS | Por certificado | Casi nada si los certificados son honestos |
| TCP | Por puerto | Agotar el estado, secuestrar sesiones |
| IP | Por dirección | Falsear el origen, envenenar por ARP a los vecinos |
| DNS | Por nombre | Enviarte a la IP equivocada |
Cada ataque del que leerás alguna vez vive en una de estas filas. Una vez que sabes colocar un ataque nuevo en la tabla, ya conoces la mitad de cómo defenderte de él.