Herstellen einer Verbindung mit dem Datenbankmodul unter Verwendung von "Erweiterter Schutz"
Erweiterter Schutz wird von SQL Server ab SQL Server 2008 R2 unterstützt. 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 bietet eine höhere Sicherheit, wenn Verbindungen unter Verwendung von 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 in der Lage ist, NTLM-Authentifizierungen auszuführen (z. B. Windows-Explorer, Microsoft Outlook, eine .NET SqlClient-Anwendung usw.), eine Verbindung mit einem Angreifer her (z. B. einem böswilligen 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 Database Engine (Datenbankmodul)-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 trägt mithilfe der Dienstbindung und Kanalbindung dazu bei, solche Angriffe auf SQL Server-Instanzen zu reduzieren.
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 übertragen, 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. Die Dienstbindung findet statt, wenn eine Clientanwendung ohne Verschlüsselung eine Verbindung mit SQL Server herstellt.
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. Die Kanalbindung findet statt, wenn eine Clientanwendung mit Verschlüsselung eine Verbindung mit SQL Server herstellt.
Betriebssystemunterstützung
Die folgenden Links enthalten weitere Informationen dazu, wie Erweiterter Schutz von 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 Serverprotokolleinstellung der richtlinienbasierten Verwaltung angezeigt werden.
Verschlüsselung erzwingen
Mögliche Werte sind Ein und Aus. Zur Verwendung der Kanalbindung muss Verschlüsselung erzwingen auf Ein festgelegt werden, sodass die Verschlüsselung auf allen Clients erzwungen wird. Bei der Einstellung Aus wird nur die Dienstbindung gewährleistet. Verschlüsselung erzwingen befindet sich im SQL Server-Konfigurations-Manager unter Protokolle für MSSQLSERVER-Eigenschaften (Registerkarte Flags).
Erweiterter Schutz
Mögliche Werte sind Aus, Zulässig und Erforderlich. Mit der Variable Erweiterter Schutz können Benutzer die Ebene für den erweiterten Schutz für jede SQL Server-Instanz konfigurieren. Die Option Erweiterter Schutz befindet sich unter Protokolle für MSSQLSERVER-Eigenschaften (Registerkarte Erweitert) im SQL Server Konfigurations-Manager.
Bei der Einstellung Aus ist 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ässig wird Erweiterter Schutz für Verbindungen von Betriebssystemen vorausgesetzt, die die Funktion Erweiterter Schutz unterstützen. Bei Verbindungen von Betriebssystemen, die Erweiterter Schutz nicht unterstützen, wird die Funktion Erweiterter Schutz ignoriert. 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 Erforderlich werden 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-SPNs mehrere 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.com zuzulassen, 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 Protokolle für MSSQLSERVER-Eigenschaften (Registerkarte Erweitert).
Aktivieren von "Erweiterter Schutz" für das Datenbankmodul
Zur Verwendung von Erweiterter Schutz benötigen sowohl der Server als auch der Client ein Betriebssystem, das Erweiterter Schutz unterstü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.
Erweiterter Schutz wird von SQL Server ab SQL Server 2008 R2 unterstützt. Für einige frühere SQL Server-Versionen 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 Schutz in SQL Server 2008 R2 zu 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 <InstanceName>, 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 Ein fest.
Starten Sie den Database Engine (Datenbankmodul)-Dienst neu.
Konfigurieren anderer SQL Server-Komponenten
Weitere Informationen zum Konfigurieren von Reporting Services finden Sie unter Erweiterter Schutz für die Authentifizierung mit Reporting Services.
Wenn IIS verwendet wird, um über eine HTTP- oder HTTPS-Verbindung auf Analysis Services-Daten zuzugreifen, kann Analysis Services den von IIS bereitgestellten erweiterten 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).
Siehe auch