(0) exportieren Drucken
Alle erweitern

Schutz vor schwachen Kryptografiealgorithmen

Veröffentlicht: August 2013

Letzte Aktualisierung: April 2014

Betrifft: Windows 8.1, Windows Server 2012 R2



Für Windows 8, Windows 7, Windows Vista, Windows Server 2012, Windows Server 2008 R2 und Windows Server 2008 ist ein Softwareupdate verfügbar, nach dessen Durchführung schwache Kryptografiealgorithmen als veraltet markiert werden können. Um automatische Updates von Microsoft als Mittel zum besseren Schutz vor schwachen Kryptografiealgorithmen verwenden zu können, müssen Sie dieses Softwareupdate auf Computern herunterladen und installieren, auf denen die oben genannten Betriebssysteme ausgeführt werden.

Dieses Softwareupdate ist in die Betriebssysteme Windows 8.1 und Windows Server 2012 R2 bereits integriert.

Inhalt dieses Themas:

Mit diesem Softwareupdate können Administratoren besser steuern, wie RSA-Schlüssel, Hashalgorithmen und asymmetrische Nicht-RSA-Schlüsselalgorithmen blockiert werden. Administratoren haben mit diesem Softwareupdate folgende Möglichkeiten:

  • Definieren von Richtlinien zum selektiven Blockieren von Kryptografiealgorithmen, mit denen vom Betriebssystem bereitgestellte Einstellungen überschrieben werden

  • Unabhängiges Aktivieren oder Deaktivieren der einzelnen Richtlinien

  • Aktivieren der Protokollierung pro Richtlinie (unabhängig von anderen Richtlinien); die Protokollierung ist standardmäßig deaktiviert

  • Angeben eines Speicherorts, an den blockierte Zertifikate kopiert werden

  • Festlegen von Richtlinien pro Algorithmus und Definieren von Hashalgorithmusrichtlinien und asymmetrischen Algorithmusrichtlinien, wie in der folgenden Tabelle beschrieben:

     

    Hashalgorithmusrichtlinien

    Asymmetrische Algorithmusrichtlinien

    • Definieren Sie den Namen des Hashalgorithmus, z. B. MD5 oder SHA1.

    • Geben Sie an, ob die Richtlinie für Zertifikate gilt, die mit Stammzertifizierungsstellen von Drittanbietern verbunden sind (in diesem Fall wären die Unternehmenszertifikate ausgeschlossen), oder ob die Richtlinie auf alle Zertifikate angewendet werden soll.

    • Geben Sie einen Zeitpunkt an, vor dem die Richtlinienüberprüfung deaktiviert ist (gilt nur für Codesignaturzertifikate, die in signierten Binärdateien mit Zeitstempel verwendet werden).

    • Definieren Sie den Typ der Zertifikate, für den die Richtlinie gilt, z. B.:

      • Alle Zertifikate.

        noteHinweis
        Wenn die Richtlinie für alle Zertifikate aktiviert wird, kann ein Administrator schwache Kryptografiealgorithmen für eine bestimmte erweiterte Schlüsselverwendung (Enhanced Key Usage, EKU), z. B. EKU für Serverauthentifizierung oder EKU für Codesignatur, nicht zulassen.

      • Zertifikate mit EKU für Serverauthentifizierung.

      • Zertifikate mit EKU für Codesignatur.

      • Zertifikate mit EKU für Zeitstempel.

      • Geben Sie an, ob die Richtlinie nur für das Signieren der Zertifikate von Binärdateien gilt, die aus dem Web heruntergeladen werden, oder für alle Binärdateien.

      • Geben Sie Codesignatur- und Zeitstempelzertifikate an, die nicht blockiert sind (z. B. Legacy-Codesignatur oder Zeitstempelsituationen). Die Zertifikate werden über ihren SHA2-Fingerabdruck identifiziert.

    • Definieren Sie für den Algorithmus den Namen und die minimale Schlüsselgröße, z. B. RSA, DSA und ECDSA.

    • Geben Sie an, ob die Richtlinie für Zertifikate gilt, die mit Stammzertifizierungsstellen von Drittanbietern verbunden sind (in diesem Fall wären die Unternehmenszertifikate ausgeschlossen), oder ob die Richtlinie auf alle Zertifikate angewendet werden soll.

    • Geben Sie eine Uhrzeit an, vor der die Richtlinienprüfung deaktiviert ist (für Dateien mit Zeitstempel).

    • Definieren Sie den Typ der Zertifikate, für den die Richtlinie gilt, z. B.:

      • Alle Zertifikate.

        noteHinweis
        Wenn die Richtlinie für alle Zertifikate aktiviert wird, kann ein Administrator schwache Kryptografiealgorithmen für eine bestimmte erweiterte Schlüsselverwendung (EKU), z. B. EKU für Serverauthentifizierung oder EKU für Codesignatur, nicht zulassen.

      • Zertifikate mit EKU für Serverauthentifizierung.

      • Zertifikate mit EKU für Codesignatur.

      • Zertifikate mit EKU für Zeitstempel.

      • Geben Sie an, ob die Richtlinie nur für das Signieren der Zertifikate von Binärdateien gilt, die aus dem Web heruntergeladen werden, oder für alle Binärdateien.

      • Geben Sie Codesignatur- und Zeitstempelzertifikate an, die nicht blockiert sind (z. B. Legacy-Codesignatur oder Zeitstempelsituationen). Die Zertifikate werden über ihren SHA2-Fingerabdruck identifiziert.

