IIS - Konfigurieren starker Cipher-Suites

Das nachfolgende Anleitung stellt sicher, dass schwächere kryptografische Algorithmen im Windows-Register deaktiviert sind.

Beschränkung auf bestimmte Verschlüsselungsalgorithmen und Protokolle in Schannel.dll

Die Registrierungsschlüssel und ihre Werte in Windows Server 2008, Windows 7 und Windows Server 2008 R2 sehen anders aus als in Windows Server 2003 und früheren Versionen. Die Registrierungsschlüssel in Windows 7, Windows Server 2008 und Windows Server 20008 R2 und Standardwerte sind wie folgt:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel]
"EventLogging"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Ciphers]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\CipherSuites]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Hashes]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\KeyExchangeAlgorithms]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0\Client]
"DisabledByDefault"=dword:00000001

Dieser Inhalt wird im regulären REGEDIT-Exportformat angezeigt.

Hinweis:

  • Der Chipher-Schlüssel darf keinen Wert oder Unterschlüssel enthalten.
  • Der CipherSuites-Schlüssel darf keinen Wert oder Unterschlüssel enthalten.
  • Der Hash-Schlüssel darf keinen Wert oder Unterschlüssel enthalten.
  • Der KeyExchange-Algorithmusschlüssel darf keinen Wert oder Unterschlüssel enthalten.
  • Der Protokollschlüssel muss folgende Unterschlüssel und Werte enthalten:
    • Protocols
      • SSL 2.0
        • Cliënt
          • DisabledByDefault REG_DWORD 0x00000001 (value)

Windows Server 2008, Windows Server 2008 R2 und Windows 7 unterstützen die folgenden Protokolle:

  • SSL 2.0
  • SSL 3.0
  • TLS 1.0
  • TLS 1.1
  • TLS 1.2

Diese Protokolle können in der Server- oder Client-Umgebung deaktiviert werden. Die folgenden Szenarien sind möglich:

  • Das Protokoll ist in der Liste der unterstützten Protokolle während dem Client-Hallo, wenn eine SSL-Verbindung gestartet wird, nicht enthalten.
  • Das Protokoll ist auf dem Server deaktiviert. Dieser Antwortet nicht, da dieses Protokoll nicht verwendet wird, auch wenn der Client eine Anfrage für SSLv3.0 stellt.

Die Client- und Serverunterschlüssel beziehen sich auf jedes Protokoll. Ein Protokoll für den Client oder für den Server kann deaktiviert werden. Stellen Sie sicher, dass die Deaktivierung von Chiphers, Hashes oder CipherSuites sowohl den Client als auch den Server betriffen. Unter dem Schlüssel Protokolle müssen die erforderlichen Unterschlüssel erstellt werden, um dies zu erreichen. Zum Beispiel:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0\Client]
"DisabledByDefault"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0\Server]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Client]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.0]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.0\Client]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.0\Server]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.1]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.1\Client]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.1\Server]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.2]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.2\Client]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.2\Server]

Wenn die Unterschlüssel generiert wurden, sieht das Register wie folgt aus:

IIS Strong CipherSuites

Client SSL 2.0 ist in Windows Server 2008, Windows Server 2008 R2 und Windows 7 standardmäßig deaktiviert. Dies bedeutet, dass der Client SSL 2.0 nicht zum Starten eines Client Hello verwendet. Das Register wird wie folgt aussehen:

IIS Strong CipherSuites

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0\Client]
"DisabledByDefault"=dword:00000001

Genau wie Chiphers und KeyExchange-Algorithmen können Protokolle aktiviert oder deaktiviert werden. Wählen Sie die Seite der Verbindung aus, für die das Protokoll aktiviert werden soll, und fügen Sie den Wert "Enabled" = dword: 00000000 hinzu. Dies deaktiviert andere Protokolle. Im folgenden Beispiel wird SSL 2.0 für den Server und auch SSL 2.0 für den Client deaktiviert:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0\Client]
"DisabledByDefault"=dword:00000001 <Default client disabled>
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000 <Disables SSL 2.0 server-side>

Nachdem Sie die Änderungen vorgenommen haben, starten Sie den Server neu.

SSLCheck

SSLCheck überprüft, ob Ihr Zertifikat ordnungsgemäß auf Ihrem Server installiert ist und ob es potenzielle Probleme gibt.