Choisir un algorithme de chiffrement

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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. Les administrateurs et les développeurs peuvent choisir parmi plusieurs algorithmes dans SQL Server, notamment DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, RC4 128 bits, DESX, AES 128 bits, AES 192 bits et AES 256 bits.

À partir de SQL Server 2016 (13.x), tous les algorithmes autres que AES_128, AES_192 et AES_256 sont déconseillés. Pour utiliser des algorithmes plus anciens (ce qui n’est pas recommandé), vous devez affecter le niveau de compatibilité 120 ou un niveau inférieur à la base de données.

Comment choisir l'algorithme approprié

Aucun algorithme n'est idéal pour toutes les situations, et les conseils sur les mérites de chacun dépassent le cadre de cet article. 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.

  • Le chiffrement asymétrique est plus lent que le chiffrement symétrique.

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

  • Le chiffrement symétrique est recommandé lorsque la clé est stockée uniquement localement. Le chiffrement asymétrique est recommandé lorsque les clés doivent être partagées sur le réseau.

  • 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.

Pour plus d'informations sur les algorithmes et la technologie de chiffrement, consultez les Concepts fondamentaux sur la sécurité.

Algorithme RC4 déconseillé

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 est au 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 (11.x) et versions ultérieures, 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 KEY_GUIDRC4 ou RC4_128 sur différents blocs de données génère 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 bien connue qui entraîne un chiffrement faible. Par conséquent, les mots clés RC4 et RC4_128 sont déconseillés. Cette fonctionnalité sera supprimée dans une version future de 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é.

Éclaircissement concernant les algorithmes DES

DESX a été nommé incorrectement. 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 version future de 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.