¿Es posible crear una aplicación web de chat segura basada en sockets web HTML5?

5

¿Es posible crear una aplicación web de chat segura utilizando solo HTML5 y Javascript?

¿Qué posibles agujeros de seguridad podrían existir si el servidor no almacena los mensajes, simplemente los transmite utilizando websockets y la transmisión se realiza a través de SSL?

Lo que me llevó a preguntar esto es que me preguntaba por qué se implementó Cryptocat como complemento del navegador. Supongo que se piensa que es más seguro que una solución HTML5 pura, pero ¿por qué?

    
pregunta John 11.06.2013 - 19:06
fuente

2 respuestas

11

En realidad, esto no tiene nada que ver con mover CryptoCat a un complemento / extensión del navegador. No es incluso relacionado con SSL en absoluto. Teniendo eso en mente, la respuesta de Stephen es algo engañosa. Intentaré abordar eso. CryptoCat sigue siendo JavaScript & HTML.

Préstame toda tu atención , asume que SSL está haciendo su trabajo y que estás 100% seguro de que te estás conectando al servidor CryptoCat original. Si Nadim (el tipo detrás de CryptoCat) se vio obligado por la ley a revelar su futura conversación, simplemente detectará cuándo se conectará (desde su IP) y le enviará un JavaScript malicioso que haría que su navegador use una clave personalizada y, por lo tanto, se dé la capacidad de descifrar su conversación y dársela al FBI, NSA, CIA, etc.

Esa forma de seguridad se llama seguridad basada en host, donde le da su confianza completa al proveedor de servicios. Sí, sus cosas están encriptadas, pero la lógica de encriptación / descifrado proviene del proveedor de servicios y pueden enviarle lo que quieran. Schneier y otros investigadores de seguridad criticaron a CryptoCat por esto.

Al mover el código a un complemento del navegador, ahora debe confiar en la fuente solo la primera vez que descarga el código. La comunicación todavía ocurre entre usted y el servidor, el cifrado y el descifrado todavía ocurren en su navegador, el código sigue siendo JavaScript y HTML5. La única diferencia aquí es que la próxima vez que se conecte a los servidores CryptoCat, no necesita confiar en el código que le envían. El código en su navegador todo el tiempo, puede auditarlo y verificarlo cuando lo desee.

Patrick Ball escribió un artículo muy interesante sobre el tema ; explica el concepto de seguridad basada en host y otros problemas relacionados. Le ayudará a comprender el panorama general con respecto a este asunto.

Para responder directamente a tu pregunta , sí, es posible. CryptoCat es un gran ejemplo.

    
respondido por el Adi 11.06.2013 - 21:21
fuente
1

Esencialmente, la única forma de lograr este tipo de cosas es enviar Javascript y HTML al navegador.

Pero el problema inherente es que la seguridad de todo el sistema depende completamente de servir HTML y Javascript al navegador. Y esto se reduce a SSL y al sistema de Autoridad de Certificación. Por lo tanto, en el mejor de los casos, la seguridad de cualquier aplicación puramente HTML y Javascript no es mejor que la del sistema de CA que tenemos en su lugar. Si puede explotar el sistema de CA (que se ha hecho), puede romper la seguridad de dicho chat. aplicación.

    
respondido por el Stephen Touset 11.06.2013 - 20:04
fuente

Lea otras preguntas en las etiquetas