Sobes.tech
Junior

¿Cómo funciona HTTPS?

sobes.tech AI

Respuesta de la IA

HTTPS (Protocolo Seguro de Transferencia de Hipertexto) es un protocolo que garantiza la transmisión segura de datos entre el cliente (por ejemplo, un navegador) y el servidor. Se basa en HTTP, pero utiliza cifrado para proteger la información transmitida.

El funcionamiento de HTTPS se basa en el uso del protocolo TLS (Seguridad de la Capa de Transporte), que anteriormente se llamaba SSL (Capa de Conexiones Seguras). TLS/SSL proporciona tres aspectos clave de seguridad:

  1. Cifrado: Los datos entre el cliente y el servidor se cifran, lo que los hace ilegibles para observadores externos.
  2. Integridad de los datos: Se verifica que los datos no hayan sido modificados durante la transmisión.
  3. Autenticación: El servidor confirma su autenticidad al cliente.

El proceso de establecimiento de una conexión HTTPS incluye varias etapas, llamadas "TLS/SSL Handshake":

  1. Client Hello: El cliente envía al servidor un "Client Hello" que contiene:
    • La versión de TLS que soporta.
    • La lista de algoritmos de cifrado soportados (cipher suites).
    • Un número aleatorio.
  2. Server Hello: El servidor responde con un "Server Hello", eligiendo entre las opciones propuestas por el cliente:
    • La versión de TLS.
    • Uno de los algoritmos de cifrado.
    • Un número aleatorio.
    • El certificado del servidor.
  3. Certificate: El cliente recibe y verifica la autenticidad del certificado del servidor:
    • Verifica la firma digital del certificado usando la clave pública de la autoridad certificadora (CA).
    • Verifica la validez del certificado.
    • Verifica que el nombre de dominio en el certificado coincida con el que se está solicitando.
  4. Client Key Exchange: El cliente genera un pre-máster secreto, lo cifra con la clave pública del certificado del servidor y lo envía al servidor.
  5. Change Cipher Spec (Client): El cliente informa al servidor que está listo para comenzar a intercambiar datos cifrados.
  6. Finished (Client): El cliente envía un mensaje cifrado con un hash de todos los mensajes anteriores del Handshake para verificar la integridad.
  7. Change Cipher Spec (Server): El servidor descifra el pre-máster secreto usando su clave privada y genera claves simétricas para cifrar la sesión. Luego, informa al cliente que está listo para intercambiar datos cifrados.
  8. Finished (Server): El servidor envía un mensaje cifrado con un hash de todos los mensajes anteriores del Handshake.
  9. Transferencia de datos cifrada: Tras completar con éxito el Handshake, el cliente y el servidor usan las claves simétricas generadas para cifrar todos los datos posteriores.

De esta manera, HTTPS proporciona un canal de comunicación seguro, haciendo que la navegación web sea más segura.