La guerra entre los navegadores más populares a día de hoy (Chrome, Firefox, Edge – El artista anteriormente conocido como Internet Explorer, Opera, Safari, Konqueror… tiene sus precuelas años atrás. Una de ellas tiene nombre propio: Netscape Navigator.
Si lo conoces, seguramente te tocó navegar por las primeras webs con módem analógico y su sonido característico.
Desde 1994, este navegador ya desaparecido, fue mejorando las especificaciones necesarias para implementar «el candadito» del navegador. No fue hasta su versión 3.0 y un par de vulnerabilidades después que haría pública y operativa pero sentó las bases del intercambio seguro de datos entre dos partes.
Como todo en seguridad informática, es relativa. Cuando indicamos que un «intercambio de datos es seguro», cabe detallar que es seguro en este momento o por los recursos necesarios para no serlo. Por ejemplo, si son necesarios la capacidad de 100 ordenadores y 10 años para interceptar/descifrar/vulnerar una comunicación entre dos partes, decimos que es «seguro». La inversión económica y de tiempo necesaria para hacerla vulnerable normalmente no compensa el esfuerzo necesario para realizarla.
Entramos en el juego continuo del gato y el ratón, la aparición de SSL (secure sockets layer / capa de puertos seguros) derivó en el desarrollo de TLS (transport layer security / seguridad de la capa de transporte), el conjunto de ambos facilita que dos partes negocien entre ellas que claves y de que tipo se van a utilizar para cifrar los datos. Un símil sencillo, si dos personas quieren comunicarse con walki talkies entre ellas, acuerdan que para iniciar la conversación dirán «hola charlie» y para acabar la frase «cambio» o «cambio y corto».
Con el paso de los años los sistemas de cifrado de seguridad se mejoran y encuentran fallos, por lo que los diferentes algoritmos han sido sustituidos por otros más seguros: DES, 3DES, RC4… en las diferentes versiones del protocolo TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3
Ahora que hemos iniciado la comunicación y nos hemos puesto de acuerdo en que cifrado/configuración/comprobación utilizaremos, necesitamos que la parte que inició la conversación verifique la identidad de quien dice ser la otra parte. Para ello se comprueba el certificado del servidor con las principales Autoridades de Certificación (AC).
El cifrado asimétrico, algoritmos de comprobación y claves proporcionan seguridad no solo a la navegación web, también las comunicaciones de correo electrónico, VozIP, mensajería, DNS over TLS (DoT), DNS over HTTPS (DoH)…
En la implentación real y masiva de este tipo de seguridad apareció un problema práctico, la necesidad de disponer de 1 dirección IP por cada dominio/certificado (o un pequeño grupo de dominios). Simplificando nuevamente, si llamamos al timbre de un bloque de pisos, necesitaríamos un certificado y dirección completa de cada vivienda en lugar de disponer de uno común para toda la comunidad que nos identificara por el piso y puerta posteriormente. En 2018-2019 apareció SNI (Server Name Indication / indicador del nombre del servidor) como extensión del protocolo TLS para permitir en un servidor múltiples certificados en una misma dirección IP y puerto, en el inicio de la comunicación se añade el nombre del dominio completo al que se accede para verificarlo.
Hasta aquí todo correcto y «seguro». Pero… ¿y si utilizamos esta nueva información para registrar todo el destino del tráfico de una persona? Es decir, si accede a una web segura con TLS 1.3 y SNI en el mensaje, podemos registrar que sitios web navega. Para la mayoría de personas esto no resultará un problema, aunque debamos tener en cuenta que la información que generamos deberíamos tenerla bajo control siempre.
Si saltamos de continente y nos situamos en China (aunque tal como vamos, en España puede acabar pasando lo mismo), resulta que controlar que webs se visualizan y quien lo hace es una información que puede ser utilizada con otros fines menos tecnológicos…
La solución técnica ha pasado por encriptar el nombre del dominio que se envía en el mensaje inicial (Encrypted SNI / ESNI) y la respuesta del llamado Gran Firewall Chino (GFW) ha sido bloquear toda comunicación mediante TLS 1.0 y ESNI, continuará…