CESG veröffentlicht Leitlinien für die sichere TLS-Konfiguration auf Servern
Die britische Regierungsunterbehörde CESG hat Leitlinien für die sichere Konfiguration von TLS auf Servern, die Verbindungen von unbekannten Parteien zulassen, veröffentlicht. Im Wesentlichen wird in den Leitlinien die Verwendung von HTTPS mittels Extended Validation-Zertifikat (EV) forciert. Weiter geht es um das Sicherstellen, dass kompromittierte Zertifikate zurückgerufen werden können. Die weiteren Empfehlungen beinhalten das automatische Umleiten von Webanwendern auf eine HTTPS-Seite, wenn sie die HTTP-Version einer Website aufgerufen haben, um die Nutzung der neuesten Versionen von TLS-Bibliotheken sowie um das Aktivieren von HTTP Strict Transport Security (HSTS).
Alpha-Version der TLS-Guidance
Noch befinden sich die Richtlinien der britischen CESG im Alpha-Stadium; weitere Änderungen sind also noch sehr wahrscheinlich. Nichtsdestotrotz ist klar, wohin die Reise geht: Website-Admins wird empfohlen, auf HTTPS zu setzen und Extended Validation-Zertifikate zu verwenden. Ansprechen möchte die Behörde vorrangig den öffentlichen Sektor, in dem die IT in der Lage sein muss, eingehende Verbindungen von unbekannten Clients oder Services zu unterstützen. In den Richtlinien wird darauf hingewiesen, dass TLS in der Version 1.2 aktuell ist und verwendet werden sollte, da in puncto Sicherheit Verbesserungen vorgenommen wurden. Nicht mehr vertrauen sollten Sie dem Vorgänger SSL, da dieser in sämtlichen Versionen als unsicher gilt; wir berichteten jüngst über SSLv3.
TLS für Webserver: die Schwierigkeiten in der Konfiguration
Anwender, die Webserivces zur Kommunikation mit Behörden, Unternehmen oder Institutionen verwenden, müssen darauf vertrauen dürfen, dass ihre Kommunikation privat und frei von Störungen bleibt. Diese Sicherheit bietet das TLS-Protokoll. Wird TLS zusammen mit Webservern verwendet, wird aus HTTP HTTPS. Es existieren enorm viele Konfigurationsoptionen, die die Sicherheit von Services und der Kommunikation beeinflussen. Leider ist es so, dass Sie, wenn Sie die sicherste Konfiguration wählen, diverse User von Ihrem Online-Angebot ausschließen – nicht jede verwendete Software nutzt TLS in der aktuellsten Version. Mozilla bietet beispielsweise die Optionen, die TLS-Konfiguration „modern“, „intermediate“ oder „old“ zu wählen. Wird „old“ ausgewählt, werden auch unsichere SSL-Verbindungen zugelassen. Es gilt also, die Balance zwischen größtmöglicher Sicherheit und größtmöglicher Anwenderfreundlichkeit zu finden.
Webserver sollten so konfiguriert werden, dass neuere Protokollversionen grundsätzlich bevorzugt werden. Der Fallback auf ältere Standards soll erst unter gewissen Umständen geschehen. Mozilla hat zu diesem Thema einen Leitfaden veröffentlicht, der Empfehlungen zu der Priorisierungslogik gibt. Web-Services, auf die über bekannte Endgeräte zugegriffen wird, sollten ein Verschlüsselungsprofil bereitstellen, das recht engmaschig gefasst ist.
Konfigurationsempfehlungen für TLS auf Webservern
Drei weitere Leitfäden empfiehlt das CESG für die Konfiguration von TLS auf Webservern:
- Qualys: „SSL/TLS Deployment Best Practices“
- Google: „Webmasters: Secure Your Site with HTTPS“
- Mozilla: „Security/Server Side TLS“
Aus diesen Leitfäden leiten sich die Empfehlungen des CESG ab:
- Webservices veröffentlichen Sie ausschließlich mit HTTPS.
- Richten Sie eine automatische Umleitung auf die HTTPS-Version für User ein, die die HTTP-Version der Website aufrufen.
- verwenden Sie die neuesten Versionen der TLS-Bibliotheken und unterstützen Sie Web-Frameworks. Eventuelle Schwachstellen in den Bibliotheken können schnell ausgenutzt werden, wenn diese nicht zeitnah gepatcht werden.
- Folgen Sie den Best-Practice-Empfehlungen von Qualys; siehe „SSL/TLS Deployment Best Practices“
- Aktivieren Sie HSTS, um Browsern den Weg der sicheren Verbindung zu weisen. Dafür können Sie sich eine der beiden folgenden Methoden aussuchen:
- Ergänzen Sie den HSTS-Header, wenn Besucher via HTTPS auf Ihre Seite zugreifen. Damit weisen Sie den Browser an, künftig ausschließlich die HTTPS-Version der Site aufzurufen.
- Ergänzen Sie Ihre Website auf der HSTS Preload-Liste, die modernen Browsern sagt, dass HTTP-Aufrufe automatisch auf HTTPS umgeleitet werden. Die Liste von Googles Chrome-Browser, die zahlreiche andere Browserlisten inkludiert, finden Sie hier.
- Bedienen Sie sich einer Sicherheitsrichtlinie, die beim Entwerfen neuer Applikationen zum Tragen kommt. Dies von vornherein zu bedenken ist grundsätzlich einfacher, als Applikationen im Nachhinein zu optimieren.
- Ordern Sie Zertifikate ausschließlich von vertrauenswürdigen und seriösen Quellen.
- Nutzen Sie Extended Validation-Zertifikate (EV-Zertifikate), um das Vertrauen der Kunden in die Identität Ihres Dienstes zu erhöhen. Informationen über Unterschiede der EV- und anderer SSL-Zertifikate erfahren Sie in den Know-how-Texten unten auf dieser Site.
- Stellen Sie sicher, dass Sie kompromittierte Zertifikate zügig austauschen können. Ihre Zertifizierungsstelle sowie der Dienstleister, bei dem Sie Ihr Zertifikat erworben haben, unterstützen Sie hierbei idealerweise.
- Helfen Sie Usern, die mit veralteter Software/ Webbrowsern arbeiten, die aktuelle TLS-Algorithmen nicht unterstützen, indem Sie ihnen dazu raten, ihre Software bzw. ihren Webbrowser auf eine aktuelle Version upzudaten.
TLS für E-Mail-Server
Immer dann, wenn E-Mails über einen unsicheren Kanal, wie dem Internet, versendet werden, sollten diese vor Manipulation geschützt werden. Dies erreichen Sie durch die Verschlüsselung der versendeten E-Mail, beispielsweise mithilfe von PGP oder S/MIME: neben der Vertraulichkeit sind auch die Integrität der Nachricht und die Echtheit des Absenders gesichert. Leider funktioniert verschlüsselte Kommunikation nur, wenn Sender und Empfänger mittels eines E-Mail-Clients kommunizieren, welche die erforderliche Public Key Infrastructure unterstützen und beide ein S/MIME-Zertifikat besitzen. Dies ist nicht praktikabel bei Kommunikation mit externen Parteien, voll allem wenn der Kommunikationspartner kein S/MIME-Zertifikat besitzt. Daher empfiehlt das CESG Internet-gerichtete Mail-Server (insbesondere solche, die als Mail Transfer Agents fungieren) so zu konfigurieren, dass sie TLS in den aktuellsten Versionen unterstützen, um E-Mails mit Hilfe der STARTTLS-Methode auf ihrem Weg zwischen Mail-Servern zu schützen.
Verbindungen zwischen SMTP-Servern mittels Mail Transfer Agents (MTAs) verwenden normalerweise den TCP Port 25. SMTP-Verbindungen zwischen zwei MTAs können mit STARTTLS gesichert werden. Haben beide Parteien gut konfiguriert, wandelt dies eine unsichere SMTP-Verbindung in eine sichere um; anschließende SMTP-Befehle werden über eine verschlüsselte Verbindung gesendet. Das CESG empfiehlt dem öffentlichen Sektor, STARTTLS für sämtliche mit dem Internet verbundenen MTAs zu verwenden.
Bei der Konfiguration von E-Mail-Servern besteht noch mehr die Problematik, schwächere Verschlüsselungsprotokolle und -profile unterstützen zu müssen, teilweise besteht sogar die Notwendigkeit, im Klartext versendete E-Mails zu empfangen. Mit Kommunikationspartnern, mit denen Sie regelmäßig via E-Mail kommunizieren, etwa Kommunikationen zwischen zwei Behörden, die sich regelmäßig austauschen, können Sie sich auf ein Profil einigen, sodass TLS grundsätzlich und automatisch verwendet wird, um beide Parteien zu identifizieren.
Empfehlungen für die sichere Konfiguration von E-Mail-Servern
Damit eine TLS-Verbindung aufgebaut werden kann, benötigt der User eine Verbindung zu Ihrem Service, wobei die Identität des Servers durch ein X.509v3-Zertifikat validiert wird. Bedeutet: Für Ihren Service benötigen Sie ein Zertifikat, das von einer CA gezeichnet wurde. Verwenden Sie einen Cloud-basierten E-Mail-Anbieter oder routen Sie Ihre E-Mails über einen SMTP-Relay-Server, sollte dieser Vorgang vom jeweiligen Anbieter mit übernommen werden. Betreiben Sie Ihre eigenen MTAs, wählen Sie Ihre CA bitte mit Bedacht und fordern Sie ein EV-Zertifikat mit starken Sicherheitsparametern an.
Um zu verhindern, dass Ihre Domains in betrügerischer Absicht missbraucht werden, etwa für Spam oder Phishing, konfigurieren Sie SPF, DKIM und DMARC entsprechend, um anderen Mail-Servern die Authentifizierung der E-Mails von Ihrer Domain zu erleichtern.
Die Auswahl der Zertifizierungsstelle
TLS verwendet X.509v3-Zertifikate zur Bestätigung von Identitäten einer oder beider miteinander kommunizierender Parteien. Ist eine der miteinander kommunizierenden Parteien in der Lage, zu beweisen, dass das Zertifikat von einer vertrauensvollen Zertifizierungsstelle (CA) stammt, kann eine sichere Kommunikation zustande kommen. Daher ist es unabdingbar, eine CA zu wählen, die weiträumig Vertrauen genießt. Wählen Sie eine CA, deren Zertifikate als nicht vertrauenswürdig angesehen werden, könnte die Verbindung abbrechen da der Gesprächspartner nicht validiert werden kann.
Um zu überprüfen, ob eine CA (Certificate Authority) in Ihrem Webbrowser oder Mailserver als vertrauenswürdig eingestuft wird, können Sie die Liste der vertrauenswürdigen Root-CAs im Betriebssystem oder direkt im Browser einsehen. Weitere Hinweise zur Auswahl einer vertrauenswürdigen CA finden Sie unter Abschnitt 1.4 des „SSL/TLS Deployment Best Practices Guide“ von Qualys.
Anfordern eines Zertifikats
Um ein von einer CA signiertes X.509v3-Zertifikat anzufordern, erzeugen Sie Ihren eigenen privaten Schlüssel und senden den Certificate Signing Request (CSR) an die CA; Ihr privater Schlüssel bleibt dabei geheim. Einige Parameter stehen zur Wahl des privaten Schlüssels sowie der Signaturanforderung zur Auswahl. Die wichtigste Frage dabei ist, ob Sie sich für ein RSA-Zertifikat entscheiden oder ob Ihr Zertifikat ECC unterstützen soll. Einige E-Mail- und Webserver unterstützen beides und entscheiden je nachdem, wie sich der Anwender zu verbinden versucht. Entscheiden Sie sich für ein RSA-Zertifikat, empfiehlt das CESG ein Zertifikat mit diesen Parametern:
- 2048-bit RSA mit SHA256
Generieren Sie ein ECC-Zertifikat, werden diese Parameter empfohlen:
- ECDSA-256 mit SHA256 auf der P-256-Kurve
Testen der TLS-Konfiguration
Viele Konfigurationen sind möglich für TLS – die Anzahl möglicher Optionen sind so zahlreich und vor allem bedarfsabhängig, dass Test-Tools sinnvoll sind:
- SSL-Server-Test von Qualys (die für den Test relevanten Kriterien hatten wir bereits in diesem Blogbeitrag zusammengefasst)
- Check TLS-Tool von checktls.com
Diese Tools identifizieren für Sie die größten Konfigurationsprobleme. Verstehen Sie diese Tools bitte nicht als Mittel zu Penetrationstests Ihrer Services, sondern tatsächlich als Möglichkeit, Ihre TLS-Konfiguration zu optimieren.
Empfehlenswerte TLS-Konfigurationen
Die Empfehlungen nennt das CESG in ihren Richtlinien sehr konkret. Selbstredend stellen wir Ihnen diese Empfehlungen ebenfalls zur Verfügung; bitte folgen Sie dafür diesem Link in unseren Knowledge-Base-Bereich.
Haben Sie Fragen zur TLS-Konfiguration Ihres Servers, können Sie diese gerne in den Kommentaren hinterlassen. Für Unterstützung bei konkreten Fragestellungen steht Ihnen unser Support zur Seite.
Schreibe einen Kommentar