SQL Server y claves de cifrado de base de datos (motor de base de datos)SQL Server and Database Encryption Keys (Database Engine)

En este tema se aplica a: SíSQL Servernobase de datos de SQL Azurenoalmacenamiento de datos de SQL Azure ningún Almacenamiento de datos paralelosTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse SQL ServerSQL Server usa claves de cifrado para proteger los datos, las credenciales y la información de conexión que se almacena en una base de datos de servidor. SQL ServerSQL Server uses encryption keys to help secure data, credentials, and connection information that is stored in a server database. SQL ServerSQL Server tiene dos tipos de claves: simétricas y asimétricas. has two kinds of keys: symmetric and asymmetric. Las claves simétricas utilizan la misma contraseña para cifrar y descifrar los datos.Symmetric keys use the same password to encrypt and decrypt data. 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 ).Asymmetric keys use one password to encrypt data (called the public key) and another to decrypt data (called the private key).

En SQL ServerSQL 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.In SQL ServerSQL Server, encryption keys include a combination of public, private, and symmetric keys that are used to protect sensitive data. La clave simétrica se crea durante la inicialización de SQL ServerSQL Server al iniciar por primera vez la instancia de SQL ServerSQL Server .The symmetric key is created during SQL ServerSQL Server initialization when you first start the SQL ServerSQL Server instance. SQL ServerSQL Server utiliza la clave para cifrar los datos confidenciales que se almacenan en SQL ServerSQL Server.The key is used by SQL ServerSQL Server to encrypt sensitive data that is stored in SQL ServerSQL Server. El sistema operativo crea las claves públicas y privadas, y éstas se utilizan para proteger la clave simétrica.Public and private keys are created by the operating system and they are used to protect the symmetric key. Para cada instancia de SQL ServerSQL Server que almacena datos confidenciales en una base de datos se crea un par de claves pública y privada.A public and private key pair is created for each SQL ServerSQL Server instance that stores sensitive data in a database.

Aplicaciones para las claves de SQL Server y las claves de las bases de datosApplications for SQL Server and Database Keys

SQL ServerSQL Server tiene dos aplicaciones principales para las claves: una clave maestra de servicio (SMK) generada en y para una instancia de SQL ServerSQL Server , y una clave maestra de base de datos (DMK) usada para una base de datos. has two primary applications for keys: a service master key (SMK) generated on and for a SQL ServerSQL Server instance, and a database master key (DMK) used for a database.

La clave maestra de servicio se genera automáticamente la primera vez que se inicia la instancia de SQL ServerSQL Server y se utiliza para cifrar una contraseña de servidor vinculado, las credenciales y la clave maestra de base de datos.The SMK is automatically generated the first time the SQL ServerSQL Server instance is started and is used to encrypt a linked server password, credentials, and the database master key. La SMK se cifra mediante la clave del equipo local y la API de protección de datos de Windows (DPAPI).The SMK is encrypted by using the local computer key using the Windows Data Protection API (DPAPI). La DPAPI utiliza una clave derivada de las credenciales de Windows de la cuenta de servicio de SQL ServerSQL Server y de las credenciales del equipo.The DPAPI uses a key that is derived from the Windows credentials of the SQL ServerSQL Server service account and the computer's credentials. La clave maestra de servicio solo puede descifrarse con la cuenta de servicio en la que se creó o con una entidad de seguridad que tenga acceso a las credenciales del equipo.The service master key can only be decrypted by the service account under which it was created or by a principal that has access to the machine's credentials.

La clave maestra de base de datos es una clave simétrica que se utiliza para proteger las claves privadas de certificados y las claves asimétricas presentes en la base de datos.The database master key is a symmetric key that is used to protect the private keys of certificates and asymmetric keys that are present in the database. También se puede utilizar para cifrar los datos, pero sus limitaciones de longitud hacen que sea más práctico utilizar una clave simétrica.It can also be used to encrypt data, but it has length limitations that make it less practical for data than using a symmetric key.

Al crearla, la clave maestra se cifra mediante el algoritmo Triple DES y una contraseña proporcionada por el usuario.When it is created, the master key is encrypted by using the Triple DES algorithm and a user-supplied password. Para habilitar el descifrado automático de la clave maestra, se cifra una copia de la clave mediante la SMK.To enable the automatic decryption of the master key, a copy of the key is encrypted by using the SMK. Esta copia se almacena en la base de datos donde se utiliza y en la base de datos del sistema master .It is stored in both the database where it is used and in the master system database.

La copia de la DMK almacenada en la base de datos del sistema master se actualiza automáticamente siempre que se modifica la DMK.The copy of the DMK stored in the master system database is silently updated whenever the DMK is changed. Sin embargo, este comportamiento predeterminado se puede cambiar con la opción DROP ENCRYPTION BY SERVICE MASTER KEY de la instrucción ALTER MASTER KEY .However, this default can be changed by using the DROP ENCRYPTION BY SERVICE MASTER KEY option of the ALTER MASTER KEY statement. Para abrir una DMK que no se haya cifrado con la clave maestra de servicio, debe utilizarse la instrucción OPEN MASTER KEY y una contraseña.A DMK that is not encrypted by the service master key must be opened by using the OPEN MASTER KEY statement and a password.

Administrar las claves de SQL Server y las claves de las bases de datosManaging SQL Server and Database Keys

La administración de las claves de cifrado consiste en crear nuevas claves de base de datos, crear una copia de seguridad de las claves del servidor y de las bases de datos, y saber cuándo y cómo se deben restaurar, eliminar o cambiar dichas claves.Managing encryption keys consists of creating new database keys, creating a backup of the server and database keys, and knowing when and how to restore, delete, or change the keys.

Para administrar las claves simétricas, puede utilizar las herramientas incluidas en SQL ServerSQL Server para hacer lo siguiente:To manage symmetric keys, you can use the tools included in SQL ServerSQL Server to do the following:

  • Crear una copia de seguridad de las claves del servidor y de las claves de las bases de datos que se pueda utilizar para recuperar una instalación de un servidor de informes, o como parte de una migración planeada.Back up a copy of the server and database keys so that you can use them to recover a server installation, or as part of a planned migration.

  • Restaurar una clave guardada previamente en una base de datos.Restore a previously saved key to a database. Esto permite el acceso de una nueva instancia del servidor a datos existentes que no cifró originalmente.This enables a new server instance to access existing data that it did not originally encrypt.

  • Eliminar los datos cifrados en una base de datos, en el caso poco probable de que ya no se tenga acceso a datos cifrados.Delete the encrypted data in a database in the unlikely event that you can no longer access encrypted data.

  • Volver a crear claves y volver a cifrar datos en el caso poco probable de que la clave esté en unas circunstancias comprometidas.Re-create keys and re-encrypt data in the unlikely event that the key is compromised. Como práctica recomendada de seguridad, se deberían volver a crear las claves periódicamente (por ejemplo, cada cierto número de meses) para proteger el servidor de ataques que traten de descifrar las claves.As a security best practice, you should re-create the keys periodically (for example, every few months) to protect the server from attacks that try to decipher the keys.

  • Agregar o quitar una instancia del servidor de una implementación escalada de este servidor en la que varios servidores comparten una sola base de datos y la clave que proporciona el cifrado reversible para dicha base de datos.Add or remove a server instance from a server scale-out deployment where multiple servers share both a single database and the key that provides reversible encryption for that database.

Información de seguridad importanteImportant Security Information

Para tener acceso a los objetos protegidos por la clave maestra de servicio, es necesaria la cuenta de servicio de SQL ServerSQL Server que se utilizó para crear la clave o la cuenta del equipo.Accessing objects secured by the service master key requires either the SQL ServerSQL Server Service account that was used to create the key or the computer (machine) account. Es decir, el equipo vinculado al sistema donde se creó la clave.That is, the computer is tied to the system where the key was created. Puede cambiar la cuenta de servicio de SQL ServerSQL Server o la cuenta del equipo sin perder el acceso a la clave.You can change the SQL ServerSQL Server Service account or the computer account without losing access to the key. Sin embargo, si cambia ambas, perderá el acceso a la clave maestra de servicio.However, if you change both, you will lose access to the service master key. Si pierde el acceso a la clave maestra de servicio sin uno de estos dos elementos, no podrá descifrar los datos y los objetos cifrados mediante la clave original.If you lose access to the service master key without one of these two elements, you be unable to decrypt data and objects encrypted by using the original key.

Las conexiones protegidas con la clave maestra de servicio no se pueden restaurar sin dicha clave.Connections secured with the service master key cannot be restored without the service master key.

El acceso a los objetos y los datos protegidos con la clave maestra de base de datos únicamente requiere la contraseña que se utiliza para proteger la clave.Access to objects and data secured with the database master key require only the password that is used to help secure the key.

Precaución

Si pierde todo tipo de acceso a las claves descritas anteriormente, también perderá el acceso a los objetos, las conexiones y los datos protegidos mediante esas claves.If you lose all access to the keys described earlier, you will lose access to the objects, connections, and data secured by those keys. Puede restaurar la clave maestra de servicio, tal y como se describe en los vínculos que se muestran a continuación, o puede regresar al sistema de cifrado original para recuperar el acceso.You can restore the service master key, as described in the links that are shown here, or you can go back to the original encrypting system to recover the access. No hay ninguna "puerta trasera" para recuperar el acceso.There is no "back-door" to recover the access.

En esta secciónIn This Section

Service Master KeyService Master Key
Proporciona una breve explicación de la clave maestra de servicio y las prácticas recomendadas.Provides a brief explanation for the service master key and its best practices.

Administración extensible de claves (EKM)Extensible Key Management (EKM)
Explica cómo usar los sistemas de administración de claves de terceros con SQL ServerSQL Server.Explains how to use third-party key management systems with SQL ServerSQL Server.

Hacer una copia de seguridad de la clave maestra de servicioBack Up the Service Master Key

Restaurar la clave maestra de servicioRestore the Service Master Key

Crear la clave maestra de una base de datosCreate a Database Master Key

Hacer copias de seguridad de una clave maestra de una base de datosBack Up a Database Master Key

Restaurar una clave maestra de base de datosRestore a Database Master Key

Crear claves simétricas idénticas en dos servidoresCreate Identical Symmetric Keys on Two Servers

Habilitar TDE en SQL Server con EKMEnable TDE on SQL Server Using EKM

Administración extensible de claves con el Almacén de claves de Azure (SQL Server)Extensible Key Management Using Azure Key Vault (SQL Server)

Cifrar una columna de datosEncrypt a Column of Data

CREATE MASTER KEY (Transact-SQL)CREATE MASTER KEY (Transact-SQL)

ALTER SERVICE MASTER KEY (Transact-SQL)ALTER SERVICE MASTER KEY (Transact-SQL)

Restaurar una clave maestra de base de datosRestore a Database Master Key

Vea tambiénSee Also

Hacer copia de seguridad y restaurar claves de cifrado de Reporting Services Back Up and Restore Reporting Services Encryption Keys
Eliminar y volver a crear claves de cifrado (Administrador de configuración de SSRS) Delete and Re-create Encryption Keys (SSRS Configuration Manager)
Agregar y quitar claves de cifrado para implementaciones escaladas (Administrador de configuración de SSRS) Add and Remove Encryption Keys for Scale-Out Deployment (SSRS Configuration Manager)
Cifrado de datos transparente (TDE)Transparent Data Encryption (TDE)