Esporta (0) Stampa
Espandi tutto

Protezione dagli algoritmi di crittografia vulnerabili

Pubblicato: agosto 2013

Aggiornamento: aprile 2014

Si applica a: Windows 8.1, Windows Server 2012 R2



Per Windows 8, Windows 7, Windows Vista, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008 è disponibile un aggiornamento software che consente la deprecazione degli algoritmi di crittografia vulnerabili. Per utilizzare gli aggiornamenti automatici Microsoft come metodo di protezione dagli algoritmi di crittografia vulnerabili, è necessario scaricare e installare questo aggiornamento software sui computer che eseguono i sistemi operativi menzionati in precedenza.

Questo aggiornamento software è predefinito nei sistemi operativi Windows 8.1 e Windows Server 2012 R2.

In questo argomento:

Questo aggiornamento software consente agli amministratori di aumentare il controllo sulla modalità di blocco delle chiavi RSA, degli algoritmi hash e degli algoritmi a chiavi asimmetriche non RSA. Grazie a questo aggiornamento software, gli amministratori possono:

  • Definire criteri per bloccare selettivamente gli algoritmi di crittografia che eseguono l'override delle impostazioni fornite dal sistema operativo.

  • Consentire o rifiutare esplicitamente ogni criterio indipendentemente dagli altri criteri.

  • Abilitare la registrazione per ogni singolo criterio indipendentemente dagli altri criteri. La registrazione è disabilitata per impostazione predefinita.

  • Specificare un percorso in cui i certificati bloccati verranno copiati.

  • Impostare criteri per ogni algoritmo e definire criteri per l'algoritmo hash e l'algoritmo asimmetrico come illustrato nella tabella seguente:

     

    Criteri per l'algoritmo hash

    Criteri per l'algoritmo asimmetrico

    • Definire il nome dell'algoritmo hash, ad esempio MD5 o SHA1.

    • Specificare se il criterio si applica ai certificati concatenati alle CA radice di terze parti (il che esclude i certificati enterprise) oppure a tutti i certificati.

    • Specificare un orario prima del quale il controllo del criterio è disabilitato. Questa operazione si applica solo ai certificati di firma codice utilizzati nei file binari con timestamp.

    • Definire il tipo di certificato a cui il criterio si applica, ad esempio:

      • Tutti i certificati.

        noteNota
        Se il criterio è abilitato per tutti i certificati, l'amministratore non può consentire gli algoritmi di crittografia vulnerabili per un utilizzo avanzato chiave (EKU) specifico, come l'EKU di autenticazione server o l'EKU di firma codice.

      • Certificati con EKU di autenticazione server.

      • Certificati con EKU di firma codice.

      • Certificati con EKU di timestamp.

      • Specificare se il criterio si applica solo ai certificati di firma dei file binari scaricati dal Web oppure a tutti i file binari.

      • Specificare i certificati di firma codice e di timestamp che non sono bloccati, ad esempio quelli utilizzati per la firma di codice legacy o per il timestamp. I certificati vengono identificati mediante l'identificazione personale SHA2.

    • Definire il nome dell'algoritmo e le dimensioni minime della chiave, ad esempio RSA, DSA ed ECDSA.

    • Specificare se il criterio si applica ai certificati concatenati alle CA radice di terze parti (il che esclude i certificati enterprise) oppure a tutti i certificati.

    • Specificare un orario prima del quale il controllo del criterio è disabilitato (per i file con timestamp).

    • Definire il tipo di certificato a cui il criterio si applica, ad esempio:

      • Tutti i certificati.

        noteNota
        Se il criterio è abilitato per tutti i certificati, l'amministratore non può consentire gli algoritmi di crittografia vulnerabili per un EKU specifico, come l'EKU di autenticazione server o l'EKU di firma codice.

      • Certificati con EKU di autenticazione server.

      • Certificati con EKU di firma codice.

      • Certificati con EKU di timestamp.

      • Specificare se il criterio si applica solo ai certificati di firma dei file binari scaricati dal Web oppure a tutti i file binari.

      • Specificare i certificati di firma codice e di timestamp che non sono bloccati, ad esempio quelli utilizzati per la firma di codice legacy o per il timestamp. I certificati vengono identificati mediante l'identificazione personale SHA2.

L'amministratore imposta il criterio di blocco dell'algoritmo di crittografia nella chiave del Registro di sistema seguente:

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

Utilizzare i comandi seguenti per visualizzare, configurare e rimuovere le impostazioni del criterio di blocco dell'algoritmo di crittografia:

  • certutil -getreg chain

  • certutil -setreg chain

  • certutil -delreg chain

Le voci del Registro di sistema utilizzano la sintassi seguente:

Weak<AlgoritmoCrittografia><TipoConfigurazione><TipoValore>

Nella tabella seguente sono elencati i valori del Registro di sistema che possono essere impostati per modificare le impostazioni predefinite del criterio di blocco dell'algoritmo di crittografia. <AlgoritmoCrittografia>, <TipoConfigurazione> e <TipoValore> saranno presenti in tutti i nomi:

 

