El wifi gratis de la cafetería
Lucía trabaja de comercial y viaja mucho. En la estación de Atocha se conecta al wifi gratis y entra en el panel de pedidos de su empresa.
Cualquiera en esa red puede ver pasar sus mensajes. La pregunta es qué puede leer. La respuesta depende de una sola letra en la barra de direcciones: la s de https.
Al final de esta lección
Nota
Puedo explicar qué protege HTTPS.
Palabras clave
| Palabra | Qué significa |
|---|---|
| HTTP | las reglas para pedir y servir páginas web |
| Petición | el mensaje que el cliente envía al servidor |
| Cifrar | convertir datos en algo ilegible sin la clave |
| TLS | la capa que cifra la conexión |
| HTTPS | HTTP dentro de una conexión TLS |
| Certificado | un documento digital que prueba de quién es un nombre |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
HTTP viaja como texto legible
Una petición HTTP es texto. La primera línea dice qué quieres: por ejemplo GET /pedidos. Después van unas líneas de cabecera y, a veces, unos datos.
Con HTTP sin cifrar, ese texto pasa tal cual por el wifi, el router y cada red del camino. Quien mire puede leer la página, la cookie de sesión y la contraseña.
Prueba: lee una petición como un espía
# Así viaja una petición HTTP sin cifrar: texto que cualquiera en el camino puede leer
request = """POST /login HTTP/1.1
Host: tienda.example.es
Content-Type: application/x-www-form-urlencoded
user=lucia&password=Verano2026"""
lines = request.split("\n")
print("Primera línea:", lines[0])
print("Servidor:", lines[1])
print("Lo último que se envía:", lines[-1])
# Con HTTPS, quien espía solo vería bytes cifrados.
# Cambia la contraseña y pulsa Ejecutar: también se vería.
TLS protege el camino de tres formas
HTTPS mete la conversación HTTP dentro de una conexión TLS. Eso da tres protecciones.
Primera, el contenido va cifrado: nadie en el camino lo lee. Segunda, nadie puede cambiarlo sin que se note. Tercera, el certificado prueba que hablas con el dueño del nombre.
Quien espía aún ve la IP del servidor y el nombre de la web. No ve la página, ni las cookies, ni lo que escribes.
Ejemplo: lo que ve alguien en el wifi
| Dato | Con HTTP | Con HTTPS |
|---|---|---|
| IP del servidor | Se ve | Se ve |
| Nombre de la web | Se ve | Se ve |
| Página pedida, como /pedidos/2041 | Se ve | No se ve |
| Cookie de sesión | Se ve | No se ve |
| Contraseña del formulario | Se ve | No se ve |
| Cambiar un precio por el camino | Se puede | Se nota y la conexión se corta |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
El certificado prueba el nombre
Al conectar, el servidor enseña su certificado. Lo firma una autoridad en la que confía tu navegador.
El navegador comprueba tres cosas. El nombre del certificado coincide con la web. La fecha no ha caducado. La firma es de una autoridad de confianza.
Si algo falla, sale un aviso rojo. En soporte, un certificado caducado es una de las caídas más comunes y más fáciles de evitar.
Así se ve con curl -v
$ curl -v https://tienda.example.es/
* Trying 203.0.113.40:443...
* Connected to tienda.example.es (203.0.113.40) port 443
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* Server certificate:
* subject: CN=tienda.example.es
* expire date: Mar 14 23:59:59 2027 GMT
* subjectAltName: host "tienda.example.es" matched cert's "tienda.example.es"
* issuer: C=US; O=Let's Encrypt; CN=R11
* SSL certificate verify ok.
> GET / HTTP/1.1
> Host: tienda.example.es
< HTTP/1.1 200 OK
Un error frecuente
Advertencia
Mucha gente cree que el candado significa que la web es segura y honrada. El candado solo dice que la conexión va cifrada y que el nombre es de quien lo usa. Una web falsa también puede tener candado si el estafador registró su propio nombre.