Exportar (0) Imprimir
Expandir Tudo

Protegendo contra algoritmos de criptografia fracos

Publicado: agosto de 2013

Atualizado: abril de 2014

Aplica-se a: Windows 8.1, Windows Server 2012 R2



Uma atualização de software está disponível para Windows 8, Windows 7, Windows Vista, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008 que permite a depreciação de algoritmos criptográficos fracos. Para usar atualizações automáticas da Microsoft como um meio de melhor proteção para algoritmos criptográficos fracos, essa atualização de software deve ser baixada e instalada em computadores que executam ps sistemas operacionais mencionados acima.

Essa atualização de software é integrada aos sistemas operacionais Windows 8.1 e Windows Server 2012 R2.

Neste tópico:

Essa atualização de software proporciona um maior controle do administrador sobre a forma como as chaves RSA, os algoritmos hash e os algoritmos de chave assimétrica não RSA são bloqueados. Essa atualização de software permite que um administrador:

  • Defina políticas para bloquear seletivamente algoritmos criptográficos que substituem as configurações fornecidas pelo sistema operacional.

  • Aceite ou recuse cada política independentemente.

  • Habilite o registro em log por política (independente de outras políticas). O registro em log é desativado por padrão.

  • Especifique um local para o qual os certificados bloqueados são copiados.

  • Defina políticas por algoritmo e defina políticas de algoritmo hash e políticas de algoritmo assimétrico conforme descrito na tabela a seguir:

     

    Políticas de algoritmo hash

    Políticas de algoritmo assimétrico

    • Defina o nome do algoritmo hash, como MD5 ou SHA1.

    • Especifique se a política se aplica a certificados que são encadeados para as autoridades de certificação raiz de terceiros, o que exclui os certificados corporativos, ou aplique a política a todos os certificados.

    • Especifique um tempo antes do qual a verificação de política é desabilitada (aplicável apenas a certificados de assinatura de código usados em binários assinados com carimbo de data/hora).

    • Defina o tipo de certificados ao qual a política se aplica, como:

      • Todos os certificados.

        noteObservação
        Se a política estiver habilitada para todos os certificados, um administrador poderá não permitir algoritmos criptográficos fracos para um EKU (Uso Avançado de Chave) específico, como EKU de Autenticação do Servidor ou EKU de Assinatura de Código.

      • Certificados que têm o EKU de Autenticação do Servidor.

      • Certificados que têm o EKU de Assinatura de Código.

      • Certificados que têm o EKU de Carimbo de Data/Hora.

      • Especifique se a política se aplica apenas a certificados de assinatura de binários baixados da Web ou a todos os binários.

      • Especifique certificados de assinatura de código e de carimbo de data/hora que não estão bloqueados (como aqueles usados em situações de carimbo de data/hora ou assinatura de código legado); os certificados são identificados usando a impressão digital SHA2.

    • Defina o nome do algoritmo e o tamanho mínimo da chave, como RSA, DSA e ECDSA.

    • Especifique se a política se aplica a certificados que são encadeados a autoridades de certificação raiz de terceiros, o que exclui os certificados corporativos, ou se a política se aplica a todos os certificados.

    • Especifique um horário antes do qual a verificação de política é desabilitada (para arquivos com carimbo de data/hora).

    • Defina o tipo de certificados ao qual a política se aplica, como:

      • Todos os certificados.

        noteObservação
        Se a política estiver habilitada para todos os certificados, um administrador poderá não permitir algoritmos criptográficos fracos para um EKU específico, como EKU de Autenticação do Servidor ou EKU de Assinatura de Código.

      • Certificados que têm o EKU de Autenticação do Servidor.

      • Certificados que têm o EKU de Assinatura de Código.

      • Certificados que têm o EKU de Carimbo de Data/Hora.

      • Especifique se a política se aplica apenas a certificados de assinatura de binários baixados da Web ou a todos os binários.

      • Especifique certificados de assinatura de código e de carimbo de data/hora que não estão bloqueados (como aqueles usados em situações de carimbo de data/hora ou assinatura de código legado); os certificados são identificados usando a impressão digital SHA2.

O administrador define a política de bloqueio de algoritmo criptográfico na seguinte chave de Registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\OID\EncodingType 0\CertDllCreateCertificateChainEngine\Config

Use os seguintes comandos para exibir, configurar e remover as configurações de política de bloqueio de algoritmo criptográfico:

  • certutil -getreg chain

  • certutil -setreg chain

  • certutil -delreg chain

As entradas de Registro usam a seguinte sintaxe:

Weak<CryptoAlg><ConfigType><ValueType>

A tabela a seguir lista valores de Registro que podem ser definidos para modificar as configurações padrão para a política de bloqueio de algoritmo criptográfico. <CryptoAlg>, <ConfigType> e <ValueType> estarão presentes em todos os nomes:

 

Opção de configuração

Valores possíveis

CryptoAlg

