Compartilhar via


Gerenciar protocolos SSL/TLS e conjuntos de criptografia para o AD FS

A documentação a seguir fornece informações sobre como desabilitar e habilitar determinados protocolos TLS/SSL e conjuntos de criptografia usados pelos Serviços de Federação do Active Directory (AD FS).

TLS/SSL, Schannel e conjuntos de criptografia no AD FS

O protocolo TLS (Transport Layer Security) fornece comunicações seguras criptografadas pela rede. O protocolo SSL (Secure Sockets Layer) criptografa trocas de dados confidenciais transmitidas entre um servidor Web e um navegador da Web semelhante ao TLS. Os Serviços de Federação do Active Directory (AD FS) usam esses protocolos para comunicações. Hoje, existem várias versões desses protocolos.

O Canal de Segurança (Schannel) é um SSP (Provedor de Suporte à Segurança) que implementa os protocolos de autenticação padrão da Internet SSL, TLS e DTLS. A Interface SSPI é uma API usada por sistemas Windows para executar funções relacionadas à segurança, incluindo autenticação. A SSPI funciona como uma interface comum para vários SSPS, incluindo o SSP Schannel.

Um pacote de criptografia é um pacote de algoritmos criptográficos. A implementação SSP do Schannel dos protocolos TLS/SSL usa algoritmos de um conjunto de criptografias para criar chaves e criptografar informações. Um pacote de criptografia especifica um algoritmo para cada uma das seguintes tarefas:

  • Troca de chaves
  • Criptografia em massa
  • Autenticação de mensagem

O AD FS usa Schannel.dll para executar suas interações de comunicação seguras. Atualmente, o AD FS dá suporte a todos os protocolos e conjuntos de criptografia compatíveis com Schannel.dll.

Gerenciar os protocolos TLS/SSL e conjuntos de criptografia

Importante

Esta seção contém etapas que descrevem como modificar o registro. No entanto, problemas graves poderão ocorrer se você modificar o registro incorretamente. Portanto, certifique-se de seguir estas etapas com cuidado.

Lembre-se de que alterar as configurações de segurança padrão do SCHANNEL pode interromper ou impedir comunicações entre determinados clientes e servidores. Isso ocorre quando a comunicação segura é necessária, mas eles não têm um protocolo para negociar comunicações.

Se você estiver aplicando essas alterações, elas deverão ser aplicadas a todos os servidores do AD FS em seu farm. Depois de aplicar essas alterações, uma reinicialização é necessária.

Nos dias de hoje, proteger seus servidores e remover conjuntos de criptografias mais antigos ou fracos está se tornando uma prioridade importante para muitas organizações. Os pacotes de software estão disponíveis para testar seus servidores e fornecer informações detalhadas sobre esses protocolos e conjuntos. Para permanecer em conformidade ou obter classificações seguras, remover ou desabilitar protocolos mais fracos ou conjuntos de criptografia tornou-se uma obrigação. O restante deste documento fornece diretrizes sobre como habilitar ou desabilitar determinados protocolos e conjuntos de criptografia.

As seguintes chaves do Registro estão localizadas no mesmo local: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols. Use o Editor do Registro ou o PowerShell para habilitar ou desabilitar esses protocolos e conjuntos de criptografia.

Captura de tela do Editor do Registro mostrando as chaves do Registro localizadas na pasta Protocolos.

Habilitar e desabilitar o SSL 3.0

Use as seguintes chaves do Registro e seus valores para habilitar e desabilitar o SSL 3.0.

Habilitar o SSL 3.0

Caminho Nome do valor Dados do valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server Habilitado 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client Habilitado 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client DisabledByDefault 00000000

Desabilitar o SSL 3.0

Caminho Nome do valor Dados do valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server Habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client Habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client DisabledByDefault 00000001

Usar o PowerShell para desabilitar o SSL 3.0

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'SSL 3.0 has been disabled.'

