Für den Administrator, Programmierung

Sicherheit bei SSL/TLS-Verbindungen

Verschlüsselte Verbindungen sind heute unverzichtbar, wenn nicht-öffentliche Daten via Internet zu transportieren sind. Im Angesicht der Aktivtäten von Geheimdiensten und Kriminellen ist dabei ein möglichst hohes Sicherheitsniveau anzustreben. Die kommende Version 5.7.07 bietet neue Optionen, um die Sicherheit bei SSL/TLS zu erhöhen.


Aktuell verwendet CONZEPT 16 die SSL/TLS-Verschlüsselung optional bei den Funktionen SckConnect, MailOpen (aktiver Verbindungsaufbau) und im SOCKET-Mode des SOA-Service (passiver Verbindungsaufbau). Ab Version 5.7.07 werden der Schlüsselaustausch mit Diffie-Hellman sowie Elliptic-Curves-Verfahren unterstützt, das Protokoll SSL 2.0 wird aufgrund seiner Sicherheitsmängel nicht mehr verwendet.

Bei den Funktionen SckConnect und MailOpen ist das Sicherheitsniveau durch eine Mindestanforderung definierbar, grundsätzlich sind in einer niedrigen Stufe auch alle Verfahren der höheren Stufen enthalten. Somit definiert eine Stufe das jeweilige Minimum an Sicherheit. Es stehen vier verschiedene Stufen zur Verfügung:

Maximal_SckTlsMax

Die maximale Sicherheitsstufe unterstützen aktuell nur wenige SSL-Clients und -Server. Es wird ausschließlich die Protokollversion TLS 1.2 verwendet, Forward Secrecy ist obligatorisch, daher geht der Schlüsselaustausch nur mit Diffie-Hellman, optional mit Elliptic Curves. Es wird ausschließlich mit 256 Bit verschlüsselt. Beim Schlüsselaustausch mit Diffie-Hellman werden im Clientmodus die DH-Längen 512, 1024, 2048 und 4096 Bit unterstützt. Beim SOA-Service wird eine DH-Länge von 2048 Bit verwendet. Die folgenden Cipher-Einstellungen sind definiert:

Protokolle: TLS 1.2
Schlüsselaustausch: ECDHE, DHE
Authentifikation: RSA
Verschlüsselung: AES-256, CAMELLIA-256
Überprüfung: AEAD, SHA-2, SHA-1

Hoch_SckTlsHigh

Zur Erhöhung der Kompatibilität erlaubt diese Stufe auch die älteren Protokolle TLS 1.0 und 1.1 sowie den Schlüsselaustausch mit RSA. Beim RSA-Schlüsselaustausch ist keine Forward Secrecy gegeben. Die Verschlüsselung erfolgt mit 256 oder 128 Bit, wobei aktuell auch 128 Bit noch als sicher anzusehen sind. Die folgenden Cipher-Einstellungen sind definiert:

Protokolle: TLS 1.2, TLS 1.1, TLS 1.0
Schlüsselaustausch: ECDHE, DHE, RSA
Authentifikation: RSA
Verschlüsselung: AES-256, CAMELLIA-256, AES-128, CAMELLIA-128
Überprüfung: AEAD, SHA-2, SHA-1

Mittel_SckTlsMed

Zusätzlich zu den bei _SckTlsHigh unterstützten Verfahren wird für die Kompatibilität mit älteren Versionen (beispielsweise Windows XP mit IE6) auch das inzwischen veraltete Protokoll SSL 3.0 und die Verschlüsselung mit RC4 und 3DES erlaubt. Sowohl RC4 als auch 3DES sind angreifbar und bieten somit keinen hundertprozentigen Schutz mehr. Die folgenden Cipher-Einstellungen sind definiert:

Protokolle: TLS 1.2, TLS 1.1, TLS 1.0, SSL 3.0
Schlüsselaustausch: ECDHE, DHE, RSA
Authentifikation: RSA, ECDSA
Verschlüsselung: AES-256, CAMELLIA-256, AES-128, CAMELLIA-128, RC4, 3DES, SEED
Überprüfung: AEAD, SHA-2, SHA-1

Niedrig_SckTlsLow

Diese Sicherheitsebene sollte nur in den Ausnahmefällen verwendet werden, in denen sonst keine Verbindung mit veralteten Servern hergestellt werden kann. Aufgrund der hier auch erlaubten unsicheren Verfahren und schwachen Verschlüsselungen von SSL 2.0 ist die Sicherheit der übertragenen Daten unter Umständen gefährdet. Daher kann diese Stufe auch nicht beim SOA-Service verwendet werden. Die folgenden Cipher-Einstellungen sind definiert:

Protokolle: TLS 1.2, TLS 1.1, TLS 1.0, SSL 3.0
Schlüsselaustausch: ECDHE, DHE, RSA, ECDH, DH
Authentifikation: RSA, ECDSA, DSS
Verschlüsselung: AES-256, CAMELLIA-256, AES-128, CAMELLIA-128, RC4, 3DES, SEED, DES, RC2, IDEA
Überprüfung: AEAD, SHA-2, SHA-1, MD5

Die bisher verwendeten Konstanten _SckSSLv2, _SckSSLv3 und _SckTLSv1 werden nicht mehr benötigt. Bei Angabe einer dieser Konstanten wird die mittlere Sicherheitsstufe benutzt.

SOA-Service

In der Konfigurationsdatei des SOA-Service kann die Sicherheitsstufe mit dem Parameter "tls_security_level" auf die Werte "med", "high" oder “max” eingestellt werden. Die Default-Einstellung ist die mittlere Stufe (“med”). Der RSA-Schlüssel des verwendeten Zertifikats sollte wenigstens 2048 Bit lang sein, RSA-Schlüssel mit 1024 Bit gelten nicht mehr als sicher.
Update – 27.05.2015

Liste der unterstützen Cipher-Suites aktualisiert.

Download

Liste der unterstützen Cipher-Suites cipher_suites.txt (11.95 KB)
Sie müssen angemeldet sein, um die Datei herunterladen zu können.

1 Kommentar

1 Kommentar zu “Sicherheit bei SSL/TLS-Verbindungen”

  1. Super. Das sind gute Neuigkeiten.

    Ich habe zwar noch nicht die Version 5.7.07, aber dafür 5.7.06d und in der habe ich’s gleich mal ausprobiert und es funktioniert m. E. auch bereits in dieser Version. Bei Angabe von _SckTlsHigh habe ich erfolgreich eine verschlüsselte Verbindung geöffnet und die Abbfarge der TLS-Version auf dem Socket lieferte hinterher die Ausgabe ‘TLSv1.2’.

Kommentar abgeben