Compatibilidade do SQL Server com novos padrões TLS

30
  • Os principais navegadores estão indo além do SSL3.0 e TLS1.0.
  • O PCI Security Council declarou uma data de final de vida para esses protocolos serem considerados criptografia suficientemente forte.

Precisamos nos afastar desses protocolos, para usar os mais novos e mais fortes. Nos servidores Windows, é possível desabilitar com muita facilidade esses protocolos antigos e, em vez disso, oferecer apenas TLS1.1 ou superior. No entanto, conforme observado em outro lugar , o Microsoft SQL Server 2008 R2 e o SQL Server 2012 (pelo menos no padrão) não iniciarão se esses protocolos inferiores estiverem desabilitados. No entanto, há um número crescente de versões do MS SQL Server. Existem edições do SQL Server Standard, Business Intelligence, Enterprise, Express, Web e Compact. E, claro, há o SQL Server 2008, 2012, 2014 e (em pré-lançamento) 2016.

Quais destas edições suportam ou suportam o uso de apenas protocolos TLS1.1 ou superior?

Mark Goldfain
fonte
Como uma observação lateral: os requisitos de PCI aqui cobrem a transmissão geral de dados, portanto, basta agrupar qualquer comunicação SQL em redes públicas e / ou sem fio em uma VPN / túnel que implemente melhores padrões. Eles também podem não cobrir as comunicações locais; portanto, se nada fora da sua VLAN puder tocar a instância do SQL devido à configuração apropriada do SQL e / ou firewalls e outra filtragem, talvez você não precise se preocupar com este PoV. Nenhum desses fatos o ajudará se você precisar expor uma instância SQL à rede pública, é claro, mas essa ideia me assusta de qualquer maneira!
David Spillett #

Respostas:

19

A Microsoft revelou recentemente (sem muita alarde) que estará investindo no TLS 1.2 e eliminando o SSL. Deve ser relevante para todas as edições do SQL Server.

ATUALIZAÇÃO 29/01/2016 : A Microsoft anunciou o suporte oficial ao TLS 1.2 em 2008, 2008 R2, 2012 e 2014 . Downloads e outras informações podem ser encontradas no KB # 3135244 .

Eu publiquei um blog sobre alguns dos problemas mencionados, bem como um aviso se você estiver usando pontos de extremidade criptografados em 2014:

A postagem também aponta para a compilação correta para download (ou outra ação), dependendo da versão @@.

Ainda não se sabe se essa mudança afetará todas as versões existentes, apenas 2014 e acima, ou apenas 2016. A citação abaixo parece sugerir que pelo menos 2014 fará parte do trabalho - e suspeito que grande parte do investimento será nas bibliotecas clientes, não no mecanismo, por isso é possível que funcione para qualquer versão que a próxima versão dos drivers ODBC / Native Client serão suportados.

Eu obtive isso em um deck do PowerPoint de Kevin Farlee, da Microsoft, e recebi permissão para compartilhar as informações, embora eu não saiba quanto delas foi redistribuído neste momento. Aqui está a citação exata do baralho:

Criptografia em voo: protege os dados entre cliente e servidor contra ataques de espionagem e man-in-the-middle. Atualizando para TLS 1.2 no CY 15, eliminando gradualmente o SSL.

Além disso, se você consultar o KB # 3052404 , parece que existem patches para funcionar com 2012 SP + e 2014 (os patches não serão necessários para 2016), mas nenhuma indicação de que haverá retrocesso no SQL Server 2005, 2008 ou 2008 R2 (e, francamente, eu ficaria surpreso).

Aaron Bertrand
fonte
6

Como nas outras respostas: você precisa de uma CU recente para TLS1.2. Vejo:

CORRECÇÃO: Você não pode usar a versão 1.2 do protocolo Transport Layer Security para se conectar a um servidor que esteja executando o SQL Server 2014 ou o SQL Server 2012 :

  • Atualização cumulativa 1 para SQL Server 2014 SP1
  • Atualização cumulativa 8 para SQL Server 2014
  • Atualização cumulativa 1 para SQL Server 2012 SP3
  • Atualização cumulativa 10 para SQL Server 2012 SP2

Depois de ativar apenas o TLS 1.2, você poderá encontrar dois erros:

  1. O SQL Server 2014 Agent não será iniciado. Solução: instale o SNAC do SQL Server 2012 a partir do link de download em KB3135244
  2. O SQL Server Management Studio não pode se conectar. Solução: instale o hotfix do .NET framework aplicável a partir do KB3135244

Além disso, você deve atualizar o driver SNAC / OBDC em todos os clientes conectados ao SQL Server.

A lista completa de compilações do SQL Server e do driver de cliente, juntamente com links de download e outras alterações de configuração que podem ser necessárias estão contidas no seguinte artigo da Base de Conhecimento de Suporte da Microsoft:

