Elegir un algoritmo de cifrado

El cifrado es una de las medidas defensivas con que cuenta cualquier administrador que desee proteger una instancia de SQL Server.

Los algoritmos de cifrado definen transformaciones de datos que los usuarios no autorizados no pueden revertir con facilidad. SQL Server permite a los administradores y los desarrolladores de software elegir entre varios algoritmos, incluidos DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, RC4 de 128 bits, DESX, AES de 128 bits, AES de 192 bits y AES de 256 bits.

Ningún algoritmo único resulta idóneo para todas las situaciones. Además, ofrecer información detallada sobre las ventajas de cada uno queda fuera del ámbito de los Libros en pantalla de SQL Server. No obstante, se aplican los siguientes principios generales:

  • El cifrado seguro suele consumir más recursos de la CPU que un cifrado menos seguro.

  • Las claves largas suelen producir un cifrado más seguro que las claves cortas.

  • El cifrado asimétrico es menos seguro que el simétrico con la misma longitud de clave, pero es relativamente lento.

  • Los cifrados en bloque con claves largas son más seguros que los cifrados de flujo.

  • Las contraseñas largas y complejas son más seguras que las contraseñas cortas.

  • Si cifra una gran cantidad de datos, debe cifrar los datos con una clave simétrica y cifrar la clave simétrica con una clave asimétrica.

  • Los datos cifrados no se pueden comprimir, pero los datos comprimidos se pueden cifrar. Si usa compresión, debe comprimir los datos antes de cifrarlos.

Nota importanteImportante

El algoritmo RC4 se admite únicamente por razones de compatibilidad con versiones anteriores. El material nuevo solo se puede cifrar con RC4 o RC4_128 cuando la base de datos tenga el nivel de compatibilidad 90 o 100. (No se recomienda). Use un algoritmo más reciente como uno de los algoritmos AES en su lugar. En SQL Server 2012 el material cifrado con RC4 o RC4_128 se puede descifrar en cualquier nivel de compatibilidad.

El uso repetido de la misma RC4 o RC4_128 KEY_GUID en bloques diferentes de datos producirá la misma clave RC4 porque SQL Server no proporciona un valor de salt automáticamente. El uso repetido de la misma clave RC4 es un error conocido que producirá un cifrado muy poco seguro. Por consiguiente, hemos dejado de utilizar las palabras clave RC4_128 y RC4. Esta característica se quitará en una versión futura de Microsoft SQL Server. No utilice esta característica en nuevos trabajos de desarrollo y modifique lo antes posible las aplicaciones que actualmente la utilizan.

Para obtener más información acerca de los algoritmos y la tecnología de cifrado, vea la sección referente a conceptos claves de seguridad de la publicación .NET Framework Developer's Guide en MSDN.

Clarificación con respecto a los algoritmos DES:

  • DESX se denominó incorrectamente. Las claves simétricas creadas con ALGORITHM = DESX realmente utilizan el cifrado TRIPLE DES con una clave de 192 bits. No se proporciona el algoritmo DESX. Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.

  • Las claves simétricas creadas con ALGORITHM = TRIPLE_DES_3KEY utilizan TRIPLE DES con una clave de 192 bits.

  • Las claves simétricas creadas con ALGORITHM = TRIPLE_DES usan TRIPLE DES con una clave de 128 bits.

Tareas relacionadas

Cifrar mediante una clave simétrica.

CREATE SYMMETRIC KEY (Transact-SQL)

Cifrar mediante una clave asimétrica.

CREATE ASYMMETRIC KEY (Transact-SQL)

Cifrar mediante un certificado.

CREATE CERTIFICATE (Transact-SQL)

Cifrar los archivos de base de datos mediante el cifrado de datos transparente.

Cifrado de datos transparente (TDE)

Cómo cifrar una columna de una tabla.

Cifrar una columna de datos

Vea también

Conceptos

Cifrado de SQL Server

Jerarquía de cifrado