SQL Server-Kompatibilität mit neuen TLS-Standards

30
  • Die wichtigsten Browser gehen über SSL3.0 und TLS1.0 hinaus.
  • Der PCI-Sicherheitsrat hat ein Ablaufdatum für diese Protokolle als ausreichend starke Verschlüsselung festgelegt.

Wir müssen uns von diesen Protokollen entfernen, um neuere und stärkere Protokolle zu verwenden. Auf Windows-Servern können Sie diese alten Protokolle sehr einfach deaktivieren und bieten stattdessen nur TLS1.1 oder höher an. Wie jedoch festgestellt , an anderer Stelle , Microsoft SQL Server 2008 R2 und SQL Server 2012 (Standard, zumindest) , die beide nicht gestartet werden, wenn diese niedrigen Protokolle deaktiviert sind. Es gibt jedoch eine wachsende Anzahl von Versionen von MS SQL Server. Es gibt die Editionen SQL Server Standard, Business Intelligence, Enterprise, Express, Web und Compact. Und natürlich gibt es SQL Server 2008, 2012, 2014 und (in der Vorabversion) 2016.

Welche dieser Editionen unterstützt oder unterstützt nur die Verwendung von TLS1.1- oder höheren Protokollen?

Mark Goldfain
quelle
Als Randnotiz: Die PCI-Anforderungen gelten für die gesamte Datenübertragung. Daher sollte es ausreichen, alle SQL-Kommunikationen über öffentliche und / oder drahtlose Netzwerke in ein VPN / einen Tunnel einzubinden, das / der bessere Standards implementiert. Sie decken möglicherweise auch überhaupt nicht die lokale Kommunikation ab. Wenn also nichts außerhalb Ihres VLANs die SQL-Instanz aufgrund der entsprechenden SQL-Konfiguration und / oder Firewalls und anderer Filter überhaupt berühren kann, müssen Sie sich möglicherweise nicht um diesen PoV kümmern. Keine dieser Tatsachen hilft Ihnen, wenn Sie eine SQL-Instanz für das öffentliche Netzwerk verfügbar machen müssen, aber diese Idee macht mir trotzdem Angst!
David Spillett

Antworten:

19

Microsoft hat kürzlich (ohne große Aufregung) bekannt gegeben, dass sie in TLS 1.2 investieren und SSL auslaufen lassen werden. Es sollte für alle Editionen von SQL Server relevant sein.

UPDATE 29.01.2016 : Microsoft hat die offizielle Unterstützung für TLS 1.2 in den Jahren 2008, 2008 R2, 2012 und 2014 angekündigt . Downloads und weitere Informationen finden Sie in KB # 3135244 .

Ich habe über einige der genannten Probleme gebloggt sowie eine Warnung, wenn Sie 2014 verschlüsselte Endpunkte verwenden:

Der Beitrag verweist auch auf den richtigen Build zum Herunterladen (oder eine andere Aktion), abhängig von der @@ Version.

Es bleibt abzuwarten, ob sich dieser Schritt auf alle bestehenden Versionen ab 2014 oder ab 2016 auswirkt. Das folgende Zitat scheint zu implizieren, dass mindestens 2014 Teil der Arbeit sein wird - und ich vermute, dass ein Großteil der Investition in die Client-Bibliotheken und nicht in die Engine fließen wird. Es ist also möglich, dass es für jede Version der nächsten Version funktioniert der ODBC / Native Client-Treiber werden unterstützt.

Ich habe dies von einem PowerPoint-Deck von Kevin Farlee von Microsoft erhalten und die Erlaubnis erhalten, die Informationen weiterzugeben, obwohl ich nicht weiß, wie viel davon zu diesem Zeitpunkt neu verteilt wurde. Hier ist das genaue Zitat aus dem Deck:

Verschlüsselung im Flug: Schützt Daten zwischen Client und Server vor Snooping- und Man-in-the-Middle-Angriffen. Upgrade auf TLS 1.2 in CY 15, Auslaufen von SSL.

Wenn Sie sich KB # 3052404 ansehen , scheinen Patches für 2012 SP + und 2014 vorhanden zu sein (für 2016 sind keine Patches erforderlich), es wird jedoch keine Rückportierung auf SQL Server 2005, 2008 angezeigt oder 2008 R2 (und ehrlich gesagt, wäre ich ziemlich überrascht).

Aaron Bertrand
quelle
6

Wie bei den anderen Antworten: Sie benötigen eine aktuelle CU für TLS1.2. Sehen:

UPDATE: Sie können das Transport Layer Security-Protokoll Version 1.2 nicht verwenden, um eine Verbindung zu einem Server herzustellen, auf dem SQL Server 2014 oder SQL Server 2012 ausgeführt wird :

  • Kumulatives Update 1 für SQL Server 2014 SP1
  • Kumulatives Update 8 für SQL Server 2014
  • Kumulatives Update 1 für SQL Server 2012 SP3
  • Kumulatives Update 10 für SQL Server 2012 SP2

Wenn Sie nur TLS 1.2 aktivieren, treten möglicherweise zwei Fehler auf:

  1. Der SQL Server 2014-Agent wird nicht gestartet. Lösung: Installieren Sie SQL Server 2012 SNAC über den Download-Link in KB3135244
  2. SQL Server Management Studio kann keine Verbindung herstellen. Lösung: Installieren Sie den entsprechenden .NET Framework-Hotfix von KB3135244

Außerdem müssen Sie den SNAC / OBDC-Treiber auf allen Clients aktualisieren, die eine Verbindung zum SQL Server herstellen.

Die vollständige Liste der erstellten SQL Server- und Client-Treiber sowie Download-Links und andere Konfigurationsänderungen, die möglicherweise erforderlich sind, finden Sie im folgenden Microsoft Support Knowledge Base-Artikel:

TLS 1.2-Unterstützung für Microsoft SQL Server

Jens W.
quelle
Warum kann ich SQL Server 2012 auch mit installiertem kumulativem Update 1 für SQL Server 2012 SP3 immer noch nicht starten?
NickG
4

Seit dem 29. Januar 2016 unterstützt Microsoft SQL Server TLS 1.2 für:

  • SQL Server 2008
  • SQL Server 2008 R2
  • SQL Server 2012; und
  • SQL Server 2014

... und wichtige Kunden wie:

  • Server Native Client
  • Microsoft ODBC-Treiber für SQL Server
  • Microsoft JDBC-Treiber für SQL Server
  • ADO.NET (SqlClient).

Blogbeitrag des SQL Server Engineering-Teams zum Release:

TLS 1.2-Unterstützung für SQL Server 2008, 2008 R2, 2012 und 2014

Liste der Builds, die TLS 1.2 unterstützen, zusammen mit den Download-Speicherorten für Client- und Serverkomponenten (KB3135244):

TLS 1.2-Unterstützung für Microsoft SQL Server (enthält .NET-Fixes für DB Mail)

Hinweis: Die obigen Informationen wurden seit der ersten Version aktualisiert, um einen Fehler im ursprünglichen Update zu beheben, der zu einer zeitweiligen Beendigung des Dienstes führte, wenn eine Verbindung zu einer Instanz von SQL Server 2008 oder SQL Server 2008 R2 hergestellt wurde . Dies ist in KB 3146034 beschrieben:

Zeitweilige Dienstbeendigungen treten auf, nachdem Sie SQL Server 2008- oder SQL Server 2008 R2-Versionen von KB3135244 installiert haben

Amit Banerjee
quelle
2

Ich kann bestätigen, dass Sie als SQL 2012 SP2 CU7, das TLS 1.2 für SQL 2012 ab CU6 unterstützt, TLS 1.0 auf Serverebene nicht deaktivieren und über eine unverschlüsselte Management Studio-Verbindung auf einer Instanz eine Verbindung zu SQL Server herstellen können Dies erzwingt keine Client-Verschlüsselung.

Dies ist eine Instanz, die kein TDE oder andere Zertifikate verwendet.

Ich werde es morgen nach dem Generieren eines vertrauenswürdigen Zertifikats für den Server und dem Aktivieren verschlüsselter Verbindungen versuchen. Derzeit kann TLS 1.0 in SQL 2012 nicht deaktiviert werden, obwohl TLS 1.2 unterstützt wird.

Bearbeiten:

Ich habe von unserer internen Zertifizierungsstelle ein Zertifikat für den Datenbankserver erstellt und konnte eine verschlüsselte Management Studio-Verbindung zum SQL Server herstellen, bis das TLS 1.0-Protokoll deaktiviert wurde. Zu diesem Zeitpunkt konnte keine Verbindung mehr hergestellt werden. Zum Verschlüsseln der Anmeldesitzung wird dasselbe Verhalten wie beim Fehlen eines Zertifikats und eines selbstsignierten Zertifikats verwendet.

Cooper Van Valkenburgh
quelle
2

Selbst mit SQL 2014 SP1 CU1 musste ich separate Boxen für IIS und SQL verwenden. Ich bin auf ein paar Probleme gestoßen, die anscheinend auf dem Weg waren, und habe die Schritte in diesem Beitrag detailliert beschrieben .

Die wichtigsten Punkte sind:

  • Stellen Sie IIS und SQL in getrennte Felder
  • Deaktivieren Sie eingehendes TLS1.0 und aktivieren Sie ausgehendes TLS1.0 auf der IIS-Box
  • Aktivieren Sie TLS1.0 in beide Richtungen auf der SQL-Box.
Ausstehende Rechnung
quelle
1

Hier ist, was ich auf Front- und Backservern gemacht habe

  1. Öffnen gpedit.msc. Doppelklicken Sie im lokalen Gruppenrichtlinien-Editor unter dem Knoten "Computerkonfiguration" auf "Windows-Einstellungen" und doppelklicken Sie dann auf "Sicherheitseinstellungen".

  2. Doppelklicken Sie unter "Sicherheitseinstellungen" auf "Lokale Richtlinien" und klicken Sie dann auf "Sicherheitsoptionen".

  3. Doppelklicken Sie im Detailbereich auf "Systemkryptografie: Verwenden Sie FIPS-kompatible Algorithmen für die Verschlüsselung, das Hashing und das Signieren".

  4. Klicken Sie im Dialogfeld "Systemkryptografie: Verwenden Sie FIPS-kompatible Algorithmen für Verschlüsselung, Hashing und Signierung" auf "Aktiviert" und dann auf "OK", um das Dialogfeld zu schließen. Schließen Sie den lokalen Gruppenrichtlinien-Editor.

Michael Zeydelis
quelle
Ich gehe davon aus, dass dies der Zweck der Einrichtung von TLS 1.2 ist, im Gegensatz zur eigentlichen ursprünglichen Frage, welche Versionen von SQL Server nicht TLS 1.0 unterstützen, möglicherweise auf einem Webserver mit einem SQL-Backend. Wenn möglich, erläutern Sie dies bitte in der Antwort.
RDFozz
Danke, aber ... In der ursprünglichen Frage habe ich versucht, sie etwas allgemeiner zu gestalten, aber es ging wirklich darum, Mitte 2015, als sie gestellt wurde, eine Mindestanforderung und eine Reihe von Technologien aufeinander abzustimmen. Es ist jetzt so veraltet, dass ich denke, es sollte geschlossen werden. Alle Antworten wie diese oben sollten wahrscheinlich auf eine neuere Version der Frage gerichtet sein, die für die heutigen Probleme besser geeignet ist. Ich selbst habe momentan keine solche Frage.
Mark Goldfain