Estoy trabajando en una aplicación web ASP.NET que tendrá que almacenar información confidencial. Me gustaría cifrar los campos confidenciales para proteger contra posibles vulnerabilidades de inyección de SQL. Sin embargo, también tendré que informar sobre estos campos. Por estos motivos, he excluido el cifrado transparente de la base de datos (ya que no brindaría protección contra la inyección de SQL) y el cifrado de la capa de la aplicación (ya que dificultaría la notificación frente a los datos) y me quedo con el cifrado de nivel de base de datos.
Mi plan es usar la función EncryptByPassphrase
de SQL Server, con una conexión SSL a la base de datos para proteger la frase de contraseña a través del cable. La clave se almacenaría en el web.config
, protegido por la API de protección de datos de Windows a nivel de máquina.
¿Es este un buen plan? ¿Cuáles son las vulnerabilidades potenciales?