Javascript desconectado y secreto cifrado

2

Cuando se utiliza Javascript en línea con el servidor, el servidor puede proporcionar un vector de Clave e Inicialización único para su uso en AES-CBC disponible en la API de Webcrypto. Cada usuario tiene una clave asignada a ellos. El cliente puede cifrar los datos y enviarlos al servidor y descifrarlos allí. Debido a posibles problemas de red, los datos se almacenan en caché. Creo que para estar razonablemente seguro ya que se accede a las claves a través de la autenticación y se utilizan las sales de nonce.

Ahora llega el nuevo requisito : para permitir que el usuario ejecute en modo sin conexión / caché. Lo que significa que cuando el usuario necesita cifrar datos confidenciales en la entrada de datos, o cuando accede a datos confidenciales para verlos, se requiere la clave. Sin embargo, el servidor no puede ser alcanzado. Necesitamos esa clave y solo tenemos una contraseña.

Veo varios ejemplos en la web que a menudo se lee de esta manera SO post
o como esta publicación de cifrado AES de Javascript

  

¿Qué tan malo es usar AES para cifrar un secreto de 16 bytes usando el   La contraseña de los usuarios para obtener una clave y una sal que es única pero   presumiblemente PREDECIBLE?

Suponiendo que uno establecería las iteraciones de PBDK2 en tan grandes como tolerables por los usuarios Tal vez 500 mseg para derivar clave de contraseña.

Todavía no puedo ver cómo utilizaron AES sin un sal predecible cuando un dispositivo debe funcionar cuando está desconectado.

¿Existe un algoritmo accesible de script de Java que se adapte bien con un valor corto para cifrar y solo una clave derivada de una contraseña y un dispositivo único pero conocido como Id. Salt.

EDITAR con el objetivo en mente Con solo la contraseña del usuario y el modo fuera de línea en JAVAScript, ¿qué puedes hacer? Veo que el navegador no es ideal para la criptografía: ¿Qué tiene de malo la criptografía en el navegador? Estoy tratando de encontrar la mejor opción Enfoque conocido y entender cuán malo / bueno es.

    
pregunta soadyp 14.06.2016 - 00:25
fuente

1 respuesta

3

Puede usar un CSPRNG para la IV. Esto se puede almacenar junto al texto cifrado. El IV no necesita mantenerse seguro, solo debe ser aleatorio.

    
respondido por el Neil Smithline 14.06.2016 - 01:15
fuente

Lea otras preguntas en las etiquetas