Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo descreve como desativar algoritmos criptográficos fracos usando políticas no Windows e no Windows Server. Essas políticas só se aplicam à validação de certificado X.509 - quando o Windows verifica certificados digitais para conexões TLS, assinatura de código e outros cenários de segurança.
Você pode configurar o Windows para rejeitar certificados que usam algoritmos desatualizados, como MD5 e SHA1, ou chaves RSA que são muito curtas para serem seguras. A rejeição de certificados fracos ajuda a proteger seu ambiente contra certificados que podem ser facilmente comprometidos ou falsificados. Usando essas políticas, você pode:
Ativar ou desativar cada política de forma independente.
Ative o registo de eventos para cada política (independentemente de outras políticas). O registro em log está desativado por padrão.
Especifique um local para o qual os certificados desativados são copiados.
Configure políticas para algoritmos de hash e algoritmos assimétricos.
Sintaxe da política
A política de algoritmo criptográfico é definida no Registro do Windows e definida usando o Editor do Registro ou certutil. O administrador define a política na seguinte chave do Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\OID\EncodingType 0\CertDllCreateCertificateChainEngine\Config
As políticas são definidas usando a seguinte sintaxe:
Weak<CryptoAlg><ConfigType><ValueType>
CryptoAlg, ConfigTypee ValueType estão presentes em todos os nomes de políticas.
Por exemplo, WeakMD5ThirdPartyFlags ou WeakRSAAllMinBitLength.
Para cada política, os seguintes valores podem ser definidos:
CryptoAlgValores possíveis:- Md5 - Algoritmo de hash MD5.
- Sha1 - Algoritmo de hash SHA1.
- Rsa - Algoritmo assimétrico RSA.
- Dsa - Algoritmo assimétrico DSA.
- Ecdsa - Algoritmo assimétrico ECDSA.
ConfigTypeValores possíveis:- ThirdParty - A política só é aplicada a certificados de raízes de terceiros.
- Tudo - A política é aplicada a todos os certificados, mesmo sob as raízes da empresa.
ValueTypeValores possíveis:Bandeiras -
REG_DWORDtipo de dados que pode ser definido para desativar o algoritmo de hash ou habilitar um comprimento mínimo de chave. Um detalhamento de como calcular as bandeiras é fornecido na próxima seção.MinBitLength -
REG_DWORDtipo de dados que especifica o comprimento mínimo da chave pública em bits.MinBitLengthsó é aplicável à política de algoritmos chave. Especificado como um valor decimal do comprimento mínimo da chave em bits. Por exemplo, 1024 representa um comprimento mínimo de chave de 1.024 bits.AfterTime -
REG_BINARYtipo de dados que contém um FILETIME de 8 bytes. A verificação de algoritmo criptográfico fraco é desativada para ficheiros marcados com carimbo de data e hora antes dessa data. Esse valor de configuração não é aplicável a cadeias de carimbo de data/hora.Sha256Permitir -
REG_SZouREG_MULTI_SZtipo de dados que contém a lista de impressões digitais SHA256 dos certificados (no formato ASCII_HEX) identificando certificados fracos que devem ser explicitamente permitidos. Caracteres não ASCII_HEX na cadeia de caracteres são ignorados, o que permite espaços incorporados.
Sinalizadores de tipo de valor
Para definir os sinalizadores para uma política de algoritmo criptográfico fraca, você pode usar os seguintes REG_DWORD valores. Esses sinalizadores são usados para habilitar ou desabilitar comportamentos específicos para as políticas de algoritmo criptográfico.
Você pode combinar esses sinalizadores usando uma operação OR bit a bit para criar um valor de sinalizador composto que representa vários comportamentos.
Por exemplo, para ativar o registo e desativar o algoritmo para todos os EKUs, pode combinar os sinalizadores CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG e CERT_CHAIN_DISABLE_ALL_EKU_WEAK_FLAG. Para combinar esses sinalizadores, você definiria o valor como 0x80010004 (que é 0x80000000 | 0x00010000 | 0x00000004).
Expanda as seções a seguir para ver uma descrição dos sinalizadores que podem ser definidos para políticas de algoritmo criptográfico fraco:
Ativar configurações criptográficas fracas
O CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG sinalizador é usado para habilitar ou desabilitar configurações fracas de algoritmo criptográfico para uma política de algoritmo criptográfico específica. Esse sinalizador é essencial para controlar como algoritmos fracos são manipulados no processo de construção da cadeia de certificados.
Valor hexadecimal: 0x80000000
Aqui estão alguns exemplos para ilustrar como o sinalizador CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG (0x80000000) afeta o comportamento da política.
Se esse sinalizador não estiver definido para uma determinada
Weak<CryptoAlg><ConfigType>Flagspolítica, todos os outros sinalizadores e valores do Registro para essa política serão ignorados. Por exemplo, se você configurar outros sinalizadores paraWeakMD5ThirdPartyFlagsmas não definir0x80000000, essas configurações não terão efeito.Quando um administrador define esse sinalizador para uma política específica
Weak<CryptoAlg><ConfigType>Flags, as configurações de diretiva definidas no Registro substituem o comportamento padrão do sistema operacional para esse algoritmo criptográfico e tipo de configuração.Se o indicador estiver definido na política
Weak<CryptoAlg>AllFlags, o resultadoWeak<CryptoAlg>ThirdPartyFlagsserá uma combinação dos valores definidos emWeak<CryptoAlg>ThirdPartyFlagseWeak<CryptoAlg>AllFlags, exceto para os indicadores relacionados ao registro, que não são combinados. Por exemplo, os sinalizadores de terceiros efetivos são calculados como:
ThirdPartyFlags |= AllFlags & ~(CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG | CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG);Para configurações baseadas em tempo e comprimento de chave, o resultado
Weak<CryptoAlg>ThirdPartyAfterTimeé o valor mais antigo entreWeak<CryptoAlg>AllAfterTimeeWeak<CryptoAlg>ThirdPartyAfterTime(se ambos forem definidos e diferentes de zero). Da mesma forma, o resultadoWeak<KeyCryptoAlg>ThirdPartyMinBitLengthé o maior valor entreWeak<KeyCryptoAlg>AllMinBitLengtheWeak<KeyCryptoAlg>ThirdPartyMinBitLength.
Estes exemplos mostram como o sinalizador determina se as configurações de política personalizadas são aplicadas. O exemplo também explica como os valores combinados são calculados quando as configurações "Todos" e "Terceiros" são definidas.
Ativar registo
Quando este sinalizador é definido, os certificados fracos identificados durante o processo de construção da cadeia de certificados são registados no diretório especificado pelo valor do registo CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME. O registro em log permite que os administradores analisem e tomem medidas em relação a certificados fracos que possam representar riscos à segurança.
Valor hexadecimal: 0x00000004
Registo de auditoria apenas
Quando o CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG indicador é definido, apenas erros de assinatura fraca são registados, e nenhum erro de construção de cadeia é retornado. Nesse modo, erros de assinatura fraca não são retornados, permitindo um modo somente auditoria em que certificados fracos são registrados sem afetar o processo de construção da cadeia.
Valor hexadecimal: 0x00000008
Desativar todos os EKUs
O CERT_CHAIN_DISABLE_ALL_EKU_WEAK_FLAG sinalizador é usado para desativar o algoritmo correspondente à política para todos os Usos Avançados de Chave (EKUs). Isso significa que o algoritmo criptográfico especificado não será usado para nenhum certificado, independentemente de seu EKU.
Valor hexadecimal: 0x00010000
Desativar EKUs de autenticação de servidor Opt-In
O CERT_CHAIN_DISABLE_OPT_IN_SERVER_AUTH_WEAK_FLAG indicador é usado para desativar o algoritmo correspondente à política para EKUs de autenticação de servidor, mas apenas para aplicações que optarem por esta alteração utilizando a configuração CERT_CHAIN_OPT_IN_WEAK_SIGNATURE. A política de assinatura fraca permite que os administradores exerçam um controle mais granular sobre os aplicativos afetados.
Valor hexadecimal: 0x00040000
EKUs de autenticação de servidor desativados
O CERT_CHAIN_DISABLE_SERVER_AUTH_WEAK_FLAG sinalizador é usado para desabilitar o algoritmo correspondente à política para EKUs de Autenticação de Servidor. Ou seja, o algoritmo criptográfico especificado não será usado para nenhum certificado com EKUs de Autenticação de Servidor, independentemente de os aplicativos aceitarem ou não.
Valor hexadecimal: 0x00100000
Desativar EKUs de assinatura de código
O CERT_CHAIN_DISABLE_CODE_SIGNING_WEAK_FLAG sinalizador é usado para desativar o algoritmo correspondente à política de assinatura de código Enhanced Key Usages (EKUs). Ou seja, o algoritmo criptográfico especificado não será usado para nenhum certificado de assinatura de código.
Valor hexadecimal: 0x00400000
Desativar EKUs de assinatura de código para binários baixados da Web
O CERT_CHAIN_DISABLE_MOTW_CODE_SIGNING_WEAK_FLAG flag é usado para desativar o algoritmo correspondente à política de assinatura de código EKUs, mas somente quando o binário é descarregado da web.
Valor hexadecimal: 0x00800000
Desativar EKUs de Timestamp
A flag CERT_CHAIN_DISABLE_TIMESTAMP_WEAK_FLAG é usado para desativar o algoritmo correspondente à política de uso melhorado de chaves (EKUs) para carimbo de data/hora. Ou seja, o algoritmo criptográfico especificado não será usado para nenhum certificado de carimbo de data/hora.
Valor hexadecimal: 0x04000000
Desativar EKUs de carimbo de data/hora para binários baixados da Web
O CERT_CHAIN_DISABLE_MOTW_TIMESTAMP_WEAK_FLAG flag é usado para desativar o algoritmo correspondente à política para EKUs temporais, mas somente quando o binário é baixado da web.
Valor hexadecimal: 0x08000000
Pré-requisitos
Para configurar políticas de algoritmo criptográfico fraco, você precisa dos seguintes pré-requisitos:
Acesso administrativo local para modificar as configurações do Registro.
(Opcional) Um diretório de registo designado caso habilite o registo para deteção de certificados fracos.
Você também precisa ter as seguintes informações prontas para configurar as políticas:
O nome do algoritmo criptográfico (por exemplo, MD5, SHA256, RSA, DSA, ECDSA).
Para algoritmos assimétricos, o tamanho mínimo de chave requerido (por exemplo, 1.024 bits para RSA).
Se a política deve ser aplicada a todos os certificados ou apenas aos que estão ligados a CAs raiz de terceiros.
A hora antes da qual a verificação de política é desativada (para certificados de assinatura de código usados em binários assinados com marca temporal).
Os tipos de certificados ou Usos Avançados de Chave (EKUs) aos quais a política se aplica, como:
Todos os certificados
EKU de autenticação de servidor
Assinatura de código EKU
Carimbo de data/hora EKU
Se a política se aplica apenas a binários baixados da Web ou a todos os binários.
Quaisquer exceções para certificados específicos de assinatura de código ou carimbo de data/hora, identificados pela impressão digital SHA2.
Configurar uma política de algoritmo criptográfico fraca
Para configurar uma política de algoritmo criptográfico fraca, você pode usar a certutil ferramenta de linha de comando ou modificar o registro do Windows diretamente. Selecione o método que melhor se adapta às suas necessidades.
Para configurar uma política de algoritmo criptográfico fraco, podes usar a ferramenta de linha de comando certutil -setreg chain. Essa ferramenta permite que você exiba, configure e remova configurações fracas de política de algoritmo criptográfico. Para saber mais sobre a ferramenta de linha de certutil comandos, consulte certutil.
Para configurar uma política de algoritmo criptográfico fraca, siga estas etapas:
Determine o algoritmo criptográfico que você deseja desabilitar e o tipo de configuração (por exemplo, de terceiros ou todos) usando os sinalizadores e valores descritos na seção Sintaxe da política . Execute uma operação OR bit a bit para combinar os sinalizadores conforme necessário e registrar o valor resultante.
Abra um prompt de comando com privilégios administrativos.
Para criar uma nova política baseada em sinalizador de algoritmo criptográfico fraco, use o seguinte comando:
certutil -setreg chain\Weak<CryptoAlg><ConfigType>Flags <value>Substitua
<CryptoAlg>,<ConfigType>e<value>com os valores apropriados para sua política.Por exemplo, para desabilitar o MD5 para todos os certificados de autenticação de servidor SSL em CAs raiz de terceiros, você pode usar os seguintes comandos:
certutil -setreg chain\WeakMD5ThirdPartyFlags 0x80100000Para criar uma nova política de algoritmo assimétrico, use o seguinte comando:
certutil -setreg chain\Weak<CryptoAlg><ConfigType>MinBitLength <value>Substitua
<CryptoAlg>,<ConfigType>e<value>com os valores apropriados para sua política.Por exemplo, para desativar o RSA 1024 em CAs raiz de terceiros, você pode usar os seguintes comandos:
certutil -setreg chain\WeakRSAThirdPartyMinBitLength 1024Para criar uma nova política baseada em tempo, use o seguinte comando:
certutil -setreg chain\Weak<CryptoAlg><ConfigType>AfterTime <value>Substitua
<CryptoAlg>,<ConfigType>e<value>com os valores apropriados para sua política.Por exemplo, para desabilitar o MD5 para todos os certificados de autenticação de servidor SSL em CAs raiz de terceiros antes de 1º de março de 2009, você pode usar os seguintes comandos:
certutil -setreg chain\WeakMD5ThirdPartyAfterTime @03/01/2009
Exibir políticas configuradas
Para exibir as políticas de algoritmo criptográfico fraco configuradas atualmente, você pode usar a certutil ferramenta de linha de comando ou o Editor do Registro do Windows. Selecione o método que melhor se adapta às suas necessidades.
Para exibir as políticas de algoritmo criptográfico fraco atualmente configuradas usando a certutil ferramenta de linha de comando, siga estas etapas:
Abra um prompt de comando com privilégios administrativos.
Para ver o comportamento padrão do sistema operacional para algoritmos criptográficos fracos, execute o seguinte comando:
certutil -getreg chain\defaultPara exibir as políticas de algoritmo criptográfico fraco configuradas atualmente, execute o seguinte comando:
certutil -getreg chain\Weak<CryptoAlg><ConfigType>FlagsSubstitua
<CryptoAlg>e<ConfigType>com os valores apropriados para sua política.Por exemplo, para exibir os sinalizadores de terceiros MD5, você pode usar o seguinte comando:
certutil -getreg chain\WeakMD5ThirdPartyFlagsPara exibir todas as políticas de algoritmo criptográfico fraco configuradas, você pode executar o seguinte comando:
certutil -getreg chain
Ativar log
A estrutura Weak Crypto no Windows fornece um mecanismo para registrar certificados criptográficos fracos. Esse mecanismo permite que os administradores monitorem e tomem medidas em certificados considerados fracos de acordo com as configurações configuradas.
Você pode ativar os registos usando a ferramenta de linha de certutil comando ou modificando diretamente o registo do Windows. Selecione o método que melhor se adapta às suas necessidades.
Para ativar o registo em log para certificados criptográficos fracos usando a ferramenta de linha de comando certutil, siga estas etapas:
Crie um diretório de log onde os certificados fracos são registrados. Por exemplo, crie um diretório em
C:\Loge verifique se ele tem as permissões corretas.Para definir o diretório de log, use o seguinte comando:
certutil -setreg chain\WeakSignatureLogDir c:\logPara habilitar o registro, defina o sinalizador de registro para uma política de criptografia fraca existente. Combine o
CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG(0x00000004) ouCERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG(0x00000008) com os sinalizadores existentes para a política. Por exemplo, para habilitar o registro em log para todos os certificados de terceiros MD5 fracos do EKU, você pode usar o seguinte comando:certutil -setreg chain\WeakMD5ThirdPartyFlags 0x80010004