Choisir un algorithme de chiffrement

Le chiffrement est l'une des mesures préventives à la disposition des administrateurs qui souhaitent sécuriser une instance de SQL Server.

Les algorithmes de chiffrement définissent les transformations de données qui ne peuvent pas être facilement inversées par les utilisateurs non autorisés. SQL Server permet aux administrateurs et aux développeurs de choisir entre plusieurs algorithmes, notamment DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, RC4 128 bits, DESX, AES 128 bits, AES 196 bits et AES 256 bits.

Aucun algorithme unique ne convient pour toutes les situations et l'appréciation des avantages de chaque algorithme dépasse le cadre de la documentation en ligne de SQL Server. Cependant, les principes suivants s'appliquent :

  • Un chiffrement renforcé consomme en général davantage de ressources processeur qu'un chiffrement plus faible.

  • Les clés longues produisent en général un chiffrement plus fort que les clés courtes.

  • À longueur de clé égale, le chiffrement asymétrique est plus faible que le chiffrement symétrique, mais il est relativement lent.

  • Le chiffrement par blocs avec des clés longues est plus fort que le chiffrement par flux.

  • Les mots de passe longs et complexes sont plus forts que les mots de passe courts.

  • Si vous chiffrez de grandes quantités de données, vous devez utiliser pour cela une clé symétrique, puis chiffrer cette clé avec une clé asymétrique.

  • Les données chiffrées ne peuvent pas être compressées, mais les données compressées peuvent être chiffrées. Si vous utilisez la compression, vous devez compresser les données avant de les chiffrer.

Important

L'algorithme RC4 est uniquement pris en charge pour des raisons de compatibilité descendante. Le nouveau matériel ne peut être chiffré à l'aide de RC4 ou de RC4_128 que lorsque la base de données se trouve dans le niveau de compatibilité 90 ou 100. (Non recommandé.) Utilisez à la place un algorithme plus récent, tel qu'un des algorithmes AES. Dans SQL Server 2012, le matériel chiffré à l'aide de RC4 ou de RC4_128 peut être déchiffré dans n'importe quel niveau de compatibilité.

L'utilisation répétée du même RC4 ou RC4_128 KEY_GUID sur différents blocs de données entraîne la même clé RC4 car SQL Server ne fournit pas automatiquement de salt. L'utilisation répétée de la même clé RC4 est une erreur connue qui entraîne un chiffrement très faible. Par conséquent, les mots clés RC4 et RC4_128 sont déconseillés. Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et modifiez dès que possible les applications qui utilisent actuellement cette fonctionnalité.

Pour plus d'informations sur les algorithmes et la technologie de chiffrement, consultez la rubrique Concepts fondamentaux sur la sécurité dans le Guide du développeur .NET Framework sur le site MSDN.

Précisions sur les algorithmes DES :

  • DESX a été nommé de façon impropre. Les clés symétriques créées avec ALGORITHM = DESX utilisent en fait le chiffrement TRIPLE DES avec une clé de 192 bits. L'algorithme DESX n'est pas fourni. Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

  • Les clés symétriques créées avec ALGORITHM = TRIPLE_DES_3KEY utilisent TRIPLE DES avec une clé de 192 bits.

  • Les clés symétriques créées avec ALGORITHM = TRIPLE_DES utilisent TRIPLE DES avec une clé de 128 bits.

Tâches associées

Chiffrement à l'aide d'une clé symétrique.

CREATE SYMMETRIC KEY (Transact-SQL)

Chiffrement à l'aide d'une clé asymétrique.

CREATE ASYMMETRIC KEY (Transact-SQL)

Chiffrement à l'aide d'un certificat.

CREATE CERTIFICATE (Transact-SQL)

Chiffrement de fichiers de base de données à l'aide du chiffrement transparent des données.

Chiffrement transparent des données (TDE)

Comment chiffrer une colonne d'une table.

Chiffrer une colonne de données

Voir aussi

Concepts

Chiffrement SQL Server

Hiérarchie de chiffrement