web-dev-qa-db-fra.com

Compatibilité de SQL Server avec les nouvelles normes TLS

  • 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 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?

30
Mark Goldfain

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 KB # 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'une plate-forme 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:

Chiffrement 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 KB # 3052404 , il semble qu'il y ait des correctifs pour le faire fonctionner avec 2012 SP + et 2014 (les correctifs ne seront pas requis pour 2016), mais aucune indication qu'il y aura un retour- le portage vers SQL Server 2005, 2008 ou 2008 R2 (et franchement, je serais assez surpris).

19
Aaron Bertrand

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. Solution: installez SQL Server 2012 SNAC à partir 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 TLS 1.2 pour Microsoft SQL Server

6
Jens W.

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
  • Microsoft ODBC Driver 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 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 les correctifs .NET pour DB Mail)

Remarque: Ce qui précède a été mis à jour depuis la version initiale pour corriger un défaut dans la mise à jour d'origine qui a provoqué une interruption de service intermittente 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 toute version de SQL Server 2008 ou SQL Server 2008 R2 à partir de KB3135244

4
Amit Banerjee

J'ai trouvé que, même avec SQL 2014 SP1 CU1, je devais utiliser des boîtes séparées 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.
2
OutstandingBill

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 en utilisant un un- connexion de studio de gestion chiffrée sur une instance qui ne force pas le chiffrement du 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.

Éditer:

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 ne disposez pas d'un certificat et d'un certificat auto-signé est utilisé pour crypter la session de connexion.

2

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.

1
Michael Zeydelis