Elegir un algoritmo de cifrado

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

El cifrado es una de las muchas medidas defensivas disponibles para cualquier administrador que desee proteger una instancia de SQL Server.

Los algoritmos de cifrado definen las transformaciones de datos que los usuarios no autorizados no pueden revertir fácilmente. Los administradores y desarrolladores pueden elegir entre varios algoritmos en SQL Server, 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.

A partir de SQL Server 2016 (13.x), todos los algoritmos están en desuso, salvo AES_128, AES_192 y AES_256. Para usar algoritmos anteriores (no se recomienda), debe establecer la base de datos en el nivel de compatibilidad de base de datos 120 o inferior.

Elección del algoritmo adecuado

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 este artículo. 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 más lento que el simétrico.

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

  • Se recomienda el cifrado simétrico cuando la clave solo se almacena de manera local. Se recomienda el cifrado asimétrico cuando las claves deben compartirse a través de la conexión.

  • Si cifras una gran cantidad de datos, debes 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.

Para obtener más información acerca de los algoritmos y la tecnología de cifrado, consulta la sección referente a Conceptos claves de seguridad.

Algoritmo RC4 en desuso

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 recomendado). Use un algoritmo más reciente como uno de los algoritmos AES en su lugar. En SQL Server 2012 (11.x) y versiones posteriores, 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_128KEY_GUID en distintos bloques de datos produce la misma clave RC4 porque SQL Server no proporciona un valor de sal automáticamente. El uso repetido de la misma clave RC4 es un error conocido que produce un cifrado muy poco seguro. Por tanto, las palabras clave RC4 y RC4_128 están en desuso. Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.

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 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 utilizan TRIPLE DES con una clave de 128 bits.