Chiffrement des connexions à SQL Server
Mis à jour : 17 juillet 2006
SQL Server 2005 prend en charge Secure Sockets Layer (SSL) et est compatible avec Internet Protocol Security (IPSec).
SSL (Secure Sockets Layer)
Microsoft SQL Server 2005 peut utiliser SSL pour chiffrer toutes les données échangées sur un réseau entre une instance de SQL Server et une application cliente. Le chiffrement SSL est effectué au sein de la couche de protocole et il est disponible pour tous les clients SQL Server à l'exception des clients de la bibliothèque DB et MDAC 2.53.
SSL peut être utilisé pour la validation de serveur lorsqu'une connexion cliente demande un chiffrement. Si l'instance de SQL Server s'exécute sur un ordinateur auquel un certificat a été attribué à partir d'une autorité de certification publique, son identité et l'instance de SQL Server sont garanties par la chaîne des certificats menant jusqu'à l'autorité racine approuvée. Une telle validation de serveur requiert que l'ordinateur sur lequel l'application cliente s'exécute soit configuré de manière à approuver l'autorité racine du certificat utilisé par le serveur. Le chiffrement avec un certificat autosigné est possible (voir section suivante), mais ce type de certificat n'offre qu'une protection limitée.
Le niveau de chiffrement utilisé par SSL, sur 40 ou 128 bits, dépend de la version du système d'exploitation Microsoft Windows utilisée sur les ordinateurs d'application et de base de données.
L'activation du chiffrement SSL améliore la sécurité des données transmises sur des réseaux entre des instances de SQL Server et des applications. Cependant, l'activation du chiffrement ralentit toutefois les performances. Lorsque tout le trafic entre SQL Server et une application cliente est chiffré au moyen de SSL, le traitement supplémentaire suivant est nécessaire :
- Un aller-retour réseau supplémentaire est requis au moment de la connexion.
- Les paquets envoyés de l'application à l'instance de SQL Server doivent être chiffrés par la Net-Library du client et déchiffrés par la Net-Library du serveur.
- Les paquets envoyés de l'instance SQL Server à l'application doivent être chiffrés par la Net-Library du serveur et déchiffrés par la Net-Library du client.
Configuration de SSL pour SQL Server
La procédure suivante montre comment configurer SSL dans SQL Server.
Pour configurer SSL
- Installez un certificat dans le magasin de certificats Windows de l'ordinateur serveur.
- Cliquez sur Démarrer, dans le groupe de programmes Microsoft SQL Server 2005, pointez sur Outils de configuration, puis cliquez sur Gestionnaire de configuration SQL Server.
- Développez Configuration du réseau SQL Server 2005, puis cliquez avec le bouton droit sur les protocoles du serveur de votre choix et cliquez sur Propriétés.
- Sous l'onglet Certificat, configurez le moteur de base de données pour utiliser le certificat.
- Sous l'onglet Indicateurs, affichez ou spécifiez l'option de chiffrement du protocole. Le paquet de connexion sera toujours chiffré.
- Lorsque l'option ForceEncryption pour le moteur de base de données a la valeur Oui, toutes les communications client/serveur sont chiffrées et les clients ne pouvant pas prendre en charge le chiffrement se voient refuser tout accès.
- Lorsque l'option ForceEncryption pour le moteur de base de données a la valeur Non, un chiffrement peut être demandé par l'application cliente mais n'est pas obligatoire.
- SQL Server doit être redémarré après modification du paramètre ForceEncryption.
Les informations d'identification (dans le paquet de connexion) qui sont transmises lorsqu'une application cliente se connecte à SQL Server 2005 sont toujours chiffrées. SQL Server utilisera, le cas échéant, un certificat signé par une autorité de certification approuvée. Si un certificat signé n'est pas installé, SQL Server génère un certificat autosigné lors du démarrage de l'instance, et utilise le certificat autosigné pour chiffrer les informations d'identification. Ce certificat autosigné aide à renforcer la sécurité mais il ne fournit aucune protection contre l'usurpation d'identité par le serveur. Si le certificat autosigné est utilisé, et si la valeur de l'option ForceEncryption est Oui, toutes les données transmises sur un réseau entre SQL Server et l'application cliente seront chiffrées au moyen d'un certificat autosigné.
Attention : |
---|
Les connexions SSL chiffrées à l'aide d'un certificat autosigné n'offrent pas de sécurité renforcée. Elles sont vulnérables à des attaques humaines. Ne faites jamais confiance à une connexion SSL utilisant des certificats autosignés dans un environnement de production ou sur des serveurs connectés à Internet. |
Conditions requises des certificats
Dans SQL Server 2005 pour charger un certificat SSL, le certificat doit répondre aux conditions suivantes :
- Le certificat doit figurer soit dans le magasin de certificats de l'ordinateur local, soit dans le magasin de certificats de l'utilisateur actuel.
- L'heure actuelle du système doit être postérieure à la propriété Valide à partir du du certificat et antérieure à la propriété Valide jusqu'au du certificat.
- Le certificat doit être destiné à une authentification serveur. Cela nécessite que la propriété Utilisation de clé améliorée du certificat spécifie l'authentification du serveur (1.3.6.1.5.5.7.3.1).
- Le certificat doit être créé avec l'option KeySpec de AT_KEYEXCHANGE. Habituellement, la propriété d'utilisation de la clé du certificat (KEY_USAGE) comprend aussi un chiffrement de clé (CERT_KEY_ENCIPHERMENT_KEY_USAGE).
- La propriété Subject du certificat doit indiquer que le nom courant (CN) est le même que le nom de domaine ou le nom de domaine complet (FQDN, Fully Qualified Domain Name) de l'ordinateur serveur. Si SQL Server s'exécute sur un cluster avec basculement, le nom courant doit correspondre au nom d'hôte (ou FQDN) du serveur virtuel, et les certificats doivent être fournis sur tous les nœuds dans le cluster avec basculement.
Chiffrement sur un cluster
Si vous souhaitez utiliser le chiffrement à l'aide d'un cluster avec basculement, vous devez installer le certificat du serveur avec le nom DNS complet de l'instance cluster avec basculement sur tous les nœuds du cluster avec basculement. Exemple : si vous avez un cluster avec deux nœuds, nommés test1.votre société.com et test2.votre société.com et une instance cluster avec basculement de SQL Server intitulée fcisql, vous devez obtenir un certificat pour fcisql.votre société.com et l'installer sur les deux nœuds. Pour configurer le chiffrement du cluster avec basculement, vous pouvez ensuite activer la case à cocher ForceEncryption dans la zone des propriétés Propriétés de Protocoles pour <serveur> de Configuration du réseau SQL Server 2005.
Internet Protocol Security (IPSec)
Les données de SQL Server peuvent être chiffrées pendant la transmission à l'aide du protocole IPsec. IPsec est fourni par les systèmes d'exploitation client et serveur et ne nécessite aucune configuration de SQL Server. Pour plus d'informations sur IPSec, consultez la documentation Windows ou de la mise en réseau.
Historique des modifications
Version | Historique |
---|---|
17 juillet 2006 |
|