Herstellen einer Verbindung mit der Datenbank-Engine unter Verwendung von Erweiterter Schutz
Gilt für: SQL Server
SQL Server unterstützt das Feature Erweiterter Schutz ab SQL Server 2008 R2 (10.50.x). Erweiterter Schutz für die Authentifizierung ist eine Funktion der vom Betriebssystem implementierten Netzwerkkomponenten. Erweiterter Schutz wird in Windows 7 und Windows Server 2008 R2 unterstützt. Erweiterter Schutz ist in Service Packs für ältere Microsoft-Betriebssysteme enthalten. SQL Server ist sicherer, wenn Verbindungen mit dem Feature Erweiterter Schutz hergestellt werden.
Wichtig
Erweiterter Schutz ist in Windows standardmäßig nicht aktiviert. Informationen zum Aktivieren von Erweiterter Schutz in Windows finden Sie unter Erweiterter Schutz für die Authentifizierung.
Beschreibung von "Erweiterter Schutz"
Erweiterter Schutz nutzt die Dienstbindung und die Kanalbindung, um Relayangriffe während der Authentifizierung zu verhindern. Bei einem Relayangriff während der Authentifizierung stellt ein Client, der NTLM-Authentifizierungen durchführen kann (z. B. für Windows-Explorer, Microsoft Outlook, eine .NET SqlClient-Anwendung usw.), eine Verbindung mit einem Angreifer her (z. B. mit einem bösartigen CIFS-Dateiserver). Der Angreifer verwendet die Anmeldeinformationen des Clients, um sich als der Client auszugeben und sich bei einem Dienst (z. B. einer Instanz des Datenbank-Engine-Diensts) zu authentifizieren.
Der Angriff kann auf zwei Arten erfolgen:
Bei einem "Lockangriff" wird der Client dazu verleitet, freiwillig eine Verbindung mit dem Angreifer herzustellen.
Bei einem Spoofingangriff beabsichtigt der Client, eine Verbindung mit einem gültigen Dienst herzustellen, bemerkt jedoch nicht, dass DNS und/oder IP-Routing manipuliert wurden, um die Verbindung an den Angreifer umzuleiten.
SQL Server unterstützt Dienst- und Kanalbindungen, um die Angriffe auf SQL Server-Instanzen zu verringern.
Dienstbindung
Bei der Dienstbindung werden Lockangriffe dadurch verhindert, dass ein Client einen signierten Dienstprinzipalnamen (Service Principal Name, SPN) des SQL Server-Diensts senden muss, mit dem der Client eine Verbindung herstellen möchte. Der Dienst überprüft als Teil der Authentifizierungsantwort, ob der im Paket empfangene SPN mit seinem eigenen SPN übereinstimmt. Wenn ein Client verleitet wird, eine Verbindung mit einem Angreifer herzustellen, sendet der Client den signierten SPN des Angreifers. Der Angreifer kann das Paket nicht übermitteln, um sich beim echten SQL Server-Dienst als Client zu authentifizieren, weil das Paket den SPN des Angreifers enthält. Bei der Dienstbindung fallen einmalig unwesentliche Kosten an, allerdings bietet sie keinen Schutz vor Spoofingangriffen. Eine Dienstbindung tritt auf, wenn eine Clientanwendung keine Verschlüsselung verwendet, um eine Verbindung mit SQL Server herzustellen.
Kanalbindung
Bei der Kanalbindung wird zwischen einem Client und einer Instanz des SQL Server-Diensts ein sicherer Kanal (Schannel) eingerichtet. Der Dienst überprüft die Echtheit des Clients, indem er das für den jeweiligen Kanal spezifische Kanalbindungsbindungstoken (Channel Binding Token, CBT) des Clients mit dem eigenen CBT vergleicht. Durch die Kanalbindung werden sowohl Lock- als auch Spoofingangriffe unterbunden. Diese Methode verursacht jedoch höhere Laufzeitkosten, da TLS (Transport Layer Security)-Verschlüsselung für den gesamten Sitzungsdatenverkehr erforderlich ist. Eine Kanalbindung tritt auf, wenn eine Clientanwendung Verschlüsselungen verwendet, um eine Verbindung mit SQL Server herzustellen – unabhängig davon, ob Verschlüsselungen vom Client oder dem Server erzwungen werden.
Warnung
SQL Server und Microsoft-Datenanbieter für SQL unterstützen TLS 1.0 und SSL 3.0. Wenn Sie ein anderes Protokoll (beispielsweise TLS 1.1 oder TLS 1.2) erzwingen, indem Sie Änderungen an der Schannel-Betriebssystemebene vornehmen, können Sie möglicherweise keine Verbindung mit SQL Server herstellen. Stellen Sie sicher, dass Sie die neueste Version von SQL Server haben, um TLS 1.1 oder TLS 1.2 zu unterstützen. Weitere Informationen finden Sie unter https://support.microsoft.com/topic/kb3135244-tls-1-2-support-for-microsoft-sql-server-e4472ef8-90a9-13c1-e4d8-44aad198cdbe.
Betriebssystemunterstützung
Die folgenden Links enthalten weitere Informationen dazu, wie Erweiterter Schutzvon Windows unterstützt wird:
Einstellungen
Es gibt drei SQL Server-Verbindungseinstellungen, die sich auf die Dienstbindung und die Kanalbindung auswirken. Die Einstellungen können mit dem SQL Server-Konfigurations-Manager oder der Windows-Verwaltungsinstrumentation konfiguriert und mithilfe des Facets Serverprotokolleinstellungen der richtlinienbasierten Verwaltung angezeigt werden.
Erzwingen der Verschlüsselung
Mögliche Werte sind Ein und Aus. Zur Verwendung der Kanalbindung muss Verschlüsselung erzwingen auf Einfestgelegt werden, sodass die Verschlüsselung auf allen Clients erzwungen wird. Bei der Einstellung Auswird nur die Dienstbindung gewährleistet. Das Feature Verschlüsselung erzwingen befindet sich im SQL Server-Konfigurations-Manager unter Protocols for MSSQLSERVER Properties (Flags Tab) (Protokolle für MSSQLSERVER-Eigenschaften [Registerkarte „Flags“]).
Erweiterter Schutz
Mögliche Werte sind Aus, Zulässigund Erforderlich. Mit der Variablen Erweiterter Schutz können Benutzer*innen die Ebene für Erweiterter Schutz für jede SQL Server-Instanz konfigurieren. Erweiterter Schutz befindet sich im SQL Server-Konfigurations-Manager unter Protocols for MSSQLSERVER Properties (Advanced Tab) (Protokolle für MSSQLSERVER-Eigenschaften [Registerkarte „Erweitert“]).
Bei der Einstellung Ausist Erweiterter Schutz deaktiviert. Die SQL Server-Instanz akzeptiert Verbindungen von jedem beliebigen Client, unabhängig davon, ob er geschützt ist oder nicht. Aus ist mit älteren und nicht gepatchten Betriebssystemen kompatibel, bietet aber weniger Sicherheit. Verwenden Sie diese Einstellung, wenn Sie wissen, dass die Clientbetriebssysteme keinen erweiterten Schutz unterstützen.
Bei der Einstellung Zulässigwird Erweiterter Schutz für Verbindungen von Betriebssystemen vorausgesetzt, die die Funktion Erweiterter Schutzunterstützen. Bei Verbindungen von Betriebssystemen, dieErweiterter Schutz nicht unterstützen, wird die Funktion Erweiterter Schutzignoriert. Verbindungen von ungeschützten Clientanwendungen, die auf geschützten Clientbetriebssystemen ausgeführt werden, werden abgelehnt. Diese Einstellung ist sicherer als Aus, bietet jedoch nicht die höchste Sicherheit. Verwenden Sie diese Einstellung in gemischten Umgebungen, in denen einige Betriebssysteme die Funktion Erweiterter Schutz unterstützen, einige jedoch nicht.
Bei der Einstellung Erforderlichwerden nur Verbindungen von geschützten Anwendungen auf geschützten Betriebssystemen akzeptiert. Dies ist die sicherste Einstellung. Von Betriebssystemen oder Anwendungen, die die Funktion Erweiterter Schutz nicht unterstützen, können jedoch keine Verbindungen mit SQL Server hergestellt werden.
Akzeptierte NTLM-SPNs
Die Variable Akzeptierte NTLM-SPNs wird benötigt, wenn ein Server durch mehr als einen SPN identifiziert wird. Wenn ein Client versucht, mithilfe eines gültigen, dem Server nicht bekannten SPNs eine Verbindung mit dem Server herzustellen, verursacht die Dienstbindung einen Fehler. Um dieses Problem zu vermeiden, können Benutzer mithilfe von Akzeptierte NTLM-SPNsmehrere SPNs für den Server angeben. Akzeptierte NTLM-SPNs umfasst eine Reihe durch Semikolons getrennter SPNs. Beispiel: Um die Verwendung der SPNs MSSQLSvc/ HostName1.Contoso.com und MSSQLSvc/ HostName2.Contoso.comzuzulassen, geben Sie im Feld Akzeptierte NTLM-SPNs die Zeichenfolge MSSQLSvc/HostName1.Contoso.com;MSSQLSvc/HostName2.Contoso.com ein. Die maximale Länge der Variablen beträgt 2.048 Zeichen. Akzeptierte NTLM-SPNs befindet sich im SQL Server-Konfigurations-Manager unter Protocols for MSSQLSERVER Properties (Advanced Tab).
Aktivieren von "Erweiterter Schutz" für die Datenbank-Engine
Zur Verwendung von Erweiterter Schutzbenötigen sowohl der Server als auch der Client ein Betriebssystem, das Erweiterter Schutzunterstützt, und die Funktion Erweiterter Schutz muss für das Betriebssystem aktiviert sein. Weitere Informationen zum Aktivieren von Erweiterter Schutz für das Betriebssystem finden Sie unter Erweiterter Schutz für die Authentifizierung.
SQL Server unterstützt das Feature Erweiterter Schutz ab SQL Server 2008 R2 (10.50.x). Für einige frühere Versionen von SQL Server wird Erweiterter Schutz in zukünftigen Updates verfügbar sein. Nachdem Sie Erweiterter Schutz auf dem Servercomputer aktiviert haben, führen Sie die folgenden Schritte aus, um Erweiterter Schutzzu aktivieren:
Zeigen Sie im Menü Start auf Alle Programme, zeigen Sie auf Microsoft SQL Server , und klicken Sie dann auf SQL Server-Konfigurations-Manager.
Erweitern Sie SQL Server-Netzwerkkonfiguration, klicken Sie mit der rechten Maustaste auf Protokolle für _<_Instanzname>*, und klicken Sie dann auf Eigenschaften.
Legen Sie sowohl für die Kanalbindung als auch für die Dienstbindung auf der Registerkarte Erweitert die geeignete Einstellung für die Funktion Erweiterter Schutz fest.
Wenn ein Server durch mehr als einen SPN identifiziert wird, konfigurieren Sie auf der Registerkarte Erweitert optional das Feld Akzeptierte NTLM-SPNs , wie im Abschnitt "Einstellungen" beschrieben.
Legen Sie für die Kanalbindung auf der Registerkarte Flags die Einstellung Verschlüsselung erzwingen auf Einfest.
Starten Sie den Datenbank-Engine-Dienst neu.
Konfigurieren anderer SQL Server-Komponenten
Weitere Informationen zur Konfiguration der Reporting Services finden Sie unter Erweiterter Schutz für die Authentifizierung mit den Reporting Services.
Wenn IIS verwendet wird, um über eine HTTP- oder HTTPS-Verbindung auf Analysis Services-Daten zuzugreifen, kann Analysis Services das von IIS bereitgestellte Feature „Erweiterter Schutz“ nutzen. Weitere Informationen dazu, wie IIS für die Verwendung des erweiterten Schutzes konfiguriert wird, finden Sie unter Konfigurieren von "Erweiterter Schutz" in IIS 7.5(möglicherweise auf Englisch).
Weitere Informationen
Server-Netzwerkkonfiguration
Client-Netzwerkkonfiguration
Erweiterter Schutz für die Authentifizierung
Integrierte Windows-Authentifizierung unter Verwendung von "Erweiterter Schutz" (möglicherweise auf Englisch)