Explicativo: Certificados Digitales y HTTPS

Debemos reconocer que el sistema actual de certificados digitales es complicado, complejo y polémico. Los certificados digitales, las firmas que contienen y las autoridades de certificación que avalan, son la

Debemos reconocer que el sistema actual de certificados digitales es complicado, complejo y polémico. Los certificados digitales, las firmas que contienen y las autoridades de certificación que avalan, son la base de la confianza y la autenticación en línea. Irónicamente, es bien conocido en toda la industria que la autoridad de certificación actual y el sistema de firma digital están irremediablemente rotos y lamentablemente inadecuados. Sin embargo, aquí estamos, confiando en ellos para hacer pagos y comunicarnos los unos con los otros diariamente.

https_title

Entonces… ¿qué es “HTTPS” y qué son los certificados digitales?

“HTTPS” significa Hypertext Transfer Protocol Secure (en español, Protocolo seguro de transferencia de hipertexto). Es la variedad segura del protocolo de transferencia de hipertexto que, a su vez, es la base de cómo movemos datos en la World Wide Web. Básicamente, conectarse a un website vía “HTTPS” (en lugar de conectarse a través del conocido “HTTP”) significa que cualquier dato que intercambies con dicho sitio pasará por encima de la seguridad de la capa de transporte encriptada (TLS) o su predecesora, la capa de conexión segura (SSL). Las conexiones “HTTPS” se encuentran señalizadas con un pequeño ícono de un candado en algún lugar de tu barra de direcciones, o en la “s” luego del “http” en la URL. “HTTPS” significa que cualquier dato que pases por un website estará encriptado mientras se mueva.

Puedes tipear “HTTPS” en la barra de direcciones de cualquier sitio web Viejo. Si el sitio posee un certificado válido, entonces el servidor en donde se encuentre alojado el sitio web presentará ese certificado a tu navegador (que ha construido una lista de emisores de certificados confiables) y nada realmente notable sucederá. Dependiendo del navegador, podría aparecer un pequeño candado en algún lugar de la barra de direcciones en el que podrás hacer clic para averiguar cierta información acerca del certificado y de su emisor. Sin embargo, si tratas de acceder a la versión en “HTTPS” de un sitio web que no posea un certificado válido, entonces verás un alerta de SSL como esta:

badsslcert

Aquí la parte complicada: una llave de certificado pública es una declaración electrónica que contiene una firma digital que, en palabras de Google, “une el valor de una llave pública con la identidad de la persona, dispositivo o servicio que posee la llave privada correspondiente”. No iremos demasiado lejos en la madriguera del conejo de la criptografía, pero pensemos en las llaves privadas como las encargadas de realizar el cifrado, y las llaves públicas como las encargadas de realizar el des-cifrado. Entonces, el servicio con el que estes intercambiando datos (el sitio web) pasa los datos que quieras ver a través de una llave privada, que convierte esa información en algo ilegible mientras viaje a través del servidor del sitio web hasta tu computadora. Tu navegador tiene la llave pública, que toma esos datos ilegibles y los hace legibles. Cuando estas transformando datos de tu computadora a un sitio web, el proceso es más o menos el mismo (sólo que al revés).

Volviendo a los certificados: un certificado digital contiene, por lo general, información del sitio o servicio para quien ese certificado fue expedido, la información de identificación del emisor, un período de validez indicando cuándo el certificado fue emitido y por cuánto tiempo será válido, y una firma de algoritmo único. Esta firma es parte del certificado que confirma que realmente estás comunicandote con quien sea que te hayas querido comunicar, y que la comunicación se encripta en la ruta.

Un certificado válido garantiza que te estás comunicando con el sitio o servicio con el que tratas de comunicarte. Cuando ingresas información de pago o credenciales de inicio de sesión, o cualquier cosa, en un sitio habilitado para “HTTPS”, el certificado es lo que te dice que la información va a la persona o servicio que debía ir, y que esa información será encriptada mientras esté viajando. Por definición de Google, los certificados autentican, promueven la privacidad, encriptan y, lo más importante, aseguran la integridad del contenido, origen y destino de un mensaje.

Ahora, para la parte complicada: emisores. Cualquier número de organizaciones vende o emite certificados digitales. Se llaman autoridades de certificación. GoDaddy, VeriSign, y Entrust son tres autoridades de certificación que inmediatamente vienen a la mente. Podría llamarme a mí mismo una autoridad de certificación en este momento, y comenzar a vender certificados a diestra y siniestra si quisiera. El problema es que nadie confiaría en mis certificados. Ese es el problema con las autoridades de certificación: sólo son buenas si son confiables. Puedes ir a las configuraciones de tu navegador ahora mismo y echar un vistazo a todos los certificados que tu navegador considera confiables.

¿Todavía no es lo suficientemente complejo? Bueno, hablemos de los certificados de raíz. Estos son confiables por default en casi todos los navegadores. También tienen el poder de extender su confiabilidad a otras autoridades de certificación. Digamos que un joven llamado Larry emite certificados y es una autoridad de certificación de raíz. Tu navegador va a confiar en cualquier certificado que emita Larry. Tu navegador también va a confiar en cualquier otro certificado que Larry avale. Hay una gran variedad de autoridades de certificación allá afuera, y esto es lo que se nos ha ocurrido por verificarlas. Hemos dejado que las 36 (aprox) autoridades de certificación confiables decidan cuáles otras autoridades de certificación son confiables y todos vivieron felices para siempre. Sólo bromeaba, la situación de los certificados de SSL/TLS es un absoluto desastre.

Y siguiendo con la controversia: esta estructura de autoridades de certificación es la base de la confianza en casi todo lo que hacemos en internet, y es algo que también está totalmente roto. Las brechas a grandes autoridades de certificación como DigiNotar y Comodo y la revelación de que no uno, sino dos de ellos, validaron certificados falsos emitidos por el virus Stuxnet, ha dejado en claro que se necesita un nuevo sistema. El investigador de seguridad Moxiw Marlinspike ha sugerido que su sistema de “Convergencia SSL” es la solución al problema de los certificados. A pesar de que Convergente haya debutado en la conferencia de “Black Hat Security” hace casi dos años, seguimos confiando en el sistema de certificados que está dañado. Es casi como si estuviéramos asumiendo lo mejor de los certificados que operan de fondo mientras nos comunicamos y gastamos dinero online. Cada tanto escuchamos acerca de una brecha de seguridad en una autoridad de certificación, nos lamentamos y digerimos el problema, y en última instancia, lo superamos sin haber solucionado nada.

Consejos