Was ist OAuth (Open Authorization) und warum ist es wichtig?

Datenpannen gehören zu den größten Bedrohungen in einer schnell wachsenden und technologisch fortschreitenden Generation. Eine Datenpanne kann Unternehmen, Reputationen und sogar Regierungen verwüsten. Darüber hinaus reicht es aus, dass ein einziges verwundbares, privilegiertes Konto von unbefugten Entitäten kompromittiert wird, damit kritische Daten „gestohlen“ werden. Die digitalisierte Welt erzeugt, teilt und speichert mehr Daten und digitale Konten sind üblich.

Viele Dienste im Internet sind integriert und darauf ausgelegt, miteinander zu interagieren. Die Verwendung von Dienstkonten zum Zugriff auf Anwendungen und Websites beinhaltet jedoch die unsichere Praxis, privilegierte Anmeldedaten zu speichern, hauptsächlich ohne Mehrfaktorauthentifizierung (MFA), und private Informationen der Kompromittierung auszusetzen.

Die Bedeutung von Privatsphäre und Datensicherheit ist enorm. Daher sichern offene Sicherheitsstandards wie OAuth persönliche und private Informationen während der Datenübertragung zwischen Dritten. Der von der Internet Engineering Task Force (IETF) zusammengestellte OAuth-Standard schützt Ressourcenbesitzer im Web bei der Nutzung von Diensten Dritter. Lesen Sie weiter, um mehr über OAuth zu erfahren.

Was ist OAuth?

OAuth (Open Authorization) ist ein offenes Standardframework, das Dritten Zugriff auf authentifizierte nutzerbezogene Informationen oder Ressourcen auf Servern und Diensten (wie Websites und Anwendungen) ermöglicht, ohne dass sie ihre Anmeldedaten teilen müssen. Es bietet gesicherten delegierten Zugriff auf Serverressourcen im Auftrag eines Ressourceneigentümers mittels tokenbasierter Authentifizierung. Dabei handelt es sich jedoch um ein Authentifizierungsprotokoll, das die Nutzeridentität mit Passwörtern, Telefon oder biometrischer Identität überprüft und nicht mit dem Open Authorization-Protokoll verwechselt werden sollte.

Im Gegensatz zu Authentifizierungsprotokollen wie OpenID autorisiert OAuth nach erfolgreicher Authentifizierung einen begrenzten Zugriff auf Ressourcen. Unternehmen wie Facebook, Google, Amazon, Twitter, Paypal, Netflix und Microsoft ermöglichen es ihren Nutzern, über OAuth Kontoinformationen mit Drittanbieter-Websites und -Anwendungen zu teilen.

OAuths entkoppelte Authentifizierungs- und Autorisierungsstandards schützen Benutzerinformationen, indem sie Zugriff auf Ressourcen gewähren, ohne die Identität oder Anmeldeinformationen des Benutzers preiszugeben. Daher können Drittanbieterservices in Vertretung eines Benutzers Anfragen stellen, ohne auf Passwörter und andere sensible Informationen zugreifen zu müssen.

Der OAuth-Mechanismus verfolgt einen Autorisierungsfluss mit drei Schlüsselkomponenten: dem Anbieter, dem Eigentümer/Nutzer und dem Client/Verbraucher. Der OAuth-Anbieter ist der Autorisierungsserver und die Hauptantriebskraft von OAuth. Ressourcen-Server (APIs wie Facebook oder Google) verwenden OAuth, um sich im Auftrag und mit Zustimmung eines Nutzers mit einer Drittanbieter-Website oder -Anwendung zu verbinden. Der Anbieter gibt dem Client-Dienst ein Zugriffsauthentifizierungstoken zur Autorisierung von Informationen, die vom Ressourcen-Server gehostet werden. Der Nutzer ist der Besitzer der Daten/Informationen auf einem Ressourcen-Server. Die Anmeldung des Nutzers bestätigt die Freigabe von Informationen. Der Client ist die Website oder Anwendung, die Zugang zu den Informationen oder Ressourcen des Nutzers benötigt.

Er erhält mit einem Zugriffstoken Zugang zum Ressourcen-Server. Schließlich benötigt das Client-Programm eine Registrierung bei OAuth, um die Autorisierung durchzuführen. Der vollständige OAuth-Prozess erfordert mehrere Genehmigungen und alle drei Komponenten für die autorisierte Transaktion/den autorisierten Zugriff.

OAuth 1.0

