Cifrado de datos y administración de claves en C #

11

Qué ruta tomar, cuáles son los pros y los contras, que es más seguro ...

  1. Genere la clave AES, cifre los datos con ella y luego cifre la clave AES con RSA, guarde los datos cifrados y la clave AES cifrada en un archivo y el par de claves RSA en un KeyContainer.

  2. O use la clase DPAPI ProtectedData para cifrar los datos y guardarlos en un archivo y luego almacenar la entropía que usé con ProtectedData.Protect () en algún lugar ... (tal vez también cifrarlo con el RSA, almacenar el RSA keypair a KeyContainer y la entropía cifrada en el archivo con los datos?)

pregunta 12.04.2011 - 08:37
fuente

2 respuestas

8

Aunque probablemente pueda obtener un cifrado más fuerte cuando elija los algoritmos (DPAPI solía usar 3DES, no sé si eso sigue siendo el caso en 7), la parte más débil de su sistema de cifrado será casi siempre la gestión de claves. (Suponiendo que utilice algoritmos decentes, e incluso 3DES no está completamente roto).

El uso de DPAPI significa que no tiene que preocuparse por la administración de claves en absoluto (aparte de proteger su clave con DPAPI en primer lugar). Estoy seguro de que @Thomas saltará con una respuesta detallada, pero generalmente mi respuesta sería ir con DPAPI.

    
respondido por el AviD 12.04.2011 - 15:30
fuente
0

AES, o DPAPI? Depende de su arquitectura.

Por ejemplo, si usted es una persona que desea un sitio web sin estado, vendible y con carga equilibrada, no utilice DPAPI para el cifrado de cookies / sesiones. Si lo hace, está limitando efectivamente una sesión de usuario a un solo host ... dependiendo de su caso de uso.

En cuanto a DPAPI y RSA, puede interesarle artículo de MSDN , whitepaper y este pregunta sobre las claves privadas de DPAPI.

    
respondido por el random65537 29.09.2011 - 06:31
fuente

Lea otras preguntas en las etiquetas