Compatibilité SQL Server avec les nouvelles normes TLS

30
  • Les principaux navigateurs vont au-delà de SSL3.0 et TLS1.0.
  • Le Conseil de sécurité PCI a déclaré une date de fin de vie pour que ces protocoles soient considérés comme un cryptage suffisamment fort.

Nous devons nous éloigner de ces protocoles pour en utiliser de nouveaux et plus solides. Sur les serveurs Windows, vous pouvez très facilement désactiver ces anciens protocoles et n'offrir à la place que TLS1.1 ou supérieur. Cependant, comme indiqué ailleurs , Microsoft SQL Server 2008 R2 et SQL Server 2012 (Standard, au moins) ne démarreront pas tous les deux si ces protocoles inférieurs sont désactivés. Cependant, il existe un nombre croissant de versions de MS SQL Server. Il existe des éditions SQL Server Standard, Business Intelligence, Enterprise, Express, Web et Compact. Et bien sûr, il y a SQL Server 2008, 2012, 2014 et (en version préliminaire) 2016.

Laquelle de ces éditions prend en charge ou prendra en charge l'utilisation de protocoles TLS1.1 ou supérieurs uniquement?

Mark Goldfain
la source
En remarque: les exigences PCI couvrent ici la transmission globale des données, donc envelopper toutes les communications SQL sur des réseaux publics et / ou sans fil dans un VPN / tunnel qui implémente de meilleures normes devrait être suffisant. Ils peuvent également ne pas couvrir du tout les communications locales; donc si rien en dehors de votre VLAN ne peut même toucher l'instance SQL en raison de la configuration SQL appropriée et / ou des pare-feu et autres filtrages, vous n'aurez peut-être pas à vous soucier de ce PoV. Aucun de ces faits ne vous aide si vous avez besoin d'exposer une instance SQL au réseau public bien sûr, mais cette idée me fait quand même peur!
David Spillett

Réponses:

19

Microsoft a récemment révélé (sans beaucoup de fanfare) qu'ils investiraient dans TLS 1.2 et élimineraient SSL. Il doit être pertinent pour toutes les éditions de SQL Server.

MISE À JOUR 2016-01-29 : Microsoft a annoncé la prise en charge officielle de TLS 1.2 en 2008, 2008 R2, 2012 et 2014 . Les téléchargements et autres informations se trouvent dans la base de connaissances n ° 3135244 .

J'ai blogué sur quelques-uns des problèmes qui ont été mentionnés, ainsi qu'un avertissement si vous utilisez des points de terminaison chiffrés en 2014:

La publication indique également la version correcte à télécharger (ou toute autre action) en fonction de la version @@.

Il reste à voir si cette décision affectera toutes les versions existantes, juste 2014 et au-dessus, ou seulement 2016. La citation ci-dessous semble impliquer qu'au moins 2014 fera partie du travail - et je soupçonne qu'une grande partie de l'investissement sera dans les bibliothèques clientes, pas dans le moteur, il est donc possible que cela fonctionne pour n'importe quelle version que la prochaine version des pilotes ODBC / Native Client prendront en charge.

J'ai obtenu cela à partir d'un deck PowerPoint par Kevin Farlee de Microsoft, et j'ai été autorisé à partager les informations, bien que je ne sache pas quelle quantité a été redistribuée à ce stade. Voici la citation exacte du jeu:

Cryptage en vol: protège les données entre le client et le serveur contre l'espionnage et les attaques de l'homme du milieu. Mise à niveau vers TLS 1.2 dans CY 15, suppression progressive de SSL.

De plus, si vous regardez la base de connaissances # 3052404 , il semble qu'il existe des correctifs pour le faire fonctionner avec 2012 SP + et 2014 (les correctifs ne seront pas requis pour 2016), mais rien n'indique qu'il y aura un portage arrière vers SQL Server 2005, 2008 , ou 2008 R2 (et franchement, je serais assez surpris).

Aaron Bertrand
la source
6

Comme dans les autres réponses: vous avez besoin d'une CU récente pour TLS1.2. Voir:

CORRECTIF: vous ne pouvez pas utiliser la version 1.2 du protocole Transport Layer Security pour vous connecter à un serveur qui exécute SQL Server 2014 ou SQL Server 2012 :

  • Mise à jour cumulative 1 pour SQL Server 2014 SP1
  • Mise à jour cumulative 8 pour SQL Server 2014
  • Mise à jour cumulative 1 pour SQL Server 2012 SP3
  • Mise à jour cumulative 10 pour SQL Server 2012 SP2

Après avoir activé uniquement TLS 1.2, vous rencontrerez probablement deux erreurs:

  1. L'agent SQL Server 2014 ne démarre pas. Lösung: installez le serveur SNAC de SQL Server 2012 du lien de téléchargement dans KB3135244
  2. SQL Server Management Studio ne peut pas se connecter. Solution: installez le correctif .NET Framework applicable à partir de KB3135244

De plus, vous devez mettre à jour le pilote SNAC / OBDC sur tous les clients se connectant à SQL Server.

La liste complète des versions de SQL Server et du pilote client, ainsi que les liens de téléchargement et les autres modifications de configuration qui peuvent être nécessaires sont contenues dans l'article suivant de la base de connaissances du support Microsoft:

