Suporte a TLS 1.2 para o Microsoft SQL Server
Aplica-se a: SQL Server
Número original do KB: 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 cliente com suporte. O SQL Server 2016, o SQL Server 2017 e o SQL Server 2019 dão suporte ao TLS 1.2 sem a necessidade de uma atualização.
Várias vulnerabilidades conhecidas foram relatadas contra Secure Sockets Layer (SSL) e versões anteriores do Transport Layer Security (TLS). Recomendamos que faça upgrade 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 clientes do SQL Server e o mecanismo de banco de dados do SQL Server. A implementação do TLS 1.0 no Microsoft Schannel (em relação às vulnerabilidades conhecidas que foram relatadas à Microsoft na data de publicação deste artigo) está resumida na implementação do TLS 1.0 no Schannel na atualização de status de segurança do Windows: 24 de novembro de 2015.
Como saber se você precisa desta 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
As compilações posteriores às listadas nesta tabela também dão suporte ao TLS 1.2.
Versão do SQL Server | Compilação/versão inicial que suportava o TLS 1.2 | Atualizações atuais com suporte a TLS 1.2 | Informações adicionais |
---|---|---|---|
SQL Server 2014 SP1 | 12.0.4439.1 SP1 CU5 |
KB3130926 - Atualização cumulativa 5 para SQL Server 2014 SP1 Observação: KB3130926 agora instalará a última produzida para o 2014 SP1 (CU13 - KB4019099), que inclui suporte ao TLS 1.2 e todos os hotfixes lançados até o momento. Se necessário, a CU5 está disponível no Catálogo do Windows Update. Observação: o suporte ao TLS 1.2 também está disponível no 2014 SP2 e no 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 esteja executando o SQL Server 2014 ou o SQL Server 2012 |
SQL Server 2014 SP1 GDR | 12.0.4219.0 Atualização do SP1 GDR TLS 1.2 |
O suporte do TLS 1.2 para GDR 2014 SP1 está disponível na atualização cumulativa mais recente da GDR KB4019091. Observação: o suporte ao TLS 1.2 também está disponível no 2014 SP2 e no 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á a última lançada para 2014 RTM (CU14 - KB3158271 ), que inclui suporte a TLS 1.2 e todos os hotfixes lançados até o momento. Se necessário, a CU12 está disponível no Catálogo do Windows Update. Observação: o suporte ao TLS 1.2 também está disponível no 2014 SP2 e no 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 esteja executando o SQL Server 2014 ou o SQL Server 2012 |
SQL Server 2014 RTM GDR | 12.0.2271.0 Atualização RTM GDR TLS 1.2 |
No momento, o suporte TLS para SQL 2014 RTM só está disponível com a instalação do 2014 SP2 e do 2014 SP3. | |
SQL Server 2012 SP3 GDR | 11.0.6216.27 Atualização do SP3 GDR TLS 1.2 |
Descrição da atualização de segurança para SQL Server 2012 SP3 GDR: 16 de janeiro de 2018 Observação: o suporte ao TLS 1.2 também está disponível no 2012 SP4. |
|
SQL Server 2012 SP3 | 11.0.6518.0 SP1 CU3 |
KB3123299 - Atualização cumulativa 1 para SQL Server 2012 SP3 Observação: KB3123299 instalará a última lançada para o 2012 SP3 (CU10 - KB4025925, que inclui suporte a TLS 1.2 e todos os hotfixes lançados até o momento). Se necessário, CU1 está disponível no Catálogo do Windows Update. Observação: o suporte ao TLS 1.2 também está disponível no 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 esteja executando o SQL Server 2014 ou o SQL Server 2012 |
SQL Server 2012 SP2 GDR | 11.0.5352.0 Atualização do SP2 GDR TLS 1.2 |
O suporte do TLS 1.2 para GDR 2012 SP2 está disponível na atualização cumulativa mais recente do GDR - KB3194719. O suporte ao TLS 1.2 também está disponível no 2012 SP3 e no 2012 SP4. |
|
SQL Server 2012 SP2 CU | 11.0.5644.2 SP2 CU10 |
KB3120313 - Atualização cumulativa 10 para SQL Server 2012 SP2. Observação: KB3120313 agora instalará a última lançada para o 2012 SP2 (CU16 - KB3205054, que inclui suporte a TLS 1.2 e todos os hotfixes lançados até o momento). Se necessário, CU1 está disponível no Catálogo do Windows Update. Observação: o suporte ao TLS 1.2 também está disponível no 2012 SP3 e no 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 esteja executando o SQL Server 2014 ou o 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 do 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 |
Atualizações do SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 | |
SQL Server 2008 R2 SP2 (somente IA-64) | 10.50.4344.0 Atualização do SP2 TLS 1.2 |
Atualizações do SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 | |
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 do SQL Server 2008 SP4 - KB4057114 (somente x86/x64). | |
SQL Server 2008 SP3 GDR (somente IA-64) | 10.0.5545.0 Atualização do SP3 TLS 1.2 |
Atualizações do SQL Server 2008 SP3 GDR (IA-64) TLS 1.2 | |
SQL Server 2008 SP3 (somente IA-64) | 10.0.5896.0 Atualização do SP3 TLS 1.2 |
Atualizações do SQL Server 2008 SP3 (IA-64) TLS 1.2 |
Downloads de componentes 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 a TLS 1.2 |
---|---|
SQL Server Native Client 10.0 para SQL Server 2008/2008 R2 (x86/x64/IA64) | Cliente nativo do Microsoft SQL Server 2008 e SQL Server 2008 R2 |
SQL Server Native Client 11.0 para SQL Server 2012/2014 (x86/x64) | Cliente nativo do Microsoft SQL Server 2012 - 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 |
Tabela de resumo para suporte ao driver cliente para TLS 1.2
A tabela a seguir resume o suporte para drivers e provedores do SQL Server:
Driver | Suporte para TLS 1.2 | Observação |
---|---|---|
Driver ODBC da Microsoft para SQL Server 11 | Sim, com atualizações | Instale a atualização cumulativa mais recente para SQL Server 2012 ou SQL Server 2014. (Veja a tabela no Como saber se você precisa desta seção de atualização .) |
Driver ODBC da Microsoft para SQL Server 13 | Sim | Suporta TLS 1.2 nativamente. |
Driver ODBC da Microsoft para SQL Server 17 | Sim | Suporta TLS 1.2 nativamente. |
Driver ODBC da Microsoft para SQL Server 18 | Sim | Suporta TLS 1.2 nativamente. |
Driver OLE DB da Microsoft para SQL Server 19 (MSOLEDBSQL) | Sim | Suporta TLS 1.2 nativamente. |
SQL Server Native Client 10 | Sim, com atualizações | Instale a atualização cumulativa mais recente para o SQL Server 2008 ou o SQL Server 2008 R2. (Veja a tabela no Como saber se você precisa desta seção de atualização .) |
SQL Server Native Client 11 | Sim, com atualizações | Instale a atualização cumulativa mais recente para SQL Server 2012 ou SQL Server 2014. (Veja a tabela no Como saber se você precisa desta seção de atualização .) |
Driver ODBC do SQL Server (SQLSRV32.DLL) | Sim, para determinados sistemas operacionais | Adicionado suporte no Windows Server 2019 e Windows 10. As versões anteriores do sistema operacional não oferecem suporte a ele. |
Provedor OLE DB do SQL Server (SQLOLEDB) | Sim, para determinados sistemas operacionais | Adicionado suporte no Windows Server 2019 e Windows 10. As versões anteriores do sistema operacional não oferecem suporte a ele. |
Correções adicionais necessárias para que o SQL Server use o TLS 1.2
Você precisa instalar os seguintes pacotes cumulativos de hotfix do .NET para habilitar recursos do SQL Server, como Database Mail e determinados componentes do SSIS que usam pontos de extremidade do .NET que exigem suporte ao TLS 1.2, como a tarefa Serviço Web para usar o TLS 1.2.
Sistema operacional | Versão do .NET Framework | Atualizações com suporte a 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 no SQL Server 2016 e versões posteriores?
Sim. As versões do SQL Server 2016, SQL Server 2017 no Windows e SQL Server 2019 no Windows são fornecidas com suporte a TLS 1.0 para 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 TLS 1.0 ou 1.1 ou apenas 1.2?
O SQL Server 2019 tem o mesmo nível de suporte que o SQL Server 2016 e o SQL Server 2017, e o SQL Server 2019 dá suporte a versões mais antigas do TLS. O SQL Server 2019 RTM é fornecido 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 imposição de padrões estão exigindo o uso do TLS 1.2 para canais de comunicação criptografados, a Microsoft está lançando suporte para TLS 1.2 para a base de instalação generalizada do SQL Server.
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 de servidor e cliente que dão suporte ao TLS 1.2.
O TLS 1.2 oferece suporte ao SQL Server 2005?
O suporte ao TLS 1.2 é oferecido apenas para o SQL Server 2008 e versões posteriores.
Os clientes que não estão usando SSL/TLS são afetados se o SSL 3.0 e o TLS 1.0 estiverem desabilitados no servidor?
Sim. O 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 do SQL Server que não usam comunicações seguras e que têm todos os outros protocolos, exceto o 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 comunicação com o SQL Server?
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 servidor e cliente. As
DisabledByDefault
configurações eEnabled
devem ser criadas em clientes Windows 7 e servidores Windows Server 2008 R2. No Windows 8 e versões posteriores dos sistemas operacionais cliente ou no servidor Windows Server 2012 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 do Registro mencionadas à política. Além disso, se você estiver usando o 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
O SSMS (SQL Server Management Studio), o Servidor de Relatórios e o Gerenciador de Relatórios não se conectam ao mecanismo de banco de dados depois que você aplica a correção para o SQL Server 2008, 2008 R2, 2012 ou 2014. O Servidor de Relatórios e o Gerenciador de Relatórios falham e retornam 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 processamentos. (rsReportServerDatabaseUnavailable)
Esse problema ocorre porque o SSMS, o Gerenciador de Relatórios e o Gerenciador de Configurações do Reporting Services usam ADO.NET e ADO.NET suporte para 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 do .NET Framework estão listadas na tabela na seção Como saber se você precisa dessa atualização .
Problema 2
O Reporting Services Configuration Manager relata a seguinte mensagem de erro mesmo depois que os provedores de cliente foram atualizados para uma versão que dá suporte ao TLS 1.2:
Não foi possível conectar ao servidor: uma conexão foi estabelecida com êxito com o servidor, mas ocorreu um erro durante o handshake de pré-login.
Para resolver esse problema, crie manualmente a seguinte chave do Registro no sistema que hospeda o Gerenciador de Configurações do Reporting Services:
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 Service Broker no SQL Server. Uma mensagem de erro semelhante à 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 do ponto de extremidade criptografado com o TLS 1.2 falha quando você usa o SQL Server.
Problema 4
Vários erros ocorrem quando você tenta instalar o SQL Server 2012 ou o SQL Server 2014 em um servidor que tem o TLS 1.2 habilitado.
Para obter mais informações, consulte CORREÇÃO: Erro ao instalar o SQL Server 2012 ou o SQL Server 2014 em um servidor que tem o TLS 1.2 habilitado.
Problema 5
Uma conexão criptografada com Espelhamento de Banco de Dados ou Grupos de Disponibilidade não funciona quando você usa um certificado depois de desabilitar todos os outros protocolos diferentes do TLS 1.2. Uma mensagem de erro semelhante à seguinte é registrada no log de erros do SQL Server:
Uma conexão criptografada com Espelhamento de Banco de Dados ou Grupos de Disponibilidade não funciona quando você usa um certificado depois de desabilitar todos os outros protocolos diferentes do TLS 1.2. Você pode notar um dos seguintes sintomas:
Sintoma 1:
Uma mensagem de erro semelhante à 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 semelhante à 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 os Grupos de Disponibilidade e o 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, consulte CORREÇÃO: A comunicação usando o algoritmo de hash MD5 falhará se o SQL Server usar o TLS 1.2.
Problema 6
As seguintes versões do mecanismo de banco de dados do SQL Server são afetadas pelo problema de encerramento intermitente do serviço relatado no artigo 3146034 da Base de Dados de Conhecimento. Para que os clientes se protejam do problema de encerramento do serviço, recomendamos que eles instalem as atualizações do TLS 1.2 para SQL Server mencionadas neste artigo se a versão do SQL Server estiver listada na tabela a seguir:
Versão do SQL Server 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 2008 SP3 GDR (somente IA-64) 10.0.5544.0 SQL Server 2008 SP3 (somente IA-64) 10.0.5894.0 Problema 7
O Database Mail não funciona com o TLS 1.2. O 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 e-mail.
Para obter mais informações, consulte Correções adicionais necessárias para que o SQL Server use o TLS 1.
Erros comuns que você pode enfrentar quando as atualizações do TLS 1.2 estão ausentes no cliente ou servidor
Problema 1
O System Center Configuration Manager (SCCM) não pode se conectar ao SQL Server depois que o protocolo TLS 1.2 é 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 o SCCM usa um driver SQL Server Native Client que não tem uma correção. Para resolver esse problema, baixe e instale a correção do cliente listada na seção Downloads do componente do cliente. Por exemplo, Microsoft® SQL Server® 2012 Native Client - QFE.
Você pode descobrir qual driver o SCCM está usando para se conectar ao SQL Server exibindo o log do 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)>