Javascript cifrado asimétrico basado en contraseña

1

Quiero codificar una aplicación web que permite que 2 usuarios se envíen mensajes cifrados, y quiero maximizar la seguridad, por lo que quiero minimizar la confianza que deposito en mi proveedor de la nube (tanto la base de datos como la servidor donde está el código de la aplicación).

Entonces pensé que intentaría aprender a hacer todo el proceso de cifrado / descifrado del lado del cliente (en JavaScript).

Pero he leído varios artículos como 2013 , 2011 , y 2017 recomendando que nadie codifique nada relacionado con la criptografía en JS.

Si asumo que las advertencias de los expertos en criptografía sobre JS son correctas, tengo estas preguntas:

  1. Por lo que puedo decir, Libsodium parece ser una biblioteca de criptografía muy respetada, por lo que it ofrecería un versión de javascript si JS es débil? (Y también lo hace Stanford , W3C y Señal .)
  2. ¿Es posible desarrollar una aplicación como la que imaginé (cifrado de extremo a extremo de cliente a cliente) sin que tenga que aprender a codificar Android o iOS? (Si no es así, , ¿qué enfoque me acerca más a mi objetivo? )

También quiero comodidad: quiero que los usuarios puedan iniciar sesión en el sitio web desde cualquier dispositivo, siempre que también puedan proporcionar un código de autenticación de múltiples factores desde su teléfono.

(Es decir, el uso de la aplicación no puede requerir localStorage específico para un dispositivo o requiere la carga de archivos de claves que son demasiado largas para memorizar; los usuarios deben poder iniciar sesión simplemente proporcionando las credenciales que hayan memorizado.)

Espero que alguien amable me apunte en la dirección correcta en lugar de descartar mis preguntas con el típico " Si tiene que preguntar acerca de la seguridad, debería dejarlo en manos de los profesionales". Quiero aprender . Gracias.

    
pregunta Ryan 11.08.2018 - 06:30
fuente

0 respuestas

Lea otras preguntas en las etiquetas