Tengo una situación en la que mi aplicación web se implementará en varios servidores web, y desearé almacenar algunos datos cifrados de forma segura en los servidores DB (cada servidor web tiene un servidor DB asociado).
Ahora, lo que pensaba hacer era implementar las funciones de biblioteca Encrypt
y Decrypt
que utilizan la clase AesManaged
. Estos utilizarían una clave AES que sería diferente para cada servidor (generaríamos una nueva para cada servidor en implementación); de esa manera, cada servidor usaría una clave diferente. Luego usaríamos SectionInformation.ProtectSection()
para cifrarlos en Web.config
, por lo que estaban seguros.
Sin embargo, he llegado a través de ProtectedData
clase. Esto se enlaza con la funcionalidad DPAPI de Windows y permite el cifrado y descifrado simétricos. Ahora me pregunto, ¿hay algún punto en mi uso de AesManaged
con mis propias claves generadas, o debo simplemente cifrar y descifrar datos usando ProtectedData
? ¿Cuáles son los pros y los contras de cada uno?