sábado, noviembre 15, 2014

Certificate Pinning: Un estudio sobre el estado del arte

En la última RECSI (Reunión Española de Criptografía y Seguridad Informática) 2014 que tuvo lugar en Alicante, participamos con un par de trabajos que puedes encontrar en el canal Slide Share de Eleven Paths. Uno de ellos estuvo centrado en las técnicas de Certifica Pinning, titulado: "Contramedidas en la suplantación de identidades. Certificate Pinning", que puedes descargar y/o leer en formato PDF.

Figura 1: Un estudio del estado del arte de las técnicas de Certificate Pinning


Las técnicas de Certificate Pinning se basan en extremar las medidas de protección a la hora de aceptar por bueno un certificado digital en una conexión segura. Hasta que comenzaron a extenderse los navegadores y/o sistemas operativos venían con un almacén de las claves públicas pertenecientes a las entidades de certificación en las que se confía, y la validación de un certificado digital enviado desde cualquier servidor se basa en analizar la cadena de confianza de certificación para ver si termina en uno de los certificados almacenados en los que se confía.
Podríamos decir que el proceso de tener la lista de certificados digitales de las entidades de confianza es el pinning "clásico", pero con la aparición de certificados falsos para dominios populares, como los que vimos que aparecieron tras el robo de la entidad certificadora Diginotar, el posible uso de entidades de certificación intermedias, o la creación de certificados falsos por medio de colisiones de hashes, tal y como se vio en el caso de The Flame o en el reciente caso de los certificados de Windows Update, lo cierto es que parece que no basta solo con pinnear el certificado de la entidad, sino el certificado concreto del servidor al que nos conectamos completamente.

Figura 3: Posibilidad de hacer Certificate Pinning con EMET en Windows

Cuando lo que se guardan son los certificados únicos de los servidores, y se hace una validación de toda la clave completa en cada conexión, es entonces cuando se está realizando Certificate Pinning, algo que se ha hecho muy popular entre los expertos en seguridad. De hecho, la herramienta EMET que se usa para maximizar la seguridad de sistemas Windows permite hacer Certificate Pinning, y para que fuera muchos más sencillo de usar, desde el laboratorio de Eleven Paths lanzamos EMET Rules para hacer Certificate Pinning a todo Internet - si quieres - hace ya algún tiempo.

Figura 4: Plugin DNSSEC TLS Validator para Firefox
En el blog de Eleven Paths le dedicamos una serie completa a Certificate Pinning: El qué, el cómo y el porqué. En ese trabajo se habla también de algunas implementaciones enfocadas en validar los certificados digitales por otras vías, como son DANE( DNS-Based Authentication of Named Entities) o TACKS (Trust Assertions for Certificate Key).

Figura 5: Fallo de Certificate Pinning en Mozilla Firefox explicado en el Blog de Eleven Paths

Todos estos puntos, así como la aplicación de estas técnicas en los navegadores Google Chrome, Internet Explorer y Firefox - incluida su última implementación de Certificate Pinning con dudoso éxito - se tratan en detalle en ese artículo, así que si te interesa conocer más sobre estas técnicas, es la lectura de este sábado para tu e-book reader. Seis páginas en Español que te permitirán tener una idea clara del estado del arte en técnicas de Certificate Pinning.

Saludos Malignos!

1 comentario:

  1. ¿Estado del arte? ¿En serio? Ya os vale usar ese horrible calco.

    ResponderEliminar