Se connecter au moteur de base de données avec la protection étendue
S’applique à :SQL Server
SQL Server prend en charge la Protection étendue à partir de SQL Server 2008 R2 (10.50.x).
Protection Étendue permet d’empêcher les attaques de relais d’authentification en veillant à ce que le client connaisse le service auquel il se connecte.
La protection étendue est une fonctionnalité des composants réseau implémentés 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.
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 masquer le client et s’authentifier auprès d’un service (par exemple, une instance du moteur de base de données.
Cette attaque se présente sous deux formes :
Lors d'une attaque par appât, le client est incité à se connecter volontairement à l'attaquant.
Dans une attaque d’usurpation d’identité, le client a l’intention de se connecter à un service valide, mais ignore qu’un ou les deux routages DNS et IP sont empoisonnés pour rediriger la connexion vers l’attaquant à la place.
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 luré pour se connecter à un attaquant, le client inclut le SPN signé de l’attaquant. L’attaquant ne peut pas relayer le paquet pour s’authentifier auprès du service SQL Server réel en tant que client, car il inclurait le SPN de l’attaquant. La liaison de service entraîne un coût unique et négligeable, mais ne traite pas les attaques d’usurpation d’identité. La liaison de service se produit lorsqu’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 canal (CBT) du client spécifique à ce canal avec son propre CBT. La liaison de canal répond à la fois aux attaques par leurre et d'usurpation. Toutefois, il entraîne un coût d’exécution plus important, car il 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 à l’aide du Gestionnaire de configuration SQL Server ou de WMI et consultés à l’aide des paramètres de protocole serveur facette 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 être défini Sur, et tous les clients doivent chiffrer. S’il est () Désactivé (), 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 n’importe quel client, que le client soit protégé ou non. Off est compatible avec les systèmes d’exploitation plus anciens et non corrigés, mais est moins sécurisé. Utilisez ce paramètre lorsque 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. Protection étendue est ignorée pour les connexions provenant des systèmes d'exploitation qui ne prennent pas en charge Protection étendue. Les connexions provenant d’applications clientes non protégées s’exécutant sur des systèmes d’exploitation clients protégés sont rejetées. Ce paramètre est plus sécurisé que Désactivé, mais ce n’est pas le plus sécurisé. Utilisez ce paramètre dans des environnements mixtes ; certains systèmes d’exploitation prennent en charge protection étendue, et d’autres ne le font pas.
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 connexions à partir de systèmes d’exploitation ou d’applications qui ne prennent pas en charge protection étendue ne pourront pas se connecter à SQL Server.
SPN NTLM acceptés
La variable SPN NTLM acceptée est nécessaire lorsque plus d'un SPN est connu d'un serveur. Lorsqu’un client tente 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 représentant le serveur à l’aide des SPN NTLM acceptés. SPNs NTLM acceptés sont 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 de protection étendue, le serveur et le client doivent disposer d’un système d’exploitation prenant en charge de protection étendue et doivent être activés 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.
Bien que protection étendue et NTLMv2 soient activés par défaut dans toutes les versions prises en charge de Windows, protection étendue n’est pas activée par défaut pour les connexions SQL Server. Les utilisateurs doivent l’activer manuellement dans gestionnaire de configuration SQL Server.
Pour activer de protection étendue pour les connexions SQL Server, les administrateurs doivent configurer les paramètres dans gestionnaire de configuration SQL Server. Cela inclut les options de liaison de service et de liaison de canal afin de prévenir différents types d'attaques de relais d'authentification. Pour obtenir des instructions détaillées, reportez-vous à la documentation SQL Server sur la configuration de Protection Étendue.
Après avoir activé la protection étendue sur le serveur, procédez comme suit pour activer la protection étendue:
Dans le menu Démarrer
, choisissez Tous les programmes , pointez surMicrosoft SQL Server , puis sélectionnezgestionnaire de configuration SQL Server .Développez de configuration réseau SQL Server, puis cliquez avec le bouton droit sur protocoles pour _<_InstanceName*>*, puis sélectionnez Propriétés.
sous l’onglet avancé, définissez protection étendue sur le paramètre approprié pour la liaison de canal et la liaison de service.
Facultativement, lorsque plusieurs SPN connaissent un serveur, sous l’onglet Avancé, vous 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.
Lorsque vous utilisez IIS pour accéder aux données Analysis Services à l’aide d’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).