Opzione di configurazione

Valori possibili

AlgoritmoCrittografia

Md5

Sha1

Rsa

Dsa

Ecdsa

TipoConfigurazione

ThirdParty: il criterio viene applicato solo ai certificati nelle radici di terze parti

All: il criterio viene applicato a tutti i certificati, inclusi quelli delle radici enterprise

TipoValore

Flags: tipo di dati REG_DWORD che può essere impostato per disabilitare l'algoritmo hash o abilitare una lunghezza minima della chiave. Per ulteriori informazioni, vedere la tabella seguente.

MinBitLength: tipo di dati REG_DWORD che specifica la lunghezza minima della chiave pubblica espressa in bit.

Nota: MinBitLengh è applicabile solo al criterio degli algoritmi a chiave.

AfterTime: tipo di dati REG_BINARY che contiene un valore FILETIME di 8 byte. Prima di tale orario il controllo dell'algoritmo di crittografia è disabilitato per i file con timestamp. Questo valore di configurazione non può essere applicato alle catene di timestamp.

Sha256Allow: tipo di dati REG_SZ o REG_MULTI_SZ che contiene l'elenco delle identificazioni personali SHA256 dei certificati (in formato ASCII_HEX) che identificano i certificati vulnerabili da consentire esplicitamente. I caratteri non ASCII_HEX della stringa vengono ignorati. Sono pertanto consentiti gli spazi incorporati.

I valori REG_DWORD seguenti possono essere impostati come contrassegni in Weak<AlgoritmoCrittografia><TipoConfigurazione>Flags:

 

Contrassegno

Note

CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG (0x80000000)

Se questo contrassegno non è impostato, per il comando Weak<AlgoritmoCrittografia><TipoConfigurazione> vengono ignorati tutti gli altri contrassegni e valori del Registro di sistema.

Se l'amministratore imposta questo contrassegno per il comando Weak<AlgoritmoCrittografia><TipoConfigurazione>, le impostazioni corrispondenti fornite per il sistema operativo vengono ignorate.

Se questo contrassegno è impostato in Weak<AlgoritmoCrittografia>AllFlags:

  • Il valore "Weak"<AlgoritmoCrittografia>"ThirdPartyFlags" risultante sarà il più grande o con "Weak"<AlgoritmoCrittografia>"AllFlags". I contrassegni di registrazione di "Weak"<AlgoritmoCrittografia>"ThirdPartyFlags" non vengono tuttavia aggiornati. ThirdPartyFlags |= AllFlags & ~( CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG | CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG);

  • Il valore "Weak<AlgoritmoCrittografia>"ThirdPartyAfterTime" risultante sarà il primo disponibile ("Weak"<AlgoritmoCrittografia>"AllAfterTime", "Weak"<AlgoritmoCrittografia>"ThirdPartyAfterTime").

Nota: applicabile solo se "Weak"<AlgoritmoCrittografia>"AllAfterTime" è definito e diverso da zero.

  • Il valore "Weak"<AlgoritmoCrittografiaChiave>"ThirdPartyMinBitLength" sarà il più grande ("Weak"<AlgoritmoCrittografiaChiave>"AllMinBitLength", "Weak"<AlgoritmoCrittografiaChiave>"ThirdPartyMinBitLength"

CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG (0x00000004)

Questo contrassegno viene impostato per abilitare la registrazione di certificati vulnerabili nella directory identificata da CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME.

CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG (0x00000008)

Questo valore è impostato per registrare solo certificati vulnerabili nella directory identificata da CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME. Non vengono restituiti errori di firma vulnerabile.

Oltre al contrassegno CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG descritto nella tabella precedente, è necessario impostare i contrassegni seguenti corrispondenti all'EKU per disabilitare la firma vulnerabile o abilitare i controlli di pulizia dell'hash vulnerabile:

 

Contrassegno

Note

CERT_CHAIN_DISABLE_ALL_EKU_WEAK_FLAG (0x00010000)

Disabilita l'algoritmo corrispondente a tale criterio per tutti gli EKU.

CERT_CHAIN_DISABLE_SERVER_AUTH_WEAK_FLAG (0x00100000)

Disabilita l'algoritmo corrispondente a tale criterio per gli EKU di autenticazione server.

CERT_CHAIN_DISABLE_CODE_SIGNING_WEAK_FLAG (0x00400000)

Disabilita l'algoritmo corrispondente a tale criterio per gli EKU di firma codice.

CERT_CHAIN_DISABLE_MOTW_CODE_SIGNING_WEAK_FLAG (0x00800000)

Disabilita l'algoritmo corrispondente a tale criterio per gli EKU di firma codice solo quando il file binario viene scaricato dal Web.

CERT_CHAIN_DISABLE_TIMESTAMP_WEAK_FLAG (0x04000000)

Disabilita l'algoritmo corrispondente a tale criterio per gli EKU di timestamp.

CERT_CHAIN_DISABLE_MOTW_TIMESTAMP_WEAK_FLAG (0x08000000)

Disabilita l'algoritmo corrispondente a tale criterio per gli EKU di timestamp solo quando il file binario viene scaricato dal Web.

La procedura seguente illustra come configurare le impostazioni del Registro di sistema in tutti i computer che fanno parte del dominio utilizzando GPUpdate. Per ulteriori dettagli, vedere Configurare un elemento Registro di sistema.

  1. In un controller di dominio aprire Editor Gestione Criteri di gruppo.

    1. Aprire MMC, fare clic su File, su Aggiungi/Rimuovi snap-in e quindi selezionare Editor Gestione Criteri di gruppo.

      Aggiungi/Rimuovi snap-in
    2. Fare clic su Aggiungi per avviare la Procedura guidata Criteri di gruppo.

      Procedura guidata Criteri di gruppo
    3. Fare clic su Sfoglia, su Default Domain Policy, su OK e quindi su Fine.

      Criteri di dominio predefinito
  2. Espandere Criteri Default Domain Policy|Configurazione computer|Preferenze|Impostazioni di Windows|Registro di sistema.

    1. Fare clic con il pulsante destro del mouse su Registro di sistema, scegliere Nuovo e quindi fare clic su Elemento Registro di sistema.

      Nuovo elemento del Registro di sistema
    2. In Nuove proprietà Registro di sistema fare clic su Sfoglia per selezionare il percorso della chiave necessario.

      Selezione del percorso della chiave
    3. Selezionare il percorso del Registro di sistema. Ad esempio:

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

    4. Se il nome del valore del Registro di sistema è già presente, selezionare anche tale valore, ad esempio WeakMD5ThirdPartyAfterTime.

      MD5 debole
    5. Se la voce del Registro di sistema è nuova, selezionare la posizione della chiave, immettere il nome del valore del Registro di sistema, selezionare il tipo di valore appropriato e immettere i dati necessari.

      Nome del valore del Registro di sistema
  3. Fare clic su Applica e su OK. Se necessario, eseguire gpupdate /force nei computer che fanno parte del dominio per fare in modo che la modifica dell'impostazione del criterio venga applicata immediatamente.

  4. Per i valori binari come AfterTime, è consigliabile applicare innanzitutto il valore utilizzando il comando CertUtil o in un computer di test e quindi esportare i valori e importarli in un controller di dominio.

    Ad esempio, se un amministratore deve applicare WeakMD5ThirdPartyAfterTime, ovvero un valore di tipo REG_BINARY, a una data come 1/1/2010, può eseguire il comando CertUtil seguente in un controller di dominio. Il comando consente di aggiornare il Registro di sistema con il valore binario corretto. Dopo aver aggiornato il Registro di sistema, eseguire i passaggi precedenti per applicare lo stesso valore ai computer che fanno parte del dominio mediante Criteri di gruppo.

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

L'esempio seguente disabilita MD5 per tutti i certificati di autenticazione server SSL nelle CA radice di terze parti, ma consente l'accettazione dei file binari firmati antecedenti all'1 marzo 2009. Non applicabile agli altri EKU. Viene inoltre abilitata la registrazione e viene visualizzato il messaggio che indica che è in corso l'impostazione della sezione della directory di registrazione.

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

L'esempio seguente disabilita RSA 1024 per tutti i certificati di timestamp nelle CA radice di terze parti, ma consente l'accettazione dei file binari firmati antecedenti a marzo 2013. Non applicabile agli altri EKU.

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


Il framework di crittografia vulnerabile offre un meccanismo in cui gli amministratori possono impostare una directory di registrazione per tutti i certificati che vengono considerati vulnerabili in base alle impostazioni.

Per abilitare la registrazione, un amministratore può impostare una directory di registrazione aggiungendo una voce del Registro di sistema oppure eseguendo il comando Certutil nel modo seguente (è necessario creare c:\Log e impostarne le autorizzazioni corrette) insieme alle impostazioni della crittografia vulnerabile:

Certutil -setreg chain\WeakSignatureLogDir c:\log

In alternativa, è possibile aggiornare il Registro di sistema direttamente:

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

E aggiornare i contrassegni per abilitare la registrazione di CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG (0x00000004), come nell'esempio seguente, in cui la crittografia vulnerabile viene applicata per tutti gli EKU e i certificati di terze parti MD5 vulnerabili vengono registrati in c:\log.

Certutil -setreg chain\WeakMD5ThirdPartyFlags  0x80010004

Il framework di crittografia vulnerabile offre inoltre una funzionalità che gli amministratori possono utilizzare per impostare solo la registrazione senza che venga restituito alcun errore di generazione della catena. Per impostare questa funzionalità, è necessario includere CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG (0x00000008). Ad esempio, per abilitare la modalità di solo controllo per tutti i certificati di terze parti MD5 vulnerabili EKU:

Certutil -setreg chain\WeakSignatureLogDir c:\log

e

Certutil -setreg chain\WeakMD5ThirdPartyFlags  0x80010008

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.

Aggiunte alla community

Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft