Verbinding maken met de database-engine met Uitgebreide beveiliging
van toepassing op:SQL Server-
SQL Server ondersteunt Extended Protection- vanaf SQL Server 2008 R2 (10.50.x).
Uitgebreide beveiliging helpt verificatierelaisaanvallen te voorkomen door ervoor te zorgen dat de client de service kent waarmee deze verbinding maakt.
Uitgebreide beveiliging is een functie van de netwerkonderdelen die door het besturingssysteem worden geïmplementeerd. Uitgebreide beveiliging wordt ondersteund in Windows 7 en Windows Server 2008 R2. Uitgebreide beveiliging is opgenomen in servicepacks voor oudere Microsoft-besturingssystemen.
SQL Server is veiliger wanneer verbindingen worden gemaakt met Uitgebreide beveiliging.
Beschrijving van uitgebreide beveiliging
Extended Protection maakt gebruik van servicebinding en kanaalbinding om een verificatie-relaisaanval te voorkomen. Bij een verificatierelaisaanval maakt een client die NTLM-verificatie kan uitvoeren (bijvoorbeeld Windows Verkenner, Microsoft Outlook, een .NET SqlClient-toepassing, enzovoort), verbinding met een aanvaller (bijvoorbeeld een schadelijke CIFS-bestandsserver). De aanvaller gebruikt de referenties van de client om zich voor te doen als de client en zich aan te melden bij een service (bijvoorbeeld een exemplaar van de database-engine).
Er zijn twee variaties van deze aanval:
Bij een luringsaanval wordt de client gelokt om vrijwillig verbinding te maken met de aanvaller.
Bij een spoofing-aanval wil de client verbinding maken met een geldige dienst, maar weet niet dat een of beide van de DNS- of IP-routering zijn vergiftigd om de verbinding naar de aanvaller om te leiden.
SQL Server ondersteunt servicebinding en kanaalbinding om deze aanvallen op SQL Server-exemplaren te verminderen.
Servicebinding
Servicebindingsadressen die aanvallen lokken door een client te verplichten een ondertekende SPN (Service Principal Name) van de SQL Server-service te verzenden waarmee de client verbinding wil maken. Als onderdeel van het verificatieantwoord valideert de service dat de SPN die in het pakket is ontvangen, overeenkomt met zijn eigen SPN. Als een client wordt gelokt om verbinding te maken met een aanvaller, bevat de client de ondertekende SPN van de aanvaller. De aanvaller kan het pakket niet doorsturen om te verifiëren bij de echte SQL Server-service als de client, omdat het de SPN van de aanvaller zou bevatten. Voor servicebinding worden eenmalige, te verwaarlozen kosten in rekening gebracht, maar er worden geen spoofingaanvallen aangepakt. Servicebinding vindt plaats wanneer een clienttoepassing geen versleuteling gebruikt om verbinding te maken met de SQL Server.
Kanaalbinding
Kanaalbinding brengt een beveiligd kanaal (Schannel) tot stand tussen een client en een exemplaar van de SQL Server-service. De service verifieert de echtheid van de client door het kanaalbindingstoken (CBT) van de client dat specifiek is voor dat kanaal te vergelijken met een eigen CBT. Kanaalbinding pakt zowel phishing- als spoofingaanvallen aan. Er worden echter grotere runtimekosten in rekening gebracht, omdat hiervoor TLS-versleuteling (Transport Layer Security) van al het sessieverkeer is vereist. Kanaalbinding vindt plaats wanneer een clienttoepassing versleuteling gebruikt om verbinding te maken met de SQL Server, ongeacht of versleuteling wordt afgedwongen door de client of door de server.
Waarschuwing
SQL Server- en Microsoft-gegevensproviders voor SQL Server ondersteunen TLS 1.0 en SSL 3.0. Als u een ander protocol (zoals TLS 1.1 of TLS 1.2) afdwingt door wijzigingen aan te brengen in de SChannel-laag van het besturingssysteem, kunnen uw verbindingen met SQL Server mislukken. Zorg ervoor dat u de nieuwste build van SQL Server hebt ter ondersteuning van TLS 1.1 of TLS 1.2. Zie https://support.microsoft.com/topic/kb3135244-tls-1-2-support-for-microsoft-sql-server-e4472ef8-90a9-13c1-e4d8-44aad198cdbevoor meer informatie.
Ondersteuning voor besturingssystemen
De volgende koppelingen bieden meer informatie over hoe Windows ondersteuning biedt voor Uitgebreide beveiliging:
Geïntegreerde Windows-verificatie met uitgebreide beveiliging
Microsoft Security Advisory (973811), Uitgebreide beveiliging voor verificatie
Instellingen
Er zijn drie SQL Server-verbindingsinstellingen die van invloed zijn op servicebinding en kanaalbinding. De instellingen kunnen worden geconfigureerd met behulp van SQL Server Configuration Manager of WMI en bekeken met behulp van de Server Protocol-instellingen facet van op beleid gebaseerd beheer.
Afdwingen van versleuteling
Mogelijke waarden zijn Aan en Uit. Als u kanaalbinding wilt gebruiken, moet Versleuteling afdwingen zijn ingesteld op Open moeten alle clients worden versleuteld. Als het Uitgeschakeldis, wordt alleen servicebinding gegarandeerd. Versleuteling afdwingen zich op de Protocollen voor MSSQLSERVER-eigenschappen (tabblad Vlaggen) bevindt in SQL Server Configuration Manager.
Uitgebreide beveiliging
Mogelijke waarden zijn Uit, Toegestaan, en Vereist. Met de variabele Extended Protection kunnen gebruikers het uitgebreide beveiliging niveau voor elk SQL Server-exemplaar configureren. Uitgebreide beveiliging is bij de Protocols for MSSQLSERVER Properties (Advanced Tab) in SQL Server Configuration Manager.
Wanneer ingesteld op Uit, wordt Uitgebreide Beveiliging uitgeschakeld. Het exemplaar van SQL Server accepteert verbindingen van elke client, ongeacht of de client is beveiligd of niet. Off is compatibel met oudere en niet-gepatchte besturingssystemen, maar is minder veilig. Gebruik deze instelling wanneer de clientbesturingssystemen geen uitgebreide beveiliging ondersteunen.
Als deze instelling is ingesteld op Toegestane, is uitgebreide beveiliging vereist voor verbindingen van besturingssystemen die ondersteuning bieden voor Uitgebreide beveiliging. Uitgebreide beveiliging wordt genegeerd voor verbindingen van besturingssystemen die geen ondersteuning bieden voor Uitgebreide beveiliging. Verbindingen van niet-beveiligde clienttoepassingen die worden uitgevoerd op beveiligde clientbesturingssystemen, worden geweigerd. Deze instelling is veiliger dan Uit, maar dit is niet het veiligste. Gebruik deze instelling in gemengde omgevingen; sommige besturingssystemen ondersteunen Uitgebreide beveiligingen andere niet.
Wanneer deze is ingesteld op Vereist, worden alleen verbindingen van beveiligde toepassingen op beveiligde besturingssystemen geaccepteerd. Deze instelling is het veiligst, maar verbindingen van besturingssystemen of toepassingen die geen ondersteuning bieden voor Extended Protection geen verbinding kunnen maken met SQL Server.
Geaccepteerde NTLM SPN's
De geaccepteerde NTLM SPN's variabele is nodig wanneer meer dan één SPN een server kent. Wanneer een client probeert verbinding te maken met de server met behulp van een geldige SPN die de server niet kent, mislukt de servicebinding. Om dit probleem te voorkomen, kunnen gebruikers verschillende SPN's opgeven die de server vertegenwoordigen met behulp van de geaccepteerde NTLM SPN's. Geaccepteerde NTLM SPN's is een reeks SPN's die door puntkomma's zijn gescheiden. Als u bijvoorbeeld de SPN's MSSQLSvc/HostName1.Contoso.com en MSSQLSvc/HostName2.Contoso.comwilt toestaan, typt u MSSQLSvc/HostName1.Contoso.com; MSSQLSvc/HostName2.Contoso.com in het vak Geaccepteerde NTLM SPN's. De variabele heeft een maximale lengte van 2048 tekens. Geaccepteerde NTLM SPN's staat op de Protocollen voor MSSQLSERVER Properties (Advanced Tab) in SQL Server Configuration Manager.
Uitgebreide beveiliging voor de database-engine inschakelen
Als u Extended Protection-wilt gebruiken, moeten zowel de server als de client een besturingssysteem hebben dat ondersteuning biedt voor uitgebreide beveiliging en moet zijn ingeschakeld op het besturingssysteem. Zie Uitgebreide beveiliging voor verificatievoor meer informatie over het inschakelen van Uitgebreide beveiliging voor het besturingssysteem.
Hoewel uitgebreide beveiliging en NTLMv2- standaard zijn ingeschakeld in alle ondersteunde versies van Windows, wordt Uitgebreide beveiliging niet standaard ingeschakeld voor SQL Server-verbindingen. Gebruikers moeten deze handmatig inschakelen in SQL Server Configuration Manager-.
Beheerders moeten de instellingen configureren in SQL Server Configuration Manager-om Uitgebreide beveiliging in te schakelen voor SQL Server-verbindingen. Dit omvat opties voor servicebinding en kanaalbinding om verschillende typen verificatierelaisaanvallen te beperken. Raadpleeg de SQL Server-documentatie voor het configureren van Extended Protectionvoor gedetailleerde instructies.
Nadat u Uitgebreide beveiliging hebt ingeschakeld op de servercomputer, gebruikt u de volgende stappen om uitgebreide beveiliging in te schakelen:
Kies in het menu StartAlle programma's, wijs Microsoft SQL Server- aan en selecteer SQL Server Configuration Manager-.
Vouw SQL Server-netwerkconfiguratieuit en klik met de rechtermuisknop op Protocollen voor _<_InstanceName*>*, en selecteer vervolgens Eigenschappen.
Stel op het tabblad AdvancedExtended Protection in op de juiste instelling voor zowel kanaalbinding als servicebinding.
Als meerdere SPN's een server kennen, configureert u op het tabblad Geavanceerd desgewenst het veld Geaccepteerde NTLM SPN's, zoals beschreven in de sectie Instellingen.
Voor kanaalbinding stelt u op het tabblad VlaggenVersleuteling afdwingen in op Op.
Start de Database Engine-service opnieuw.
Andere SQL Server-onderdelen configureren
Zie Uitgebreide beveiliging voor verificatie met Reporting Servicesvoor meer informatie over het configureren van Reporting Services.
Wanneer u IIS gebruikt voor toegang tot Analysis Services-gegevens met behulp van een HTTP- of HTTPS-verbinding, kan Analysis Services profiteren van uitgebreide beveiliging die wordt geleverd door IIS. Zie Uitgebreide beveiliging configureren in IIS 7.5voor meer informatie over het configureren van IIS voor het gebruik van uitgebreide beveiliging.