0Pricing
Cryptology Academy · Lección

Riesgos de degradación de HTTP y contenido mixto

Comprenda cómo los atacantes explotan la alternativa HTTP y por qué el contenido mixto rompe las garantías de seguridad.

Riesgos de degradación de HTTP y contenido mixto es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

HTTP Strict Transport Security

El encabezado HTTP Strict Transport Security (HSTS) indica a los navegadores que se conecten a un sitio únicamente mediante HTTPS durante un periodo determinado. Una vez recibido, el navegador rechaza las conexiones HTTP y actualiza automáticamente las URL http:// a https://.

Un encabezado HSTS habitual: "Strict-Transport-Security: max-age=31536000; includeSubDomains; preload". El valor max-age se expresa en segundos (31536000 = 1 año). Una vez almacenado en la caché, el navegador impone el uso de HTTPS durante un año sin intervención del servidor.

max-age e includeSubDomains de HSTS

El parámetro max-age establece durante cuánto tiempo el navegador debe imponer conexiones exclusivamente mediante HTTPS, en segundos. Para los sitios en producción, se recomiendan valores de al menos un año (31536000).

La directiva includeSubDomains extiende la aplicación de HSTS a todos los subdominios. Esto impide ataques en los que un atacante degrada la conexión de un subdominio a HTTP y la utiliza para robar cookies establecidas sin la marca Secure en el dominio principal.

La lista de precarga de HSTS

Los navegadores incluyen una lista codificada de dominios que siempre requieren HTTPS, incluso durante la primera visita. Esta lista, mantenida en hstspreload.org, incluye miles de sitios web importantes.

La precarga elimina la vulnerabilidad de la primera visita: sin ella, un visitante nuevo podría ser interceptado antes de recibir el encabezado HSTS. Los sitios precargados solo utilizan HTTPS desde la primera solicitud, independientemente del estado de la caché de HSTS.

Ataque de SSL stripping

El SSL stripping, presentado por Moxie Marlinspike en Black Hat 2009, es un ataque MITM que degrada las conexiones HTTPS a HTTP. El atacante intercepta la solicitud HTTP inicial del usuario, realiza solicitudes HTTPS al servidor real en nombre del usuario y reenvía el contenido al usuario mediante HTTP.

La víctima ve el contenido con normalidad, pero a través de HTTP. Las credenciales que introduzca se envían al atacante. Antes de HSTS, este ataque era muy eficaz porque los usuarios no advertían la ausencia del candado.

HSTS impide el SSL stripping

HSTS impide el SSL stripping porque el navegador rechaza las conexiones HTTP a dominios incluidos en HSTS. Aunque un atacante intente servir una página mediante HTTP, el navegador simplemente se niega a conectarse y muestra un error.

La aplicación de HSTS por parte del navegador ocurre antes de cualquier solicitud de red, por lo que el atacante no puede interferir. La única vulnerabilidad restante es la primera visita, antes de recibir HSTS; la precarga la elimina.

Contenido mixto activo y pasivo

El contenido mixto aparece cuando una página HTTPS carga recursos mediante HTTP. El contenido mixto pasivo incluye imágenes, audio y vídeo cargados mediante HTTP. Estos recursos no pueden modificar directamente la página, pero pueden revelar información del usuario a través de encabezados HTTP y permitir el rastreo.

El contenido mixto activo incluye scripts, hojas de estilo, iframes y XMLHttpRequests cargados mediante HTTP. Un script HTTP puede comprometer por completo la seguridad de la página HTTPS, ya que tiene acceso total al DOM y puede leer cookies y datos de formularios.

Bloqueo de scripts de contenido mixto por el navegador

Los navegadores modernos bloquean de forma predeterminada el contenido mixto activo (scripts, hojas de estilo e iframes mediante HTTP) cuando la página contenedora utiliza HTTPS. Se muestra un error en la consola y el recurso no se carga.

