Was ist mutual TLS (mTLS)?

Mutual TLS (mTLS) ist eine Art der Authentifizierung, bei der sich die beiden Parteien einer Verbindung gegenseitig über das TLS-Protokoll authentifizieren.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Funktionsweise von mutual TLS (mTLS) erklären
  • Unterschieds zwischen mutual TLS und regulärem TLS verstehen
  • Veranschaulichen, wie mTLS Angriffe anhält

Link zum Artikel kopieren

Was ist mutual TLS (mTLS)?

Mutual TLS, kurz mTLS, ist eine Methode zur gegenseitigen Authentifizierung. mTLS stellt sicher, dass die Parteien an beiden Enden einer Netzwerkverbindung die sind, die sie vorgeben zu sein. Dafür wird überprüft, ob beide den richtigen privaten Schlüssel haben. Die Informationen in ihren jeweiligen TLS-Zertifikaten bieten eine zusätzliche Überprüfung.

mTLS wird häufig in einem Zero Trust-Sicherheitsrahmen* verwendet, um Nutzer, Geräte und Server innerhalb einer Organisation zu verifizieren. Es kann auch helfen, APIs sicher zu halten.

**Zero Trust bedeutet, dass keinem Nutzer, Gerät oder Netzwerk Traffic standardmäßig vertraut wird, ein Ansatz, der hilft, viele Sicherheitslücken zu beseitigen.

Was ist TLS?

Transport Layer Security (TLS) ist ein Verschlüsselungsprotokoll, das im Internet weit verbreitet ist. TLS, das früher SSL genannt wurde, authentifiziert den Server in einer Client-Server-Verbindung und verschlüsselt die Kommunikation zwischen Client und Server, sodass externe Parteien die Kommunikation nicht ausspähen können.

Drei wichtige Punkte zur Funktionsweise von TLS sollten Sie kennen:

1. Öffentlicher Schlüssel und privater Schlüssel

TLS arbeitet mit einer Technik, die als Public-Key-Verschlüsselung bezeichnet wird und auf einem Schlüsselpaar beruht – einem öffentlichen Schlüssel und einem privaten Schlüssel.

  • Alles, was mit dem öffentlichen Schlüssel verschlüsselt wird, kann nur mit dem privaten Schlüssel entschlüsselt werden
  • Alles, was mit dem privaten Schlüssel verschlüsselt wurde, kann nur mit dem öffentlichen Schlüssel entschlüsselt werden

Ein Server, der eine mit dem öffentlichen Schlüssel verschlüsselte Nachricht entschlüsselt, beweist also, dass er im Besitz des privaten Schlüssels ist. Den öffentlichen Schlüssel kann jeder einsehen, indem er sich das TLS-Zertifikat der Domain oder des Servers ansieht.

2. TLS-Zertifikat

Ein TLS-Zertifikat ist eine Datendatei, die wichtige Informationen zur Überprüfung der Identität eines Servers oder Geräts enthält, einschließlich des öffentlichen Schlüssels, einer Erklärung darüber, wer das Zertifikat ausgestellt hat (TLS-Zertifikate werden von einer Zertifizierungsstelle ausgestellt), und des Ablaufdatums des Zertifikats.

3. TLS-Handshake

Der TLS-Handshake ist der Prozess zur Verifizierung des TLS-Zertifikats und des Besitzes des privaten Schlüssels durch den Server. Beim TLS-Handshake wird auch festgelegt, wie die Verschlüsselung nach Abschluss des Handshakes erfolgen soll.

Wie funktioniert mTLS?

Normalerweise verfügt der Server bei TLS über ein TLS-Zertifikat und ein öffentliches/privates Schlüsselpaar, während der Client dies nicht hat. Der typische TLS-Prozess läuft folgendermaßen ab:

  1. Client verbindet sich mit dem Server
  2. Der Server legt sein TLS-Zertifikat vor
  3. Der Client verifiziert das Zertifikat des Servers
  4. Client und Server tauschen Informationen über eine verschlüsselte TLS-Verbindung aus

Bei mTLS haben jedoch sowohl der Client als auch der Server ein Zertifikat, und beide Seiten authentifizieren sich mit ihrem öffentlichen/privaten Schlüsselpaar. Im Vergleich zu regulärem TLS erfolgen bei mTLS zusätzliche Schritte zur Verifizierung beider Parteien (zusätzliche Schritte sind fett gedruckt):

  1. Client verbindet sich mit dem Server
  2. Der Server legt sein TLS-Zertifikat vor
  3. Der Client verifiziert das Zertifikat des Servers
  4. Der Client legt sein TLS-Zertifikat vor
  5. Server verifiziert das Zertifikat des Clients
  6. Server gewährt Zugang
  7. Client und Server tauschen Informationen über eine verschlüsselte TLS-Verbindung aus

Zertifizierungsstellen in mTLS

Die Organisation, die mTLS implementiert, fungiert als ihre eigene Zertifizierungsstelle. Dies steht im Gegensatz zu Standard-TLS, bei dem die Zertifizierungsstelle eine externe Organisation ist, die überprüft, ob der Zertifikatsinhaber rechtmäßiger Eigentümer der zugehörigen Domain ist (erfahren Sie mehr über die Validierung von TLS-Zertifikaten).

Für mTLS ist ein „Root“-TLS-Zertifikat erforderlich. Das ermöglicht es einer Organisation, ihre eigene Zertifizierungsstelle zu sein. Die von autorisierten Clients und Servern verwendeten Zertifikate müssen mit diesem Stammzertifikat übereinstimmen. Das Stammzertifikat ist selbstsigniert, d. h. die Organisation erstellt es selbst. (Dieser Ansatz funktioniert nicht für einseitiges TLS im öffentlichen Internet, da eine externe Zertifizierungsstelle diese Zertifikate ausstellen muss).

Warum mTLS verwenden?

mTLS macht den Traffic zwischen einem Client und einem Server in beide Richtungen sicher und vertrauenswürdig. Dies bietet eine zusätzliche Ebene der Sicherheit für Nutzer, die sich in das Netzwerk oder die Anwendungen eines Unternehmens einloggen. Es verifiziert auch Verbindungen mit Client-Geräten, die keinen Anmeldeprozess durchlaufen, wie Internet of Things-Geräte (IoT).

mTLS verhindert verschiedene Arten von Angriffen, darunter:

  • On-Path-Angriffe: On-Path-Angreifer platzieren sich zwischen einem Client und einem Server und fangen die Kommunikation zwischen den beiden ab oder verändern sie. Bei Verwendung von mTLS können sich On-Path-Angreifer weder beim Client noch beim Server authentifizieren, sodass dieser Angriff fast unmöglich ist.
  • Spoofing-Angriffe: Angreifer können versuchen, einen Webserver für einen Nutzer zu „spoofen“ (zu imitieren), oder umgekehrt. Spoofing-Angriffe sind weitaus schwieriger, wenn sich beide Seiten mit TLS-Zertifikaten authentifizieren müssen.
  • Credential Stuffing: Angreifer versuchen, sich mit durchgesickerten Anmeldedaten aus einer Datenschutzverletzung als rechtmäßiger Nutzer anzumelden. Ohne ein rechtmäßig ausgestelltes TLS-Zertifikat sind Credential Stuffing-Angriffe gegen Unternehmen, die mTLS verwenden, erfolglos.
  • Brute-Force-Angriffe: Bei einem Brute-Force-Angriff, der in der Regel mit Bots durchgeführt wird, versucht ein Angreifer durch schnelles Ausprobieren, das Passwort eines Nutzers zu erraten. mTLS sorgt dafür, dass ein Passwort allein nicht ausreicht, um Zugang zum Netzwerk eines Unternehmens zu erhalten. (Durchsatzbegrenzung ist eine weitere Möglichkeit, diese Art von Bot-Angriffen zu verhindern.)
  • Phishing-Angriffe: Das Ziel eines Phishing-Angriffs ist es oft, die Anmeldedaten eines Nutzers zu stehlen und diese dann zu verwenden, um ein Netzwerk oder eine Anwendung zu kompromittieren. Selbst wenn ein Nutzer auf einen solchen Angriff hereinfällt, benötigt der Angreifer immer noch ein TLS-Zertifikat und einen entsprechenden privaten Schlüssel, um diese Anmeldedaten zu verwenden.
  • Böswillige API-Anfragen: Wenn mTLS für die API-Sicherheit verwendet wird, stellt es sicher, dass API-Anfragen nur von legitimen, authentifizierten Nutzern kommen. Dies hält Angreifer davon an, böswillige API-Anfragen zu senden, mit denen sie eine Sicherheitslücke ausnutzen oder die Funktionsweise der API untergraben wollen.

Websites verwenden bereits TLS. Warum wird mTLS dann nicht im gesamten Internet eingesetzt?

Für alltägliche Zwecke bietet die Einweg-Authentifizierung ausreichenden Schutz. Die Ziele von TLS im öffentlichen Internet sind 1) sicherzustellen, dass niemand gefälschte Websites besucht, 2) private Daten zu schützen und zu verschlüsseln, während sie die verschiedenen Netzwerke, die das Internet bilden, durchqueren, und 3) zu gewährleisten, dass die Daten während der Übertragung nicht verändert werden. Einseitiges TLS, bei dem der Client nur die Identität des Servers verifiziert, erfüllt diese Ziele.

Außerdem wäre die Verteilung von TLS-Zertifikaten an alle Endnutzer extrem schwierig. Das Generieren, Verwalten und Verifizieren der Milliarden von Zertifikaten, die dafür erforderlich sind, ist eine nahezu unmögliche Aufgabe.

In kleinerem Maßstab ist mTLS jedoch äußerst nützlich und für einzelne Organisationen durchaus praktikabel, insbesondere wenn diese Organisationen einen Zero Trust-Ansatz für die Netzwerksicherheit verfolgen. Da bei einem Zero Trust-Ansatz standardmäßig keinem Nutzer, keinem Gerät und keiner Anfrage vertraut wird, müssen Organisationen in der Lage sein, jeden Nutzer, jedes Gerät und jede Anfrage zu authentifizieren, wenn sie versuchen, auf einen beliebigen Punkt im Netzwerk zuzugreifen. mTLS ermöglicht dies, indem es Nutzer authentifiziert und Geräte verifiziert.

Wie verwendet Cloudflare mTLS?

Cloudflare Zero Trust verwendet mTLS für Zero Trust-Sicherheit. Cloudflare API Shield verwendet mTLS auch zur Verifizierung von API-Endpunkten und stellt damit sicher, dass keine unbefugten Parteien potenziell böswillige API-Anfragen senden können. Erfahren Sie, wie Sie mTLS mit Cloudflare implementieren.