Soy nuevo en la implementación del cifrado y todavía estoy aprendiendo lo básico, parece.¿Es inseguro pasar el vector de inicialización y la sal junto con el texto cifrado?
Necesito capacidades de encriptación simétrica en mi código fuente abierto. Hay tres componentes de este sistema:
- Un servidor que almacena algunos datos de usuario, e información acerca de si es o no está cifrado, y cómo
- cliente # AC que permite a un usuario cifrar sus datos con un simple contraseña cuando se envían al servidor, y descifrar con la misma contraseña en la recepción cliente
- Una JavaScript que hace lo mismo y, por tanto, debe ser compatible con el método de cifrado de C# del cliente
en cuanto a diversas bibliotecas de JavaScript, vine a través de SJCL, que ha SA Página preciosa demostración aquí: http://bitwiseshiftleft.github.com/sjcl/demo/
partir de esto, parece que lo que un cliente necesita saber (además de la contraseña utilizada) con el fin de descifrar el texto cifrado es:
- El vector de inicialización
- Cualquier sal que se usa en la contraseña
- el tamaño de la clave
- fuerza de autenticación (no estoy totalmente seguro de lo que es)
¿Es relativamente seguro guardar todos estos datos con el texto cifrado? Tenga en cuenta que esta es una base de código fuente abierta, y no hay forma de que pueda ocultar razonablemente estas variables a menos que le pida al usuario que las recuerde (sí, a la derecha).
Cualquier consejo apreciado.
Aparte: estos datos son sólo accesibles por el usuario cuando se haya identificado, y por supuesto por cualquier administrador de sistemas con acceso al servidor. No se comparte públicamente. – Sandy