Claves Maestras
Las claves maestras son la base de la jerarquía de encriptación en SQL Server y también son requeridos para crear certificados y claves asimétricas. Contamos un solo servicio de clave maestra para toda la instancia y una clave maestra en cada una de las base de datos.
Clave Maestra de Servicio
Cada instancia de SQL Server tiene una Clave Maestra de Servicio que es generado automáticamente la primera vez que se la instancia es iniciada. Las clave maestra de servicios son claves simétricas generada desde la máquina local y encriptadas utilizando la cuenta de SQL Server por la API de Windows Data Protection. Este mecanismo asegura que la clave solo puede ser desencriptada por la cuenta del servicio con la cual fue creada o por el director que posea acceso a las credenciales de la misma. Por defecto el clave maestra de servicio es utilizado para encriptar todas las Claves maestras de Base de datos que residan en la instancia.
Clave Maestra de Base de Datos
Una clave maestra de base de datos puede ser generada explicitamente mediante el siguiente comando:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘< StrongPassword >’
Cada DB posee una clave maestra distinta, esto asegura que un usuario con acceso a desepcriptar los datos de una DB no pueda hacer en otra que no tenga permisos. Las claves maestras de db son utilizadas para proteger certificados así como también claves simetricas y asimétricas que se encuentran almacenados en la base de datos. La clave maestra de base de datos es encriptada utilizando trile DES y un password suministrado por el usuario. Una copia de la clave maestra de base de datos es cifrada usando la clave maestra de servicio de manera que el descifrado automático se puede lograr dentro de la instancia.
Cuando hacemos un pedido para desencriptar los datos, la clave maestra de instancia es utilizado para desencriptar la clave maestra de base de datos, la cual es utilizada para desencriptar un certificado, clave simétrica o asímétrica y por último este es utilizado para desencriptar los datos.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘< StrongPassword >’
Cada DB posee una clave maestra distinta, esto asegura que un usuario con acceso a desepcriptar los datos de una DB no pueda hacer en otra que no tenga permisos. Las claves maestras de db son utilizadas para proteger certificados así como también claves simetricas y asimétricas que se encuentran almacenados en la base de datos. La clave maestra de base de datos es encriptada utilizando trile DES y un password suministrado por el usuario. Una copia de la clave maestra de base de datos es cifrada usando la clave maestra de servicio de manera que el descifrado automático se puede lograr dentro de la instancia.
Cuando hacemos un pedido para desencriptar los datos, la clave maestra de instancia es utilizado para desencriptar la clave maestra de base de datos, la cual es utilizada para desencriptar un certificado, clave simétrica o asímétrica y por último este es utilizado para desencriptar los datos.
| Importancia de las jerarquías de claves La razón por la cual las jerarquías son importantes, es debido a que hay que tener cuidado cuando movemos backups que contienen datos encriptados desde una instancia hacia otra. Ya que para poder acceder a los datos en la instancia de destino debemos hacer un backup de la clave maestra de la db, regenerarla sobre la nueva instancia, para realizar este proceso debemos utilizar comandos OPEN MASTER KEY, BACKUP MASTER KEY, RESTORE MASTER KEY y CLOSE MASTER KEY |

Comentarios recientes