Absichern der Windows Secure Channel (Schannel)-Bibliothek
In den letzten zwei Jahren gab es viele Bedrohungen im Bereich SSL/TLS-Verschlüsselungen, jedoch auch neue Standards und Sicherheitsgrundsätze. Im Gegensatz zu Linux wird unter Windows anstatt der OpenSSL-Bibliothek für die SSL/TLS-Verschlüsselung die Secure Channel Bibliothek Schannel eingesetzt. Dadurch blieb man zwar von dem sogenannten Heartbleed-Bug verschont, allerdings wurden etwas später weitere Bugs (u. a. Poodle) im veralteten Verschlüsselungsstandard SSL (dem Vorgänger des aktuellen TLS-Standards) gefunden, die Administratoren von Windows Server-Systemen beachten sollten.
Die Standardeinstellung von Schannel in den Windows-Server-Versionen 2008 R2 bis 2012 R2 ist leider nicht optimal und mittlerweile technisch überholt. So ist beispielsweise unter Server 2008 R2 im Standard noch SSL 2.0/3.0 aus den Jahren 1995/96 aktiv. Beide Verschlüsselungsstandards gelten inzwischen als Sicherheitsrisiko und sollten baldmöglichst durch TLS 1.0 – 1.2 ersetzt werden. Das gleiche gilt auch für die Stromverschlüsselung RC4 (BEAST).
Der aktuelle Status über SSL/TLS veröffentlichter HTTPS-Websites kann über den SSLTest der IT-Sicherheitsfirma Qualys überprüft werden. Wenn der Test Ergebnisse wie die folgenden auswirft, sollte die Schannel-Bibliothek wie anschließend beschrieben konfiguriert werden, um ein A-Rating zu erhalten.
Das Ergebnis für den Windows Server 2008 R2 ohne Updates mit den Standardeinstellungen sieht wie folgt aus:
Unter der derzeit aktuellen Version 2012 R2 sieht es schon besser aus:
Selbst mit Server 2008 R2 lässt sich ein A-Rating erreichen, wenn man die nachfolgende Anleitung befolgt. Die Konfiguration von Schannel läuft dabei ausschließlich über die Registrierungsschlüssel unterhalb von HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL und SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL in der Windows-Registry. Änderungen sind immer erst nach einem Neustart aktiv.
- Installation aller verfügbarer Windows-Sicherheits-Patches
- Backup Registry Key SCHANNEL (Speicherort für Schannel-Konfiguration)
- Backup Registry Key SSL (Speicherort für die Anordnung der Cipher-Suites)
- Die genaue Dokumentation der Registry-Einstellungen für Schannel sind im Microsoft KB-Artikel KB187498 und im Technet-Blog zu finden. Alternativ können die Einstellungen wie folgt auch über das Tool IIS Crypto erfolgen:
Anschließend muss noch die bevorzugte Anordnung der Cipher Suites angepasst werden, damit das Sicherheitsfeature Perfect Forward Secrecy aktiv ist.
- Die Anordnung kann per passender Gruppenrichtlinie unter Computer Configuration > Administrative Templates > Network > SSL Configuration Settings > SSL Cipher Suite Order erfolgen:
Alternativ kann hierfür auch wieder das Tool IIS Crypto verwendet werden.Derzeit empfiehlt sich hierfür folgende Anordnung:
‚TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521‘,‚TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384‘,
‚TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521‘,
‚TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384‘,
‚TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256‘,
‚TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521‘,
‚TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384‘,
‚TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256‘,
‚TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P521‘,
‚TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384‘,
‚TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256‘,
‚TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521‘,
‚TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P521‘,
‚TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384‘,
‚TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256‘,
‚TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384‘,
‚TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256‘,
‚TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521‘,
‚TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384‘,
‚TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P521‘,
‚TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384‘,
‚TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256‘,
‚TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521‘,
‚TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384‘,
‚TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256‘,
‚TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P521‘,
‚TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384‘,
‚TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256‘,
‚TLS_RSA_WITH_AES_256_GCM_SHA384‘,
‚TLS_RSA_WITH_AES_128_GCM_SHA256‘,
‚TLS_RSA_WITH_AES_256_CBC_SHA256‘,
‚TLS_RSA_WITH_AES_256_CBC_SHA‘,
‚TLS_RSA_WITH_AES_128_CBC_SHA256‘,
‚TLS_RSA_WITH_AES_128_CBC_SHA‘
“TLS_RSA_WITH_AES_256_GCM_SHA384” und “TLS_RSA_WITH_AES_128_GCM_SHA256”
sollten nur unter Server 2012 R2 und höher aktiv sein, da das entsprechende Update KB2992611 für die älteren Serverversionen Fehler enthält, die zum Verbindungsabbruch führen können (siehe KB-Artikel).
Windows Server 2016 bringt neue Cipher Suites auf Basis von GCM mit. Des Weiteren ist die Schlüssellänge für die DH-Cipher auf 2048 Bit (Logjam-Lücke) gestiegen. Daher können bei Server 2016 zusätzlich zur vorherigen Anordnung folgende Cipher ganz nach vorne gestellt werden:
‚TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384_P521‘,
‚TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384_P384‘,
‚TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_P521‘,
‚TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_P384‘,
‚TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_P256‘,
‚TLS_DHE_RSA_WITH_AES_256_GCM_SHA384‘,
‚TLS_DHE_RSA_WITH_AES_128_GCM_SHA256‘,
Zu beachten ist, dass die Cipher TLS_ECDHE_ECDSA_* nur bei ECC-Zertifikaten (Eliptic Curve Cryptography) und nicht bei normalen Zertifikaten auf Basis eines RSA-Private-Keys aktiv sind.
Google Chrome zeigt derzeit bei allen Cipher Suites, die nicht auf GCM und Perfect Forward Secrecy basieren, den Hinweis „obsolete cipher suite“ in den Verbindungseigenschaften an:
Diese Warnung lässt sich derzeit unter Schannel nur mit einem ECC-Zertifikat (dann wird der ECDSA Cipher mit GCM verwendet) oder dem zukünftigen Einsatz von Windows Server 2016 verhindern.
- Die geänderte Konfiguration ist erst nach einem Serverneustart aktiv und sollte ein A-Rating im SSL-Test zufolge haben: