Zgodność programu SQL Server z nowymi standardami TLS

30
  • Główne przeglądarki wychodzą poza SSL3.0 i TLS1.0.
  • Rada Bezpieczeństwa PCI ogłosiła datę wygaśnięcia ważności tych protokołów, aby można je było uznać za wystarczająco silne szyfrowanie.

Musimy odejść od tych protokołów, aby korzystać z nowszych i silniejszych. Na serwerach Windows można bardzo łatwo wyłączyć te stare protokoły i zamiast tego oferować tylko TLS1.1 lub nowszy. Jednak, jak zauważono w innym miejscu , Microsoft SQL Server 2008 R2 i SQL Server 2012 (przynajmniej Standard) przynajmniej nie uruchomią się, jeśli te niższe protokoły zostaną wyłączone. Istnieje jednak rosnąca liczba wersji MS SQL Server. Istnieją wersje SQL Server Standard, Business Intelligence, Enterprise, Express, Web i Compact. I oczywiście jest SQL Server 2008, 2012, 2014 i (w wersji wstępnej) 2016.

Które z tych wersji obsługują lub będą obsługiwać tylko protokoły TLS1.1 lub nowszy?

Mark Goldfain
źródło
Na marginesie: wymagania PCI obejmują tutaj ogólną transmisję danych, więc wystarczające jest owijanie wszelkich komunikatorów SQL w sieci publiczne i / lub bezprzewodowe w tunelu VPN / tunelu, który wdraża lepsze standardy. Mogą również w ogóle nie obejmować komunikacji lokalnej; więc jeśli nic poza siecią VLAN nie może nawet dotknąć instancji SQL ze względu na odpowiednią konfigurację SQL i / lub zapory ogniowe i inne filtrowanie, być może nie będziesz musiał przejmować się tym PoV. Żaden z tych faktów nie pomoże ci, jeśli musisz udostępnić instancję SQL publicznie, ale ten pomysł i tak mnie przeraża!
David Spillett,

Odpowiedzi:

19

Firma Microsoft niedawno ujawniła (bez większego rozgłosu), że będzie inwestować w TLS 1.2 i wycofywać SSL. Powinien odnosić się do wszystkich wersji SQL Server.

AKTUALIZACJA 29.01.2016 : Microsoft ogłosił oficjalne wsparcie dla TLS 1.2 w 2008, 2008 R2, 2012 i 2014 . Pliki do pobrania i inne informacje można znaleźć w KB # 3135244 .

Napisałem na blogu o kilku wspomnianych problemach, a także ostrzeżenie, jeśli używasz zaszyfrowanych punktów końcowych w 2014 roku:

Wpis wskazuje również na prawidłową kompilację do pobrania (lub inną akcję) w zależności od wersji @@.

To, czy ten ruch wpłynie na wszystkie istniejące wersje, tylko w 2014 r. I powyżej, czy tylko 2016 r., Dopiero się okaże. Poniższy cytat wydaje się sugerować, że co najmniej 2014 r. Będzie częścią pracy - i podejrzewam, że znaczna część inwestycji będzie w biblioteki klienta, a nie w silnik, więc możliwe jest, że będzie działać dla każdej wersji, która będzie następna wersja sterowników ODBC / Native Client będą obsługiwane.

Dostałem to z talii PowerPoint od Kevina Farlee z Microsoftu i otrzymałem zgodę na udostępnianie informacji, chociaż nie wiem, ile z tego zostało rozprowadzonych w tym momencie. Oto dokładny cytat z talii:

Szyfrowanie w locie: chroni dane między klientem a serwerem przed szpiegowaniem i atakami typu man-in-the-middle. Aktualizacja do TLS 1.2 w CY 15, wycofywanie SSL.

Ponadto, jeśli spojrzysz na KB 3052404 , wydaje się, że istnieją łatki, dzięki którym będzie on działał z SP + 2012 i 2014 (poprawki nie będą wymagane w 2016), ale nic nie wskazuje na to, że nastąpi przeniesienie do SQL Server 2005, 2008 lub 2008 R2 (i szczerze mówiąc, byłbym bardzo zaskoczony).

Aaron Bertrand
źródło
6

Jak w innych odpowiedziach: potrzebujesz najnowszej CU dla TLS 1.2. Widzieć:

POPRAWKA: Nie można użyć protokołu Transport Layer Security w wersji 1.2, aby połączyć się z serwerem, na którym działa program SQL Server 2014 lub SQL Server 2012 :

  • Zbiorcza aktualizacja 1 dla programu SQL Server 2014 z dodatkiem SP1
  • Zbiorcza aktualizacja 8 dla programu SQL Server 2014
  • Zbiorcza aktualizacja 1 dla programu SQL Server 2012 z dodatkiem SP3
  • Zbiorcza aktualizacja 10 dla programu SQL Server 2012 z dodatkiem SP2

Po włączeniu tylko TLS 1.2 prawdopodobnie wystąpią dwa błędy:

  1. SQL Server 2014 Agent nie uruchamia się. Rozwiązanie: zainstaluj program SQL Server 2012 SNAC z łącza pobierania w KB3135244
  2. SQL Server Management Studio nie może się połączyć. Rozwiązanie: Zainstaluj odpowiednią poprawkę .NET Framework z KB3135244

Ponadto musisz zaktualizować sterownik SNAC / OBDC na wszystkich klientach łączących się z serwerem SQL.

Pełna lista kompilacji SQL Server i sterownika klienta wraz z linkami do pobrania i innymi zmianami konfiguracji, które mogą być potrzebne, są zawarte w następującym artykule bazy wiedzy Microsoft Support Knowledge Base:

Obsługa TLS 1.2 dla Microsoft SQL Server

Jens W.
źródło
Dlaczego nadal nie mogę uruchomić programu SQL Server 2012, nawet jeśli zainstalowano aktualizację zbiorczą 1 dla programu SQL Server 2012 SP3?
NickG
4

Od 29 stycznia 2016 r. Microsoft SQL Server obsługuje TLS 1.2 dla:

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

... oraz głównymi sterownikami klientów, takimi jak:

  • Serwer macierzysty klienta
  • Sterownik Microsoft ODBC dla SQL Server
  • Sterownik Microsoft JDBC dla SQL Server
  • ADO.NET (SqlClient).

Wpis na blogu zespołu inżynierów SQL Server na temat wydania:

Obsługa TLS 1.2 dla SQL Server 2008, 2008 R2, 2012 i 2014

Lista kompilacji obsługujących TLS 1.2 wraz z lokalizacjami pobierania składników klienta i serwera (KB3135244):

Obsługa TLS 1.2 dla Microsoft SQL Server (obejmuje poprawki .NET dla DB Mail)

Uwaga: Powyższe informacje zostały zaktualizowane od pierwszej wersji w celu usunięcia usterki oryginalnej aktualizacji, która spowodowała przerywane przerywanie usługi podczas łączenia się z wystąpieniem programu SQL Server 2008 lub SQL Server 2008 R2 . Jest to opisane w KB 3146034:

Przerywane usługi kończą się po zainstalowaniu dowolnej wersji SQL Server 2008 lub SQL Server 2008 R2 z KB3135244

Amit Banerjee
źródło
2

Mogę potwierdzić, że jako SQL 2012 SP2 CU7, który obsługuje TLS 1.2 dla SQL 2012 z CU6, nie można wyłączyć TLS 1.0 na poziomie serwera i być w stanie połączyć się z serwerem SQL za pomocą niezaszyfrowanego połączenia studia zarządzania na instancji co nie wymusza szyfrowania klienta.

Dotyczy to instancji, która nie korzysta z TDE lub innych certyfikatów.

Spróbuję jutro po wygenerowaniu zaufanego certyfikatu dla serwera i włączeniu szyfrowanych połączeń, ale obecnie nie można wyłączyć TLS 1.0 w SQL 2012, mimo że obsługuje TLS 1.2.

Edytować:

Wygenerowałem certyfikat dla serwera bazy danych z naszego wewnętrznego urzędu certyfikacji i byłem w stanie nawiązać szyfrowane połączenie studia zarządzania z serwerem SQL, dopóki protokół TLS 1.0 nie został wyłączony, w którym to momencie nie byłem już w stanie się połączyć. Takie samo zachowanie, jak w przypadku braku certyfikatu i certyfikatu z podpisem własnym, służy do szyfrowania sesji logowania.

Cooper Van Valkenburgh
źródło
2

Odkryłem, że nawet z SQL 2014 SP1 CU1 musiałem używać osobnych skrzynek dla IIS i SQL. Po drodze natknąłem się na kilka pozornie powiązanych problemów i szczegółowo opisałem kroki w tym poście .

Kluczowe punkty to:

  • Umieść IIS i SQL w osobnych polach
  • Wyłącz przychodzące TLS1.0 i włącz wychodzące TLS1.0 w polu IIS
  • Włącz TLS1.0 na dwa sposoby w polu SQL.
OutstandingBill
źródło
1

Oto, co zrobiłem na przednich i tylnych serwerach

  1. Otwarte gpedit.msc. W Edytorze lokalnych zasad grupy kliknij dwukrotnie „Ustawienia systemu Windows” w węźle „Konfiguracja komputera”, a następnie kliknij dwukrotnie „Ustawienia zabezpieczeń”.

  2. W węźle „Ustawienia zabezpieczeń” kliknij dwukrotnie „Zasady lokalne”, a następnie „Opcje bezpieczeństwa”.

  3. W okienku szczegółów kliknij dwukrotnie „Kryptografia systemu: użyj zgodnych algorytmów FIPS do szyfrowania, mieszania i podpisywania”.

  4. W oknie dialogowym „Kryptografia systemu: użyj zgodnych algorytmów FIPS do szyfrowania, mieszania i podpisywania” kliknij „Włączone”, a następnie „OK”, aby zamknąć okno dialogowe. Zamknij Edytor lokalnych zasad grupy.

Michael Zeydelis
źródło
Zakładam, że jest to adres jak skonfigurować TLS 1.2, w przeciwieństwie do rzeczywistego pierwotnego pytania, z których wersje SQL Server zrobić support coś poza TLS 1.0, być może na serwerze internetowym z backend SQL? Jeśli to możliwe, wyjaśnij to w samej odpowiedzi.
RDFozz
Dzięki, ale ... W pierwotnym pytaniu próbowałem uczynić to nieco ogólnym, ale naprawdę miało to związek z dopasowaniem minimalnego wymagania i zestawu technologii w połowie 2015 r., Kiedy zostało postawione. Stało się tak przestarzałe, że uważam, że należy go zamknąć. Wszelkie odpowiedzi takie jak powyższa powinny być prawdopodobnie skierowane na nowszą wersję pytania, która lepiej pasuje do dzisiejszych problemów. Sam obecnie nie mam takiego pytania.
Mark Goldfain