Mutual TLS (RFC 8705)
Mutual TLS (mTLS) ist eine TLS-Verbindung, bei der sich auch der Client mit einem Zertifikat ausweist; RFC 8705 nutzt das, um OAuth-Clients zu authentisieren und Tokens an ihr Zertifikat zu binden.
Bei gewöhnlichem TLS weist sich nur der Server aus. Bei Mutual TLS legt auch der Client ein Zertifikat vor und beweist den Besitz des zugehörigen privaten Schlüssels. RFC 8705, veröffentlicht im Februar 2020, definiert zwei Anwendungen für OAuth: die Authentisierung des Clients gegenüber dem Autorisierungsserver und zertifikatsgebundene Zugangstokens, die nur über eine Verbindung mit demselben Zertifikat verwendet werden können.
Mutual TLS ist im Finanzbereich verbreitet, etwa im Open Banking. Für Agenten, die zwischen Unternehmen arbeiten, ist es eine starke Bindung an eine Organisation, verlangt aber eine sorgfältige Verwaltung von Zertifikaten.
Beispiel
Ein Beschaffungsagent eines Unternehmens greift auf die Schnittstelle eines Grosshändlers zu. Die Verbindung nutzt Mutual TLS mit einem Zertifikat des Unternehmens, und das Zugangstoken ist an dieses Zertifikat gebunden. Ein abgefangenes Token nützt ohne das Zertifikat und dessen Schlüssel nichts.
Abgrenzung
Mutual TLS bindet auf Ebene der Verbindung, DPoP auf Ebene der Anwendung. Ein Zertifikat zeigt, welcher Organisation ein Client gehört, aber nicht, welche Handlung erlaubt ist; dafür braucht es ein Mandat.
In der Praxis
- Nutzen Sie Mutual TLS für Agenten zwischen Unternehmen, wenn beide Seiten eine Verwaltung von Zertifikaten betreiben.
- Binden Sie Zugangstokens an das Zertifikat, damit sie nur über die passende Verbindung funktionieren.
- Planen Sie Ablauf und Wechsel der Zertifikate, damit Agenten nicht unerwartet den Zugang verlieren.
Bezug zu KYA
KYA prüft keine TLS-Verbindungen. KYA nutzt dieselbe Idee eines vertrauenswürdigen Ankers: Schlüssel und Zertifikate gelten erst als belegt, wenn ihr Pfad bei einem Anker endet, den die Prüfstelle selbst hinterlegt hat.
Zugehöriger Prüfschritt: Agent und Auftraggeber (subject_agent_binding). Nennen alle Teile denselben Agenten, ist der Auftraggeber benannt, hält der Agent den gebundenen Schlüssel?
Häufige Fragen
Was ist der Unterschied zwischen TLS und Mutual TLS?
Bei TLS weist sich nur der Server mit einem Zertifikat aus. Bei Mutual TLS legt auch der Client ein Zertifikat vor, sodass sich beide Seiten gegenseitig ausweisen.
Was sind zertifikatsgebundene Tokens?
Zugangstokens, die den Fingerabdruck des Client-Zertifikats enthalten. Der Server akzeptiert sie nur über eine Verbindung, bei der der Client genau dieses Zertifikat vorlegt.
Wann ist DPoP die bessere Wahl?
Wenn zwischen Client und Server Zwischenstationen wie Lastverteiler stehen, die TLS beenden, oder wenn keine Verwaltung von Client-Zertifikaten gewünscht ist.
Belegt Mutual TLS die Befugnis eines Agenten?
Nein. Es belegt, welche Organisation hinter einer Verbindung steht. Welche Handlung erlaubt ist, zeigt erst ein Mandat mit Grenzen.