Verschlüsseln der Verbindung
Um die Daten während des Transports über das Netzwerk zu schützen, kann die Verbindung verschlüsselt werden. Während der Anmeldeprozess immer verschlüsselt stattfindet, muss die Verschlüsselung des weiteren Datenverkehrs für die Instanz aktiviert werden. Dabei besteht die Wahlmöglichkeit, die Verschlüsselung zu erzwingen, d.h. es sind keine unverschlüsselten Verbindungen mit dem Server möglich oder die Wahl dem jeweiligen Client zu überlassen, d.h. es sind sowohl verschlüsselte als auch unverschlüsselte Verbindungen möglich.
Damit die Daten wirkungsvoll verschlüsselt
werden könnten, sollte auf dem Server ein entsprechendes Zertifikat
installiert sein. Ist kein Zertifikat vorhanden, so kann der SQL Server
2005 die Verschlüsselung auch mit Hilfe eines selbst ausgestellten
Zertifikats durchführen. Dazu muss die Option "Trust Server Certificate" aktiviert werden.
Wird für den Zugriff auf den Server ausschließlich die Windows-Authentifizierung verwendet, so kann auch IPSec als Verschlüsselungsprotokoll verwendet werden. IPSec verschlüsselt sämtliche Datenübertragungen vom und zum Server (also nicht nur die Verbindungen zum Datenbankmodul). Da IPSec auf einer niedrigeren Ebene arbeitet ist die Verschlüsselung mit IPSec auch performanter.
Verwenden eines Zertifikats
Abbildung 1: Öffnen des Eigenschaften-Dialogs für "Protokolle der Instanz" im SQL Server Konfigurationsmanager
Um ein Zertifikat im SQL Server aktivieren
zu können, muss das Zertifikat im Windows-Zertifikatsspeicher des Rechners
installiert worden sein. Anschließend kann das Zertifikat für die
Verschlüsselung der Verbindung aktiviert werden. Starten Sie dazu den SQL
Server Konfigurationsmanager unter dem Konto unter dem der SQL Server
Dienst ausgeführt wird. Wechseln Sie zum Knoten "SQL Server
2005-Netzwerkkonfiguration" und öffnen Sie den Eigenschaften-Dialog
für "Protokolle für 'Instanz'".
Abbildung 2: Erzwingen von verschlüsselten Verbindungen für eine SQL Server Instanz
Auf der Seite "Flags" können Sie festlegen, ob die
Verschlüsselung für Verbindungen erzwungen werden soll. Ändern Sie
diese Option auf "Ja", falls keine unverschlüsselten Verbindungen
zugelassen werden sollen.
Abbildung 3: Auswahl eines Zertifikats für die Verschlüsselung der Datenübertragung
Auf der Registerseite "Zertifikat" können Sie jetzt das installierte Zertifikat auswählen. Wird kein Zertifikat ausgewählt, so wird ein selbsterzeugtes Zertifikat verwendet. Nach der Änderung der Einstellungen muss der Datenbankdienst neu gestartet werden, damit die Einstellungen aktiviert werden.
In der Registrierungsdatenbank können Sie unter dem Schlüssel HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSSQL.#instanz\MSSQLSERVER\SuperSocketNetLib im Schlüssel "Certificate" erkennen, ob ein selbst signiertes Zertifikat verwendet wird: Ist der Wert des Schlüssel leer, so wird ein selbst signiertes Zertifikat verwendet, ansonsten wird hier (verschlüsselt) der Name des Zertifikats hinterlegt.
Um festzustellen, welche Verbindungen zum Server
SSL-verschlüsselt sind, kann die Management-Sicht " sys.dm_exec_connections" aufgerufen werden.
Diese Sicht zeigt in der Spalte "net_transport" das verwendete Protokoll und in der Spalte "encrypt_option", ob die Verbindung verschlüsselt wird oder nicht.
SELECT session_id, net_transport,
encrypt_option, auth_scheme
FROM sys.dm_exec_connections
Listing.1: Ermitteln von verwendetem Protokoll, Verschlüsselung und Authentifizierungsmechanismus für alle aktiven Verbindungen
|