Die Sicherheit von Benutzerinformationen ist mit der Zunahme der Datenteilung, -speicherung und -nutzung von wesentlicher Bedeutung. Daher ist es wichtig, sichere Autorisierungsstandards in Anwendungen und Webdienste zu integrieren, um Datenverstöße zu verhindern. OAuth wird als der sicherste Informationsfreigabe-Standard für Websites und APIs anerkannt. Der OAuth-Standard unterstützt mehrere Flows, um unterschiedliche Szenarien für die Autorisierung von Client-Apps und verschiedene Gerätekapazitäten zu behandeln. Er unterstützt Server-zu-Server-Apps, Web-Apps, mobile Apps, Websites, Konsolen oder Fernseher.

Das OAuth 1.0-Protokoll wurde 2010 veröffentlicht, um dem Fehlen von offenen Standards für die Delegierung des API-Zugriffs entgegenzuwirken. Es wurde jedoch erstmals 2007 als Autorisierungsmethode für die Twitter-Anwendungsschnittstelle veröffentlicht. Das IETF veröffentlichte zwei Jahre später OAuth 2.0 als ein verbessertes und vollkommen neues Autorisierungsprotokoll. Es unterscheidet sich von der ersten Version durch erhöhte OAuth-Flows, kurzlebige Tokens und Rückwärtsinkompatibilität mit OAuth 1.0.

OAuth 1.0 handhabte die Delegierung mit einem auf digitalen Signaturen basierenden Framework. Es war stark und sicher, sodass große Akteure wie Google und Twitter es unterstützten und einsetzten. Es erforderte kryptografische Implementierungen und Interoperabilität, was es sehr sicher machte. Allerdings ist es für Entwickler ohne ausreichende Erfahrung in Kryptographie und Schlüsselverwaltung schwierig zu implementieren.

OAuth ist grundsätzlich ein Delegationsprotokoll, das Berechtigungen gewährt und kein Authentifizierungsprotokoll wie OpenID – eine Identitätsschicht, die auf dem OAuth 2.0 Protokoll aufbaut. Obwohl viele Anwendungen OAuth 2.0 zur Authentifizierung und Autorisierung verwenden, ist es nur spezialisiert auf delegierte Autorisierung. 

Das OAuth 2.0 Framework 

Das OAuth 2.0 Framework ist das branchenübliche Protokoll für Autorisierungen. Es ist eine Überarbeitung des ursprünglichen Open-Authorization-Protokolls und bietet eine umfassendere Lösung für moderne Web- und Nicht-Web-Clients. Das Framework enthält Spezifikationen, die die Datensicherheit der Benutzer weiter erhöhen. Dazu gehören:

Token-Ablauf

OAuth-Tokens sind im Allgemeinen nicht widerrufbar und laufen in der Version 1.0 nicht ab. Als Ergebnis sind die Tokens nicht vollständig sicher und anfällig für Bedrohungen. Mit dem Zugriff auf ein Token oder ein Verifizierungsgeheimnis kann ein unberechtigter Client/Nutzer, wie zum Beispiel Hacker und bösartige Websites, unautorisierte Anfragen stellen und Zugang zu den Anmeldedaten und persönlichen Informationen der Nutzer erlangen. Das OAuth 2.0 Framework überwindet diese Schwäche mit ablaufenden Tokens. Sobald das Zugriffstoken abläuft, erlischt auch der Zugriff auf die Anwendung, es sei denn, ein neues Zugriffstoken wird über den Aktualisierungszyklus generiert. OAuth 2.0 erzeugt „kurzlebige“ Zugriffstokens. Diese haben eine Gültigkeit von einer Sitzung bis zu ein paar Wochen, nutzen aber Aktualisierungstokens, um ein neues Zugriffstoken zu erhalten, anstatt dass der Nutzer den gesamten Prozess zur erneuten Autorisierung der Anwendung wiederholen muss.

Clientseitige Entwicklung 

OAuth 2.0 berücksichtigt nicht nur Web-Clients, sondern auch Web-Workflows. OAuth 2.0 bietet spezifische Autorisierungsabläufe für Webanwendungen, Desktop-Anwendungen, Mobiltelefone, Fernseher/Konsolen und anwendungen, die auf keine Browser angewiesen sind, wie API-basierte Dienste. Es ist auch viel einfacher zu implementieren, zu bearbeiten und bietet eine starke Authentifizierung.

Trennung der Zuständigkeiten

OAuth 2.0 trennt die Aufgaben von Ressourcenlieferung und Benutzerberechtigung. Unterschiedliche Server oder sogar verschiedene Domainnamen können beide Rollen übernehmen. So kann jeder Teil des Systems unabhängig skaliert werden. Daher benötigt der Authentifizierungsserver die Client-ID und das Geheimnis, aber der API-Server akzeptiert nur Zugriffstoken. Folglich verhindert die Datenbank den Datenaustausch mit den API-Servern. Diese Änderungen machen den neuen Standard für große Unternehmen attraktiver. Denn sie erlauben es, dass diese Systeme unabhängig voneinander, von verschiedenen Teams und zu unterschiedlichen Zeitpunkten ausgeführt werden.

