rvlsoft - Fotolia
Mehr Sicherheit in der Cloud mit TLS Mutual Authentication
Passwörter sind auf Dauer keine gute Methode, um eine sichere Kommunikation in der Cloud zu gewährleisten. TLS Mutual Authentication sorgt für Abhilfe und reduziert den Aufwand.
Man sagt, dass je mehr Dinge geändert werden, desto mehr bleibt beim Gleichen. In kaum einem Bereich trifft dieser Spruch mehr zu als bei der sicheren Entwicklung von Anwendungen.
Vor einer Weile war die Achillesferse der Applikationssicherheit die Authentifizierung zwischen unterschiedlichen Komponenten und Systemen – also bei genau den Mechanismen, die Anwendungen einsetzen, um sich gegenüber dem Backend oder der Middleware zu authentifizieren. So dürfen etwa nur bestätigte Komponenten, Anwendungen und Prozesse Zugriff auf die von einem Unternehmen eingesetzten Web-APIs (Application Programming Interface) erhalten.
Ein häufig für diesen Zweck eingesetzter Mechanismus ist ein einzelner, vergleichsweise statischer Anmeldedialog zu einer Anwendung. Wie sich leicht vorstellen lässt, gibt es bei dieser Methode einige mögliche Sicherheitsprobleme.
Erstens und vielleicht am wichtigsten ist, dass diese Anmeldedialoge in der Regel nie oder nur sehr selten aktualisiert werden. Zweitens reduziert diese Vorgehensweise die Fähigkeit eines Unternehmens, Aktivitäten im Firmennetz zu überwachen und aufzuzeichnen, da alle weiteren Schritte im Namen der Anmeldeapplikation durchgeführt werden. Aus Sicht einer Anwendung aus dem Backend werden sie unter einer einzigen Nutzer-ID ausgeführt.
Das macht es den Admins beispielsweise deutlich schwerer, sich durch alle zugehörigen Daten zu arbeiten, die zu einem bestimmten Ereignis gehören. Noch schwieriger wird es, wenn eine Anwendung von einem Angreifer missbraucht wird oder wenn die Zugangsdaten eines Nutzers gestohlen beziehungsweise auf andere Weise kompromittiert wurden. Wenn dies geschieht, lassen sich legitime Logins nur noch schlecht von den Anmeldungen unterscheiden, die nicht ordnungsgemäß autorisiert wurden.
Dieses Problem besteht bereits seit Jahrzehnten. Auch in modernen Applikationen tritt es immer noch auf. Im Bereich zum Beispiel einer RESTful API müssen sich Komponenten immer noch gegenseitig authentifizieren. Dazu nutzen sie HTTP (Hypertext Transfer Protocol).
Eine Authentifizierung per HTTP oder zum Beispiel das Senden eines geheimen Schlüssels über einen HTTP-Request wird immer noch gelegentlich genutzt, um einen entfernten Nutzer bei einem Webservice anzumelden. Das tritt sowohl bei Anwendungen in der Cloud als auch On-Premises auf. Wenn ein Unternehmen PaaS (Platform as a Service) oder IaaS-Komponenten (Infrastructure as a Service) nutzt, sollte deswegen zügig geklärt werden, wie die einzelnen Bestandteile miteinander kommunizieren.
TLS Mutual Authentication
Eine besonders effektive Strategie, um die Kommunikation zwischen Anwendungen und die dabei genutzten Prozesse abzusichern, ist die sogenannte TLS Mutual Authentication (Transport Layer Security), auch Zwei-Wege-Authentifizierung genannt. Sie kann immer dann eingesetzt werden, wenn zum Beispiel verschiedene Applikationsebenen oder Komponenten sicher miteinander kommunizieren sollen. Die Aktivierung von TLS Mutual Authentication und die Nutzung von Zertifikaten für Anwendungen hat einen positiven Einfluss auf die Sicherheitsstrategie von Unternehmen, die ihre Applikationen besser schützen wollen. Das trifft insbesondere dann zu, wenn nicht bereits TLS genutzt wird, um die Kommunikation via RESTful API zu sichern.
Unternehmen sollten die Möglichkeiten von TLS also nutzen, um ihre Authentifizierungsmechanismen zu verbessern. Die Technik lässt sich nicht nur einsetzen, um normales Surfen im Web zu schützen. Sie unterstützt auch eine so genannte Mutual Authentication zwischen zwei Teilnehmern einer Transaktion, also eine gegenseitige Authentifizierung.
Genauso wie ein Browser die Identität einer entfernten Webseite mit Hilfe des Server-Zertifikats überprüfen kann, ist dies auch umgekehrt möglich. Auch der Server kann den Client, auf dem der Browser installiert ist, und sein Zertifikat prüfen. In diesem Beispiel lässt sich die gegenseitige Überprüfung zwischen Komponenten aktivieren, da HTTP als Transportweg für die Daten genutzt wird. Es ist auch möglich, die akzeptierten Zertifikate einzuschränken, indem etwa ein bestimmter Fingerprint oder eine Seriennummer einer bestimmten CA (Certificate Authority) vorausgesetzt wird. Die Methode kann zudem sowohl allein als auch in Kombination mit einem Passwort oder einer anderen Authentifizierungsmaßnahme eingesetzt werden.
Die Verwendung einer TLS Mutual Authentication in einer Cloud-Umgebung erfordert aber die Beachtung einiger wichtiger Punkte. Zunächst muss es möglich sein, die API anzupassen, so dass TLS Mutual Authentication überhaupt eingebunden werden kann. Das geht nur in einem IaaS-Umfeld, wo sich die Konfiguration direkt beeinflussen lässt, oder in einer PaaS-Umgebung, die diese Funktion bereits standardmäßig bietet. Zum Glück unterstützen die meisten großen Anbieter wie Microsoft Azure und Amazon Web Services (AWS) bereits TLS Mutual Authentication.
Vor- und Nachteile von TLS Mutual Authentication
Die Technik hat aus Sicherheitssicht mehrere wesentliche Vorteile. Offensichtlich ist, dass TLS Mutual Authentication dabei hilft, Probleme mit Passwörtern und geheimen statischen Daten wie einzelnen Zertifikaten oder Schlüsseln zu reduzieren.
Die Nutzung von Passwörtern bedeutet einiges an Aufwand, wenn die wichtigsten Basisregeln eingehalten werden sollen. Dazu gehören etwa das meist vorgeschriebene regelmäßige Ändern der Kennwörter, die Überwachung der Passwortnutzung, das Durchsetzen komplexer Begriffe und darüber hinaus dafür zu sorgen, dass sie von den Anwendern und Anwendungen ausreichend geschützt werden. Durch den Einsatz von TLS Mutual Authentication werden einige dieser Vorkehrungen überflüssig. Anfangs mag dies noch etwas mehr Aufwand erfordern. Auf lange Sicht reduziert die Technik ihn jedoch.
Ein weiterer Vorteil ist, dass das Zertifikat und der dazu gehörige private Schlüssel weniger leicht mitgenommen werden können als ein normales Passwort. Natürlich können auch diese Zugangsdaten wie alle anderen digitalen Güter gestohlen werden. TLS Mutual Authentication macht es einem Angreifer jedoch schwerer, sich aus der Ferne als ein korrekter Aufruf einer API auszugeben.
Auch aus Sicht eines im Unternehmen durchgeführten Monitorings hat die Technik Vorteile. Durch den Einsatz mehrerer Zertifikate können Unternehmen leichter überwachen, welche Komponenten eine API-Anfrage gestartet haben. Auch mit statischen Passwörtern ist dies prinzipiell möglich. Aber hier ist so aufwändig, dass in der Praxis meist nur ein Wert über mehrere Instanzen hinweg genutzt wird.
Allerdings gibt es auch Nachteile, wenn TLS Mutual Authentication eingesetzt werden soll. Sie sind jedoch in den meisten Fällen nicht schwerwiegend und lassen sich relativ leicht beherrschen. Wichtig ist vor allem mehr Disziplin, um sicherheitsrelevante Vorfälle zu vermeiden. So müssen die Admins daran denken, dass Zertifikate nach einer gewissen Zeit ablaufen. Auch gerade erst ausgestellte und in einer Anwendung eingesetzte Zertifikate werden zu einem bestimmten Zeitpunkt ungültig und müssen dann durch ein neues ersetzt werden. Wenn dies vergessen wird – und das ist immer wieder der Fall, wenn nicht genau vorgeplant wird –, dann kann das Ergebnis allerdings durchaus katastrophal sein. Das liegt daran, dass dann oft nicht auf den ersten Blick klar ist, wo das eigentliche Problem liegt. Es ist deswegen von großer Bedeutung, die Verfalldaten der eingesetzten Zertifikate genau im Blick zu haben und sie am besten bereits rechtzeitig im Vorfeld auszutauschen.
Insgesamt gesehen, ist der Einsatz von TLS Mutual Authentication jedoch eine ausgezeichnete Methode, um die Sicherheit von in der Cloud genutzten Programmierschnittstellen und Anwendungen zu erhöhen. Die Technik sollte deswegen zum Arsenal jedes Sicherheitsexperten gehören, der für den Schutz von Applikationen in der Cloud oder On-Premises zuständig ist.
Folgen Sie SearchSecurity.de auch auf Twitter, Google+, Xing und Facebook!