Diferencia entre HTTP y HTTPS
Cuando abres un sitio web, el navegador y el servidor intercambian datos.
El mecanismo básico usado para este intercambio web es HTTP. Y el mecanismo para realizar comunicación HTTP de forma segura es HTTPS.
HTTPS no es simplemente "un mecanismo para cifrar el contenido de la comunicación". Lo importante es que facilita prevenir escuchas, alteraciones y suplantación por terceros a lo largo de la ruta de comunicación.
Por eso, los siguientes tres puntos son especialmente importantes en HTTPS.
- Hacer que el contenido de la comunicación sea más difícil de leer en tránsito
- Hacer que el contenido de la comunicación sea más difícil de alterar en tránsito
- Facilitar la confirmación de que la parte con la que te comunicas es la parte prevista
En otras palabras, HTTPS es un mecanismo muy importante como medida contra ataques de intermediario.
Sin embargo, HTTPS no es tecnología de anonimización. Aunque se use HTTPS, el acceso sigue llegando al sitio web de destino. Además, la dirección IP de origen, cookies, estado de inicio de sesión, logs de acceso e información similar siguen siendo problemas separados.
Este artículo ordena la diferencia entre HTTP y HTTPS, qué protege HTTPS y qué puede seguir siendo visible incluso con HTTPS.
Qué es HTTP
HTTP es un protocolo de comunicación para intercambiar datos en la web.
Cuando abres un sitio web en un navegador, el navegador envía una solicitud al servidor. Por ejemplo, solicita cosas como "envía el HTML de esta página" o "quiero recuperar esta imagen".
El servidor devuelve datos como HTML, imágenes, CSS y JavaScript en respuesta a esa solicitud.
HTTP es el mecanismo usado para este tipo de intercambio de solicitud y respuesta entre navegador y servidor.
HTTP en sí es fundamental para la comunicación web. Sin embargo, HTTP por sí solo no tiene un mecanismo para proteger el contenido de la comunicación.
Con HTTP, el contenido de la comunicación no está cifrado. Por eso, una tercera parte en la ruta de comunicación puede llegar a leer el contenido, reescribirlo o actuar como contraparte falsa.
| Debilidad de HTTP | Descripción |
|---|---|
| Débil frente a escuchas | Como el contenido de la comunicación no está cifrado, existe el riesgo de que pueda leerse en tránsito |
| Débil frente a alteración | El contenido de la página o el contenido enviado puede reescribirse durante la comunicación |
| Débil frente a suplantación | Es difícil confirmar que la contraparte de comunicación sea realmente el servidor previsto |
Por ejemplo, si envías una contraseña mediante un formulario de inicio de sesión HTTP, esa contraseña puede verse durante la comunicación. También existe el riesgo de que el contenido de una página cargada por HTTP se reescriba en tránsito y se inserte un formulario falso o un script malicioso.
HTTP es la base de la comunicación web, pero tal como está tiene problemas de seguridad importantes.
Qué es HTTPS
HTTPS es un mecanismo para transportar comunicación HTTP dentro de un canal de comunicación seguro.
Con más precisión, HTTPS usa HTTP sobre una capa de comunicación segura llamada TLS. Este artículo no cubre el mecanismo detallado de TLS, pero para entender HTTPS lo más fácil es pensarlo como "proteger el contenido de la comunicación HTTP con TLS".
Los siguientes tres puntos son importantes en HTTPS.
| Elemento | Rol | Descripción |
|---|---|---|
| Cifrado | Hacer que el contenido de la comunicación sea más difícil de leer | Evita que un tercero en tránsito lea contraseñas o contenido de formularios tal cual |
| Detección de alteración | Hacer posible notar reescrituras del contenido de comunicación | Si los datos cambian en tránsito, dificulta aceptarlos como comunicación válida |
| Verificación de la contraparte de comunicación | Confirmar si te comunicas con la parte prevista | Usa certificados y mecanismos similares para confirmar que el servidor de destino es legítimo |
La fortaleza de HTTPS es que combina estos tres elementos.
El cifrado por sí solo no basta. Por ejemplo, aunque el contenido de la comunicación esté cifrado, si una persona atacante puede actuar como servidor falso y hacer que la persona usuaria se conecte a ese servidor falso, no puede llamarse seguro.
Por eso, HTTPS usa mecanismos no solo para proteger el contenido de la comunicación, sino también para confirmar que la parte con la que se comunica es el sitio web previsto.
Diferencia entre HTTP y HTTPS
La diferencia entre HTTP y HTTPS no es solo la diferencia visible de si la URL es http[:]// o https[:]//.
Con HTTP, la comunicación entre navegador y servidor no está protegida. Con HTTPS, se crea un canal de comunicación seguro entre navegador y servidor, y los intercambios HTTP ocurren dentro de él.
| Elemento | HTTP | HTTPS |
|---|---|---|
| Inicio de URL | http[:]// | https[:]// |
| Cifrado del contenido de comunicación | No cifrado | Cifrado |
| Protección contra escuchas del contenido de comunicación | Débil | Fuerte |
| Protección contra alteración del contenido de comunicación | Débil | Alteración más fácil de detectar |
| Verificación de la contraparte de comunicación | Básicamente débil | Usa certificados y mecanismos similares para verificar |
| Resistencia a ataques de intermediario | Baja | Alta |
| Anonimización | No proporcionada | No proporcionada |
Entender HTTPS como "HTTP con cifrado añadido" es un poco insuficiente. Con más precisión, es un mecanismo que envuelve la comunicación HTTP en un canal de comunicación seguro y dificulta escuchas, alteraciones y suplantación.
Qué es un ataque de intermediario
Un ataque de intermediario es un ataque en el que una tercera parte se inserta entre el navegador y el servidor, y luego escucha la comunicación, la reescribe o actúa como contraparte falsa.
Aunque la persona usuaria crea que accede al sitio web real, una persona atacante en medio de la comunicación puede estar viendo el contenido. También puede reescribir el contenido de la comunicación e insertar un formulario falso de inicio de sesión o código malicioso.
HTTP es débil frente a este tipo de ataque.
Con HTTPS, el contenido de la comunicación está cifrado, la alteración se detecta y la contraparte de comunicación se verifica. Esto dificulta que un ataque de intermediario tenga éxito.
| Qué quiere hacer la persona atacante | Con HTTP | Con HTTPS |
|---|---|---|
| Leer el contenido de comunicación | Existe el riesgo de que pueda leerse | Es difícil leerlo como texto claro |
| Robar una contraseña mediante escucha | Riesgo alto | Más difícil de escuchar durante la comunicación |
| Reescribir contenido de página | Existe el riesgo de que pueda reescribirse | La alteración es más fácil de detectar |
| Hacer que la persona usuaria se conecte a un servidor falso | Difícil de notar para la persona usuaria | Más fácil de prevenir mediante verificación de certificado |
| Suplantar la contraparte de comunicación | Relativamente fácil | Difícil sin un certificado legítimo |
Esta es la esencia de HTTPS.
No solo importa que "el contenido de la comunicación esté cifrado", sino también que pueda confirmar "si el contenido fue reescrito en tránsito" y "si la parte con la que se comunica es la parte prevista".
Qué protege HTTPS
Lo principal que HTTPS protege es el contenido de comunicación HTTP que fluye entre navegador y servidor.
Por ejemplo, HTTPS hace que los siguientes tipos de información sean más difíciles de leer durante la comunicación.
| Elemento protegido | Descripción |
|---|---|
| Contraseña | Una contraseña introducida en un formulario de inicio de sesión se vuelve más difícil de leer en tránsito |
| Contenido introducido en formularios | Nombres, direcciones de correo, contenido de consultas y similares se vuelven más difíciles de leer en tránsito |
| Contenido de página | El contenido mostrado de la página se vuelve más difícil de leer o alterar en tránsito |
| Contenido de solicitud | El contenido enviado desde el navegador al servidor es más fácil de proteger |
| Contenido de respuesta | El contenido devuelto del servidor al navegador es más fácil de proteger |
| Las cookies enviadas y recibidas durante la comunicación se vuelven más difíciles de escuchar en tránsito |
Las contraseñas y cookies son especialmente importantes.
Las cookies pueden usarse para mantener estado de inicio de sesión o identificar personas usuarias. Si una cookie se roba durante la comunicación, en algunos casos existe el riesgo de que alguien pueda acceder al sitio suplantando a la persona usuaria.
Con HTTPS, las cookies también se envían dentro del canal de comunicación cifrado, por lo que se vuelven más difíciles de escuchar durante la comunicación.
Sin embargo, usar HTTPS no resuelve todos los problemas relacionados con cookies. Cómo se almacenan las cookies, la configuración del lado del sitio, el entorno del navegador, la seguridad del dispositivo y cuestiones similares siguen siendo problemas separados.
Incluso con HTTPS, el contenido llega al servidor de destino
HTTPS protege el contenido frente a terceros en tránsito. No es un mecanismo para ocultar el contenido al sitio web de destino.
Por ejemplo, si introduces una contraseña en un formulario de inicio de sesión HTTPS, la contraseña se vuelve más difícil de leer en tránsito. Sin embargo, esa información llega al servidor del sitio web que realiza el proceso de inicio de sesión.
Esto es natural. Para que el servidor realice el procesamiento de inicio de sesión, debe recibir la información enviada.
El alcance protegido por HTTPS es principalmente la ruta de comunicación.
| Objetivo | Rol de HTTPS | Descripción |
|---|---|---|
| Terceros en tránsito | Defensa fuerte contra ellos | Dificulta escuchas, alteraciones y suplantación |
| Servidor de destino | Contraparte de comunicación | El contenido de la solicitud llega al servidor |
| Dirección IP de la persona usuaria | No se oculta directamente | HTTPS por sí solo no oculta la dirección IP de origen |
| Cuenta con sesión iniciada | No se oculta directamente | Las acciones con sesión iniciada se conectan con la cuenta |
En otras palabras, HTTPS es "un mecanismo para prevenir escuchas y alteraciones en medio". No es "un mecanismo para ocultar tu información al destino".
Qué puede seguir siendo visible incluso con HTTPS
Aunque se use HTTPS, no toda la información queda oculta.
El contenido de la comunicación está protegido. Sin embargo, la información sobre el origen del acceso, la información sobre el destino y la información recibida por el lado del sitio web son asuntos separados.
| Información | Parte que puede verla | Descripción |
|---|---|---|
| Dirección IP de origen | Servidor de destino y partes similares | El lado del sitio web puede entender qué dirección IP accedió |
| Hora de acceso | Servidor de destino y partes similares | Cuándo ocurrió el acceso puede registrarse como log |
| Contenido de la solicitud | Servidor de destino | Incluso con HTTPS, el contenido llega al servidor de destino |
| Cookie | Sitio web de destino | Puede usarse para identificar a la misma persona usuaria o navegador |
| Estado de inicio de sesión | Sitio web de destino | Si hay sesión iniciada, las acciones se conectan con la cuenta |
| Logs de acceso | Sitio web de destino | Puede registrarse qué páginas se vieron y qué operaciones se realizaron |
| Información del navegador | Sitio web de destino | Puede enviarse información como User-Agent |
| Información sobre el destino | Depende del entorno de comunicación | Aunque el contenido esté cifrado, en algunos casos puede inferirse a qué sitio se conecta |
El punto importante aquí es separar "contenido de la comunicación" del "hecho de la comunicación".
HTTPS protege el contenido de la comunicación. Sin embargo, no oculta automáticamente información como desde qué dirección IP llegó el acceso, cuándo ocurrió el acceso o qué cuenta tiene sesión iniciada.
Además, con HTTPS, la URL completa no siempre es plenamente visible para terceros. Las rutas de página, el contenido de formularios y datos similares están protegidos como contenido de comunicación. En cambio, la información relacionada con el nombre de dominio de destino puede ser visible según el entorno de comunicación.
Por esta razón, usar HTTPS no significa que desaparezcan los rastros de acceso ni la información identificativa.
HTTPS no es tecnología de anonimización
HTTPS no es tecnología de anonimización.
Los propósitos principales de HTTPS son los siguientes tres puntos.
- Hacer que el contenido de la comunicación sea más difícil de leer en tránsito
- Hacer que el contenido de la comunicación sea más difícil de alterar en tránsito
- Facilitar la confirmación de que la contraparte de comunicación es la parte prevista
Esto es distinto de la anonimización.
Al pensar en anonimato, es necesario separar "si el contenido de la comunicación está protegido" de "si la persona que accedió queda oculta".
HTTPS se relaciona fuertemente con lo primero. Sin embargo, no resuelve directamente lo segundo.
| Perspectiva | HTTPS puede resolverlo? | Descripción |
|---|---|---|
| Protección contra escuchas del contenido de comunicación | Fuerte en la ruta de comunicación | Hace que el contenido sea más difícil de leer en tránsito |
| Protección contra alteración del contenido de comunicación | Fuerte en la ruta de comunicación | Hace que el contenido sea más difícil de reescribir en tránsito |
| Verificación de contraparte de comunicación | Sí | Usa certificados y mecanismos similares para verificar el destino |
| Ocultar la dirección IP | No | HTTPS por sí solo no oculta la dirección IP de origen |
| Identificación mediante cookies | No | La identificación del lado del sitio web sigue siendo un asunto separado |
| Ocultar estado de inicio de sesión | No | Las acciones con sesión iniciada se conectan con la cuenta |
| Eliminación de logs de acceso | No | El almacenamiento de logs del lado del sitio web es separado de HTTPS |
La idea de que "HTTPS significa anonimato" es incorrecta.
HTTPS es una tecnología para hacer la comunicación más segura. No es una tecnología para crear anonimato.
Perspectivas para entender HTTPS correctamente
Para entender HTTPS correctamente, hay que separar a quién se protege, qué se protege y frente a quién.
El objetivo principal frente al que protege HTTPS son terceros en la ruta de comunicación.
Por ejemplo, facilita prevenir que una tercera parte en el mismo Wi-Fi, equipos en la ruta de comunicación o un intermediario malicioso escuche el contenido de la comunicación, lo altere o actúe como contraparte falsa.
En cambio, el sitio web de destino es la contraparte final de la comunicación. Por esa razón, el contenido que envías llega al lado del sitio web.
| Parte | Qué facilita prevenir HTTPS | Qué no puede prevenir HTTPS |
|---|---|---|
| Tercero en tránsito | Escuchas, alteración, suplantación | Compromiso del propio dispositivo |
| Sitio web de destino | Fuga durante la comunicación | Registro de logs del lado del sitio e identificación de cuenta |
| Personas usuarias en el mismo Wi-Fi | Escucha del contenido de comunicación | La inferencia de destinos de acceso no necesariamente desaparece por completo |
| Servidor falso | Más fácil de detectar sin un certificado legítimo | Riesgo si la persona usuaria ignora advertencias |
HTTPS es un mecanismo muy potente, pero no es universal.
Por ejemplo, si el navegador muestra una advertencia de certificado y la persona usuaria la ignora y continúa, la seguridad proporcionada por HTTPS cae de forma significativa. Además, si el propio dispositivo está infectado con malware, el contenido introducido puede robarse del lado del dispositivo aunque se use HTTPS para la comunicación.
HTTPS proporciona una defensa fuerte frente a escuchas, alteración y suplantación en la red. Sin embargo, seguridad del dispositivo, gestión del lado del sitio web, manejo de cuentas, cookies, logs y cuestiones similares deben considerarse por separado.
Resumen
HTTP es el mecanismo básico para intercambiar datos en la web. Sin embargo, con HTTP solo, el contenido de la comunicación no está cifrado, y existe riesgo de escuchas o alteración durante la comunicación.
HTTPS es un mecanismo para realizar comunicación HTTP dentro de un canal de comunicación seguro.
Los roles importantes de HTTPS son los siguientes tres puntos.
- Hacer que el contenido de la comunicación sea más difícil de leer en tránsito
- Hacer que el contenido de la comunicación sea más difícil de alterar en tránsito
- Facilitar la confirmación de que la parte con la que te comunicas es la parte prevista
Por eso, HTTPS es muy importante como medida contra ataques de intermediario.
Sin embargo, HTTPS no es tecnología de anonimización. Aunque se use HTTPS, las solicitudes llegan al sitio web de destino. Además, la dirección IP de origen, cookies, estado de inicio de sesión, logs de acceso e información similar siguen siendo problemas separados.
HTTPS es una tecnología para hacer la comunicación más segura. Es especialmente importante para prevenir escuchas, alteración y suplantación en la ruta de comunicación.
Sin embargo, no es una tecnología para ocultar quién accedió.
Al pensar en anonimato, hay que separar el alcance que HTTPS protege del alcance que HTTPS no protege. HTTPS es una premisa importante, pero HTTPS por sí solo no establece anonimato.