Cómo funciona y por qué es importante el uso de HTTPS

Clase 40 de 43Curso de Express.js 2018

El Protocolo seguro de transferencia de hipertexto (HTTPS) es un protocolo HTTP que funciona en el puerto 443 y utiliza un cifrado basado en SSL (Secure Sockets Layer) / TLS (Transmission Layer security) con el fin de crear un canal de comunicación seguro entre el cliente y el servidor.

Por qué usar HTTPS

Una de las razones por la cual siempre debemos usar sitios con HTTPS es que sin este cualquier individuo podría efectuar ataques conocidos como man-in-the-middle o eavesdropping y obtener nuestro usuario y contraseña en el momento en que intentamos acceder a este servicio que no tiene HTTPS establecido.

Cómo funciona

  1. El cliente envía un mensaje al servidor y este responde con su certificado público.
  2. El cliente comprueba que este certificado sea valido y toma la llave pública.
  3. El cliente genera una cadena llamada pre-master secret y la encripta usando la llave publica del servidor y se lo envía.
  4. El servidor usa su llave privada para comprobar el pre-master secret.
  5. En ese momento tanto el cliente como el servidor usan el pre-master secret para generar un master secret que es usado como una llave simétrica.
  6. Teniendo este par de llaves ya se pueden enviar mensajes seguros entre ellos.

Cómo habilitar HTTPS en nuestro servidor

Dependiendo el servicio de hosting que estemos usando puede ofrecernos o no una instalación de certificados de seguridad SSL/TLS que pueden tener algún costo. Sin embargo existen servicios como Let's Encrypt que permiten la instalación de este certificado completamente gratis. Servicios como Now y Heroku ofrecen HTTPS por defecto.

Más información: