Exportar (0) Imprimir
Expandir todo

Protección contra algoritmos criptográficos vulnerables

Publicada: agosto de 2013

Actualizado: abril de 2014

Se aplica a: Windows 8.1, Windows Server 2012 R2



Hay una actualización de software disponible para Windows 8, Windows 7, Windows Vista, Windows Server 2012, Windows Server 2008 R2 y Windows Server 2008 que permite degradar los algoritmos criptográficos que no sean seguros. Este software se debe descargar e instalar en equipos con los sistemas operativos antes mencionados si se quieren usar las actualizaciones automáticas de Microsoft como forma de protección frente a algoritmos criptográficos no seguros.

Esta actualización de software está integrada en los sistemas operativos Windows 8.1 y Windows Server 2012 R2.

En este tema:

Esta actualización de software confiere a los administradores un mayor control sobre la forma de bloqueo de claves RSA, algoritmos hash y algoritmos de clave asimétrica que no son RSA. Con ella, los administradores podrán llevar a cabo lo siguiente:

  • Definir directivas para bloquear de manera selectiva algoritmos criptográficos que invaliden configuraciones establecidas por el sistema operativo.

  • Aplicar o dejar de aplicar cada directiva de forma separada.

  • Habilitar el registro por directiva (independientemente del resto de las directivas). El registro está desactivado de forma predeterminada.

  • Especificar una ubicación en la que copiar los certificados bloqueados.

  • Definir directivas por algoritmo y definir directivas de algoritmo hash y directivas de algoritmo asimétrico según se indica en la siguiente tabla:

     

    Directivas de algoritmo hash

    Directivas de algoritmo asimétrico

    • Defina el nombre del algoritmo hash (como MD5 o SHA1).

    • Indique si la directiva es válida para los certificados que encadenan a entidades de certificación raíz de terceros (con lo cual los certificados de empresa quedan excluidos) o si es válida para todos los certificados.

    • Especifique el tiempo para que la comprobación de directiva se deshabilite (esto solo procede en el caso de los certificados de firma de código utilizados en binarios firmados con marca de tiempo).

    • Defina el tipo de certificados al que se aplica la directiva, por ejemplo:

      • Todos los certificados.

        noteNota
        Si la directiva se habilita para todos los certificados, los administradores no podrán permitir los algoritmos criptográficos no seguros en usos mejorados de clave (EKU) concretos, como el EKU de autenticación de servidor o el EKU de firma de código.

      • Certificados que tienen el EKU de autenticación de servidor.

      • Certificados que tienen el EKU de firma de código.

      • Certificados que tienen el EKU de marca de tiempo.

      • Indique si la directiva es válida únicamente para los certificados de firma de los binarios que se han descargado de Internet, o bien para todos los binarios.

      • Especifique los certificados de firma de código y de marca de tiempo que no van a estar bloqueados (como los utilizados en situaciones heredadas de firma de código o de marca de tiempo). Estos certificados se distinguen por su huella digital SHA2.

    • Indique el nombre del algoritmo y el tamaño mínimo de clave, como RSA, DSA y ECDSA.

    • Indique si la directiva es válida para los certificados que encadenan a entidades de certificación raíz de terceros (con lo cual los certificados de empresa quedan excluidos), o si es válida para todos los certificados.

    • Especifique el tiempo para que la comprobación de directiva se deshabilite (en el caso de los archivos con marca de tiempo).

    • Defina el tipo de certificados al que se aplica la directiva, por ejemplo:

      • Todos los certificados.

        noteNota
        Si la directiva se habilita para todos los certificados, los administradores no podrán permitir los algoritmos criptográficos no seguros en EKU concretos, como el EKU de autenticación de servidor o el EKU de firma de código.

      • Certificados que tienen el EKU de autenticación de servidor.

      • Certificados que tienen el EKU de firma de código.

      • Certificados que tienen el EKU de marca de tiempo.

      • Indique si la directiva es válida únicamente para los certificados de firma de los binarios que se han descargado de Internet, o bien para todos los binarios.

      • Especifique los certificados de firma de código y de marca de tiempo que no van a estar bloqueados (como los utilizados en situaciones heredadas de firma de código o de marca de tiempo). Estos certificados se distinguen por su huella digital SHA2.

Los administradores definen la directiva de bloqueo de algoritmos criptográficos en la siguiente clave del Registro:

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

Use los siguientes comandos para mostrar, configurar y quitar la configuración de directiva de bloqueo de algoritmos criptográficos:

  • certutil -getreg chain

  • certutil -setreg chain

  • certutil -delreg chain

En las entradas del Registro se emplea la siguiente sintaxis:

Weak<CryptoAlg><ConfigType><ValueType>

La siguiente tabla contiene los valores de Registro que se pueden definir para modificar la configuración predeterminada de la directiva de bloqueo de algoritmos criptográficos. <CryptoAlg>, <ConfigType> y <ValueType> aparecerán en todos los nombres:

 

Opción de configuración

Posibles valores

CryptoAlg

Md5

Sha1

Rsa

Dsa

Ecdsa

ConfigType

ThirdParty: la directiva es válida únicamente para los certificados en raíces de terceros

All: la directiva es válida para todos los certificados, incluso los que estén en raíces de terceros

ValueType

Flags: tipo de datos REG_DWORD que se puede establecer para deshabilitar el algoritmo hash o habilitar una longitud de clave mínima. Para obtener más información, consulte la siguiente tabla.

MinBitLength: tipo de datos REG_DWORD que especifica la longitud mínima de clave pública en bits.

Nota: MinBitLengh solo se puede usar en la directiva de algoritmos de clave.

AfterTime: tipo de datos REG_BINARY que contiene un FILETIME de 8 bytes. La comprobación de algoritmos criptográficos no seguros está deshabilitada en los archivos con una marca de tiempo anterior a ese momento. Este valor de configuración no se aplica a las cadenas de marca de tiempo.

Sha256Allow: tipo de datos REG_SZ o REG_MULTI_SZ que contiene la lista de huellas digitales SHA256 de certificado (con formato ASCII_HEX) que identifican los certificados no seguros que se deben permitir de forma expresa. Los caracteres de la cadena que no sean ASCII_HEX se omiten, lo que da cabida a espacios incrustados.

Los siguientes valores REG_DWORD se pueden establecer como marcas en Weak<CryptoAlg><ConfigType>Flags:

 

Marca

Notas

CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG (0x80000000)

Si esta marca no se establece, el resto de las marcas y los valores del Registro se omitirán en relación con este Weak<CryptoAlg><ConfigType>.

Si el administrador establece esta marca en su Weak<CryptoAlg><ConfigType>, se omitirá la configuración correspondiente suministrada para el sistema operativo.

Si esta marca se establece en Weak<CryptoAlg>AllFlags:

  • El valor Weak<CryptoAlg>ThirdPartyFlags resultante será una combinación de los valores Weak<CryptoAlg>Thirdparty y Weak<CryptoAlg>AllFlags definidos. Sin embargo, las marcas de registro no se actualizarán. Es decir, "ThirdPartyFlags | = AllFlags & ~ (CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG | CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG);"

  • El valor resultante de "Weak<CryptoAlg>"ThirdPartyAfterTime" será el más temprano ("Weak"<CryptoAlg>"AllAfterTime", "Weak"<CryptoAlg>"ThirdPartyAfterTime").

Nota: eso es válido únicamente si "Weak"<CryptoAlg>"AllAfterTime" se definió y es distinto de cero.

  • El valor resultante de "Weak"<KeyCryptoAlg>"ThirdPartyMinBitLength" será el más largo ("Weak"<KeyCryptoAlg>"AllMinBitLength", "Weak"<KeyCryptoAlg>"ThirdPartyMinBitLength")

CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG (0x00000004)

Esta marca se establece para habilitar el registro de certificados no seguros en el directorio identificado mediante CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME.

CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG (0x00000008)

Esta marca se establece para registrar únicamente certificados no seguros en el directorio identificado mediante CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME. No se muestran errores de firma no segura.

Además de la marca CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG descrita en la tabla anterior, también se deben establecer las siguientes marcas relativas al EKU para deshabilitar las firmas no seguras o habilitar las comprobaciones de higiene de hash no seguro:

 

Marca

Notas

CERT_CHAIN_DISABLE_ALL_EKU_WEAK_FLAG (0x00010000)

Deshabilita el algoritmo relativo a esa directiva en todos los EKU.

CERT_CHAIN_DISABLE_SERVER_AUTH_WEAK_FLAG (0x00100000)

Deshabilita el algoritmo relativo a esa directiva en los EKU de autenticación de servidor.

CERT_CHAIN_DISABLE_CODE_SIGNING_WEAK_FLAG (0x00400000)

Deshabilita el algoritmo relativo a esa directiva en los EKU de firma de código.

CERT_CHAIN_DISABLE_MOTW_CODE_SIGNING_WEAK_FLAG (0x00800000)

Deshabilita el algoritmo relativo a esa directiva en los EKU de firma de código solo cuando el binario se ha descargado de Internet.

CERT_CHAIN_DISABLE_TIMESTAMP_WEAK_FLAG (0x04000000)

Deshabilita el algoritmo relativo a esa directiva en los EKU de marca de tiempo.