Der Administrator legt die Richtlinie zum Blockieren von Kryptografiealgorithmen im folgenden Registrierungsschlüssel fest:

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

Verwenden Sie die folgenden Befehle, um die Einstellungen für die Richtlinie zum Blockieren von Kryptografiealgorithmen anzuzeigen, zu konfigurieren und zu entfernen:

  • certutil -getreg chain

  • certutil -setreg chain

  • certutil -delreg chain

Für die Registrierungseinträge wird die folgende Syntax verwendet:

Weak<CryptoAlg><ConfigType><ValueType>

In der folgenden Tabelle sind die Registrierungswerte aufgeführt, die zum Ändern der Standardeinstellungen für die Richtlinie zum Blockieren von Kryptografiealgorithmen festgelegt werden können. <CryptoAlg>, <ConfigType> und <ValueType> sind in allen Namen enthalten:

 

Konfigurationsoption

Mögliche Werte

CryptoAlg

Md5

Sha1

Rsa

Dsa

Ecdsa

ConfigType

ThirdParty: Die Richtlinie wird nur auf Zertifikate der Stammzertifizierungsstellen von Drittanbietern angewendet.

All: Die Richtlinie wird auf alle Zertifikate angewendet (auch bei der Stammzertifizierungsstelle des Unternehmens).

ValueType

Flags: REG_DWORD-Datentyp, der festgelegt werden kann, um den Hashalgorithmus zu deaktivieren oder eine minimale Schlüssellänge zu aktivieren. Weitere Informationen finden Sie in der folgenden Tabelle.

MinBitLength: REG_DWORD-Datentyp, mit dem die minimale Länge des öffentlichen Schlüssels in Bit angegeben wird.

Hinweis: MinBitLength gilt nur für die Schlüsselalgorithmusrichtlinie.

AfterTime: REG_BINARY-Datentyp, der ein 8 Byte-FILETIME-Element enthält. Die Überprüfung auf schwache Kryptografiealgorithmen ist für Dateien mit Zeitstempel vor diesem Zeitpunkt deaktiviert. Dieser Konfigurationswert gilt nicht für Zeitstempelketten.

Sha256Allow: REG_SZ- oder REG_MULTI_SZ-Datentyp, der die Liste der SHA256-Zertifikatfingerabdrücke (ASCII_HEX-Formatierung) enthält, mit denen schwache Zertifikate ausdrücklich zugelassen werden. Andere Zeichen als ASCII_HEX-Zeichen werden in der Zeichenfolge übersprungen, sodass eingebettete Leerzeichen zulässig sind.

Die folgenden REG_DWORD-Werte können als Flags in Weak<CryptoAlg><ConfigType>Flags festgelegt werden:

 

Flag

Hinweis

CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG (0x80000000)

Wenn dieses Flag nicht festgelegt ist, werden alle anderen Flags und Registrierungswerte für Weak<CryptoAlg><ConfigType> ignoriert.

Wenn der Administrator dieses Flag für das Weak<CryptoAlg><ConfigType>-Element festlegt, werden die entsprechenden Einstellungen, die für das Betriebssystem bereitgestellt werden, ignoriert.

