Suporte do TLS 1.2 para Microsoft SQL Server

Aplica-se ao: SQL Server
Número de KB original: 3135244

Introdução

Este artigo fornece informações sobre as atualizações que a Microsoft lança para habilitar o suporte ao TLS 1.2 para SQL Server 2017 no Windows, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 e SQL Server 2008 R2. Este artigo também lista provedores de clientes com suporte. SQL Server 2016, SQL Server 2017 e SQL Server 2019 dão suporte ao TLS 1.2 sem a necessidade de uma atualização.

Várias vulnerabilidades conhecidas foram relatadas em SSL (Secure Sockets Layer) e versões anteriores do TLS (Transport Layer Security). Recomendamos que você atualize para o TLS 1.2 para comunicação segura.

Importante

Nenhuma vulnerabilidade conhecida foi relatada para a implementação do Microsoft TDS. Esse é o protocolo de comunicação usado entre SQL Server clientes e o mecanismo de banco de dados SQL Server. A implementação do Microsoft Schannel do TLS 1.0 (em relação às vulnerabilidades conhecidas relatadas à Microsoft a partir da data de publicação deste artigo) é resumida na implementação do Schannel do TLS 1.0 na segurança do Windows status atualização: 24 de novembro de 2015.

Como saber se você precisa dessa atualização

Use a tabela a seguir para determinar se sua versão atual do SQL Server já dá suporte ao TLS 1.2 ou se você precisa baixar uma atualização para habilitar o suporte ao TLS 1.2. Use os links de download na tabela para obter as atualizações do servidor aplicáveis ao seu ambiente.

Observação

Builds que são mais recentes do que os listados nesta tabela também dão suporte ao TLS 1.2.

SQL Server versão Build/release inicial com suporte ao TLS 1.2 Atualizações atuais com suporte ao TLS 1.2 Informações adicionais
SQL Server 2014 SP1 CU 12.0.4439.1

SP1 CU5
KB3130926 – Atualização cumulativa 5 para SQL Server 2014 SP1

Observação: KB3130926 agora instalará o último CU produzido para o CU13 – KB4019099 de 2014, que inclui o suporte ao TLS 1.2 e todos os hotfixes lançados até o momento. Se necessário, o CU5 estará disponível no Catálogo de Windows Update.

Observação: o suporte ao TLS 1.2 também está disponível em 2014 SP2 e 2014 SP3.
KB3052404 - CORREção: você não pode usar o protocolo Transport Layer Security versão 1.2 para se conectar a um servidor que está executando SQL Server 2014 ou SQL Server 2012
SQL Server GDR do SP1 de 2014 12.0.4219.0

Atualização do SP1 GDR TLS 1.2
O suporte do TLS 1.2 para 2014 SP1 GDR está disponível na atualização de GDR cumulativa mais recente KB4019091.

Observação: o suporte ao TLS 1.2 também está disponível em 2014 SP2 e 2014 SP3.
SQL Server 2014 RTM CU 12.0.2564.0

RTM CU12
KB3130923 – Atualização cumulativa 12 para SQL Server 2014

Observação: KB3130923 agora instalará o último CU lançado para o CU14 – KB3158271 2014 , que inclui suporte ao TLS 1.2 e todos os hotfixes lançados até o momento. Se necessário, o CU12 estará disponível no catálogo Windows Update.

Observação: o suporte ao TLS 1.2 também está disponível em 2014 SP2 e 2014 SP3.
KB3052404 - CORREção: você não pode usar o protocolo Transport Layer Security versão 1.2 para se conectar a um servidor que está executando SQL Server 2014 ou SQL Server 2012
SQL Server 2014 RTM GDR 12.0.2271.0

Atualização do RTM GDR TLS 1.2
O suporte do TLS para SQL 2014 RTM só está disponível atualmente instalando 2014 SP2 e 2014 SP3.
SQL Server GDR do SP3 de 2012 11.0.6216.27