CERT_CHAIN_DISABLE_MOTW_TIMESTAMP_WEAK_FLAG (0x08000000)

Deshabilita el algoritmo relativo a esa directiva en los EKU de marca de tiempo solo cuando el binario se ha descargado de Internet.

En el siguiente procedimiento se explica cómo usar GPUpdate para definir la configuración del Registro en todos los equipos unidos a dominios. Para obtener más detalles, vea Configuración de un elemento del Registro.

  1. Desde el controlador de dominio, abra el Editor de administración de directivas de grupo.

    1. Abra MMC, haga clic en Archivo y en Agregar o quitar complemento y seleccione Editor de administración de directivas de grupo.

      Add/Remove snapin
    2. Haga clic en Agregar para abrir el Asistente para Directivas de grupo.

      Group Policy Wizard
    3. Haga clic en Examinar, en Default Domain Policy, en Aceptar y en Finalizar.

      Default Domain Policy
  2. Expanda Directiva Default Domain Policy|Configuración del equipo|Preferencias|Configuración de Windows|Registro.

    1. Haga clic con el botón derecho en Registro, haga clic en Nuevo y, a continuación, en Elemento del Registro.

      New Registry Item
    2. En Nuevas propiedades de Registro, haga clic en Examinar para seleccionar la ruta de acceso de clave que sea preciso.

      Browse Key Path
    3. Seleccione la ruta de acceso del Registro. Por ejemplo:

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

    4. Si el nombre del valor del Registro ya aparece, seleccione también el valor del Registro (por ejemplo, WeakMD5ThirdPartyAfterTime).

      Weak MD5
    5. Si la entrada del Registro es nueva, seleccione la ubicación de clave, escriba el nombre del valor del Registro, seleccione el tipo de valor adecuado y, por último, especifique los datos que sean necesarios.

      Reg Name
  3. Haga clic en Aplicar y en Aceptar. Si procede, ejecute gpupdate /force en los equipos unidos a dominios para que el cambio de configuración de directiva tenga un efecto inmediato.

  4. En el caso de los valores de binario como AfterTime, se recomienda aplicar primero el valor mediante el comando CertUtil o en un equipo de prueba y, luego, exportar los valores e importarlos a un controlador de dominio.

    Por ejemplo, si un administrador necesita aplicar WeakMD5ThirdPartyAfterTime, que es de tipo REG_BINARY en una fecha como 01/01/2010, dicho administrador puede ejecutar el siguiente comando CertUtil en un controlador de dominio. El comando actualiza el Registro con el valor binario correcto. Tras actualizar el Registro, siga los pasos anteriores para aplicar el mismo valor a los equipos unidos a dominios usando la directiva de grupo.

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

En el siguiente ejemplo, MD5 se deshabilita en todos los certificados de autenticación de servidor SSL que haya en entidades de certificación raíz de terceros, pero se aceptan los binarios firmados anteriores al 1 de marzo de 2009. Esto no es válido en el resto de EKU. El registro también está habilitado, y aparecerá un mensaje que informa de que se está estableciendo la sección del directorio de registro.

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

En el siguiente ejemplo, RSA 1024 se deshabilita en todos los certificados de marca de tiempo que haya en entidades de certificación raíz de terceros, pero se aceptan los binarios firmados anteriores a marzo de 2013. Esto no es válido en el resto de EKU.

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


El marco de criptografía no segura ofrece un mecanismo con el que los administradores pueden establecer un directorio de registros para todos los certificados que se consideren como no seguros según la configuración.

Para habilitar el registro, un administrador puede establecer un directorio de registro ya sea agregando una entrada el Registro o ejecutando los siguientes comandos certutil (se debe crear la ruta c:\Log con los permisos pertinentes) junto con la configuración de criptografía no segura:

Certutil -setreg chain\WeakSignatureLogDir c:\log

También puede actualizar el Registro directamente:

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

Y actualizar las marcas para habilitar el registro de CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG (0x00000004), como en el siguiente ejemplo, en el que se usa la criptografía no segura en todos los EKU y los certificados de terceros de MD5 no seguros se registran en c:\log.

Certutil -setreg chain\WeakMD5ThirdPartyFlags  0x80010004

El marco de criptografía no segura proporciona también una característica que permite el registro solo cuando no se devuelvan errores de creación de cadena. Para establecer esto, los usuarios deben incluir CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG (0x00000008). Por ejemplo, para habilitar el modo de solo auditoría en todos los certificados de terceros de MD5 no seguros del EKU:

Certutil -setreg chain\WeakSignatureLogDir c:\log

y

Certutil -setreg chain\WeakMD5ThirdPartyFlags  0x80010008

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft