In den vorherigen Blog-Artikeln wurde allgemein über die Herausforderungen beim Thema E-Mail Sicherheit, die Möglichkeiten der TLS Übertragungsverschlüsselung und der E-Mail Signierung und Verschlüsselung mit S/MIME gesprochen.
In diesem Blog-Artikel werden die Verschlüsselungskomponenten beschrieben, die sowohl für die Sicherung des Übertragungskanals, als auch für die Nachrichtenverschlüsselung verwendet werden. Der Schwerpunkt des Artikels liegt auf der Security Provider Implementierung von Microsoft.
Secure Channel ist das Security Support Provider Interface (SSPI) von Microsoft und wird von den unterschiedlichen Betriebssystemen bei Authentifizierungsvorgängen und bei verschlüsselter Kommunikation verwendet. Die unterstützen Verschlüsselungsalgorithmen variieren sehr stark, je nach Version des verwendeten Betriebssystems.
Eine sog. Cipher Suite beschreibt ein Sammlung von kryptografischen Algorithmen, die zur Schlüsselerstellung, Schlüsselaustausch und zur Verbindungsherstellung verwendet werden. Im Regelfall verwenden Softwarekomponenten auf Windowssystemen (Client und Server) die SCHANNEL Konfigurationen zur Verschlüsselung und Abwicklung der Kommunikation.
Jede zur Verfügung stehende Cipher Suite beschreibt eine festgelegte Kombination von
Die von Windows Server 2012R2 unterstützten Cipher Suites sind:
TLS_RSA_EXPORT_WITH_RC4_40_MD5
TLS_RSA_EXPORT1024_WITH_RC4_56_SHA
TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA
SSL_CK_RC4_128_EXPORT40_MD5
SSL_CK_DES_64_CBC_WITH_MD5
TLS_RSA_WITH_DES_CBC_SHA
TLS_RSA_WITH_NULL_MD5
TLS_RSA_WITH_NULL_SHA
TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA
TLS_DHE_DSS_WITH_DES_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P521
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P521
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P521
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P521
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521
Diese Suites werden zwar unterstützt, stehen aber nach einer Standardinstallation des Betriebssystems nicht zur Verfügung. Hierzu muss die SCHANNEL Konfiguration per Registry angepasst werden. Mehr dazu im Abschnitt "SCHANNEL Konfiguration".
Der Aufbau einer TLS Verbindung gliedert sich in 4 Schritte:
In der nachfolgenden Beschreibung entspricht der Client dem sendenden (Verbindung aufbauenden) System und der Server dem empfangenden System.
Hinweis: Bei der Konfiguration der Cipher Suites Reihenfolge sollte darauf geachtet werden, dass zwar zuerst Suites mit PFS konfiguriert werden, jedoch ein Fallback ohne PFS ebenfalls angeboten wird.
Die Cipher Suite Reihenfolge legt fest, welche Suite zuerst und welche zuletzt verwendet werden soll.
In der Windows Systemregistrierung die zur Verfügungen stehenden Cipher Suites nach einer Basis Installation nicht konfiguriert. Der nachfolgende Screenshot zeigt den Registrierungsschlüssel SCHANNEL.
Einzig die zur Verfügung stehenden Protokolle (SSL/TLS) sind konfiguriert.
Die verfügbaren Cipher Suites und die eigentliche Reihenfolge der Suites werden in zwei unterschiedlichen Registrierungsschlüsseln konfiguriert.
Verfügbare Cipher Suites: HKLM\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002
Reihenfolge der Cipher Suites: HKLM\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002
Hinweis: Der Registrierungsschlüssel für die Liste der Cipher Suites ist begrenzt auf 1023 Zeichen.
HINWEIS: Die direkte und eventuell fehlerhafte Anpassung der Windows Registry kann zur Instabilität des Betriebssystems führen. Die nachfolgende Beschreibung erfolgt nach bestem Wissen. Jedoch können wir keine Haftung für eventuelle Schäden übernehmen.
Die Konfiguration der Cipher Suites erfolgt im nachfolgenden Beispiel unter Verwendung des Tools IIS Crypto.
IIS Crypto ist ein Hilfsmittel, um die Konfiguration in der Windows Registry einfacher zu gestalten. Jedoch muss man bei Einsatz bedenken, dass beim Start des Programmes nicht die tatsächlich vorhandene Konfiguration der Systemregistrierung ausgelesen und angezeigt wird, sondern vielmehr die Standardkonfiguration von IIS Crypto.
IIS Crypto bietet vorkonfigurierte Konfigurationen für:
Nach der Anpassung der Cipher Suite Konfiguration (im nachfolgenden Beispiel die Best Practices Konfiguration), sind die neuen Schlüssel und Parameter in der Systemregistrierung vorhanden.
Je nach Typ (Protokoll oder Cipher Komponente) werden zur Aktivierung bzw. Deaktivierung folgende Schlüssel verwendet:
Eine Beschreibung zur manuellen Konfiguration der Systemregistrierung finden Sie bei Microsoft hier: http://support2.microsoft.com/default.aspx?scid=kb;EN-US;245030
Wenn eine besonderen Anforderungen an die Absicherung der Server-Kommunikation mit externen Systemen besteht, was eigentlich immer der Fall ist, muss eine zusätzlich Konfiguration des Secure Channel Providers erfolgen. Im Normallfall kann die einheitlich über Gruppenrichtlinien erfolgen. Verwenden Sie aber Systeme, die keine Mitgliedsserver einer Domäne sind, so müssen diese Systemen manuell über die Systemregistrierung oder durch Verwendung der lokalen Sicherheitsrichtlinie erfolgen.
Die Konfiguration des Secure Channel hat eine direkte Auswirkung auf die TLS Verschlüsselung aller TCP Protokolle. Durch die unterschiedlichen Implementierungen bei unterschiedlichen Betriebssystemen müssen die Anpassungen mit Bedacht durchgeführt werden.
Sollte es Gründe geben, dass Sie eine FIPS- oder PCI-konforme Konfiguration vornehmen müssen, gibt es allerdings keine Alternative zur Umsetzung der Vorgaben.
Haben Sie Fragen rund um das Thema E-Mail Verschlüsselung und E-Mail Sicherheit? Kontaktieren Sie uns unter: emailsecurity@granikos.eu.