Se connecter au moteur de base de données à l'aide de la protection étendue
S’applique à : SQL Server
SQL Server prend en charge la Protection étendue à partir de SQL Server 2008 R2 (10.50.x). Laprotection étendue de l'authentification est une fonctionnalité des composants réseau implémentée par le système d'exploitation. Laprotection étendue est prise en charge dans Windows 7 et Windows Server 2008 R2. La Protection étendue figure dans les Service Packs des systèmes d’exploitation Microsoft plus anciens. SQL Server est plus sécurisé quand les connexions sont établies en utilisant la Protection étendue.
Important
Windows n'active pas la protection étendue par défaut. Pour plus d'informations sur l'activation de la protection étendue dans Windows, consultez Protection étendue de l'authentification
Description de la protection étendue
Laprotection étendue utilise la liaison de canal et la liaison de service pour mieux empêcher une attaque de relais d'authentification. Dans une attaque par relais d’authentification, un client qui peut effectuer une authentification NTLM (par exemple, l’Explorateur Windows, Microsoft Outlook, une application SqlClient .NET, etc.) se connecte à un attaquant (par exemple, un serveur de fichiers CIFS malveillant). L’attaquant utilise les informations d’identification du client pour se faire passer pour le client et s’authentifier sur un service (par exemple, une instance du service de moteur de base de données).
Cette attaque se présente sous deux formes :
Dans une attaque par ruse, le client est attiré dans un piège pour se connecter volontairement à la personne malveillante.
Dans une attaque d'usurpation, le client envisage de se connecter à un service valide, mais ignore que le routage DNS et/ou le routage IP sont empoisonnés pour rediriger à la place la connexion vers la personne malveillante.
SQL Server prend en charge la liaison de canal et la liaison de service pour réduire ces attaques sur les instances SQL Server.
liaison de service
La liaison de service répond aux attaques par ruse en demandant à un client d’envoyer un nom de principal de service (SPN) signé du service SQL Server auquel il veut se connecter. Dans le cadre de la réponse d'authentification, le service valide que le SPN reçu dans le paquet correspond à son propre SPN. Si un client est leurré pour se connecter à une personne malveillante, le client inclura le SPN signé de la personne malveillante. L’attaquant ne peut pas relayer le paquet pour s’authentifier sur le véritable service SQL Server comme client, parce qu’il ajoute alors le SPN de l’attaquant. La liaison de service implique un coût unique et négligeable, mais ne traite pas les attaques d'usurpation. La liaison de service se produit quand une application cliente n’utilise pas le chiffrement pour se connecter à SQL Server.
liaison de canal
La liaison de canal établit un canal sécurisé (Schannel) entre un client et une instance du service SQL Server. Le service vérifie l’authenticité du client en comparant le jeton de liaison de canaux du client à son propre jeton de liaison de canaux. La liaison de canal répond à la fois aux attaques par leurre et d'usurpation. Toutefois, elle implique un coût d'exécution plus important, car elle nécessite le chiffrement TLS (Transport Layer Security) de tout le trafic de session. La liaison de canal se produit quand une application cliente utilise le chiffrement pour se connecter à SQL Server, que le chiffrement soit appliqué par le client ou par le serveur.
Avertissement
Les fournisseurs de données SQL Server et Microsoft pour SQL Server prennent en charge TLS 1.0 et SSL 3.0. Si vous appliquez un autre protocole (comme TLS 1.1 ou TLS 1.2) en effectuant des changements dans la couche SChannel du système d’exploitation, vos connexions à SQL Server risquent d’échouer. Vérifiez que vous disposez de la dernière version de SQL Server pour prendre en charge TLS 1.1 ou TLS 1.2. Pour plus d’informations, consultez https://support.microsoft.com/topic/kb3135244-tls-1-2-support-for-microsoft-sql-server-e4472ef8-90a9-13c1-e4d8-44aad198cdbe.
Prise en charge du système d'exploitation
Les liens suivants fournissent davantage d'informations sur la prise en charge de la protection étenduepar Windows :
Integrated Windows Authentication with Extended Protection (en anglais)
Microsoft Security Advisory (973811), Extended Protection for Authentication (en anglais)
Paramètres
Trois paramètres de connexion SQL Server affectent la liaison de service et la liaison de canal. Les paramètres peuvent être configurés en utilisant le Gestionnaire de configuration SQL Server ou WMI, et peuvent être consultés en utilisant la facette Paramètres de protocole de serveur de la gestion basée sur des stratégies.
Forcer le chiffrement
Les valeurs possibles sont On (activé) et Off(désactivé). Pour utiliser la liaison de canal, Forcer le chiffrement doit avoir la valeur Onet le chiffrement sera forcé pour tous les clients. Si la valeur est Off, seule la liaison de service est garantie. Forcer le chiffrement est dans les Propriétés de Protocoles pour MSSQLSERVER (onglet Indicateurs) dans le Gestionnaire de configuration SQL Server.
Protection étendue
Les valeurs possibles sont Off, Autoriséeet Requis. La variable Protection étendue permet aux utilisateurs de configurer le niveau de protection étendue pour chaque instance SQL Server. Protection étendue est dans les Propriétés de Protocoles pour MSSQLSERVER (onglet Avancé) dans le Gestionnaire de configuration SQL Server.
Lorsque la valeur est Off, la protection étendue est désactivée. L’instance de SQL Server accepte les connexions de tous les clients, qu’ils soient protégés ou non. La valeurOff est compatible avec les anciens systèmes d'exploitation non corrigés, mais elle est moins sécurisée. Utilisez ce paramètre lorsque vous savez que les systèmes d'exploitation clients ne prennent pas en charge la protection étendue.
Lorsque la valeur est Autorisée, la protection étendue est requise pour les connexions à partir des systèmes d'exploitation qui prennent en charge la protection étendue. Laprotection étendue est ignorée pour les connexions des systèmes d'exploitation qui ne prennent pas en charge la protection étendue. Les connexions provenant d'applications clientes non protégées qui s'exécutent sur des systèmes d'exploitation clients protégés sont rejetées. Ce paramètre offre une meilleure protection que la valeur Off, mais ce n'est pas la configuration la plus sécurisée. Utilisez ce paramètre dans des environnements mixtes, dans lesquels certains systèmes d'exploitation prennent en charge la Protection étendue et d'autres non.
Lorsque la valeur est Requis, seules les connexions provenant d'applications protégées sur des systèmes d'exploitation protégés sont acceptées. Ce paramètre est le plus sécurisé, mais les systèmes d’exploitation ou les applications qui ne prennent pas en charge la protection étendue ne peuvent pas se connecter à SQL Server.
SPN NTLM acceptés
La variable SPN NTLM acceptés est requise lorsqu'un serveur est connu de plusieurs SPN. Lorsqu'un client essaie de se connecter au serveur à l'aide d'un SPN valide que le serveur ne connaît pas, la liaison de service échoue. Pour éviter ce problème, les utilisateurs peuvent spécifier plusieurs SPN qui représentent le serveur à l'aide de SPN NTLM acceptés. SPN NTLM acceptés est une série de SPN séparés par des points-virgules. Par exemple, pour autoriser les SPN MSSQLSvc/ NomHôte1.Contoso.com et MSSQLSvc/ NomHôte2.Contoso.com, tapez MSSQLSvc/NomHôte1.Contoso.com;MSSQLSvc/NomHôte2.Contoso.com dans la zone SPN NTLM acceptés . La variable a une longueur maximale de 2 048 caractères. SPN NTLM acceptés est dans les Propriétés de Protocoles pour MSSQLSERVER (onglet Avancé) dans le Gestionnaire de configuration SQL Server.
Activation de la protection étendue pour le moteur de base de données
Pour utiliser la protection étendue, le serveur et le client doivent tous deux avoir un système d'exploitation qui prend en charge la protection étendue, et la protection étendue doit être activée sur le système d'exploitation. Pour plus d’informations sur l’activation de la protection étendue pour le système d’exploitation, consultez Protection étendue de l’authentification.
SQL Server prend en charge la Protection étendue à partir de SQL Server 2008 R2 (10.50.x). La protection étendue de certaines versions antérieures de SQL Server sera disponible dans de futures mises à jour. Après avoir activé la protection étendue sur le serveur, procédez comme suit pour activer la protection étendue:
Dans le menu Démarrer , cliquez sur Tous les programmes, pointez sur Microsoft SQL Server , puis cliquez sur Gestionnaire de configuration SQL Server.
Développez Configuration du réseau SQL Server, cliquez avec le bouton droit sur Protocoles pour _<_InstanceName*>*, puis cliquez sur Propriétés.
Pour la liaison de service et la liaison de canal, sous l'onglet Avancé , affectez le paramètre approprié à Protection étendue .
Éventuellement, lorsqu'un serveur est connu de plusieurs SPN, sous l'onglet Avancé , configurez le champ SPN NTLM acceptés comme décrit dans la section « Paramètres ».
Pour la liaison de canal, sous l'onglet Indicateurs , affectez à Forcer le chiffrement la valeur On.
Redémarrez le service de moteur de base de données.
Configuration d'autres composants SQL Server
Pour plus d’informations sur la configuration de Reporting Services, consultez Protection étendue de l’authentification avec Reporting Services.
Quand vous utilisez IIS pour accéder aux données Analysis Services en utilisant une connexion HTTP ou HTTPS, Analysis Services peut tirer parti de la protection étendue fournie par IIS. Pour plus d'informations sur la configuration d'IIS pour utiliser la protection étendue, consultez Configure Extended Protection in IIS 7.5(en anglais).
Voir aussi
Configuration réseau du serveur
Configuration du réseau client
Vue d’ensemble de la protection étendue de l'authentification
Integrated Windows Authentication with Extended Protection (en anglais)