El Apretón de Manos

Cuando comenzaste a leer esta historieta, tu navegador puso un candado verde en la barra de direcciones.

¿Cómo fue que sucedió eso?

Tu navegador se comunicó con nuestro servidor, donde está hospedada esta historieta, y ambos establecieron una conexión segura para transmitirse mensajes.

Pero primero, tuvieron que ponerse de acuerdo en cómo comunicarse en forma segura.

Si esta negociación no resulta, tu navegador te avisa mostrando un error o advertencia.
Si se llega a un acuerdo, tu navegador está feliz de indicarlo, poniendo un candado verde en la barra de direcciones.

Este proceso, la negociación entre un navegador y un servidor, se le llama 'el apretón de manos'.

Sucede muy rápido. Te mostraremos cómo funciona.

Navegapájaro será tu navegador.
Compuperro será nuestro servidor.

¡Vamos chicos!

¿Listos? Acá vemos cómo funciona el 'apretón de manos' en cámara lenta.

Palmas con la izquierda
Palmas con la derecha
Teléfono vertical
Teléfono rota a horizontal
Cosquillitas

¡Listo!

Hagámoslo de nuevo, pero más rápido.

Palma izquierda - Palma derecha - Teléfono - Teléfono rotado - Cosquillas.

¡D-E N-U-E-V-O!

¡Paren!

Analicémoslo de nuevo. Paso a paso.

Paso Uno: Palma izquierda. Alias 'Hola del Cliente' ('Client Hello').

Envío a Compuperro una lista de versiones de SSL/TLS y de algoritmos de cifrado con los que puedo trabajar. Hoy en día prefiero TLS 1.3, así que también envío un key_share.

Una palabra elegante para la lista de algoritmos de cifrado es 'suite de cifrado'.

Con eso ya puedes sonar profesional en tu próxima conversación de cena.

Los protocolos SSL y TLS han evolucionado a través del tiempo, hablaremos de ellos muy pronto.

Y después espero una respuesta de Compuperro.

Paso dos: Palma derecha. Alias 'Hola del Servidor' ('Server Hello').

Elijo TLS 1.3 y un conjunto de cifrado (cipher suite). También devuelvo mi key_share. A partir de aquí, TLS 1.3 cifra el resto del handshake.

Inmediatamente después envío mi certificado, que incluye mi clave pública, para que puedan verificar quién soy.

Paso tres: shaka vertical. También llamado Key Share.

Reviso el certificado de Compuperro para asegurarme que es legítimo.

Como ambos enviamos un key share antes, ambos podemos derivar el mismo secreto, activando la confidencialidad.

Paso cuatro: rotación horizontal de shaka. También llamado Finished Messages.

Desde ServerHello (paso dos) en adelante, el handshake está cifrado.

Intercambian los mensajes Finished para demostrar que derivaron el mismo secreto — y listo, las claves de sesión están listas en un solo viaje.

Paso cinco: Cosquillitas. Alias 'Todo está seguro ahora'.
Ahora todos los datos enviados y recibidos entre Navegapájaro y Compuperro están seguros, por el resto de la sesión.

Contraseñas, detalles de tarjeta de crédito, todo.

Simple, ¿cierto?

La próxima vez que te conectes a un sitio web seguro con HTTPS, dale a tu navegador unas palmas ahora que conoces su apretón de manos secreto.

Próximamente en HowHTTPS.works...

HTTPS, SSL, TLS, ¡oh cielos! Acabo de hacer una sopa de letras para el almuerzo. ¿Qué significan? ¿Son todas la misma cosa?

Siga leyendo