Elegir un algoritmo de cifradoChoose an Encryption Algorithm

SE APLICA A: síSQL Server síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

El cifrado es una de las medidas defensivas con que cuenta cualquier administrador que desee proteger una instancia de SQL ServerSQL Server.Encryption is one of several defenses-in-depth that are available to the administrator who wants to secure an instance of SQL ServerSQL Server.

Los algoritmos de cifrado definen transformaciones de datos que los usuarios no autorizados no pueden revertir con facilidad.Encryption algorithms define data transformations that cannot be easily reversed by unauthorized users. SQL ServerSQL 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.allows administrators and developers to choose from among several algorithms, including DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128-bit RC4, DESX, 128-bit AES, 192-bit AES, and 256-bit AES.

Nota

A partir de SQL Server 2016 (13.x)SQL Server 2016 (13.x), todos los algoritmos, a excepción de AES_128, AES_192 y AES_256, están en desuso.Beginning with SQL Server 2016 (13.x)SQL Server 2016 (13.x), all algorithms other than AES_128, AES_192, and AES_256 are deprecated. 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.To use older algorithms (not recommended) you must set the database to database compatibility level 120 or lower.

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 ServerSQL Server .No single algorithm is ideal for all situations, and guidance on the merits of each is beyond the scope of SQL ServerSQL Server Books Online. No obstante, se aplican los siguientes principios generales:However, the following general principles apply:

  • El cifrado seguro suele consumir más recursos de la CPU que un cifrado menos seguro.Strong encryption generally consumes more CPU resources than weak encryption.

  • Las claves largas suelen producir un cifrado más seguro que las claves cortas.Long keys generally yield stronger encryption than short keys.

  • El cifrado asimétrico es más lento que el simétrico.Asymmetric encryption is slower than symmetric encryption.

  • Las contraseñas largas y complejas son más seguras que las contraseñas cortas.Long, complex passwords are stronger than short passwords.

  • Por lo general, el cifrado simétrico se recomienda cuando la clave solo se almacena de forma local; el asimétrico se recomienda cuando las claves deben compartirse a través de la conexión.Symmetric encryption is generally recommended when they key is only stored locally, assymmetric encryption is recommended when keys need to be shared across the wire.

  • 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.If you are encrypting lots of data, you should encrypt the data using a symmetric key, and encrypt the symmetric key with an asymmetric key.

  • Los datos cifrados no se pueden comprimir, pero los datos comprimidos se pueden cifrar.Encrypted data cannot be compressed, but compressed data can be encrypted. Si usa compresión, debe comprimir los datos antes de cifrarlos.If you use compression, you should compress data before encrypting it.

Importante

El algoritmo RC4 se admite únicamente por razones de compatibilidad con versiones anteriores.The RC4 algorithm is only supported for backward compatibility. 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.New material can only be encrypted using RC4 or RC4_128 when the database is in compatibility level 90 or 100. (No se recomienda). Use un algoritmo más reciente como uno de los algoritmos AES en su lugar.(Not recommended.) Use a newer algorithm such as one of the AES algorithms instead. En SQL Server 2012 (11.x)SQL Server 2012 (11.x) y versiones posteriores, el material cifrado con RC4 o RC4_128 se puede descifrar en cualquier nivel de compatibilidad.In SQL Server 2012 (11.x)SQL Server 2012 (11.x) and higher material encrypted using RC4 or RC4_128 can be decrypted in any compatibility level.

El uso repetido de la misma RC4 o RC4_128 KEY_GUID en bloques diferentes de datos producirá la misma clave RC4 porque SQL ServerSQL Server no proporciona un valor de salt automáticamente.Repeated use of the same RC4 or RC4_128 KEY_GUID on different blocks of data will result in the same RC4 key because SQL ServerSQL Server does not provide a salt automatically. El uso repetido de la misma clave RC4 es un error conocido que producirá un cifrado muy poco seguro.Using the same RC4 key repeatedly is a well-known error that will result in very weak encryption. Por consiguiente, hemos dejado de utilizar las palabras clave RC4_128 y RC4.Therefore, we have deprecated the RC4 and RC4_128 keywords. Esta característica se quitará en una versión futura de Microsoft SQL Server.This feature will be removed in a future version of Microsoft SQL Server. No utilice esta característica en nuevos trabajos de desarrollo y modifique lo antes posible las aplicaciones que actualmente la utilizan.Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.

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.For more information about encryption algorithms and encryption technology, see Key Security Concepts in the .NET Framework Developer's Guide on MSDN.

Clarificación con respecto a los algoritmos DES:Clarification regarding DES algorithms:

  • DESX se denominó incorrectamente.DESX was incorrectly named. Las claves simétricas creadas con ALGORITHM = DESX realmente utilizan el cifrado TRIPLE DES con una clave de 192 bits.Symmetric keys created with ALGORITHM = DESX actually use the TRIPLE DES cipher with a 192-bit key. No se proporciona el algoritmo DESX.The DESX algorithm is not provided. Esta característica está en modo de mantenimiento y es posible que no se incluya en una versión futura de Microsoft SQL Server.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

  • Las claves simétricas creadas con ALGORITHM = TRIPLE_DES_3KEY utilizan TRIPLE DES con una clave de 192 bits.Symmetric keys created with ALGORITHM = TRIPLE_DES_3KEY use TRIPLE DES with a 192-bit key.

  • Las claves simétricas creadas con ALGORITHM = TRIPLE_DES utilizan TRIPLE DES con una clave de 128 bits.Symmetric keys created with ALGORITHM = TRIPLE_DES use TRIPLE DES with a 128-bit key.

Cifrar mediante una clave simétrica.Encrypting using a symmetric key. CREATE SYMMETRIC KEY (Transact-SQL)CREATE SYMMETRIC KEY (Transact-SQL)
Cifrar mediante una clave asimétrica.Encrypting using an asymmetric key. CREATE ASYMMETRIC KEY (Transact-SQL)CREATE ASYMMETRIC KEY (Transact-SQL)
Cifrar mediante un certificado.Encrypting using a certificate. CREATE CERTIFICATE (Transact-SQL)CREATE CERTIFICATE (Transact-SQL)
Cifrar los archivos de base de datos mediante el cifrado de datos transparente.Encrypting database files using transparent data encryption. Cifrado de datos transparente (TDE)Transparent Data Encryption (TDE)
Cómo cifrar una columna de una tabla.How to encrypt one column of a table. Cifrar una columna de datosEncrypt a Column of Data

Ver tambiénSee Also

Cifrado de SQL Server SQL Server Encryption
Jerarquía de cifradoEncryption Hierarchy