Md5

Sha1

Rsa

Dsa

Ecdsa

ConfigType

ThirdParty: a política é aplicada apenas a certificados em raízes de terceiros

All: a política é aplicada a todos os certificados, mesmo em raízes corporativas

ValueType

Flags: tipo de dados REG_DWORD que pode ser definido para desabilitar o algoritmo hash ou habilitar um comprimento mínimo de chave. Para obter mais informações, consulte a tabela a seguir.

MinBitLength: tipo de dados REG_DWORD que especifica o comprimento mínimo de chave pública em bits.

Observação: MinBitLengh é aplicável apenas à política de algoritmos de chaves.

AfterTime: tipo de dados REG_BINARY que contém um FILETIME de 8 bytes. A verificação de algoritmo criptográfico fraco está desabilitada para arquivos com carimbo de data/hora antes desse tempo. Este valor de configuração não é aplicável às cadeias de carimbo de data/hora.

Sha256Allow: tipo de dados REG_SZ ou REG_MULTI_SZ que contém a lista de impressões digitais SHA256 de certificado (formato ASCII_HEX) identificando certificados fracos a serem explicitamente permitidos. Caracteres não ASCII_HEX na cadeia de caracteres são ignorados, o que permite espaços inseridos.

Os valores REG_DWORD a seguir podem ser definidos como sinalizadores em Weak<CryptoAlg><ConfigType>Flags:

 

Sinalizador

Observações

CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG (0x80000000)

Se esse sinalizador não estiver definido, todos os outros sinalizadores e valores de Registro serão ignorados para este Weak<CryptoAlg><ConfigType>.

Se o administrador definir esse sinalizador para seu Weak<CryptoAlg><ConfigType>, as configurações correspondentes fornecidas para o sistema operacional serão ignoradas.

Se esse sinalizador estiver definido em Weak<CryptoAlg>AllFlags:

  • O resultado será "Weak"<CryptoAlg>"ThirdPartyFlags" ou "Weak"<CryptoAlg>"AllFlags". No entanto, os sinalizadores de registro em log "Weak"<CryptoAlg>"ThirdPartyFlags" não serão atualizados. ThirdPartyFlags |= AllFlags & ~( CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG | CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG);

  • O "Weak<CryptoAlg>"ThirdPartyAfterTime" será o ("Weak"<CryptoAlg>"AllAfterTime", "Weak"<CryptoAlg>"ThirdPartyAfterTime") anterior.

