Diffie-Hellman-Schlüsselaustausch auf 4096 Bit erhöhen

Es gibt nach wie vor Anwendungen, welche ausschließlich für Windows Server bzw. Microsoft Internet Information Services (IIS) entwickelt werden. Das an sich ist seit 20 Jahren so und wird auch in 20 Jahren noch so sein. Soll die Applikation auch über das Internet erreichbar sein,  stehen bei dem einem oder anderem Sysadmin die Nackenhaare.

Standardmäßig sind unter Windows Server Protokolle wie TLS 1.0/1.1 und 1.2 aktiviert. Viel schlimmer ist die verwendete Cipher Suites bzw. deren Reihenfolge. Unter Windows Server erfolgt die vollumfängliche Konfiguration über den Registry-Editor – kein Scherz. Inzwischen gibt es aber diverse Tools, wie zum Beispiel IIS Crypto, welche eine grafische Oberfläche bzw. eine übersichtliche Kommandozeile zur Verfügung stellt. Damit lassen sich 90% der notwendigen Arbeiten erledigen.

Nun ist es so, dass Microsoft standardmäßig beim RSA Key Exchange eine Länge von 1024 Bits vorgibt. Das ist auch so in den Microsoft Docs unter CryptoAPI Cryptographic Service Providers festgehalten. Ganz einfach kann man dies auch mit dem SSL Server Test von Qualys SSL Labs gegenprüfen.

Um Länge von standardmäßig 1024 Bits auf 4096 Bits zu erhöhen, muss ein Registry Wert angepasst werden. Dazu den Registrierungseditor als Administrator starten. In den Schlüssel „HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman“ navigieren. Dort gibt es einen Wert mit dem Namen „ServerMinKeyBitLength“.

Der neue Wert muss 0x00001000 (4096) sein. Dieser kann Hexadezimal oder Dezimal eingetragen werden. Nach der Anpassung des Werts muss der betroffene Server neu gestartet werden, damit die Änderung wirksam wird.

Ein erneuter SSL Server Test zeigt nun auf, dass DH 4096 Bits verwendet wird. Damit ist dieser aktuell auch nicht mehr als „schwach“ eingestuft.

Bis wann Microsoft den Standardwert auf 2048 bzw. 4096 Bits erhöht, konnte ich bisher nicht in Erfahrung bringen. Viel Spaß beim Ausprobieren. 🙂