Bei festgelegtem Flag in Weak<CryptoAlg>AllFlags:

  • Dann sind die resultierenden Weak<CryptoAlg>ThirdPartyFlags eine Kombination der definierten Weak<CryptoAlg>Thirdparty und Weak<CryptoAlg>AllFlags. Protokollierungs-Flags können jedoch nicht aktualisiert werden. Das heißt, “ThirdPartyFlags |= AllFlags & ~( CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG | CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG);”

  • Sich ergebende %%amp;quot;Weak%%amp;quot;<CryptoAlg>%%amp;quot;ThirdPartyAfterTime%%amp;quot;-Elemente sind am frühesten (%%amp;quot;Weak%%amp;quot;<CryptoAlg>%%amp;quot;AllAfterTime%%amp;quot;, %%amp;quot;Weak%%amp;quot;<CryptoAlg>%%amp;quot;ThirdPartyAfterTime%%amp;quot;).

Hinweis: Gilt nur, wenn "Weak"<CryptoAlg>"AllAfterTime" definiert und nicht null ist.

  • Sich ergebendes "Weak"<KeyCryptoAlg>"ThirdPartyMinBitLength"-Element ist am größten ("Weak"<KeyCryptoAlg>"AllMinBitLength", "Weak"<KeyCryptoAlg>"ThirdPartyMinBitLength")

CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG (0x00000004)

Dieses Flag wird festgelegt, um die Protokollierung schwacher Zertifikate im per CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME identifizierten Verzeichnis zu aktivieren.

CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG (0x00000008)

Dieses Flag wird festgelegt, um nur schwache Zertifikate im per CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME identifizierten Verzeichnis zu protokollieren. Fehler aufgrund einer schwachen Signatur werden nicht zurückgegeben.

Zusätzlich zur Festlegung des CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG-Flags, das in der obigen Tabelle beschrieben wurde, müssen die folgenden Flags gemäß EKU festgelegt werden, um schwache Signaturen zu deaktivieren oder die Überprüfung auf schwachen Hashschutz zu aktivieren:

 

Flag

Hinweis

CERT_CHAIN_DISABLE_ALL_EKU_WEAK_FLAG (0x00010000)

Deaktiviert den Algorithmus, der dieser Richtlinie für alle EKUs entspricht.

CERT_CHAIN_DISABLE_SERVER_AUTH_WEAK_FLAG (0x00100000)

Deaktiviert den Algorithmus, der dieser Richtlinie für EKUs für die Serverauthentifizierung entspricht.

CERT_CHAIN_DISABLE_CODE_SIGNING_WEAK_FLAG (0x00400000)

Deaktiviert den Algorithmus, der dieser Richtlinie für EKUs für die Codesignatur entspricht.

CERT_CHAIN_DISABLE_MOTW_CODE_SIGNING_WEAK_FLAG (0x00800000)

Deaktiviert den Algorithmus, der dieser Richtlinie für EKUs für die Codesignatur entspricht, nur in den Fällen, in denen die Binärdatei aus dem Web heruntergeladen wird.

CERT_CHAIN_DISABLE_TIMESTAMP_WEAK_FLAG (0x04000000)

Deaktiviert den Algorithmus, der dieser Richtlinie für EKUs für Zeitstempel entspricht.

CERT_CHAIN_DISABLE_MOTW_TIMESTAMP_WEAK_FLAG (0x08000000)

Deaktiviert den Algorithmus, der dieser Richtlinie für EKUs für Zeitstempel entspricht, nur in den Fällen, in denen die Binärdatei aus dem Web heruntergeladen wird.

Im folgenden Verfahren wird gezeigt, wie Sie die Registrierungseinstellungen auf allen zu einer Domäne gehörenden Computern mithilfe von GPUpdate konfigurieren. Weitere Informationen finden Sie unter Konfigurieren eines Registrierungselements.

  1. Öffnen Sie auf einem Domänencontroller den Gruppenrichtlinienverwaltungs-Editor.

    1. Öffnen Sie die MMC, klicken Sie auf Datei und Snap-In hinzufügen/entfernen, und wählen Sie Gruppenrichtlinienverwaltungs-Editor.

      Snap-In hinzufügen/entfernen
    2. Klicken Sie auf Hinzufügen, um den Gruppenrichtlinien-Assistenten zu starten.

      Gruppenrichtlinien-Assistent
    3. Klicken Sie nacheinander auf Durchsuchen, Default Domain Policy, OK und dann auf Fertig stellen.

      Standarddomänenrichtlinie
  2. Erweitern Sie %%amp;quot;Default Domain Policy|Computerkonfiguration|Einstellungen|Windows-Einstellungen|Registrierung%%amp;quot;.

    1. Klicken Sie mit der rechten Maustaste auf Registrierung, klicken Sie auf Neu, und klicken Sie auf Registrierungselement.

      Neues Registrierungselement
    2. Klicken Sie unter %%amp;quot;Neue Registrierungseigenschaften%%amp;quot; auf Durchsuchen, um den erforderlichen Schlüsselpfad auszuwählen.

      Schlüsselpfad durchsuchen
    3. Wählen Sie den Registrierungspfad aus. Beispiel:

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

    4. Falls der Registrierungswertname bereits vorhanden ist, müssen Sie auch den Registrierungswert auswählen, z. B. WeakMD5ThirdPartyAfterTime.

      Schwache MD5-Verschlüsselung
    5. Wenn der Registrierungseintrag neu ist, wählen Sie den Speicherort des Schlüssels aus, geben den Namen des Registrierungswerts ein, wählen den entsprechenden Werttyp aus und geben die erforderlichen Daten ein.

      Registrierungsname
  3. Klicken Sie auf Übernehmen und dann auf OK. Führen Sie auf der Domäne beigetretenen Computern bei Bedarf %%amp;quot;gpupdate /force%%amp;quot; aus, damit die Änderung der Richtlinieneinstellung sofort angewendet wird.

  4. Für Binärwerte wie AfterTime wird empfohlen, den Wert zuerst mit dem Befehl CertUtil oder auf einem Testcomputer anzuwenden und die Werte dann zu exportieren und in einen Domänencontroller zu importieren.

    Wenn ein Administrator beispielsweise WeakMD5ThirdPartyAfterTime mit dem Typ REG_BINARY auf das Datum 01.01.2010 anwenden muss, kann der Administrator auf einem Domänencontroller den unten angegebenen CertUtil-Befehl ausführen. Mit dem Befehl wird die Registrierung mit dem richtigen Binärwert aktualisiert. Führen Sie nach dem Aktualisieren der Registrierung die obigen Schritte aus, um den gleichen Wert per Gruppenrichtlinie auf der Domäne beigetretene Computer anzuwenden.

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

Im folgenden Beispiel wird MD5 für alle SSL-Zertifikate für die Serverauthentifizierung im Rahmen von Stammzertifizierungsstellen von Drittanbietern deaktiviert, während signierte Binärdateien mit Datumsangaben vor dem 1. März 2009 akzeptiert werden. Dies gilt nicht für andere EKUs. Die Protokollierung ist auch aktiviert, und die Meldung %%amp;quot;Setting logging directory section%%amp;quot; (Protokollverzeichnisabschnitt wird festgelegt) wird angezeigt.

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

Im folgenden Beispiel wird RSA 1024 für alle Zeitstempelzertifikate im Rahmen von Stammzertifizierungsstellen von Drittanbietern deaktiviert, während signierte Binärdateien mit Datumsangaben vor März 2013 akzeptiert werden. Dies gilt nicht für andere EKUs.

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


Das Weak Crypto-Framework ermöglicht Administratoren das Festlegen eines Protokollierungsverzeichnisses für alle Zertifikate, die gemäß den Einstellungen als schwach eingestuft werden.

Zum Aktivieren der Protokollierung können Administratoren ein Protokollierungsverzeichnis festlegen, indem sie entweder einen Registrierungseintrag hinzufügen oder den certutil-Befehl wie folgt (%%amp;quot;c:\Log%%amp;quot; muss erstellt werden und über die richtigen Berechtigungen verfügen) mit Einstellungen für die schwache Kryptografie ausführen:

Certutil -setreg chain\WeakSignatureLogDir c:\log

Außerdem kann die Registrierung auch direkt aktualisiert werden:

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

Die Flags müssen aktualisiert werden, um die Protokollierung von CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG (0x00000004) zu aktivieren, wie im folgenden Beispiel gezeigt. Dabei wird das Weak Crypto-Verfahren auf alle EKUs angewendet, und die schwachen MD5-Drittanbieterzertifikate werden unter %%amp;quot;c:\log%%amp;quot; protokolliert.

Certutil -setreg chain\WeakMD5ThirdPartyFlags  0x80010004

Das Weak Crypto-Framework verfügt auch über ein Feature, mit dem Administratoren die Protokollierung nutzen können, ohne dass Kettenaufbaufehler zurückgegeben werden. Zum Festlegen müssen Benutzer CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG (0x00000008) einfügen. Beispielsweise wird der Modus %%amp;quot;Nur überwachen%%amp;quot; für alle schwachen EKU-MD5-Verschlüsselungen von Drittanbieterzertifikaten wie folgt aktiviert:

Certutil -setreg chain\WeakSignatureLogDir c:\log

und

Certutil -setreg chain\WeakMD5ThirdPartyFlags  0x80010008

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft