Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
SQL Server proporciona las funciones del cifrado de datos junto con la Administración extensible de claves (EKM), las cuales usan la API criptográfica de Microsoft (MSCAPI) para el cifrado y generación de clave. Las claves de cifrado para datos y el cifrado de claves se crean en contenedores de clave transitorios, y debes exportarlas desde un proveedor antes de almacenarlas en la base de datos. Este enfoque permite a SQL Server gestionar claves, incluyendo una jerarquía de claves de cifrado y una copia de seguridad de claves.
Con la creciente demanda de cumplimiento normativo y la preocupación por la privacidad de los datos, las organizaciones están aprovechando el cifrado como una forma de ofrecer una solución de defensa en profundidad. Este enfoque es a menudo poco práctico si solo se utilizan las herramientas de administración del cifrado de base de datos. Los fabricantes de hardware ofrecen productos que abordan la gestión de claves empresariales mediante módulos de seguridad de hardware (HSM). Los dispositivos HSM almacenan las claves de cifrado en módulos de hardware o de software. Este enfoque es más seguro porque las claves de cifrado no residen con los datos cifrados.
Varios proveedores ofrecen HSMs tanto para la gestión de claves como para la aceleración del cifrado. Los dispositivos HSM utilizan interfaces hardware junto con un proceso de servidor que actúan como un intermediario entre la aplicación y HSM. Los fabricantes también implementan proveedores de MSCAPI sobre sus módulos, que pueden ser de tipo hardware o software. MSCAPI a menudo ofrece solo un subconjunto de la funcionalidad que ofrece un HSM. Los proveedores también pueden proporcionar software de gestión para HSM, configuración de claves y acceso a claves.
Las implementaciones HSM varían de un proveedor a otro, y usarlas con SQL Server requiere una interfaz común. Aunque MSCAPI proporciona esta interfaz, solo soporta un subconjunto de las características HSM. También tiene otras limitaciones, como la incapacidad para conservar de forma nativa las claves simétricas o la falta de compatibilidad orientada a sesiones.
SQL Server Extensible Key Management permite a proveedores externos de EKM y HSM registrar sus módulos en SQL Server. Después de registrar un módulo, los usuarios de SQL Server pueden usar las claves de cifrado almacenadas en él. SQL Server puede acceder entonces a las funciones avanzadas de cifrado que estos módulos soportan, como cifrado y descifrado masivos, y a funciones de gestión de claves como el envejecimiento y la rotación de claves.
Cuando ejecutas SQL Server en una máquina virtual de Azure, SQL Server puede usar claves almacenadas en Azure Key Vault. Para más información, consulta Gestión extensible de claves usando Azure Key Vault (SQL Server).
Configuración de EKM
La Gestión de Claves Extensible no está disponible en todas las ediciones de SQL Server. Para una lista de características soportadas por las ediciones en SQL Server, consulte Ediciones y características soportadas de SQL Server 2025.
De forma predeterminada, la Administración extensible de claves está desactivada. Para habilitar esta función, utiliza el procedimiento almacenado sp_configure (Transact-SQL) con la siguiente opción y valor:
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
Nota:
Si usas sp_configure para esta opción en ediciones de SQL Server que no soportan EKM, recibes un error.
Para desactivar la función, establece el valor en 0. Para obtener más información sobre cómo establecer las opciones de servidor, vea sp_configure (Transact-SQL).
Cómo usar EKM
SQL Server Extensible Key Management te permite almacenar las claves de cifrado que protegen los archivos de base de datos en un dispositivo externo, como una tarjeta inteligente, un dispositivo USB o un módulo EKM/HSM. También protege los datos de los administradores de bases de datos, excepto para los miembros del rol de servidor fijo de sysadmin . Puedes cifrar datos usando claves de cifrado a las que solo el usuario de la base de datos puede acceder en el módulo externo EKM/HSM.
La Administración extensible de claves también ofrece las siguientes ventajas:
- Una comprobación adicional de autorización, que permite la separación de funciones.
- Mayor rendimiento para el cifrado y descifrado basados en hardware.
- Generación de claves de cifrado externas.
- Almacenamiento externo de claves de cifrado, que separa físicamente datos y claves.
- Recuperación de claves de cifrado.
- Retención externa de claves de cifrado, que permite la rotación de claves de cifrado.
- Recuperación de claves de cifrado más sencilla.
- Distribución de claves de cifrado más flexible.
- Disposición de claves de cifrado segura.
Puede utilizar Administración extensible de claves con una combinación de nombre de usuario y contraseña u otros métodos definidos por el controlador EKM.
Precaución
Para solucionar problemas, es posible que el soporte técnico de Microsoft le solicite la clave de cifrado del proveedor de EKM. También podría necesitar tener acceso a las herramientas o procesos del fabricante para resolver el problema.
Autenticación con un dispositivo EKM
Un módulo EKM puede admitir más de un tipo de autenticación. Cada proveedor expone solo un tipo de autenticación a SQL Server. Es decir, si el módulo soporta tanto tipos básicos como otros tipos de autenticación, expone uno u otro, pero no ambos.
Autenticación básica específica de dispositivo EKM mediante un nombre de usuario y una contraseña
Para módulos EKM que soportan autenticación básica usando un par de nombre de usuario y contraseña, SQL Server proporciona una autenticación transparente mediante el uso de credenciales. Para obtener más información sobre las credenciales, vea Credenciales (motor de base de datos).
Puedes crear una credencial para un proveedor EKM y asignarla a un inicio de sesión, ya sea una cuenta de Windows o de SQL Server, para acceder a un módulo EKM por cada inicio de sesión. El campo identity de la credencial contiene el nombre de usuario, y el campo secret contiene una contraseña para conectarse a un módulo EKM.
Si no existe ninguna credencial asignada a inicio de sesión para el proveedor EKM, SQL Server utiliza la credencial asignada a la cuenta del servicio.
Un inicio de sesión puede tener múltiples credenciales asignadas, siempre que cada una se utilice para un proveedor EKM distinto. Solo debe haber una credencial asignada por cada EKM y por cada inicio de sesión. Puedes asignar la misma credencial a otros inicios de sesión.
Otros tipos de autenticación específica de dispositivo EKM
Para módulos EKM que usan autenticación distinta de Windows o combinaciones de nombre de usuario y contraseña, debes realizar la autenticación de forma independiente de SQL Server.
Cifrado y descifrado mediante un dispositivo EKM
Utiliza las siguientes funciones y características para cifrar y descifrar datos utilizando claves simétricas y asimétricas:
| Función o característica | Referencia |
|---|---|
| Cifrado de claves simétricas | CREATE SYMMETRIC KEY (Transact-SQL) |
| Cifrado de clave asimétrica | CREATE ASYMMETRIC KEY (Transact-SQL) |
EncryptByKey(key_guid, 'cleartext', ...) |
ENCRYPTBYKEY (Transact-SQL) |
DecryptByKey(ciphertext, ...) |
DECRYPTBYKEY (Transact-SQL) |
EncryptByAsmKey(key_guid, 'cleartext') |
ENCRYPTBYASYMKEY (Transact-SQL) |
DecryptByAsmKey(ciphertext) |
DECRYPTBYASYMKEY (Transact-SQL) |
Cifrado de claves de base de datos mediante claves EKM
SQL Server puede utilizar claves EKM para cifrar otras claves de una base de datos. Puede crear y utilizar tanto claves simétricas como asimétricas en un dispositivo EKM. Puede cifrar claves simétricas nativas (no EKM) con claves asimétricas EKM.
El siguiente ejemplo crea una clave simétrica de base de datos y la cifra usando una clave en un módulo EKM.
CREATE SYMMETRIC KEY Key1
WITH ALGORITHM = AES_256
ENCRYPTION BY EKM_AKey1;
GO
-- Open the database key.
OPEN SYMMETRIC KEY Key1
DECRYPTION BY EKM_AKey1;
Para obtener más información sobre las claves de base de datos y servidor en SQL Server, consulte Claves de cifrado de bases de datos y SQL Server (Motor de base de datos).
Nota:
No puedes cifrar una clave EKM con otra clave EKM.
SQL Server no admite firmar módulos con claves asimétricas generadas por un proveedor EKM.
Contenido relacionado
- Opción de configuración del servidor con el proveedor de EKM habilitado
- Habilitar TDE en SQL Server con EKM
- Gestión extensible de claves usando Azure Key Vault (SQL Server)
- SQL Server y claves de cifrado de bases de datos (Motor de base de datos)
- CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- sys.cryptographic_providers (Transact-SQL)
- sys.dm_cryptographic_provider_sessions (Transact-SQL)
- sys.dm_cryptographic_provider_properties (Transact-SQL)
- sys.dm_cryptographic_provider_algorithms (Transact-SQL)
- sys.dm_cryptographic_provider_keys (Transact-SQL)
- sys.credentials (Transact-SQL)
- CREATE CREDENTIAL (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- CREATE ASYMMETRIC KEY (Transact-SQL)
- ALTER ASYMMETRIC KEY (Transact-SQL)
- DROP ASYMMETRIC KEY (Transact-SQL)
- CREATE SYMMETRIC KEY (Transact-SQL)
- ALTER SYMMETRIC KEY (Transact-SQL)
- DROP SYMMETRIC KEY (Transact-SQL)
- OPEN SYMMETRIC KEY (Transact-SQL)
- Hacer copia de seguridad y restaurar claves de cifrado de SQL Server Reporting Services (SSRS)
- Eliminar y recrear claves de cifrado (Administrador de configuración)
- Agregar y quitar claves de cifrado para implementaciones escaladas
- Hacer una copia de seguridad de una clave maestra de servicio
- Restaurar una clave maestra de servicio
- Crear una clave maestra de base de datos
- Hacer una copia de seguridad de una clave maestra de base de datos
- Restaurar una clave maestra de base de datos
- Crear claves simétricas idénticas en dos servidores