c't 2/2022
S. 142
Wissen
Security: TLS optimieren
Bild: Thorsten Hübner

Transportverschlüsselungsverwirrung

Sichere Cipher-Suites für TLS auswählen

Transportverschlüsselung mit TLS macht das Internet sicherer, muss aber regelmäßig an den Stand der Technik angepasst werden. Die verfügbaren kryptografischen Verfahren werden in sogenannten Cipher-Suites zusammengefasst. Die richtigen Verfahren auszuwählen, ist die Aufgabe von Serverbetreibern. Ein Wegweiser durch den Cipher-Dschungel.

Von Jan Mahn

TLS ist Pflicht, wenn man Dienste im Internet veröffentlicht – das zweifelt heutzutage kaum noch jemand an, auch Websites ohne Login-Bereich und sensible Inhalte werden, anders als noch vor 10 Jahren, heute über HTTPS ausgeliefert. Mit kostenlosen Zertifikaten von Let’s Encrypt und automatischer Verlängerung ist TLS heute mit wenigen Handgriffen ganz passabel eingerichtet. Doch wenn man mehr will als „ganz passabel“ und tiefer in das Thema einsteigt, wird es kompliziert. In den Einstellungen von Webservern oder Reverse Proxies stößt man bei genauerem Hinsehen auf die Konfiguration der sogenannten Cipher-Suites und merkt: TLS ist nicht gleich TLS und die angebotenen Optionen sind nicht unbedingt selbsterklärend. Ist TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 die Einstellung der Wahl, oder sollte man lieber auf TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 setzen? Qualifiziert beantworten kann man die Frage erst nach einem Ausflug in die Kryptografie. Wenn Sie sich nicht für das Warum interessieren und nur eine sichere Konfiguration kopieren wollen, springen Sie direkt zum Abschnitt „Was bleibt“ in diesem Artikel.

Die folgenden Hinweise gelten nicht nur für Webserver, auch Mailserver (mit IMAP und SMTP) oder Exoten wie MQTT-Server sollten nur mit sicheren TLS-Einstellungen betrieben werden. Hat man viele Dienste zu veröffentlichen, ist man gut beraten, einen Reverse Proxy vorzuschalten, der die TLS-Abwicklung zentral für HTTP und alle anderen Protokolle erledigt. In den Einstellungen der Server oder Reverse Proxys mit TLS-Funktion kann man immer mehrere Cipher-Suites gleichzeitig aktivieren. In einer perfekten Welt würde eine einzige Cipher-Suite ausreichen, am besten die mit den längsten Schlüsseln und den besten Verfahren. Dass man sich als Serverbetreiber überhaupt Gedanken über das Thema machen muss, hängt damit zusammen, dass nicht alle Clients (Mailprogramme, Browser ...) das neueste und beste Verfahren verstehen und auch die Server nicht immer die neueste und beste Technik beherrschen. Teils weil die Entwickler noch nicht die neuesten Krypto-Bibliotheken eingebunden haben, teils weil die Nutzer hoffnungslos veraltete Software einsetzen und Updates ohnehin für ein lästiges Übel halten. Daher kann ein Server, der TLS beherrscht, immer mehrere Verfahren unterstützen und sich mit dem Client auf ein Verfahren einigen. Die Initiative geht vom Client aus, der dem Server mitteilt, welche Verfahren er kennt. Der Server entscheidet dann, welches der angebotenen Verfahren er nutzt. Das Problem: Wenn man neben sicheren auch unsichere Verfahren akzeptiert, um ganz alte Clients nicht auszuschließen, kann ein Angreifer, der als Man-in-the-Middle zwischen Client und Server sitzt, ein verwundbares Verfahren erzwingen. Dafür manipuliert er die Liste der unterstützten Verfahren, die der Client an den Server schickt (sogenannte Downgrade-Attacke). Die Abwägung besteht also darin, möglichst wenige (und nur sichere) Verfahren zuzulassen und gleichzeitig möglichst niemanden auszusperren.

Kommentare lesen (4 Beiträge)