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 pelo AD FS (Serviços de Federação do Active Directory).

TLS/SSL, SChannel e pacotes de criptografia no AD FS

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

O Schannel (Security Channel) é um SSP (Provedor de Suporte de 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 dos protocolos TLS/SSL pelo SSP Schannel usa algoritmos de um pacote de criptografia 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ções 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 os conjuntos de criptografia

Importante

Esta seção contém etapas que descrevem como modificar o registro. No entanto, problemas graves podem 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 de SCHANNEL pode interromper ou impedir comunicações entre determinados clientes e servidores. Isso ocorrerá se a comunicação segura for necessária e não houver um protocolo com o qual negociar comunicações.

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

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

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

Screenshot of the Registry Editor showing the registry keys located in the Protocols folder.

Habilitar e desabilitar o SSL 3.0

Use as chaves do registro a seguir 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 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 chaves do registro a seguir e seus valores para habilitar e desabilitar o TLS 1.0.

Importante

Desabilitar o TLS 1.0 interromperá a relação de confiança entre o WAP e o AD FS. Se você desabilitar o TLS 1.0, deverá habilitar a autenticação forte para os aplicativos. Para saber mais, confira Habilitar a 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 chaves do registro a seguir 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 é habilitado por padrão a partir do Windows Server 2012. Você pode usar as chaves do registro a seguir e seus valores para desabilitar o TLS 1.2.

Observação

Não é recomendado desabilitar o TLS 1.2.

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, codificações e conjuntos de criptografia

Não há suporte para o controle de codificações, hashes e algoritmos de troca de chaves, exceto pelo tamanho da chave, por meio do registro. Hashes, codificações e algoritmos de troca de chaves são controlados por meio do PowerShell, do MDM ou do Pedido do Pacote de Criptografia.

Para obter uma lista completa dos conjuntos de criptografia com suporte, confira Pacotes de criptografia em TLS/SSL (SSP Schannel). Este artigo fornece uma tabela de pacotes habilitados por padrão e indica os pacotes que são compatíveis, mas não são habilitados por padrão. Para priorizar os conjuntos de criptografia, confira Priorizar os pacotes de criptografia do Schannel.

Habilitar a autenticação forte para aplicativos .NET

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 de registro forçarão 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 do .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 de 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.5x, use a seguinte chave de registro:

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

Screenshot of Registry Editor that highlights the SchUseStrongCrypto key

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

Informações adicionais