Cómo cifrar columnas en una base de datos y poder cambiar fácilmente la clave de cifrado

2

Tengo varios campos en una tabla de base de datos que me gustaría cifrar, pero me gustaría hacerlo de una manera que me permita cambiar fácilmente la clave de cifrado cada n meses por razones de seguridad.

Mi idea inicial fue almacenar el IV con la fila para poder usar eso para descifrar cada entrada donde la clave para el cifrado se almacenaría en otro lugar, en código o en un archivo de configuración. Esto parece que será una pesadilla cada n meses cuando necesito cambiar la clave, ya que tendría que ejecutar un trabajo que necesitaría cambiar el IV para cada fila junto con el descifrado / cifrado de nuevo de todas las columnas necesarias para la nueva llave

Parece que este enfoque también podría atascar el sistema al intentar descifrar y cifrar de nuevo. No he visto muchos artículos que describan enfoques prácticos para este problema, solo mencionando que la clave debe cambiarse periódicamente. Cualquier ayuda sería muy apreciada, soy nuevo en el juego de cifrado.

También, estoy usando el cifrado AES-256. Estoy usando SQL Server pero podría migrar a MySQL en el futuro. La aplicación está codificada en C # .Net. Estamos almacenando información personal (primer nombre, segundo nombre, apellido, ssn, etc.) y debemos ser compatibles con HIPAA y queremos asegurarnos de que, si una clave se compromete, podamos cambiar rápidamente la clave sobre la marcha.

    
pregunta user1790300 16.07.2015 - 19:43
fuente

1 respuesta

1

Si está utilizando MSSQL, cambie a Cifrado de datos transparente y no cifre por sí mismo. Esto será mucho más fácil de mantener, ya que podrá ejecutar consultas contra los datos mientras esté cifrado.

enlace

En su defecto (¿debido a la licencia?) use el ecryption integrado a nivel de célula

    
respondido por el Jason Coyne 16.07.2015 - 21:48
fuente

Lea otras preguntas en las etiquetas