Observação: aplicável somente se "Weak"<CryptoAlg>"AllAfterTime" estiver definido e for diferente de zero.

  • O "Weak"<KeyCryptoAlg>"ThirdPartyMinBitLength" será o maior ("Weak"<KeyCryptoAlg>"AllMinBitLength", "Weak"<KeyCryptoAlg>"ThirdPartyMinBitLength"

CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG (0x00000004)

Esse sinalizador é definido para habilitar o registro em log de certificados fracos para o diretório identificado por CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME.

CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG (0x00000008)

Esse sinalizador é definido apenas para registrar em log os certificados fracos para o diretório identificado por CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME. Erros de assinatura fracos não são retornados.

Além de definir o sinalizador CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG descrito na tabela anterior, os seguintes sinalizadores correspondentes ao EKU devem ser definidos para desabilitar a assinatura fraca ou para habilitar verificações de higiene de hash fraco:

 

Sinalizador

Observações

CERT_CHAIN_DISABLE_ALL_EKU_WEAK_FLAG (0x00010000)

Desabilita o algoritmo correspondente a essa política para todos os EKUs.

CERT_CHAIN_DISABLE_SERVER_AUTH_WEAK_FLAG (0x00100000)

Desabilita o algoritmo correspondente a essa política para EKUs ServerAuth.

CERT_CHAIN_DISABLE_CODE_SIGNING_WEAK_FLAG (0x00400000)

Desabilita o algoritmo correspondente a essa política para EKUs de assinatura.

CERT_CHAIN_DISABLE_MOTW_CODE_SIGNING_WEAK_FLAG (0x00800000)

Desabilita o algoritmo correspondente a essa política para EKUs de assinatura de código somente quando o binário é baixado da Web.

CERT_CHAIN_DISABLE_TIMESTAMP_WEAK_FLAG (0x04000000)

Desabilita o algoritmo correspondente a essa política para EKUs com carimbo de data/hora.

CERT_CHAIN_DISABLE_MOTW_TIMESTAMP_WEAK_FLAG (0x08000000)

Desabilita o algoritmo correspondente a essa política para EKUs com carimbo de data/hora somente quando o binário é baixado da Web.

O procedimento a seguir mostra como definir as configurações de Registro em todos os computadores ingressados no domínio usando GPUpdate. Para obter mais detalhes, consulte Configurar um item de Registro.

  1. Em um controlador de domínio, abra o Editor de Gerenciamento de Política de Grupo.

    1. Abra o MMC, clique em Arquivo, Adicionar/Remover Snap ins e selecione Editor de Gerenciamento de Política de Grupo.

      Adicionar/Remover snapin
    2. Clique em Adicionar para iniciar o Assistente de Política de Grupo.

      Assistente de Política de Grupo
    3. Clique em Procurar, Default Domain Policy, OK e Concluir.

      Política de Domínio Padrão
  2. Expanda Default Domain Policy|Configuração do Computador|Preferências|Configurações do Windows|Registro.

    1. Clique com o botão direito do mouse em Registro, clique em Novo e em Item do Registro.

      Novo Item do Registro
    2. Nas Propriedades do Novo Registro, clique em Procurar para selecionar o caminho de Chave necessário.

      Procurar Caminho da Chave
    3. Selecione o caminho do Registro. Por exemplo:

      SOFTWARE\Microsoft\Cryptography\OID\EncodingType 0\CertDllCreateCertificateChainEngine\Config

    4. Se o nome do valor do Registro já existir, selecione o valor de Registro também; por exemplo, WeakMD5ThirdPartyAfterTime.

      MD5 Fraco
    5. Se a entrada do Registro for nova, selecione o local da chave, insira o nome do valor de Registro, selecione o tipo de valor adequado e insira os dados necessários.

      Nome de Reg
  3. Clique em Aplicar e em OK. Se necessário, execute o comando gpupdate /force nos computadores ingressados no domínio para que a alteração de configuração de política seja aplicada imediatamente.

  4. Para valores binários, como AfterTime, é recomendável aplicar primeiro o valor usando o comando CertUtil ou em um computador de teste e, em seguida, exportar os valores e importá-los para um controlador de domínio.

    Por exemplo, se um administrador precisar aplicar WeakMD5ThirdPartyAfterTime, que é do tipo REG_BINARY a uma data, como 1/1/2010, o administrador poderá executar o seguinte comando CertUtil em um controlador de domínio. O comando atualiza o Registro com o valor binário correto. Depois de atualizar o Registro, siga as etapas anteriores para aplicar o mesmo valor aos computadores ingressados no domínio usando a Política de Grupo.

    Certutil -setreg chain\WeakMD5ThirdPartyAfterTime  @1/1/2010
    

O exemplo a seguir desabilita MD5 para todos os certificados de autenticação de servidor SSL em autoridades de certificação raiz de terceiros, mas permite que os binários assinados antes de 1 de março de 2009 sejam aceitos. Não aplicável a outros EKUs. O registro em log também está habilitado e a mensagem “Definindo seção de diretório de registro em log” será exibida.

Certutil –setreg chain\Default\WeakMd5ThirdPartyFlags 0x80100004 
Certutil –setreg chain\Default\WeakMd5ThirdPartyAfterTime @03/01/2009

O exemplo a seguir desabilita RSA 1024 para todos os certificados com carimbo de data/hora em autoridades de certificação raiz de terceiros, mas permite que os binários assinados antes de março de 2013 sejam aceitos. Não aplicável a outros EKUs.

Certutil –setreg chain\Default\WeakRSAThirdPartyFlags 0x84000000  
Certutil –setreg chain\Default\WeakRSAThirdPartyMinBitLength 1024 
Certutil –setreg chain\Default\WeakRSAThirdPartyAfterTime @3/1/2013


A estrutura Criptografia Fraca fornece um mecanismo em que os administradores podem definir um diretório de log para todos os certificados que são considerados fracos de acordo com as configurações.

Para habilitar o registro em log, um administrador pode definir um diretório de registro em log adicionando uma entrada do Registro ou executando o comando certutil como a seguir (c:\Log deve ser criado e com as permissões corretas) juntamente com as configurações de criptografia fraca:

Certutil -setreg chain\WeakSignatureLogDir c:\log

Ou atualizando o Registro diretamente:

HKLM\SOFTWARE\Microsoft\Cryptography\OID\EncodingType 0\CertDllCreateCertificateChainEngine\Config\WeakSignatureLogDir

E atualize os sinalizadores para habilitar o registro em log CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG (0x00000004), como no exemplo a seguir, em que a criptografia fraca é aplicada a todos os EKUs e os certificados de terceiros MD5 fracos são registrados em log em c:\log.

Certutil -setreg chain\WeakMD5ThirdPartyFlags  0x80010004

A estrutura de criptografia fraca também fornece um recurso para um administrador ter apenas registro em log, sem qualquer erro de criação de cadeia retornado. Para definir isso, os usuários precisam incluir CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG (0x00000008). Por exemplo, para habilitar o modo somente auditoria para todos os certificados de terceiros MD5 fracos do EKU:

Certutil -setreg chain\WeakSignatureLogDir c:\log

e

Certutil -setreg chain\WeakMD5ThirdPartyFlags  0x80010008

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários

Contribuições da comunidade

Mostrar:
© 2014 Microsoft