Prise en charge de TLS 1.2 pour Microsoft SQL Server

Jens W.
la source
Pourquoi ne puis-je toujours pas démarrer SQL Server 2012 même avec la mise à jour cumulative 1 pour SQL Server 2012 SP3 installée?
NickG
4

Depuis le 29 janvier 2016, Microsoft SQL Server prend en charge TLS 1.2 pour:

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

... et les principaux pilotes clients comme:

  • Client natif du serveur
  • Pilote ODBC Microsoft pour SQL Server
  • Pilote JDBC Microsoft pour SQL Server
  • ADO.NET (SqlClient).

Article de blog de l'équipe d'ingénierie SQL Server sur la version:

Prise en charge de TLS 1.2 pour SQL Server 2008, 2008 R2, 2012 et 2014

Liste des versions prenant en charge TLS 1.2 ainsi que les emplacements de téléchargement des composants client et serveur (KB3135244):

Prise en charge TLS 1.2 pour Microsoft SQL Server (inclut des correctifs .NET pour DB Mail)

Remarque: les informations ci-dessus ont été mises à jour depuis la version initiale pour corriger un défaut dans la mise à jour d'origine qui a provoqué une interruption intermittente du service lors de la connexion à une instance de SQL Server 2008 ou SQL Server 2008 R2 . Ceci est décrit dans KB 3146034:

Les terminaisons de service intermittentes se produisent après l'installation de toutes les versions de SQL Server 2008 ou SQL Server 2008 R2 à partir de KB3135244

Amit Banerjee
la source
2

Je peux confirmer qu'en tant que SQL 2012 SP2 CU7, qui prend en charge TLS 1.2 pour SQL 2012 à partir de CU6, vous ne pouvez pas désactiver TLS 1.0 au niveau du serveur et pouvoir vous connecter au serveur SQL à l'aide d'une connexion de studio de gestion non chiffrée sur une instance ce qui ne force pas le cryptage client.

Il s'agit d'une instance qui n'utilise pas TDE ou d'autres certificats.

J'essaierai demain après avoir généré un certificat de confiance pour le serveur et activé les connexions chiffrées, mais pour l'instant TLS 1.0 ne peut pas être désactivé sur SQL 2012, même s'il prend en charge TLS 1.2.

Modifier:

J'ai généré un certificat pour le serveur de base de données à partir de notre autorité de certification interne et j'ai pu établir une connexion de studio de gestion cryptée au serveur SQL, jusqu'à ce que le protocole TLS 1.0 soit désactivé, auquel cas je ne pouvais plus me connecter. Le même comportement que lorsque vous n'avez pas de certificat et un certificat auto-signé est utilisé pour crypter la session de connexion.

Cooper Van Valkenburgh
la source
2

J'ai trouvé que, même avec SQL 2014 SP1 CU1, je devais utiliser des boîtes distinctes pour IIS et SQL. J'ai rencontré quelques problèmes apparemment liés en cours de route et j'ai détaillé les étapes de ce post .

Les points clés sont:

  • Mettez IIS et SQL sur des boîtes séparées
  • Désactivez TLS1.0 entrant et activez TLS1.0 sortant sur la boîte IIS
  • Activez TLS1.0 dans les deux sens sur la zone SQL.
OutstandingBill
la source
1

Voici ce que j'ai fait sur les serveurs avant et arrière

  1. Ouvert gpedit.msc. Dans l'éditeur de stratégie de groupe locale, double-cliquez sur "Paramètres Windows" sous le nœud "Configuration ordinateur", puis double-cliquez sur "Paramètres de sécurité".

  2. Sous le nœud "Paramètres de sécurité", double-cliquez sur "Stratégies locales", puis cliquez sur "Options de sécurité".

  3. Dans le volet d'informations, double-cliquez sur "Cryptographie système: utilisez des algorithmes compatibles FIPS pour le chiffrement, le hachage et la signature".

  4. Dans la boîte de dialogue "Cryptographie système: utilisez des algorithmes compatibles FIPS pour le chiffrement, le hachage et la signature", cliquez sur "Activé", puis sur "OK" pour fermer la boîte de dialogue. Fermez l'éditeur de stratégie de groupe locale.

Michael Zeydelis
la source
Je suppose qu'il s'agit de déterminer comment configurer TLS 1.2, par opposition à la question d'origine réelle, dont les versions de SQL Server prennent en charge quelque chose au-delà de TLS 1.0, peut-être sur un serveur Web avec un backend SQL? Si possible, veuillez clarifier cela dans la réponse elle-même.
RDFozz
Merci, mais ... Dans la question initiale, j'ai essayé de le rendre quelque peu général, mais cela avait vraiment à voir avec la mise en correspondance d'une exigence minimale et d'un ensemble de technologies à la mi-2015 quand elle a été posée. Il est devenu tellement dépassé maintenant que je pense qu'il devrait être fermé. Toutes les réponses comme celle ci-dessus devraient probablement cibler une version plus récente de la question qui s'applique mieux aux problèmes d'aujourd'hui. Je n'ai pas actuellement une telle question, moi-même.
Mark Goldfain