Exporter (0) Imprimer
Développer tout
Développer Réduire
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

CREATE SYMMETRIC KEY (Transact-SQL)

Permet de générer une clé symétrique et de spécifier ses propriétés dans SQL Server.

S'applique à : SQL Server (SQL Server 2008 jusqu'à la version actuelle).

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

CREATE SYMMETRIC KEY key_name 
    [ AUTHORIZATION owner_name ]
    [ FROM PROVIDER provider_name ]
    WITH <key_options> [ , ... n ]
    |
    ENCRYPTION BY <encrypting_mechanism> [ , ... n ]

<key_options> ::=
    KEY_SOURCE = 'pass_phrase'
    |
    ALGORITHM = <algorithm>
    |
    IDENTITY_VALUE = 'identity_phrase'
    |
    PROVIDER_KEY_NAME = 'key_name_in_provider' 
    |
    CREATION_DISPOSITION = {CREATE_NEW | OPEN_EXISTING }

<algorithm> ::=
    DES | TRIPLE_DES | TRIPLE_DES_3KEY | RC2 | RC4 | RC4_128
    | DESX | AES_128 | AES_192 | AES_256 

<encrypting_mechanism> ::=
    CERTIFICATE certificate_name 
    |
    PASSWORD = 'password' 
    |
    SYMMETRIC KEY symmetric_key_name 
    |
    ASYMMETRIC KEY asym_key_name

Key_name

Spécifie le nom unique sous lequel la clé symétrique est connue dans la base de données. Les noms des clés temporaires doivent commencer par un dièse (#). Par exemple, #temporaryKey900007. Vous ne pouvez pas créer une clé symétrique dont le nom commence par plusieurs #. Vous ne pouvez pas créer de clé symétrique temporaire à l'aide d'un fournisseur EKM.

AUTHORIZATION owner_name

Spécifie le nom de l'utilisateur de base de données ou du rôle d'application auquel appartiendra la clé.

FROM PROVIDER provider_name

Spécifie un fournisseur EKM (Extensible Key Management) et un nom. La clé n'est pas exportée à partir du périphérique EKM. Le fournisseur doit d'abord être défini à l'aide de l'instruction CREATE PROVIDER. Pour plus d'informations sur la création de fournisseurs de clés externes, consultez Gestion de clés extensible (EKM).

Remarque Remarque

Cette option n'est pas disponible dans une base de données à relation contenant-contenu.

KEY_SOURCE ='pass_phrase'

Spécifie une phrase secrète à partir de laquelle la clé doit être dérivée.

IDENTITY_VALUE ='identity_phrase'

Spécifie une expression relative à l'identité à partir de laquelle un GUID doit être généré pour baliser les données qui sont chiffrées à l'aide d'une clé temporaire.

PROVIDER_KEY_NAME='key_name_in_provider'

Spécifie le nom référencé dans le fournisseur EKM (Extensible Key Management).

Remarque Remarque

Cette option n'est pas disponible dans une base de données à relation contenant-contenu.

CREATION_DISPOSITION = CREATE_NEW

Crée une clé sur le périphérique EKM (Extensible Key Management). S'il existe déjà une clé sur le périphérique, l'instruction échoue et génère une erreur.

CREATION_DISPOSITION = OPEN_EXISTING

Mappe une clé symétrique SQL Server à une clé EKM (Extensible Key Management) existante. Si CREATION_DISPOSITION = OPEN_EXISTING n'est pas spécifié, la valeur par défaut est CREATE_NEW.

certificate_name

Spécifie le nom du certificat qui sera utilisé pour chiffrer la clé symétrique. Le certificat doit déjà exister dans la base de données.

' password '

Spécifie un mot de passe à partir duquel dériver une clé TRIPLE_DES avec laquelle sécuriser la clé symétrique. password doit satisfaire aux critères de la stratégie de mot de passe Windows de l'ordinateur qui exécute l'instance de SQL Server. Vous devez toujours utiliser des mots de passe forts.

symmetric_key_name

Spécifie une clé symétrique à utiliser pour chiffrer la clé en cours de création. La clé spécifiée doit déjà exister dans la base de données et elle doit être ouverte.

asym_key_name

Spécifie une clé asymétrique à utiliser pour chiffrer la clé en cours de création. Cette clé asymétrique doit déjà exister dans la base de données.

Lorsqu'une clé symétrique est créée, elle doit être chiffrée à l'aide de l'un des éléments suivants au moins : certificat, mot de passe, clé symétrique, clé asymétrique ou PROVIDER. La clé peut être soumise à plusieurs chiffrements de chaque type. En d'autres termes, une clé symétrique unique peut être chiffrée à l'aide de plusieurs certificats, mots de passe, clés symétriques et clés asymétriques à la fois.

Attention Attention

Lorsqu'une clé symétrique est chiffrée à l'aide d'un mot de passe à la place de la clé publique de la clé principale de base de données, l'algorithme de chiffrement TRIPLE_DES est utilisé. Pour cette raison, les clés créées à l'aide d'un algorithme de chiffrement renforcé, tel qu'AES, sont elles-mêmes sécurisées par un algorithme plus faible.

Un mot de passe facultatif peut être utilisé pour chiffrer la clé symétrique avant de la distribuer à plusieurs utilisateurs.

Les clés temporaires appartiennent à l'utilisateur qui les crée. Les clés temporaires sont valides uniquement pour la session en cours.

IDENTITY_VALUE génère un GUID qui permet de baliser les données chiffrées à l'aide de la nouvelle clé symétrique. Ce balisage peut être utilisé pour faire correspondre les clés aux données chiffrées. Le GUID généré par une expression spécifique sera toujours le même. Lorsqu'une expression est utilisée pour générer un GUID, elle ne peut être réutilisée que si au moins une session l'utilise activement. IDENTITY_VALUE est une clause facultative ; toutefois, nous vous conseillons de l'utiliser pour stocker des données chiffrées à l'aide d'une clé temporaire.

Il n'y a pas d'algorithme de chiffrement par défaut.

Important Important

Nous vous déconseillons d'utiliser les chiffrements de flux RC4 et RC4_128 pour protéger les données sensibles. SQL Server n'ajoute pas d'encodage supplémentaire au chiffrement effectué à l'aide de ces clés.

Des informations sur les clés symétriques sont consultables dans l'affichage catalogue sys.symmetric_keys.

Les clés symétriques ne peuvent pas être chiffrées par les clés symétriques créées à partir du fournisseur de chiffrement.

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

Désapprobation de l'algorithme RC4 :

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

Attention Attention

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 2014, le matériel chiffré à l'aide de RC4 ou de RC4_128 peut être déchiffré dans n'importe quel niveau de compatibilité.

Requiert l'autorisation ALTER ANY SYMMETRIC KEY sur la base de données. Si la clause AUTHORIZATION est spécifiée, l'autorisation IMPERSONATE sur l'utilisateur de base de données ou l'autorisation ALTER sur le rôle d'application est requise. Si le chiffrement s'effectue par certificat ou clé asymétrique, l'autorisation VIEW DEFINITION est requise sur le certificat ou la clé asymétrique. Les connexions Windows, les connexions SQL Server et les rôles d'application sont les seuls à pouvoir posséder des clés symétriques. Les groupes et les rôles ne peuvent pas posséder de clés symétriques.

A.Création d'une clé symétrique

Dans l'exemple ci-dessous, une clé symétrique nommée JanainaKey09 est créée à l'aide de l'algorithme AES 256, puis la nouvelle clé est chiffrée au moyen du certificat Shipping04.

CREATE SYMMETRIC KEY JanainaKey09 
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE Shipping04;
GO

B.Création d'une clé symétrique temporaire

Dans l'exemple ci-dessous, une clé symétrique temporaire nommée #MarketingXXV est créée à partir de la phrase secrète : The square of the hypotenuse is equal to the sum of the squares of the sides. La clé obtient un GUID généré à partir de la chaîne Pythagoras et est chiffrée à l'aide du certificat Marketing25.

CREATE SYMMETRIC KEY #MarketingXXV 
WITH ALGORITHM = AES_128,
KEY_SOURCE 
     = 'The square of the hypotenuse is equal to the sum of the squares of the sides',
IDENTITY_VALUE = 'Pythagoras'
ENCRYPTION BY CERTIFICATE Marketing25;
GO

C.Création d'une clé symétrique à l'aide d'un périphérique EKM (Extensible Key Management)

L'exemple suivant crée une clé symétrique appelée MySymKey à l'aide d'un fournisseur appelé MyEKMProvider et du nom de clé KeyForSensitiveData. Il assigne l'autorisation à User1 et suppose que l'administrateur système a déjà inscrit le fournisseur appelé MyEKMProvider dans SQL Server.

CREATE SYMMETRIC KEY MySymKey
AUTHORIZATION User1
FROM PROVIDER EKMProvider
WITH
PROVIDER_KEY_NAME='KeyForSensitiveData',
CREATION_DISPOSITION=OPEN_EXISTING;
GO

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft