de-DEen-GB
 
rss

Granikos Technology Blog

E-Mail Verschlüsselung und Cipher Suites

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.

SCHANNEL - Secure Channel

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.

Cipher Suite

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

  1. FIPS Mode
  2. Unterstütztem Protokoll
  3. Algorithmus zum Schlüsselaustausch
  4. Algorithmus zur Verschlüsselung
  5. Algorithmus zum Hashing der Nachrichten

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_ECDSA_WITH_AES_128_GCM_SHA256_P384
  • 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:

  1. Handshake und Cipher Suite Aushandlung
  2. Authentifizierung der Teilnehmer
  3. Schlüsselaustausch
  4. Datenaustausch der Applikation

In der nachfolgenden Beschreibung entspricht der Client dem sendenden (Verbindung aufbauenden) System und der Server dem empfangenden System.

  1. Handshake
    • Bei Aufbau einer Verbindung sendet ein Client eine Liste der unterstützten Cipher Suites und der Server wählt eine angebotenen Suites auf Basis seiner konfigurierten, bevorzugten Reihenfolge aus und teilt dem Client das Ergebnis mit.
    • An dieser Stelle wird auch entschieden, ob die aufzubauende Verbindung Perfect Forward Secrecy (PFS) verwendet oder nicht. Wird eine Cipher Suite mit Ephemeral Diffie-Hellman (DHE) oder eine Elliptic-Curve Variante (ECDHE) ausgewählt, steht PFS zur Verfügung.
  2. Authentifizierung
    • Der Server sein öffentliches Zertifikat an den Client und fragt ggf. ein Zertifikat vom Client an.
    • Falls der Server an Zertifikat angefragt hat, sendet der Client sein Zertifikat an den Server.
  3. Schlüsselaustausch
    • Der Client erstellt ein zufälliges Pre-Master Secret und verschlüsselt es mit dem öffentlichen Schlüssel des Server-Zertifikates und sendet es an den Server.
    • Der Server und der Client erstellen nun auf Basis des Pre-Master Secret das eigentliche Master Secret und die Schlüssel für die Session.
    • Der Client sendet nun eine "Change Cipher Spec" Nachricht an den Server, und teilt so mit, das die neuen Sessionschlüssel für das Hashing und die ausgewählte Verschlüsselung verwendet werden.
    • Der Server empfängt die Nachricht und wechselt auf symmetrische Verschlüsselung unter Verwendung der Sessionschlüssel.
  4. Datenaustausch
    • Der sichere Kanal zwischen Client und Server ist hergestellt und Applikationsdaten können verschlüsselt übertragen werden.

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.

Cipher Suite Reihenfolge

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.

SCHANNEL Registry Key Übersicht

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

CurrentControlSet-Cryptography Node

Reihenfolge der Cipher Suites:
HKLM\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002

Policies Cryptography Registry Node 

Hinweis: Der Registrierungsschlüssel für die Liste der Cipher Suites ist begrenzt auf 1023 Zeichen.

SCHANNEL Konfiguration

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.

  1. Erstellen Sie ein Backup des Systems, bevor Sie Änderungen an der Systemregistrierung durchführen
  2. Erstellen Sie ein Backup des Systems, bevor Sie Änderungen an der Systemregistrierung durchführen

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:

  • FIPS 140-2
  • PCI
  • Best Practices

IIS Crypto FIPS KonfigurationIIS Crypto PCI KonfigurationIIS Crypto Best Practices Konfiguration

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.

IIS Crypto Best Practices Registry

Je nach Typ (Protokoll oder Cipher Komponente) werden zur Aktivierung bzw. Deaktivierung folgende Schlüssel verwendet:

  • Enabled, 0x0 oder 0xffffffff
  • DisabledByDefault, 0 oder 1

Eine Beschreibung zur manuellen Konfiguration der Systemregistrierung finden Sie bei Microsoft hier: http://support2.microsoft.com/default.aspx?scid=kb;EN-US;245030

Fazit

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.

Links

Mini-Serie E-Mail Sicherheit

Fragen zur E-Mail Sicherheit

Haben Sie Fragen rund um das Thema E-Mail Verschlüsselung und E-Mail Sicherheit? Kontaktieren Sie uns unter: emailsecurity@granikos.eu.



Kommentare sind geschlossen

Anzeigen 0 Kommentar