¿Qué tan seguro es aSSL (javascript)? ¿Imita efectivamente SSL?

15

Algunos de ustedes pueden estar familiarizados con el proyecto aSSL, que utiliza AJAX / PHP para imitar el protocolo SSL. Utiliza RSA 512 o 1024 para las claves, y AES para los datos reales. Me parece impresionante en concepto, pero tengo curiosidad por ver si ven alguna interceptación obvia que pueda revelar las claves que se están pasando. Como todos sabemos, la técnica de encriptación de JS a PHP es típicamente inútil ya que la clave se pasa al lado del cliente. Este parece ser un enfoque más avanzado.

Aquí están los pasos: 1. El navegador llama al servidor para iniciar el proceso.

  1. El servidor devuelve su módulo RSA y el exponente público.

  2. El navegador genera una clave de intercambio aleatoria de 128 bits, la cifra mediante la clave pública del servidor y pasa la clave de intercambio cifrada al servidor.

  3. El servidor recibe esta clave de intercambio cifrada de 128 bits, la descifra con su clave privada y, si el resultado es correcto, devuelve el tiempo de duración de la sesión.

  4. El navegador recibe el tiempo de duración de la sesión y establece un tiempo de espera para mantener activa la conexión.

La URL del proyecto está aquí: enlace

Si esto tiene algún potencial, tengo algunas ideas sobre cómo mejorar aún más el apretón de manos y asegurar el lado del cliente.

    
pregunta Jeremy P 23.11.2012 - 14:43
fuente

3 respuestas

15

¿Cómo protege al hombre en los ataques medios? De lo que deduzco, no lo hace en absoluto (no puedo pensar en una forma en que realmente podría). Eso lo hace perfectamente inútil .

SSL / TLS un poco funciona porque confía en que el software le dice que la conexión es segura (en el caso habitual de su navegador). Cuando descarga el código que le dice que un atacante puede confiar en la conexión, obviamente todas las apuestas están desactivadas.

Puede que me equivoque ya que la documentación es bastante delgada, pero no se ve nada bien (para ser educado).

    
respondido por el Bruno Rohée 23.11.2012 - 15:21
fuente
13
  

SÉ, SÉ, SÉ, SÉ, la segunda vez que mencioné javascript para php   chicos rodaron los ojos, pero en serio, miren primero - esto es un   un poco diferente.

No, desafortunadamente, esto no es diferente. Se considera que la criptografía de Javascript es dañina debe proporcionarle un buen resumen de los problemas generales. .

Algunos problemas tienen que ver con una implementación inadecuada (por ejemplo, PRNG). Esto no es un defecto en JavaScript en sí mismo (tal vez algunas implementaciones de Node.js podrían funcionar mejor), pero sí en las implementaciones del navegador (en las que realmente no se puede confiar).

Otros problemas son más fundamentales para la forma en que se usa JavaScript. El problema con cualquier biblioteca de JavaScript que pretende emular SSL / TLS en el navegador es que siempre se basará en el código JavaScript entregado o como parte del mismo sistema que el contenido que pretende proteger. A partir de ese momento, la batalla contra un MITM se pierde (consulte también sus propias preguntas frecuentes ).

Además, un punto fundamental de SSL / TLS es la verificación de la identidad de la parte remota. Esto se basa en (a) tener un conjunto de anclajes de confianza (los certificados de CA) ya establecidos y (b) tener una forma consistente de mostrar cómo se evaluó la confianza (integración de GUI en el navegador, mostrando un símbolo de bloqueo o similar). Estos elementos simplemente no pueden pertenecer a la página web (de lo contrario, cualquier persona puede mostrar un icono de candado en una página).

    
respondido por el Bruno 23.11.2012 - 16:56
fuente
3

Lo primero que me viene a la mente es una entropía PRNG débil en JS. Y podría ser lento ... y ¿por qué no usar SSL?

    
respondido por el damiankolasa 23.11.2012 - 14:47
fuente

Lea otras preguntas en las etiquetas