22 agosto 2011

Convergence ¿El futuro de SSL?

Mucho se ha hablado sobre los 'males' que aquejan al protocolo SSL y en general al modelo PKI que subyace tras el.

Desde entidades que emplean algoritmos de baja calidad, entidades que son hackeadas y emiten certificados fraudulentos o incluso bugs del protocolo en si.

Pero hasta ahora, salvo vagas ideas, nadie ha cogido el toro por los cuernos y ha propuesto una alternativa. En la pasada BlackHat, el famoso investigador Moxie Marlinspike (autor de SSLstrip) se ha lanzado al ruedo con una propuesta alternativa al esquema actual.

Frente al tradicional funcionamiento de las entidades certificadoras (CAs) donde un numero X de organizaciones se arrogan la capacidad de emitir certificados SSL y luego negocian con los desarrolladores de los navegadores que incluyan su 'certificado raíz', Moxie propone un modelo que me recuerda, en parte, al esquema GPG.

La idea es que seas tú mismo quien decida si das o no das por bueno un certificado SSL, sea de una organización en concreto o incluso un certificado auto-firmado creado por alguien ajeno a las tradicionales entidades de certificación.

Como es lógico, muy pocas personas tienen la perspectiva o capacidad para dilucidar si un certificado merece o no merece confianza, por lo que aparece la figura del 'notario' que es una persona / organización en la que tu decides confiar y delegas en el la confianza, por lo que todos los certificados que el de por buenos serán buenos para ti.

De momento el proyecto ha liberado una extensión para Firefox y dos notarios activos. Se espera que si el proyecto cuaja, aparezcan mas notarios disponibles.

Mi opinión personal es que la idea es bastante buena, el concepto de que los 'notarios' sean dinámicos, tengan que tener una fiabilidad adquirida por consenso y reputación y que en caso de que 'metan la pata', se le pueda retirar la confianza, supone un avance frente al modelo tradicional.

Además no olvidemos que a partir de Windows Vista, Microsoft ha convertido la gestión de los certificados digitales en algo oscuro en el que es difícil intervenir

No obstante, creo que Moxie se deja en el tintero otro punto importante a la hora de 'vender' el producto. Mas allá de que las entidades de certificación son 'hackeables' o que dado el número de certificados raíz aprobados en los navegadores, resulta creíble que algunas entidades de certificación 'colaboren' con gobiernos para vulnerar la privacidad, se deja el hecho de que hace tiempo que las CAs dejaron de tener escrúpulos a la hora de emitir certificados y dejaron a un lado su rigor para simplemente emitir certificados por 10 dólares. Sin verificar lo que hay detrás

URL del proyecto: Convergence

5 comments :

Antonio dijo...

IMHO hay un factor que echo en falta y que no se como estará resuelto: la responsabilidad. ¿Qué pasa en caso de error, fallo, incidente...?

En España, las CAs tienen que contratar un seguro por 300.000€ que quieras que no, es una garantía, pero ¿Qué pasa en este modelo en caso de incidente? ¿Quién asume la responsabilidad y con qué garantía?

Román Ramírez dijo...

Personalmente, no me fío ni me fiaré de las CA que vienen de serie en navegadores y sistemas operativos; ya lo hemos comentado ampliamente.

Muchas de ellas, todos lo sabemos, se utilizan para realizar MitM institucionales de forma simple (por ello el proyecto de tener un proxy que guarde los certificados que consideras válidos y rechace automáticamente el resto).

El problema que le veo a los "notarios" es que reviven el modelo de "confianza" en organizaciones de las que no tienes la certeza que de verdad sean confiables y, como el usuario es vago por naturaleza, terminaremos en lo mismo (nadie se preocupará mucho y delegará la "confianza", cosa que sigue siendo un error de base).

Adicionalmente, ¿qué pasa con los problemas endémicos del SSL? ¿los problemas con los VirtualDomains? ¿cadenas de certificación etc.?

Yo creo que hay que acabar ya con este modelo ponzoñoso de SSL, que no sirve para nada y echarle huevos y dar un giro radical.

Por ejemplo, me parece mucho más operativo implementar un sistema que "certifique" mediante registros en el DNS y que inventen un tipo de registro "SEC" o algo así, que podría funcionar en el estilo del domainkeys, y que los usuarios puedan confirmar en sus navegadores con un nivel de confianza (si el nivel de confianza es bajo, el propio navegador no debería dejarte enviar según qué cosas etc.).

Lo malo, es que de nuevo tendríamos un jugador transnacional (ICANN) de cuya confianza me fío menos que de los de la RBN gestionando mis cuentas bancarias. Para que pudiera ser operativo, lo primero sería eliminar el control enfermizo de Estados Unidos sobre el DNS (o eso, o asumir que todas tus comunicaciones están siendo interceptadas de serie).

Un último punto, con la obsesión de facilitarle las cosas al usuario, estamos bajando los requisitos de seguridad de las soluciones y desde mi punto de vista es un grave error.

La "incomodidad" de ponerse un cinturón o un casco cuando conducimos según qué clase de vehículos no lleva al usuario a dejar de utilizarlos. El topicazo de seguridad vs comodidad es completamente cierto.

Hay que empezar a concienciar al usuario de que si quiere navegar, comprar o mandar correo seguro con un click no lo va a hacer (de otra manera, volvemos a la falsa sensación de seguridad).

Mines dijo...

Como dice Román, el tema de los notarios no es sino transladar el problema de la confianza a otro tercero.

A veces he pensado que se podría usar un sistema distribuido estilo P2P (Alguien recuerda Dust de Chema?) pero tampoco lo hace infalible frente a ataques (Imaginaros una botnet con los certificados envenenados)Me inclinaría más por un sistema por capas, usando no sólo autoridades certificadoras sino los domainkeys, creando un puntaje que aumente cuanto más supuesta "confianza" tenga un dominio.

Roberto Martínez Martínez dijo...

Esto de los notarios me suena de CACERT

Lupe Ester dijo...

La verdad que es raro, es decir, no nos fiamos de las CA pero sí de notarios. Se me hace raro porque de la misma manera, ¿quién les vigila? Al fin y al cabo se basaría en el mismo modelo pero a través de entidades más chicas, lo que acabaría pasando es que las entidades de certificados sslcomenzarían a a contratar a notarios y estaríamos en las mismas.

De igual manera, uno puede entrar en una web aunque el navegador le diga que no es seguro.
Quizás habría que cambiar los mecanismos legislativos y que los seguros fueran más grandes, que en el caso de los problemas, como el que tuvo comodo, necesite rearmar la licencia o algo. Como cuando un conductor pierde su licencia.