A partir de Chrome 81 (2020), los navegadores comenzaron a actualizar automáticamente a HTTPS el contenido mixto pasivo. Si existe la versión HTTPS, se carga. Si no existe, el recurso se bloquea.

Contenido mixto en las herramientas de desarrollo del navegador

La consola de desarrollo del navegador muestra advertencias y errores de contenido mixto. En Chrome, abra DevTools, vaya a la pestaña Console y filtre por "Mixed Content". Cada recurso bloqueado muestra la URL no segura que debe actualizarse.

El panel Security de DevTools muestra un resumen completo de la seguridad: detalles del certificado, información de la conexión y una lista de todos los recursos no seguros de la página.

Directiva CSP upgrade-insecure-requests

La directiva de Content Security Policy (CSP) "upgrade-insecure-requests" indica a los navegadores que actualicen automáticamente a HTTPS todas las solicitudes HTTP de la página. Esto permite gestionar contenido heredado con URL HTTP codificadas de forma fija.

A diferencia del bloqueo del contenido mixto, upgrade-insecure-requests intenta obtener primero la versión HTTPS. Resulta útil durante la migración de HTTP a HTTPS, cuando actualizar todas las URL incrustadas en contenido heredado no resulta práctico.

Inyección de anuncios del ISP en HTTP

Sin HTTPS, los ISP pueden inyectar contenido en las respuestas HTTP. Se ha descubierto que varios ISP inyectaban anuncios en páginas web que no los incluían, añadían píxeles de seguimiento o insertaban páginas de advertencia cuando los usuarios se acercaban a su límite de datos.

Esta forma de inyección de contenido es imposible en páginas HTTPS porque la respuesta está autenticada y cifrada. Cualquier modificación haría fallar la verificación del MAC de TLS, lo que produciría un error de conexión en lugar de servir contenido modificado.

Por qué la primera visita mediante HTTP sigue siendo arriesgada

Antes de que un navegador haya recibido un encabezado HSTS para un dominio, la primera visita mediante HTTP es vulnerable. Un atacante puede interceptar esta solicitud inicial y realizar un SSL stripping sin provocar ninguna advertencia del navegador.

Esta vulnerabilidad de «confianza en el primer uso» explica la existencia de la lista de precarga de HSTS. Enviar un sitio a la lista de precarga garantiza que los navegadores impongan HTTPS para ese dominio desde la primera solicitud, cerrando por completo la ventana de vulnerabilidad de la primera visita.

Cuestionario sobre HSTS

Compruebe sus conocimientos sobre HTTP Strict Transport Security.

Conclusiones clave: HSTS y contenido mixto

HSTS indica a los navegadores que impongan conexiones exclusivamente mediante HTTPS para un dominio durante un periodo determinado. La lista de precarga extiende la protección a las primeras visitas al incluir las políticas HSTS de forma codificada en los navegadores.

El SSL stripping (Moxie Marlinspike, 2009) degrada HTTPS a HTTP; HSTS lo impide. Los navegadores bloquean el contenido mixto activo (scripts HTTP en páginas HTTPS). La directiva CSP upgrade-insecure-requests automatiza la migración de HTTP a HTTPS para contenido heredado.

Preguntas frecuentes

¿La lección «Riesgos de degradación de HTTP y contenido mixto» es gratis?

Sí — el texto completo de «Riesgos de degradación de HTTP y contenido mixto» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Riesgos de degradación de HTTP y contenido mixto»?

Comprenda cómo los atacantes explotan la alternativa HTTP y por qué el contenido mixto rompe las garantías de seguridad. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Riesgos de degradación de HTTP y contenido mixto»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. El icono del candado: qué significa realmente
  2. Cómo obtienen certificados SSL los sitios web
  3. Advertencias de certificados TLS y qué hacer
  4. Riesgos de degradación de HTTP y contenido mixto
← Volver a Cryptology Academy