© Excellent backgrounds/Shutterstock.com
Teil 16: Authentifizierung

Nicht nur fürs Protokoll


Nachdem wir im letzten Artikel die grundlegenden Konzepte rund um die Identifizierung besprochen haben, wenden wir uns nun den konkreten Protokollen zu, die die Authentifizierung ermöglichen. Wir beginnen mit dem historischen LDAP und X.509 und wenden uns dann über SCIM den modernen RESTful-Verfahren zu, die ein Architekt heute in jedem Fall kennen sollte.

Eines der ältesten Protokolle ist das Lightweight Directory Access Protocol (LDAP) der IETF, das zur Verwaltung von Identitäten in Verzeichnissen verwendet wird. LDAP ist heute eines der einfachsten Verfahren, das für die Identifizierung angeboten wird. Bei den meisten XaaS-Providern und -Applikationen, die ein Identifizieren von Benutzern benötigen, ist es als Minimum vorhanden. Vorläufer zu LDAP war X.500. 2006 wurde die Version 3 der LDAP-Spezifikation publiziert [1] und ermöglicht über ein API den Zugang zu Web-Apps oder nativen Apps, ohne zwingend die Credentials des Benutzers wie den Benutzernamen oder das Passwort offenzulegen. Da heute SSO-Anforderungen bei der Identifizierung im Vordergrund stehen, wird LDAP kaum noch eingesetzt, trotzdem ist es nach wie vor ein relevantes Protokoll.

X.509 ist ein weiterer, alter Standard, der asymmetrische Schlüssel verwendet und Verfahren zum Verwalten von Public-Key-Infrastruktur definiert. ITU-T 1988 hat X.509 publiziert [2], die letzte Version stammt von 2008. X.509 wird in diversen Standards zur Identifikation verwendet, hauptsächlich zur Identifikation mittels Zertifikaten. Eine häufige Form ist die Mutual Authentication, bei der sich Client und Server jeweils gegenseitig identifizieren. Eine weitere Form ist die Authentifizierung mittels Zertifikaten auf Smartcards. Zertifikate werden zunehmend auch bei mobilen Apps und im Internet der Dinge zum Identifizieren eingesetzt – und so wird X.509 künftig noch Wachstum erfahren.

Das Simple Cloud Identity Management (SCIM) ist ein Verfahren für das Cross-Domain-Identitätsmanagement, also den Austausch von Identitätsinformationen über verschiedene IT-Domänen und Systeme hinweg. Beispielsweise ist es dafür geeignet, On-Premise-Benutzer in die Cloud zu synchronisieren. SCIM definiert ein RESTful-API und Schemata für die Provisionierung und die Synchronisierung von Benutzeraccounts mit Cloud-Applikationen, ohne die Notwendigkeit, applikationsspezifische Konnektoren zu verwenden. Das Verfahren haben Cloud-Provider und Softwarehersteller entwickelt und über die IETF im September 2015 in der Version 2.0 als RFC 7642 [3], RFC 7643 [4] und RFC 7644 [5] veröffentlicht. Da es sich um einen sehr jungen Standard handelt, ist das Verfahren noch nicht weit verbreitet.

Der User Managed Access (UMA) folgt dem ursprünglichen Konzept der Liberty Alliance, nämlich, dass ein Benutzer selbst steuern kann, wem er welche Identitätsattribute mitteilen möchte. UMA wurde im März 2015 in der Version 1.0 standardisiert [6] und ist ein OAuth-basiertes Access-Management-Protokoll. Die Entwickler von UMA hatten bei der Entwicklung vor allem die Regelung von Privacy-Aspekten im IoT und bei Wearables im Sinn. Es ist nicht abhängig von OpenID, kann aber optional OAuth-basierte OpenID-Connect-Protokolle abhandeln.

Basic Auth ist … basic

HTTP Basic Authentication, auch kurz Basic Auth genannt, ist die einfachste Form der Authentifizierung. In ihrer Grundform benötigt sie weder Cookies, ein Ses­sion-­Token oder eine Log-in-Seite. Basic Auth verwendet standardisierte Felder im HTTP-Header. Dabei wird das Basic-Auth-Feld bei jedem HTTP Request mitgegeben. Der Browser muss dabei die Credentials für einen definierten Zeitraum zwischenspeichern. Basic Auth besitzt keine Methode für den Log-out, es gibt aber Methoden, dies anders zu lösen, beispielsweise ein Redirect auf einen URL der gleichen Domäne, der falsche Credentials enthält, die dann gespeichert werden. Die mitgelieferten Credentials werden nach RFC2045 – MIME mit Base64 codiert. Die Base64-Codierung ist keine Verschlüsselung, sondern eine Codierung und damit unsicher. Eine höhere Sicherheit bietet die Verschlüsselung der Kommunikation mittels SSL. Dennoch kann es für einen Angreifer relativ einfach sein, die Base-64-codierten Credentials aus dem Browser auszulesen.

Basic Auth in seiner ursprünglichen Form sollte nur in Fällen eingesetzt werden, bei denen eine Identifikation des Benutzers auf einer Webapplikation erreicht werden soll, aber keine Sicherheitsanforderungen vorhanden sind. Da die Credentials nur codiert und nicht verschlüsselt im Browser gespeichert werden, können sie relativ einfach gehackt werden. Da es mit wenig Aufwand deutlich bessere Verfahren gibt, sollte auf die Verwendung von Basic Auth in dieser Form verzichtet werden.

Als Verbesserung zu der Base-64-Encodig-Variante von Basic Auth wurde die Digest Authentication entwickelt. D...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang