SQL Server y claves de cifrado de bases de datos (Motor de base de datos)

Se aplica a:SQL Server

SQL Server usa claves de cifrado para proteger las credenciales de datos y la información de conexión que se almacena en una base de datos de servidor. SQL Server tiene dos tipos de claves: simétricas y asimétricas. Las claves simétricas utilizan la misma contraseña para cifrar y descifrar los datos. Las claves asimétricas usan una contraseña para cifrar los datos (denominada clave pública ) y otra para descifrar los datos (denominada clave privada ).

En SQL Server, las claves de cifrado incluyen una combinación de claves públicas, privadas y simétricas que se utilizan para proteger la información confidencial. La clave simétrica se crea durante la inicialización de SQL Server al iniciar por primera vez la instancia de SQL Server. SQL Server utiliza la clave para cifrar datos sensibles almacenados en SQL Server. El sistema operativo crea las claves pública y privada, y estas protegen la clave simétrica. Para cada instancia de SQL Server que almacena datos confidenciales en una base de datos se crea un par de claves pública y privada.

Aplicaciones para SQL Server y claves de base de datos

SQL Server tiene dos aplicaciones principales para las claves: una clave maestra de servicio (SMK) generada en y para una instancia de SQL Server, y una clave maestra de base de datos (DMK) usada para una base de datos.

Clave maestra de servicio

La clave maestra de servicio es la raíz de la jerarquía de cifrado de SQL Server . SQL Server genera el SMK la primera vez que se inicia la instancia y lo utiliza para cifrar contraseñas de servidores enlazados, credenciales y la clave maestra de la base de datos en cada base de datos.

El SMK se cifra utilizando la clave local de la máquina o la API de Protección de Datos de Windows (DPAPI). DPAPI utiliza una clave derivada de las credenciales de Windows de la cuenta de servicio de SQL Server. Como la clave está protegida de ambas formas, la clave maestra de servicio puede ser abierta por la cuenta de servicio bajo la que fue creada, o por un principal que tenga acceso a las credenciales de la máquina.

SQL Server utiliza el algoritmo de cifrado AES para proteger la clave maestra del servicio y la clave maestra de la base de datos. AES sustituyó el algoritmo 3DES utilizado en versiones anteriores a SQL Server 2012 (11.x). Después de actualizar una instancia del Motor de base de datos de una de esas versiones anteriores, regenera el SMK y el DMK para actualizar las claves maestras a AES. Para obtener más información sobre la regeneración de SMK, vea ALTER SERVICEALTER SERVICE MASTER KEY (Transact-SQL) y ALTER MASTER KEY (Transact-SQL).

Clave maestra de base de datos

La clave maestra de la base de datos es una clave simétrica que protege las claves privadas de los certificados y las claves asimétricas presentes en la base de datos. También puede cifrar datos, pero tiene limitaciones de longitud que la hacen menos práctica para los datos que una clave asimétrica. Para permitir el descifrado automático de la clave maestra de la base de datos, se cifra una copia de la clave utilizando el SMK. SQL Server almacena esa copia tanto en la base de datos donde se usa la clave como en la master base de datos del sistema.

La copia del DMK almacenada en la master base de datos del sistema se actualiza silenciosamente cada vez que el DMK cambia. Puedes cambiar este valor predeterminado usando la opción DROP ENCRYPTION BY SERVICE MASTER KEY de ALTER MASTER KEY (Transact-SQL). Un DMK que no esté cifrado por la clave maestra de servicio debe abrirse usando OPEN MASTER KEYOPEN MASTER KEY (Transact-SQL) y una contraseña.

Gestión de SQL Server y claves de base de datos

Gestionar las claves de cifrado implica crear nuevas claves de base de datos, hacer copias de seguridad del servidor y de las claves de base de datos, y saber cuándo y cómo restaurar, eliminar o cambiar las claves.

Para gestionar claves simétricas, utiliza las herramientas incluidas en SQL Server para realizar las siguientes tareas:

  • Haz una copia de seguridad de las claves del servidor y la base de datos para poder utilizarlas para recuperar una instalación del servidor o en una migración planificada.
  • Restaurar una clave guardada previamente en una base de datos. Restaurar la clave permite que una nueva instancia del servidor acceda a datos existentes que no había cifrado originalmente.
  • Eliminar los datos cifrados en una base de datos, en el caso poco probable de que ya no se tenga acceso a datos cifrados.
  • Recrea claves y vuelve a cifrar los datos en el improbable caso de que la clave sea comprometida. Como mejor práctica de seguridad, recrea las claves periódicamente, como cada pocos meses, para proteger al servidor de ataques que intenten descifrar las claves.
  • Agregar o quitar una instancia de servidor de una implementación de escalado horizontal de servidores en la que varios servidores comparten una única base de datos y la clave que permite el cifrado reversible de esa base de datos.

Información importante de seguridad

Para acceder a objetos protegidos por la clave maestra de servicio, necesitas o bien la cuenta de servicio de SQL Server que usaste para crear la clave o la cuenta de ordenador (máquina) vinculada al sistema donde creaste la clave. Puedes cambiar la cuenta del servicio SQL Server o la cuenta del ordenador sin perder el acceso a la clave. Sin embargo, si cambias ambas cuentas, pierdes el acceso a la clave maestra de servicio. Si pierdes el acceso a la clave maestra de servicio sin uno de estos dos elementos, no puedes descifrar datos y objetos que la clave original cifró.

No puedes restaurar conexiones aseguradas con la clave maestra de servicio a menos que tengas esa clave.

Para acceder a objetos y datos asegurados con la clave maestra de la base de datos, solo necesitas la contraseña que ayuda a proteger la clave.

Precaución

Si pierdes todo acceso a las claves descritas en este artículo, pierdes acceso a los objetos, conexiones y datos asegurados por esas claves. Puedes restaurar la clave maestra de servicio tal y como se describe en Restaurar la clave maestra de servicio, o puedes volver al sistema original de cifrado para recuperar el acceso. No hay puerta trasera para recuperar el acceso.