Habilitar e desabilitar o TLS 1.0

Use as seguintes chaves do Registro e seus valores para habilitar e desabilitar o TLS 1.0.

Importante

Desabilitar o TLS 1.0 interrompe a relação de confiança do WAP com o AD FS. Se você desabilitar o TLS 1.0, deverá habilitar a autenticação forte para seus aplicativos. Para obter mais informações, consulte Habilitar autenticação forte para aplicativos .NET

Habilitar TLS 1.0

Caminho Nome do valor Dados do valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server Habilitado 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client Habilitado 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client DisabledByDefault 00000000

Desabilitar o TLS 1.0

Caminho Nome do valor Dados do valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server Enabled"=00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client Habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client DisabledByDefault 00000001

Usar o PowerShell para desabilitar o TLS 1.0

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.0 has been disabled.'

Habilitar e desabilitar o TLS 1.1

Use as seguintes chaves do Registro e seus valores para habilitar e desabilitar o TLS 1.1.

Habilitar o TLS 1.1

Caminho Nome do valor Dados do valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server Habilitado 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client Habilitado 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client DisabledByDefault 00000000

Desabilitar o TLS 1.1

Caminho Nome do valor Dados do valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server Habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client Habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client DisabledByDefault 00000001

Usar o PowerShell para desabilitar o TLS 1.1

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.1 has been disabled.'

Desabilitar o TLS 1.2

O TLS 1.2 está habilitado por padrão a partir do Windows Server 2012. Você pode usar as seguintes chaves do Registro e seus valores para desabilitar o TLS 1.2.

Aviso

Não é recomendável desabilitar o TLS 1.2, pois pode interromper a funcionalidade de outros componentes no servidor que dependem desse protocolo. Por exemplo, serviços como o Microsoft Azure AD Connect (Sincronização do Azure AD) exigem que o TLS 1.2 funcione corretamente. Desabilitá-lo pode resultar em falhas de serviço ou funcionalidade degradada.

Caminho Nome do valor Dados do valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server Habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client Habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client DisabledByDefault 00000001

Usar o PowerShell para desabilitar o TLS 1.2

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.2 has been disabled.'

Habilitar ou desabilitar hashes, algoritmos de criptografia e suites de criptografia

Não há suporte para controlar criptografias, hashes e algoritmos de troca de chaves, além do tamanho da chave, por meio do registro. Hashes, criptografias e algoritmos de troca de chaves são controlados por meio do PowerShell, MDM ou Cipher Suite Ordering.

Para obter uma lista completa de pacotes de criptografia com suporte, consulte Cipher Suites in TLS/SSL (SSP Schannel). Este artigo fornece uma tabela de suites que são habilitadas por padrão e mostra quais suites têm suporte, mas não estão habilitadas por padrão. Para priorizar os conjuntos de criptografia, consulte Priorizando pacotes de criptografia Schannel.

Habilitar autenticação forte para aplicativos .NET

Os aplicativos .NET Framework 3.5/4.0/4.5.x podem alternar o protocolo padrão para TLS 1.2 habilitando a chave do Registro SchUseStrongCrypto. Essas chaves do Registro forçam os aplicativos .NET a usar o TLS 1.2.

Importante

Para o AD FS no Windows Server 2016 e no Windows Server 2012 R2, você precisa usar a chave .NET Framework 4.0/4.5.x: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319

Para o .NET Framework 3.5, use a seguinte chave do Registro:

Caminho Nome do valor Dados do valor
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727 SchUseStrongCrypto 00000001

Para o .NET Framework 4.0/4.5.x, use a seguinte chave do Registro:

Caminho Nome do valor Dados do valor
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 SchUseStrongCrypto 00000001

Captura de tela do Editor do Registro que realça a chave SchUseStrongCrypto

New-ItemProperty -path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -name 'SchUseStrongCrypto' -value '1' -PropertyType 'DWord' -Force | Out-Null

Informações adicionais