Atualização do SP3 GDR TLS 1.2
Descrição da atualização de segurança para SQL Server GDR SP3 de 2012: 16 de janeiro de 2018

Observação: o suporte ao TLS 1.2 também está disponível no SP4 de 2012.
SQL Server CU do SP3 de 2012 11.0.6518.0

SP1 CU3
KB3123299 – Atualização cumulativa 1 para SQL Server 2012 SP3

Observação: KB3123299 agora instalará o último CU lançado para 2012 SP3 (CU10 - KB4025925, que inclui suporte ao TLS 1.2 e todos os hotfixes lançados até o momento). Se necessário, o CU1 estará disponível no Catálogo Windows Update.

Observação: o suporte ao TLS 1.2 também está disponível no SP4 de 2012.
KB3052404 - CORREção: você não pode usar o protocolo Transport Layer Security versão 1.2 para se conectar a um servidor que está executando SQL Server 2014 ou SQL Server 2012
SQL Server GDR SP2 2012 11.0.5352.0

Atualização do SP2 GDR TLS 1.2
O suporte do TLS 1.2 para 2012 SP2 GDR está disponível na última atualização cumulativa da RDA – KB3194719.

O suporte ao TLS 1.2 também está disponível em 2012 SP3 e 2012 SP4.
SQL Server CU do SP2 de 2012 11.0.5644.2

SP2 CU10
KB3120313 – Atualização cumulativa 10 para SQL Server 2012 SP2.

Observação: KB3120313 agora instalará o último CU lançado para 2012 SP2 (CU16 – KB3205054, que inclui suporte ao TLS 1.2 e todos os hotfixes lançados até o momento). Se necessário, o CU1 estará disponível no Catálogo Windows Update. Observação: o suporte ao TLS 1.2 também está disponível em 2012 SP3 e 2012 SP4.
KB3052404 - CORREção: você não pode usar o protocolo Transport Layer Security versão 1.2 para se conectar a um servidor que está executando SQL Server 2014 ou SQL Server 2012
SQL Server 2008 R2 SP3 (somente x86/x64) 10.50.6542.0

Atualização do SP2 TLS 1.2
O suporte ao TLS 1.2 está disponível na atualização cumulativa mais recente para SQL Server 2008 R2 SP3 – KB4057113.
SQL Server 2008 R2 SP2 GDR (somente IA-64) 10.50.4047.0

Atualização do SP2 TLS 1.2
SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 Atualizações
SQL Server 2008 R2 SP2 CU (somente IA-64) 10.50.4344.0

Atualização do SP2 TLS 1.2
SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 Atualizações
SQL Server 2008 SP4 (somente x86/x64) 10.0.6547.0

Atualização do SP4 TLS 1.2
O suporte ao TLS 1.2 está disponível na atualização cumulativa mais recente para SQL Server 2008 SP4 – KB4057114(somente x86/x64).
SQL Server GDR SP3 de 2008 (somente IA-64) 10.0.5545.0

Atualização do SP3 TLS 1.2
SQL Server 2008 SP3 GDR (IA-64) TLS 1.2 Atualizações
SQL Server CU do SP3 de 2008 (somente IA-64) 10.0.5896.0

Atualização do SP3 TLS 1.2
SQL Server 2008 SP3 CU (IA-64) TLS 1.2 Atualizações

Downloads de componente do cliente

Use a tabela a seguir para baixar os componentes do cliente e as atualizações de driver aplicáveis ao seu ambiente.

Componente/driver do cliente Atualizações com suporte ao TLS 1.2
SQL Server Native Client 10.0 para SQL Server 2008/2008 R2 (x86/x64/IA64) Microsoft SQL Server 2008 e SQL Server 2008 R2 Native Client
SQL Server Native Client 11.0 para SQL Server 2012/2014 (x86/x64) Microsoft SQL Server 2012 Native Client – QFE
Componentes do cliente MDAC (Sqlsrv32.dll e Sqloledb.dll) Atualização da pilha de manutenção para Windows 10, versão 1809: 10 de novembro de 2020

