Descripción de la Administración extensible de claves (EKM)

SQL Server proporciona las funciones del cifrado de datos junto con la Administración extensible de claves (EKM), las cuales utilizan la API criptográfica de Microsoft (MSCAPI) para el cifrado y generación de clave. Las claves de cifrado utilizadas para cifrar datos y claves se crean en contenedores transitorios de claves y se deben exportar desde un proveedor antes de que se almacenen en la base de datos. Este enfoque permite a SQL Server llevar a cabo la administración de claves, que incluye una jerarquía de claves de cifrado y la copia de seguridad de las claves.

Con la creciente demanda para cumplir con las leyes y con las políticas de privacidad de datos, las organizaciones están aprovechándose del cifrado como una forma de obtener una solución de "defensa en profundidad". Este enfoque es a menudo poco práctico si sólo se utilizan las herramientas de administración del cifrado de base de datos. Los fabricantes de hardware proporcionan productos específicamente diseñados para la administración de claves de la empresa utilizando Módulos de seguridad por hardware (HSM). Los dispositivos HSM almacenan las claves de cifrado en módulos de hardware o de software. Ésta es una solución más segura porque las claves de cifrado no residen junto a los datos de cifrado.

Varios fabricantes proporcionan HSM tanto para administració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. A menudo, MSCAPI proporciona solo un subconjunto de la funcionalidad que ofrece HSM. Los fabricantes también pueden proporcionar el software de administración para HSM, configuración de claves y acceso a claves.

Las implementaciones de HSM varían de un fabricante a otro y para poder utilizarlas con SQL Server es necesaria una interfaz común. Aunque MSCAPI proporciona esta interfaz, admite solo un subconjunto de las características de 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.

La Administración extensible de claves de SQL Server 2008 permite a los fabricantes de EKM/HSM registrar sus módulos en SQL Server. Cuando se registra, los usuarios de SQL Server pueden utilizar las claves de cifrado almacenadas en los módulos EKM. Esto permite a SQL Server obtener acceso a las funciones de cifrado avanzadas que admiten estos módulos, como el cifrado y descifrado masivo, o las funciones de administración de claves, como el vencimiento o la rotación de claves.

Configuración de EKM

La Administración extensible de claves solo está disponible en las ediciones Enterprise, Developer y Evaluation de SQL Server.

De forma predeterminada, la Administración extensible de claves está desactivada. Para habilitar esta característica, utilice el comando sp_configure, que tiene la siguiente opción y valor, tal y como se muestra en el ejemplo siguiente:

sp_configure 'show advanced', 1
GO
RECONFIGURE
GO
sp_configure 'EKM provider enabled', 1
GO
RECONFIGURE
GO

Nota

Si utiliza el comando sp_configure para esta opción en otras ediciones que no sean Enterprise, Developer o Evaluation, recibirá un error.

Para deshabilitar la característica, establezca el valor en 0. Para obtener más información acerca de cómo establecer las opciones de servidor, vea sp_configure (Transact-SQL).

Cómo utilizar EKM

La Administración extensible de claves de SQL Server 2008 habilita las claves de cifrado que protegen los archivos de base de datos que se almacenan en un dispositivo externo, como puede ser una tarjeta inteligente, un dispositivo USB o un módulo EKM/HSM. Esto también habilita la protección de datos para los administradores de bases de datos (exceptuando a los miembros del grupo de sysadmin). Los datos se pueden cifrar utilizando claves de cifrado a las que solo tiene acceso el usuario de la base de datos en el módulo EKM/HSM externo.

La Administración extensible de claves también ofrece las siguientes ventajas:

  • Comprobación de la autorización adicional (permitiendo la separación de tareas).

  • Mayor rendimiento en el cifrado o descifrado basado en hardware.

  • Generación de claves de cifrado externas.

  • Almacenamiento externo de la clave de cifrado (separación física de datos y claves).

  • Recuperación de claves de cifrado.

  • Retención de claves de cifrado externas (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.

Nota de advertenciaAdvertencia

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 propone únicamente un tipo de autenticación en SQL Server, es decir, si el módulo admite los tipos de autenticación básica u otros, propondrá uno u otro, pero no ambos.

Autenticación básica específica del dispositivo EKM utilizando el nombre de usuario y contraseña

Para aquellos módulos EKM que admitan la autenticación básica mediante una combinación de nombre de usuario/contraseña, SQL Server proporciona una autenticación transparente mediante el uso credenciales. Para obtener más información sobre las credenciales, vea Credenciales (motor de base de datos).

Se puede crear una credencial para un proveedor de EKM y asignarse a un inicio de sesión (tanto para cuentas Windows como para cuentas de SQL Server) con el fin de obtener acceso a un módulo EKM en base a un inicio de sesión. El campo Identify de la credencial contiene el nombre de usuario; el campo secret contiene una contraseña para conectar con un módulo EKM.

Si no hay ninguna credencial de inicio de sesión asignada para el proveedor de EKM, se utiliza la credencial asignada a la cuenta de servicio de SQL Server.

Un inicio de sesión puede tener varias credenciales asignadas a él, siempre y cuando se utilicen para proveedores de EKM distintos. Sólo debe haber una credencial asignada por cada EKM y por cada inicio de sesión. La misma credencial puede estar asignada a otros inicios de sesión.

Otros tipos de autenticación específicas del dispositivo EKM

Para aquellos módulos EKM que utilizan una autenticación que no sea la Windows o la de una combinación de usuario/contraseña, la autenticación se debe realizar independientemente de SQL Server.

Cifrado y descifrado por parte de un dispositivo EKM

Puede utilizar 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 claves asimétricas

CREATE ASYMMETRIC KEY (Transact-SQL)

EncryptByKey(key_guid, 'texto no cifrado', …)

ENCRYPTBYKEY (Transact-SQL)

DecryptByKey(texto cifrado, …)

DECRYPTBYKEY (Transact-SQL)

EncryptByAsmKey (key_guid, 'texto no cifrado')

ENCRYPTBYASYMKEY (Transact-SQL)

DecryptByAsmKey(texto cifrado)

DECRYPTBYASYMKEY (Transact-SQL)

Cifrado de claves de la base de datos mediante claves EKM

SQL Server pueden 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 ejemplo siguiente crea una clave simétrica de la base de datos y la cifra utilizando una clave de un módulo EKM.

CREATE SYMMETRIC KEY Key1
WITH ALGORITHM = AES_256
ENCRYPTION BY EKM_AKey1;
GO
--Open database key
OPEN SYMMETRIC KEY Key1
DECRYPTION BY EKM_AKey1

Para obtener más información sobre base de datos y claves del servidor en SQL Server, vea SQL Server y claves de cifrado de base de datos (motor de base de datos).

Nota

No puede cifrar una clave EKM con otra clave EKM.

Vea también

Tasks

Referencia

Conceptos