Suporte ao TLS 1.2 para Microsoft SQL Server

Jens W.
fonte
Por que ainda não consigo iniciar o SQL Server 2012, mesmo com a Atualização Cumulativa 1 para o SQL Server 2012 SP3 instalada?
NickG 23/05
4

Em 29 de janeiro de 2016, o Microsoft SQL Server suporta o TLS 1.2 para:

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

... e os principais drivers de clientes, como:

  • Cliente nativo do servidor
  • Driver Microsoft ODBC para SQL Server
  • Driver Microsoft JDBC para SQL Server
  • ADO.NET (SqlClient).

Postagem de blog da equipe de engenharia do SQL Server sobre o lançamento:

Suporte ao TLS 1.2 para SQL Server 2008, 2008 R2, 2012 e 2014

Lista de construções que suportam o TLS 1.2, juntamente com os locais de download do componente do cliente e do servidor (KB3135244):

Suporte ao TLS 1.2 para Microsoft SQL Server (inclui correções do .NET para DB Mail)

Nota: O acima foi atualizado desde a versão inicial para corrigir um defeito na atualização original que causava o término intermitente do serviço ao conectar-se a uma instância do SQL Server 2008 ou SQL Server 2008 R2 . Isso é descrito no KB 3146034:

As terminações de serviço intermitentes ocorrem após a instalação de qualquer versão do SQL Server 2008 ou SQL Server 2008 R2 do KB3135244

Amit Banerjee
fonte
2

Posso confirmar que, como o SQL 2012 SP2 CU7, que oferece suporte ao TLS 1.2 para SQL 2012 a partir do CU6, você não pode desativar o TLS 1.0 no nível do servidor e conseguir conectar-se ao SQL Server usando uma conexão não criptografada do estúdio de gerenciamento em uma instância o que não força a criptografia do cliente.

Isso ocorre em uma instância que não usa TDE ou outros certificados.

Tentarei amanhã depois de gerar um certificado confiável para o servidor e ativar as conexões criptografadas, mas, no momento, o TLS 1.0 não pode ser desabilitado no SQL 2012, mesmo que ele suporte o TLS 1.2.

Editar:

Gerei um certificado para o servidor de banco de dados a partir de nossa Autoridade de Certificação interna e consegui estabelecer uma conexão criptografada do estúdio de gerenciamento com o SQL server, até que o protocolo TLS 1.0 foi desativado, quando não consegui mais me conectar. O mesmo comportamento de quando não há um certificado e um certificado autoassinado é usado para criptografar a sessão de logon.

Cooper Van Valkenburgh
fonte
2

Descobri que, mesmo com o SQL 2014 SP1 CU1, eu precisava usar caixas separadas para IIS e SQL. Eu encontrei alguns problemas aparentemente relacionados ao longo do caminho e detalhei as etapas deste post .

Os pontos principais são:

  • Coloque IIS e SQL em caixas separadas
  • Desative o TLS1.0 recebido e ative o TLS1.0 de saída na caixa IIS
  • Ative o TLS1.0 nos dois sentidos na caixa SQL.
Conta para vencer
fonte
1

Aqui está o que eu fiz nos servidores frontal e traseiro

  1. Aberto gpedit.msc. No Editor de Diretiva de Grupo Local, clique duas vezes em "Configurações do Windows" no nó "Configuração do Computador" e, em seguida, clique duas vezes em "Configurações de Segurança".

  2. No nó "Configurações de segurança", clique duas vezes em "Diretivas locais" e, em seguida, clique em "Opções de segurança".

  3. No painel de detalhes, clique duas vezes em "Criptografia do sistema: use algoritmos compatíveis com FIPS para criptografia, hash e assinatura".

  4. Na caixa de diálogo "Criptografia do sistema: use algoritmos compatíveis com FIPS para criptografia, hash e assinatura", clique em "Ativado" e clique em "OK" para fechar a caixa de diálogo. Feche o Editor de Diretiva de Grupo Local.

Michael Zeydelis
fonte
Suponho que isso é para o endereço como configurar TLS 1.2, em oposição à pergunta inicial real, dos quais versões do SQL Server faz suporte algo além TLS 1.0, talvez em um servidor web com um backend SQL? Se possível, esclareça isso na própria resposta.
RDFozz
Obrigado, mas ... Na pergunta original, tentei torná-lo um pouco geral, mas realmente tinha a ver com a correspondência entre um requisito mínimo e um conjunto de tecnologias em meados de 2015, quando foi apresentado. Tornou-se tão datado agora que acho que deveria ser fechado. Qualquer resposta como essa acima provavelmente deve ser direcionada para uma versão mais recente da pergunta que se aplique melhor aos problemas de hoje. Atualmente, eu não tenho essa pergunta.
Mark Goldfain