Correções adicionais necessárias para SQL Server usar o TLS 1.2

Você precisa instalar os seguintes rollups de hotfix do .NET para habilitar SQL Server recursos como Database Mail e determinados componentes do SSIS que usam pontos de extremidade .NET que exigem suporte ao TLS 1.2, como a tarefa do Serviço Web para usar o TLS 1.2.

Sistema operacional Versão .NET Framework Atualizações com suporte ao TLS 1.2
Windows 7 Service Pack 1, Windows 2008 R2 Service Pack 1 3.5.1 Suporte para TLS v1.2 incluído no .NET Framework versão 3.5.1
Windows 8 RTM, Windows 2012 RTM 3.5 Suporte para TLS v1.2 incluído no .NET Framework versão 3.5
Windows 8.1, Windows 2012 R2 SP1 3.5 SP1 Suporte para TLS v1.2 incluído no .NET Framework versão 3.5 SP1 no Windows 8.1 e Windows Server 2012 R2

Perguntas frequentes

  • O TLS 1.1 tem suporte em versões SQL Server 2016 e posteriores?

    Sim. SQL Server 2016, SQL Server 2017 no Windows e SQL Server 2019 nas versões do Windows são enviadas com suporte do TLS 1.0 ao TLS 1.2. Você precisa desabilitar o TLS 1.0 e 1.1 se quiser usar apenas o TLS 1.2 para comunicação cliente-servidor.

  • O SQL Server 2019 permite conexões usando o TLS 1.0 ou 1.1 ou apenas 1.2?

    SQL Server 2019 tem o mesmo nível de suporte que SQL Server 2016 e SQL Server 2017, e SQL Server 2019 dá suporte a versões mais antigas do TLS. SQL Server RTM 2019 é enviado com suporte ao TLS 1.2 e nenhuma outra atualização ou correção é necessária para habilitar o suporte ao TLS 1.2.

  • O TDS é afetado por vulnerabilidades conhecidas?

    Nenhuma vulnerabilidade conhecida foi relatada para a implementação do Microsoft TDS. Como várias organizações de aplicação de padrões estão exigindo o uso do TLS 1.2 para canais de comunicação criptografados, a Microsoft está liberando suporte para o TLS 1.2 para a base de instalação de SQL Server generalizada.

  • Como as atualizações do TLS 1.2 serão distribuídas aos clientes?

    Este artigo fornece links de download para as atualizações apropriadas do servidor e do cliente que dão suporte ao TLS 1.2.

  • O TLS 1.2 dá suporte SQL Server 2005?

    O suporte ao TLS 1.2 é oferecido apenas para versões SQL Server 2008 e posteriores.

  • Os clientes que não estão usando o SSL/TLS serão afetados se o SSL 3.0 e o TLS 1.0 estiverem desabilitados no servidor?

    Sim. SQL Server criptografa o nome de usuário e a senha durante o logon, mesmo que um canal de comunicação seguro não seja usado. Essa atualização é necessária para todas as instâncias SQL Server que não usam comunicações seguras e que têm todos os outros protocolos, exceto TLS 1.2 desabilitados no servidor.

  • Quais versões do Windows Server dão suporte ao TLS 1.2?

    O Windows Server 2008 R2 e versões posteriores dão suporte ao TLS 1.2.

  • Qual é a configuração correta do registro para habilitar o TLS 1.2 para SQL Server comunicação?

    As configurações corretas do registro são as seguintes:

    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

    Essas configurações são necessárias para computadores cliente e servidor. As DisabledByDefault configurações e Enabled são necessárias para serem criadas em clientes windows 7 e servidores Windows Server 2008 R2. Em Windows 8 e versões posteriores dos sistemas operacionais cliente ou Windows Server 2012 servidor e versões posteriores dos sistemas operacionais do servidor, o TLS 1.2 já deve estar habilitado. Se você estiver implementando uma política de implantação para o Registro do Windows que precisa ser independente da versão do sistema operacional, recomendamos adicionar as chaves de registro mencionadas à política. Além disso, se você estiver usando Database Mail no SQL Server, também precisará definir as seguintes chaves do registro .NET:

    • [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001

Problemas conhecidos

  • Problema 1

    SQL Server Management Studio (SSMS), Servidor de Relatório e Gerenciador de Relatórios não se conectam ao mecanismo de banco de dados depois de aplicar a correção para SQL Server 2008, 2008 R2, 2012 ou 2014. Falha no Servidor de Relatório e no Gerenciador de Relatórios e retorna a seguinte mensagem de erro:

    O servidor de relatório não pode abrir uma conexão com o banco de dados do servidor de relatório. Uma conexão com o banco de dados é necessária para todas as solicitações e processamento. (rsReportServerDatabaseUn disponível)

    Esse problema ocorre porque o SSMS, o Gerenciador de Relatórios e Reporting Services Configuration Manager usam ADO.NET e ADO.NET suporte para o TLS 1.2 está disponível apenas no .NET Framework 4.6. Para versões anteriores do .NET Framework, você precisa aplicar uma atualização do Windows para que ADO.NET possa dar suporte a comunicações TLS 1.2 para o cliente. As atualizações do Windows que habilitam o suporte ao TLS 1.2 em versões anteriores da estrutura do .NET estão listadas na tabela como saber se você precisa dessa seção de atualização.

  • Problema 2

    Reporting Services Configuration Manager relata a seguinte mensagem de erro mesmo depois que os provedores de clientes foram atualizados para uma versão que dá suporte ao TLS 1.2:

    Não foi possível se conectar ao servidor: uma conexão foi estabelecida com êxito com o servidor, mas ocorreu um erro durante o aperto de mão pré-logon.

    Captura de tela de um erro de conexão de teste depois que os provedores cliente foram atualizados para uma versão que dá suporte ao TLS 1.2.

    Para resolve esse problema, crie manualmente a seguinte chave de registro no sistema que hospeda o Reporting Services Configuration Manager:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client: "Enabled"=dword:00000001

  • Problema 3

    A comunicação de ponto de extremidade criptografada que usa o TLS 1.2 falha quando você usa comunicações criptografadas para Grupos de Disponibilidade, Espelhamento de Banco de Dados ou Agente de Serviço em SQL Server. Uma mensagem de erro que se assemelha ao seguinte é registrada no log de erros do SQL:

    Connection handshake failed. An OS call failed: (80090331) 0x80090331(The client and server cannot communicate, because they do not possess a common algorithm.). State 56.
    

    Para obter mais informações sobre esse problema, consulte CORREção: a comunicação de ponto de extremidade criptografada com o TLS 1.2 falha quando você usa SQL Server.

  • Problema 4

    Vários erros ocorrem quando você tenta instalar SQL Server 2012 ou SQL Server 2014 em um servidor que tem o TLS 1.2 habilitado.

    Para obter mais informações, consulte CORREção: erro ao instalar SQL Server 2012 ou SQL Server 2014 em um servidor que tem o TLS 1.2 habilitado.

  • Problema 5

    Uma conexão criptografada com o Espelhamento de Banco de Dados ou Grupos de Disponibilidade não funciona quando você usa um certificado depois de desabilitar todos os outros protocolos que não sejam o TLS 1.2. Uma mensagem de erro que se assemelha ao seguinte é registrada no log de erros do SQL Server:

    Uma conexão criptografada com o Espelhamento de Banco de Dados ou Grupos de Disponibilidade não funciona quando você usa um certificado depois de desabilitar todos os outros protocolos que não sejam o TLS 1.2. Você pode notar um dos seguintes sintomas:

    • Sintoma 1:

      Uma mensagem de erro que se assemelha ao seguinte é registrada no log de erros do SQL Server:

      Connection handshake failed. An OS call failed: (80090331) 0x80090331(The client and server cannot communicate, because they do not possess a common algorithm.). State 58.'
      
    • Sintoma 2:

      Uma mensagem de erro que se assemelha ao seguinte é registrada no log de eventos do Windows:

      Log Name:      System
      Source:        Schannel
      Date:          <Date Time>
      Event ID:      36888
      Task Category: None
      Level:         Error
      Keywords:     
      User:          SYSTEM
      Computer:      ------------
      Description:
      A fatal alert was generated and sent to the remote endpoint. This may result in termination of the connection. The TLS protocol defined fatal error code is 40. The Windows SChannel error state is 1205.
      
      Log Name:      System
      Source:        Schannel
      Date:          <Date Time>
      Event ID:      36874
      Task Category: None
      Level:         Error
      Keywords:     
      User:          SYSTEM
      Computer:      -----------
      Description:
      An TLS 1.2 connection request was received from a remote client application, but none of the cipher suites supported by the client application are supported by the server. The SSL connection request has failed.
      

      Esse problema ocorre porque grupos de disponibilidade e espelhamento de banco de dados exigem um certificado que não usa algoritmos de hash de comprimento fixo, como MD5. Não há suporte para algoritmos de hash de comprimento fixo no TLS 1.2.

    Para obter mais informações, confira CORREção: a comunicação usando o algoritmo de hash MD5 falhará se SQL Server usar o TLS 1.2.

  • Problema 6

    As versões do mecanismo de banco de dados SQL Server a seguir são afetadas pelo problema de terminação de serviço intermitente relatado no artigo base de dados de conhecimento 3146034. Para que os clientes se protejam do problema de término do serviço, recomendamos que eles instalem as atualizações do TLS 1.2 para SQL Server mencionadas neste artigo se a versão SQL Server estiver listada na tabela a seguir:

    SQL Server versão Versão afetada
    SQL Server 2008 R2 SP3 (x86 e x64) 10.50.6537.0
    SQL Server 2008 R2 SP2 GDR (somente IA-64) 10.50.4046.0
    SQL Server 2008 R2 SP2 (somente IA-64) 10.50.4343.0
    SQL Server 2008 SP4 (x86 e x64) 10.0.6543.0
    SQL Server GDR SP3 de 2008 (somente IA-64) 10.0.5544.0
    SQL Server 2008 SP3 (somente IA-64) 10.0.5894.0
  • Problema 7

    Database Mail não funciona com o TLS 1.2. Database Mail falha com o seguinte erro:

    Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException: as informações de configuração de email não puderam ser lidas no banco de dados. Não é possível iniciar a sessão de email.

    Para obter mais informações, consulte Correções adicionais necessárias para SQL Server usar o TLS 1.

Erros comuns que você pode experimentar quando as atualizações do TLS 1.2 estão ausentes no cliente ou no servidor

Problema 1

O Configuration Manager do System Center (SCCM) não pode se conectar ao SQL Server depois que o protocolo TLS 1.2 estiver habilitado no SQL Server. Nesse cenário, você recebe a seguinte mensagem de erro:

Provedor TCP: uma conexão existente foi fechada à força pelo host remoto

Esse problema pode ocorrer quando SCCM usa um driver de SQL Server Native Client que não tem uma correção. Para resolve esse problema, baixe e instale a correção do cliente listada na seção Downloads de componentes do cliente. Por exemplo, Microsoft® SQL Server ® 2012 Native Client – QFE.

Você pode descobrir qual SCCM de driver está usando para se conectar ao SQL Server exibindo o log de SCCM, conforme mostrado no exemplo a seguir:

[SQL Server Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>