Páginas web seguras: ¿qué es el HTTPS?

Páginas web seguras: ¿qué es el HTTPS?

Hace tiempo, cuando hablábamos de la seguridad del usuario en internet, comentábamos la seguridad en la navegación gracias a la implementación del protocolo HTTPS. Hoy vamos a tratar de explicar más en detalle en qué consiste, cómo funciona y cuál es su base.

Protocolo: HTTP y HTTPS

La navegación en páginas web se basa en los protocolos HTTP (Hypertext Transfer Protocol) y HTTPS (Hypertext Transfer Protocol Secure). Sin entrar en detalle en los protocolos, lo importante es que especifican el lenguaje en el que los navegadores (Google Chrome, Internet Explorer, Mozilla Firefox, Apple Safari, …), servidores de páginas web (hostings) e intermediarios (routers) se entienden para que nosotros podamos ver páginas web de una manera cómoda. La diferencia entre ambos es la “S” final, ya que el HTTPS implementa el protocolo SSL que da seguridad al HTTP.

SSL: ¿qué aporta?

En HTTP la navegación tenía dos carencias que SSL en HTTPS soluciona:

  1. Encriptación: en HTTP la comunicación se realiza en lo que se denomina texto plano, es decir, sin encriptar. Por lo tanto, cualquier persona que con unos conocimientos suficientes de informática intercepte esa comunicación será capaz de ver dicha información. Esto puede ser especialmente importante en casos de información sensible (raza, religión, etc) así como en el envío de contraseñas, información de tarjetas de crédito, etc. HTTPS hace que toda la información se envíe encriptada. Por lo tanto, si enviamos nuestra contraseña “micontraseña” en un formulario web, con HTTP probablemente viajará como “micontraseña” mientras que con HTTPS irá como algo del estilo “FajdfeVcsEJAsncQQi3d=”. De esta segunda forma, aunque nuestra comunicación sea interceptada, nadie conocerá nuestra contraseña original.
  2. Identidad: con HTTP no tenemos la certeza de que el destinatario de la comunicación, por ejemplo una plataforma de pago, sea realmente quien dice ser y no un suplantador de identidad. Con HTTPS esto se soluciona gracias a que la conversación, como decíamos en el punto anterior va encriptada. Lo interesante de esta encriptación es que se realiza de una forma que sólo el destinatario original es capaz de desencriptar correctamente la información, por lo que aunque alguien intercepte la comunicación o intente suplantar la identidad del destinatario, no será capaz de desencriptar el mensaje.

Algoritmos de encriptación

A la hora de encriptar un mensaje en la comunicación entre clientes (navegadores web, por ejemplo) y servidores (de páginas web, por ejemplo) para disfrutar de las ventajas de SSL que comentamos en el punto anterior, suelen utilizarse al menos dos algoritmos de encriptación: primero uno asimétrico y luego uno simétrico.
Ambos tipos de encriptación poseen una fuerte base matemática y su seguridad radica en la longitud de los números primos escogidos en la generación de claves (normalmente de longitudes de 1024 o 2048 bits, es decir, número muy grandes).

  1. Algoritmos asimétricos: utilizan dos claves, una pública para encriptar mensajes y otra privada para desencriptarlo. La “magia” en ese caso está en que sólo el destinatario real conoce la clave privada y sólo el puede desencriptar el mensaje enviado. La clave pública con la que se encriptan los mensajes es, en cambio y como su nombre indica, pública, por lo que cualquiera puede conocerla.
  2. ssl_handshake

  3. Algoritmos simétricos: utilizan la misma clave (secreta) para encriptar y desencriptar mensajes.

Certificadores

Decíamos que HTTPS utiliza SSL y que este utiliza algoritmos de encriptación asimétrica con clave pública y privada. Pero, ¿cómo sabemos que la clave pública del servidor web destino es la correcta y así asegurarnos de la identidad de dicho servidor? Para eso confiamos en entidades certificadoras intermediarias, que nos dicen si aquel con el que intentamos comunicarnos es quien dice ser.
Básicamente estos certificadores comprueban que una empresa que solicita un certificado SSL es quien dice ser, y se le da un certificado que él debe guardar. Cuando un cliente inicia una comunicación con un servidor, el servidor le envía su clave pública. El cliente, una vez recibida dicha clave, le pregunta al certificador si esa clave es correcta y pertenece a quien dice que le pertenece. Si esto es así, la comunicación continúa. En otro caso, la comunicación se para pues no es considerada segura.

Vulnerabilidades

Es importante resaltar que HTTPS proporciona comunicaciones seguras, pero no quiere decir que sea infalible en otros aspectos. De esta forma es necesario resaltar:

  • Ataques man-in-the-middle: HTTPS sí que nos protege de estos ataques. Consisten en la suplantación de la identidad del servidor de destino, diciéndonos que son aquellos con los que nos intentamos comunicar, cuando en realidad no lo son. Gracias al sistema de clave pública/privada y los certificadores, sí estamos protegidos contra ellos.
  • Intercepción de intermediarios (routers): HTTPS sí nos protege contra estos ataques. Al estar la comunicación encriptada y únicamente poder ser desencriptada por el servidor destino, nos aseguramos que cualquier intermediario que “vea” dicha conversación la verá encriptada y por lo tanto no podrá saber qué se está comunicando.
  • Ataques en el cliente: HTTPS no nos protege contra estos ataques. Si alguien malicioso tiene acceso a nuestro equipo podrá instalar un KeyLogger (herramientas que graban todo lo que escribimos, incluyendo contraseñas en claro). Además, también podría modificar nuestras DNS’s y por lo tanto hacer que confiemos en certificadores corruptos que echarán por la borda la cadena de confianza de los certificadores haciendo que la comunicación no sea segura.
  • Claves comprometidas: HTTPS no nos protege contra estos ataques. Si el servidor web ve comprometida su clave privada (es decir, alguien se la roba, por ejemplo) un intermediario podrá suplantar su identidad.

Conclusiones

HTTPS nos proporciona seguridad en la comunicación web gracias al SSL sobre HTTP, asegurándonos (salvando las vulnerabilidades mencionadas) que el destinatario es quien dice ser y además que sólo él verá correctamente los mensajes intercambiados. Esto se consigue gracias al apoyo de entidades certificadores y algoritmos con claves públicas y privadas con fuerte base matemática.
Recordar que para la implantación de HTTPS o cualquier duda relacionada, en Cleventy estamos disponibles para tu ayuda.

Fuente de información:

  • SSL: 1, 2, 3
  • Certificados: 4, 5
  • Encriptación: 6, 7, 8, 9, 10
  • Imagen: 11

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

« »