Bearer Tokens und die Abschaffung kryptografischer Anforderungen

OAuth schafft eine Balance zwischen einfacher Nutzung von APIs und guten Sicherheitspraktiken. Die Verwendung von Bearer Tokens vereinfacht die Implementierung von OAuth durch Eliminierung der Komplexität kryptografischer Signaturen gemäß den OAuth 1.0 Standards. OAuth 2.0 erfordert lediglich das Token selbst in der Anforderung.

Zwei-Faktor-Authentifizierung

OAuth hat für die Offenlegung von Konten die weniger sichere Ein-Faktor-Authentifizierungsmethode verwendet. Die Ein-Faktor-Authentifizierung konnte leicht kompromittiert werden, da Hacker nur ein Informationen benötigten, um Zugang zu erlangen. OAuth 2.0 hingegen erfordert mehr Stufen der Authentifizierung, um einem Benutzer den Zugang zu gewähren. Es verwendet Tokenisierung und eine Zwei-Faktor-Natur, um Benutzerkonten zu sichern.

Warum ist OAuth wichtig?

Hochentwickelte Webanwendungen, mobile Apps und einzigartige Geschäftsmodelle haben sich entwickelt. Die Evolution der Anwendungsfälle in neue Szenarien macht traditionelle Autorisierungsroutinen unzureichend. Viele dieser Szenarien erfordern, dass ein Server oder Client mit mehreren Servern kommuniziert, um eine Anfrage oder Aktion auszuführen. Die Notwendigkeit, neue Lösungen für die Datenfreigabe und die Identitätsföderation zwischen mehreren vertrauenswürdigen Parteien bereitzustellen, ist daher erhöht. OAuth ist ein leistungsstarkes Sicherheitsframework, das versucht, die Herausforderungen im Zusammenhang mit der Autorisierung zu lösen. Daher ist es wichtig, OAuth in Anwendungen und Websites zu integrieren. Hier sind die Gründe:

Es sichert Serverinformationen, auch beim Teilen

Das OAuth-Protokoll basiert auf SSL (Secure Sockets Layer) um sicherzustellen, dass Daten zwischen dem Webserver und dem Browser privat bleiben. Tatsächlich ist es ein wichtiger Bestandteil der Website-Authentifizierung jeder Organisation, denn es schützt die Anmeldedaten der Nutzer.

Tokenisierung ermöglicht nur begrenzten Zugriff auf Nutzerdaten

Empfindliche Informationen wie Kreditkarteninformationen und medizinische Datensätze werden jeweils speziellen Token-IDs zugeordnet und ferngespeichert. Händler erhalten die Token, nicht die tatsächlichen Daten. Daher bleiben die geteilten Informationen privat. Dritte, die noch keinen Zugriff auf medizinische Datensätze, Passwörter oder Kreditkartennummern haben, können das Token zur Durchführung von Transaktionen überprüfen.

OAuth ermöglicht die Verwendung von Single Sign-On (SSO)

SSO gewährleistet einen einfachen Zugang, kontrolliert Risiken und gibt Benutzern die Kontrolle über ihre Daten. Es steigert die Moral und Produktivität der Nutzer, indem es den Zugriff auf mehrere Anwendungen mit nur einem Satz von Anmeldeinformationen ermöglicht. Es konsolidiert Benutzerdaten und strafft den Anmeldeprozess für Nutzer. Dies eliminiert die Notwendigkeit, zahlreiche Passwörter zu verwalten oder dieselben Informationen bei der Nutzung von Online-Diensten ständig zu wiederholen.

Es gibt den Nutzern die Kontrolle darüber, was Drittanbieter mit ihren Ressourcen tun können

Traditionelle Prozesse erfordern die Weitergabe von Anmeldeinformationen an Dritt-Websites, um Informationen zu teilen. OAuth hingegen schränkt Dritte ein und hindert sie daran, bestimmte unerwünschte Aktionen auszuführen, wie das Ändern von Benutzereinstellungen oder Anmeldeinformationen, sowie das Blockieren des Benutzerzugangs zum Konto.

Schlussfolgerung

OAuth (Open Authorization) schützt Nutzerinformationen so gut wie möglich vor Datenverlust. Das erste Protokoll für OAuth 1.0 wurde in OAuth 2.0 umgeschrieben. Die Cybersecurity-Branche hat OAuth 2.0 weithin als sicherste Option für die Autorisierung anerkannt. Obwohl es keine absolut sichere Autorisierungsmethode gibt, gehört OAuth zu den besten. Seiten wie Facebook, Twitter, LinkedIn, Google, Amazon, Instagram und GitHub verwenden OAuth als ihre primäre Technologie für Authentifizierung und Autorisierung.