complemento Crypto Browser

3

¿Cuáles son las limitaciones conocidas con los complementos / extensiones de navegador que se realizan en el cifrado del navegador frente a una implementación nativa en el navegador? El complemento expondría primitivas criptográficas para su uso en JavaScript.

El complemento del navegador actuaría como una solución provisional para " La API criptográfica web " en desarrollo por el W3C.

    
pregunta Null 15.08.2013 - 00:04
fuente

2 respuestas

1

Los complementos del navegador son específicos del navegador, por lo que cualquier respuesta a su pregunta solo puede ser muy general.

Algunos navegadores permiten complementos como cualquier pieza de código nativo, lo que, por supuesto, puede hacer cualquier cosa que el código nativo pueda hacer. Para estos, el complemento podría proporcionar toda la funcionalidad que pueda desear. Otros navegadores aplican principalmente la lógica de complemento basada en Javascript, por lo que, independientemente de lo que haga el complemento, debe hacerlo dentro de las restricciones de ese lenguaje de programación. Javascript no es bueno en tareas intensivas en computación, y la criptografía es una tarea de este tipo. El complemento sería malo, por ejemplo, al descifrar un archivo de video o algo similar voluminoso.

Tenga en cuenta que cuando el navegador permita complementos con código nativo, el código nativo dependerá del SO y la arquitectura de la CPU. Se sabe que esto es una fuente de graves dolores de cabeza para los desarrolladores. Los complementos basados en Javascript son mucho más portátiles, pero se pagan con un rendimiento muy reducido y también un mayor aislamiento de la máquina local.

El mayor problema con un complemento del navegador es que no todos lo tienen . Si la gente debe instalar un complemento para usar su sitio web, entonces este ya no es un sitio web; El objetivo principal de un sitio web es que todo el mundo puede usarlo sin ninguna instalación previa. Un complemento es útil solo cuando proporciona la funcionalidad del lado del cliente opcional (por lo que el código de su sitio no puede depender de su presencia), o cuando todos ya lo tienen (en cuyo caso ya no es un complemento). -on, pero una "característica nativa").

Los dos "complementos" que se acercaron a ser lo suficientemente frecuentes como para ser considerados como "siempre allí" son Flash y Java, pero ambos siguen siendo restrictivos (un iPad, por ejemplo, no tiene ninguno). Sería bastante improbable que su complemento logre un nivel de éxito incluso similar. Esto significa que cualquier motivo que haga que su criptografía del lado del navegador en una applet de Java sea una mala idea, también se aplica al escenario de usar un crypto add-on (y Java, al menos, tiene el músculo y la base de código existente que permite una criptografía poderosa).

    
respondido por el Thomas Pornin 15.08.2013 - 13:42
fuente
1

Los proveedores de servicios generalmente dependen del cifrado del lado del cliente porque no quieren actuar como un único punto de falla desde el punto de vista de seguridad. Por ejemplo, si realiza el cifrado en el lado del servidor, un atacante malicioso (o servicios de inteligencia) con acceso al servidor podrá interceptar todas las contraseñas o simplemente deshabilitar el cifrado.

Si usa JavaScript para el cifrado del lado del cliente, básicamente implementa una seguridad basada en host que no es mucho mejor que en el caso anterior: los usuarios deberán descargar algunos scripts desde una ubicación remota cada vez que quieran hacer criptografía, y si Si el host (o la ruta de la red) se ve comprometido, el atacante podrá hacer una copia del código provisto. Este fue uno de los problemas originales de CryptoCat . También debe leer Criptografía de JavaScript considerada dañina de Matasano que explica por qué JavaScript es generalmente una mala elección para implementar crypto.

Esto es cierto en su mayoría incluso si usa el navegador JS junto con algún tipo de complemento instalado.

La mayoría de los puntos de Thomas Pornin sobre complementos son válidos, pero prefiero depender de complementos de navegador puramente nativos que de JS, especialmente si utilizan bibliotecas criptográficas bien probadas.

    
respondido por el buherator 17.08.2013 - 11:01
fuente

Lea otras preguntas en las etiquetas