Das Hauptziel von Transport Layer Security (TLS) ist es, Vertraulichkeit und Integrität von Kommunikationskanälen sicherzustellen. Um diesem Ziel gerecht zu werden, sollten Server stets so konfiguriert werden, dass nur als „sicher“ anerkannte kryptographische Bausteine für TLS-Verbindungen verwendet werden können.
In fast jedem Sicherheitsaudit rapportiert Oneconsult Risiken im Zusammenhang mit der TLS-Konfiguration der Server. Wurden vor nicht allzu langer Zeit noch recht häufig veraltete und unsichere Protokollversionen (SSLv2, SSLv3, TLS 1.0, TLS 1.1) unterstützt, so ist dies – seit diese offiziell als veraltet gelten – glücklicherweise immer seltener der Fall. Die aktuell am weitesten verbreitete Protokollversion TLS 1.2 unterstützt – im Gegensatz zum seit 2019 offiziellen Standard TLS 1.3 – neben sicheren Chiffren auch solche, die in unterschiedlichem Maß als unsicher gelten und von Oneconsult in aller Regelmäßigkeit vorgefunden werden (am häufigsten CBC-Chiffren). Beides kann dazu führen, dass Vertraulichkeit und Integrität der übermittelten Daten nicht sichergestellt sind.
Die angesprochenen Risiken können relativ einfach durch eine „sichere“ TLS-Konfiguration vermieden werden. Ein gutes Hilfsmittel dazu stellt Mozilla in Form einer Seite mit Empfehlungen [1] zur serverseitigen TLS-Konfiguration bereit. Die Seite wird immer wieder auf den neuesten Stand gebracht. Seit neuestem gibt es auch den SSL Configuration Generator [2]. Die Empfehlungen von Mozilla sollen helfen, eine „sichere“ TLS-Konfiguration zu erstellen. Auf der Seite wird dabei zwischen drei Konfigurationen unterschieden – zwei „sicheren“ und einer „unsicheren“ (Kompatibilität mit alten Clients und Bibliotheken):
- „Modern“
- für moderne Clients ohne Rückwärtskompatibilität
- nur TLS 1.3
- Client wählt die verwendete Chiffre
- „Intermediate“
- empfohlen für die meisten Server
- TLS 1.2 mit ausschließlich „sicheren“ Chiffren und TLS 1.3
- Client wählt die verwendete Chiffre
- „Old“
- Sollte NICHT verwendet werden! Diese Konfiguration enthält „unsichere“ kryptographische Bausteine!
- für Services, die von sehr alten Clients oder Bibliotheken verwendet werden
- TLS 1.0, TLS 1.1, TLS 1.2 auch mit „unsicheren“ Chiffren» zugunsten der Kompatibilität und TLS 1.3
- Server wählt die verwendete Chiffre
Die Konfiguration „Old“ sollte ausschließlich verwendet werden, wenn die Clients oder Bibliotheken derart veraltet sind, dass sie mit der „Intermediate“-Konfiguration die fraglichen Services nicht nutzen könnten. Außerdem wird hier davon ausgegangen, dass der Server TLS 1.2 unterstützt – andernfalls müssen gegebenenfalls Anpassungen an der Chiffrenliste vorgenommen werden. Auf der Seite findet sich zudem eine Tabelle, welche Konfiguration für verschiedene Browser, Java und OpenSSL jeweils ab welcher Version unterstützt wird.
Die Konfiguration „Intermediate“ dürfte für die meisten Zwecke das Mittel der Wahl sein. Mit Servern, auf denen diese Konfiguration umgesetzt ist, können alle gängigen Clients TLS-Verbindungen aufbauen.
Aufgrund der noch nicht so weiten Verbreitung von TLS 1.3 schränkt die Konfiguration „Modern“ die Clients, die per TLS mit dem Server kommunizieren können, möglicherweise deutlich ein.
Folgt man bei der TLS-Konfiguration „Intermediate“ oder „Modern“, so werden ausschließlich „sichere“ Chiffren angeboten. Der SSL Configuration Generator [2] bietet zudem für diverse Serversoftware die Möglichkeit, unter Angabe der Mozilla-Konfiguration (Modern, Intermediate, Old) sowie der Server- und OpenSSL-Version Beispielcode für die Konfigurationsdatei zu generieren. Dieser kann per „Copy and Paste“ und wenigen Anpassungen (z.B. Zertifikatspfade) in die entsprechenden Konfigurationsdateien übernommen werden. Zur Auswahl stehen dabei gängige Webserver (Apache, nginx, Tomcat etc.), einige Cloud-Software (AWS ALB; AWS ELB), aber auch Datenbanken (MySQL, PostgreSQL), Mail (Dovecot) oder FTP-Server (ProFTPD).
Mit den von Mozilla bereitgestellten Hilfsmitteln lässt sich also mit geringem Aufwand eine sichere TLS-Konfiguration für die eigenen Server erstellen, ohne dass viel Zeit in Recherche gesteckt werden muss. Als Bonus zur sicheren TLS-Konfiguration gehören die am Anfang angesprochenen rapportierten Risiken bei Security Audits erst einmal der Vergangenheit an. Das National Cybersecurity Center Großbritanniens hat kürzlich eine ähnliche Guideline [3] zur TLS-Konfiguration veröffentlicht.
Über Oneconsult
Die Oneconsult-Unternehmensgruppe ist seit 2003 Ihr renommierter Schweizer Cybersecurity Services Partner mit Büros in der Schweiz und Deutschland und 2000+ weltweit durchgeführten Security-Projekten.
Erhalten Sie kompetente Beratung vom inhabergeführten und herstellerunabhängigen Cybersecurity-Spezialisten mit 40+ hochqualifizierten Cybersecurity Experten, darunter zertifizierte Ethical Hacker / Penetration Tester (OPST, OPSA, OSCP, OSCE, GXPN), IT-Forensiker (GCFA, GCFE, GREM, GNFA), ISO Security Auditoren (ISO 27001 Lead Auditor, ISO 27005 Risk Manager, ISO 27035 Incident Manager) und dedizierte IT Security Researcher, um auch Ihre anspruchsvollsten Herausforderungen im Informationssicherheitsbereich zu bewältigen. Gemeinsam gehen wir Ihre externen und internen Bedrohungen wie Malware-Infektionen, Hacker-Attacken und APT sowie digitalen Betrug und Datenverlust mit Kerndienstleistungen wie Penetration Tests / Ethical Hacking, APT Tests unter Realbedingungen und ISO 27001 Security Audits an. Bei Notfällen können Sie rund um die Uhr (24 h x 365 Tage) auf die Unterstützung des Digital Forensics & Incident Response (DFIR) Expertenteams von Oneconsult zählen.
[1]: https://wiki.mozilla.org/index.php?title=Security/Server_Side_TLS&action=history
[2]: https://ssl-config.mozilla.org/
[3]: https://www.ncsc.gov.uk/guidance/using-tls-to-protect-data