Partager via


Sécurité du transport de la mise en miroir de bases de données

Dans SQL Server 2005 et versions ultérieures, la sécurité du transport implique l'authentification et, éventuellement, le chiffrement des messages échangés entre les bases de données.

Pour la mise en miroir de bases de données, l'authentification et le chiffrement sont configurés sur le point de terminaison. Pour une présentation des points de terminaison de mise en miroir, consultez Point de terminaison de mise en miroir de bases de données.

Authentification

L'authentification est le processus qui permet de vérifier qu'un utilisateur est la personne qu'il prétend être. Les connexions entre les points de terminaison de mise en miroir de bases de données requièrent une authentification. Les demandes de connexion éventuellement formulées par un partenaire ou un témoin doivent être authentifiées.

Le type d'authentification utilisé par une instance de serveur est une propriété de son point de terminaison de mise en miroir de bases de données. Deux types de sécurité de transport sont disponibles pour la mise en miroir de bases de données : l'authentification Windows et l'authentification à base de certificat.

L'authentification Windows prend en charge deux protocoles d'authentification : NTLM (NT LAN Manager) et Kerberos. Un point de terminaison de mise en miroir de bases de données peut être configuré de manière à utiliser uniquement un protocole ou à négocier entre les protocoles. Par défaut, la négociation est utilisée. La valeur par défaut, NEGOTIATE, oblige le point de terminaison à utiliser le protocole de négociation Windows afin de choisir NTLM ou Kerberos. Si une méthode d'autorisation spécifique (NTLM ou Kerberos) est définie sur un point de terminaison, celui-ci ne peut utiliser que cette méthode. Si le point de terminaison opposé est configuré de manière à n'utiliser que l'autre méthode, les points de terminaison ne peuvent pas se connecter l'un à l'autre. Pour plus d'informations sur ces méthodes, consultez Types d'authentification du point de terminaison.

Notes

Pour plus d'informations sur ce point de terminaison, consultez Point de terminaison de mise en miroir de bases de données.

Une connexion de mise en miroir de bases de données utilise l'authentification Windows, via l'interface SSPI (Security Support Provider Interface), ou l'authentification à base de certificat.

Authentification Windows

Avec l'authentification Windows, chaque instance de serveur se connecte à l'autre partie à l'aide des informations d'identification Windows du compte d'utilisateur Windows sous lequel le processus est en cours d'exécution. Par conséquent, l'authentification Windows nécessite que les services SQL Server soient exécutés en tant qu'utilisateurs de domaines approuvés ou en tant que services réseau.

Pour authentifier les deux extrémités d'une connexion, l'authentification Windows utilise les informations d'identification du compte d'utilisateur Windows sous lequel les instances SQL Server sont en cours d'exécution. Par conséquent, le compte d'utilisateur de chaque instance de serveur doit être habilité à se connecter et à envoyer des messages à chacune des autres instances de serveur.

Pour un exemple de configuration d'une session de mise en miroir de bases de données utilisant l'authentification Windows, consultez Exemple : configurer la mise en miroir de bases de données à l'aide de l'authentification Windows (Transact-SQL).

Certificats

Dans certaines situations, par exemple lorsque les instances de serveur ne se trouvent pas dans des domaines approuvés ou que SQL Server est en cours d'exécution en tant que service local, l'authentification Windows n'est pas disponible. Dans ces cas, ce ne sont pas des informations d'identification utilisateur, mais des certificats, qui sont nécessaires pour authentifier les demandes de connexion. Le point de terminaison de mise en miroir de chaque instance de serveur doit être configuré avec son propre certificat créé localement.

La méthode de chiffrement est établie lorsque le certificat est créé. Pour plus d'informations, consultez Procédure : autoriser la mise en miroir de bases de données à utiliser des certificats pour les connexions sortantes (Transact-SQL). Gérez avec précaution les certificats que vous utilisez.

Une instance de serveur utilise la clé privée de son propre certificat pour établir son identité lors de la configuration d'une connexion. L'instance de serveur qui reçoit la demande de connexion utilise la clé publique du certificat de l'émetteur pour authentifier l'identité de celui-ci. Par exemple, considérons deux instances de serveur, en l'occurrence Serveur_A et Serveur_B. Serveur_A utilise sa clé privée pour chiffrer l'en-tête de connexion avant d'envoyer une demande de connexion à Serveur_B. Serveur_B utilise la clé publique du certificat de Serveur_A pour chiffrer l'en-tête de connexion. Si l'en-tête déchiffré est correct, Serveur_B sait que l'en-tête a été chiffré par Serveur_A et la connexion est authentifiée. Si l'en-tête déchiffré est incorrect, Serveur_B sait que la demande de connexion n'est pas authentique et refuse la connexion.

Remarque relative à la sécuritéRemarque relative à la sécurité

Installez uniquement des certificats provenant de sources fiables.

Il n'existe aucune méthode automatisée permettant de configurer la sécurité de la mise en miroir de bases de données à l'aide de certificats. Vous devez recourir à Transact-SQL. Pour un exemple d'utilisation de l'authentification à base de certificat afin de configurer une session de mise en miroir de bases de données, consultez Exemple : configuration de la mise en miroir de bases de données à l'aide de certificats (Transact-SQL).

Chiffrement des données

Par défaut, un point de terminaison de mise en miroir de bases de données requiert le chiffrement des données envoyées via les connexions de mise en miroir. Dans ce cas, le point de terminaison ne peut se connecter qu'aux points de terminaison utilisant également le chiffrement. Sauf si vous pouvez garantir que votre réseau est sécurisé, il est recommandé d'imposer le chiffrement des connexions de mise en miroir de bases de données. Toutefois, vous pouvez désactiver le chiffrement ou le rendre disponible sans qu'il soit nécessaire. Si le chiffrement est désactivé, les données ne sont jamais chiffrées et le point de terminaison ne peut pas se connecter à un point de terminaison qui requiert le chiffrement. Si le chiffrement est pris en charge, les données ne sont chiffrées que si le point de terminaison opposé prend en charge ou requiert le chiffrement.

Notes

Sur les points de terminaison de mise en miroir créés par SQL Server Management Studio, le chiffrement est requis ou désactivé. Pour attribuer au paramètre de chiffrement la valeur SUPPORTED, utilisez l'instruction Transact-SQL ALTER ENDPOINT. Pour plus d'informations, consultez ALTER ENDPOINT (Transact-SQL).

Vous pouvez également contrôler les algorithmes de chiffrement qui peuvent être utilisés par un point de terminaison, en spécifiant une des valeurs ci-dessous pour l'option ALGORITHM dans une instruction CREATE ENDPOINT ou ALTER ENDPOINT :

valeur ALGORITHM

Description

RC4

Indique que le point de terminaison doit utiliser l'algorithme RC4. Paramètre par défaut.

AES

Indique que le point de terminaison doit utiliser l'algorithme AES.

AES RC4

Indique que les deux points de terminaison négocieront un algorithme de chiffrement avec ce point de terminaison, en donnant la préférence à l'algorithme AES.

RC4 AES

Indique que les deux points de terminaison négocieront un algorithme de chiffrement avec ce point de terminaison, en donnant la préférence à l'algorithme RC4.

Si les points de terminaison se connectant spécifient les deux algorithmes mais dans des ordres différents, le point de terminaison acceptant la connexion a le dernier mot.

Notes

Bien que sensiblement plus rapide que AES, RC4 est un algorithme relativement faible, tandis que AES est relativement fort. Par conséquent, nous vous recommandons d'utiliser l'algorithme AES.

Pour plus d'informations sur la syntaxe Transact-SQL permettant de définir le chiffrement, consultez CREATE ENDPOINT (Transact-SQL).