OAuth Ein offener Standard für die sichere Autentifizierung in APIs



Ähnliche Dokumente
Anleitung zur Installation von VSP-Client- Zertifikaten in Browsern

Informatik für Ökonomen II HS 09

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Dieses Dokument soll dem Administrator helfen, die ENiQ-Software als Client auf dem Zielrechner zu installieren und zu konfigurieren.

Anleitung Login Web-Treuhand

Anleitung Grundsetup C3 Mail & SMS Gateway V

Internet Explorer Version 6

Leitfaden zur Nutzung von binder CryptShare

ICS-Addin. Benutzerhandbuch. Version: 1.0

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Dokumentenkontrolle Matthias Wohlgemuth Telefon Erstellt am

Nutzung von GiS BasePac 8 im Netzwerk

SANDBOXIE konfigurieren

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Mobile Banking App Bedienungsanleitung

Version Deutsch

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Anleitung vom 4. Mai BSU Mobile Banking App

Übung - Arbeiten mit Android

ASP Dokumentation Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

inviu routes Installation und Erstellung einer ENAiKOON id

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

3. Wählen Sie "Internet- " aus und klicken Sie wiederum auf "Weiter".

Benutzerverwaltung Business- & Company-Paket

VIDA ADMIN KURZANLEITUNG

icloud nicht neu, aber doch irgendwie anders

Kurzanleitung GigaMove

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

SharePoint Demonstration

Anleitung zur Verwendung der UHH-Disk am. Universitätskolleg

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Bedienungsanleitung für den SecureCourier

Adminer: Installationsanleitung

Tipps und Tricks zu Netop Vision und Vision Pro

Administrator Handbuch

2. Installation unter Windows 8.1 mit Internetexplorer 11.0

schooltas offline Modus mit der Google Chrome App

KvBK: Basic Authentication, Digest Authentication, OAuth

Xylem WebService Demo Kurzbedienungsanleitung

Installation und Bedienung von vappx unter Android

Wie richten Sie Ihr Web Paket bei Netpage24 ein

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Das Leitbild vom Verein WIR

Anleitung zur Anmeldung mittels VPN

> Lokal, persönlich und traditionell. Ihre Bank. Seit Sparkasse Mobile Banking App > Anleitung zur Aktivierung.

Anleitung für Kunden zum Umgang mit verschlüsselten s von der LASA Brandenburg GmbH

Netzlaufwerke verbinden

DeltaVision Computer Software Programmierung Internet Beratung Schulung

Übertragung von ArcGIS Desktop 10.1 Concurrent Use Lizenzen auf zwei oder mehr Lizenzmanager (Juni 2013)

Professionelle Seminare im Bereich MS-Office

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Installationsanleitung UltraVNC v für neue und alte Plattform

ITT WEB-Service DEMO. Kurzbedienungsanleitung

Version Deutsch

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

G DATA INTERNET SECURITY FÜR ANDROID

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

1 Kurzanleitung IMAP-Verfahren

Installation von Office 365 auf einem privaten PC

DB2 Kurzeinführung (Windows)

Abschluss und Kündigung eines Vertrages über das Online-Portal der Netzgesellschaft Düsseldorf mbh

Ihren Kundendienst effektiver machen

Lizenzen auschecken. Was ist zu tun?

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Drägerware.ZMS/FLORIX Hessen

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Mobile Anwendungen Google Cloud Messaging

Kurzanleitung Zugang Studenten zum BGS-Netzwerk (Mac) BGS - Bildungszentrum Gesundheit und Soziales Gürtelstrasse 42/ Chur

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

Erstellung eines Google-Kontos Stand: Juni 2013

Diese Anleitung beschreibt das Vorgehen mit dem Browser Internet Explorer. Das Herunterladen des Programms funktioniert in anderen Browsern ähnlich.

Hinweise bei Problemen mit Makros

Wenn Sie das T-Online WebBanking das erste Mal nutzen, müssen Sie sich zunächst für den Dienst Mobiles Banking frei schalten lassen.

Proxyeinstellungen für Agenda-Anwendungen

Zugriff auf OWA Auf OWA kann über folgende URLs zugegriffen werden:

Primzahlen und RSA-Verschlüsselung

Sicherer Datenaustausch mit Sticky Password 8

ERSTE SCHRITTE.

Adobe Volume Licensing

Kurzanleitung zum Einrichten eines POP3-Mail-Kontos unter Outlook 2013

ÖVSV Mitglieder-Datenbank. Benutzerhandbuch Version 1.2.1

Flash, Network und Facebook. Steven Mohr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

YouTube: Video-Untertitel übersetzen

ISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote

Internet online Update (Internet Explorer)

Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier)

vorab noch ein paar allgemeine informationen zur d verschlüsselung:

Import des persönlichen Zertifikats in Outlook 2003

Installationsanweisung Gruppenzertifikat

Einrichten eines Exchange-Kontos mit Outlook 2010

Microsoft Office 365 Kalenderfreigabe

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihr vorhandenes PMS-System mit der IAC-BOX verbinden und konfigurieren.

Transkript:

OAuth Ein offener Standard für die sichere Autentifizierung in APIs Max Horváth, Andre Zayarni, Bastian Hofmann 1

Vorstellung der Speaker 2

Was ist OAuth?? 3

Was ist OAuth? OAuth ermöglicht dem Endnutzer einer Webanwendung... 4

Was ist OAuth? OAuth ermöglicht dem Endnutzer einer Webanwendung: private Ressourcen mit anderen Webanwendungen auszutauschen 5

Was ist OAuth? OAuth ermöglicht dem Endnutzer einer Webanwendung private Ressourcen mit anderen Webanwendungen auszutauschen ohne dabei Nutzername und Passwort der Webanwendung der Konsumenten- Applikationen preiszugeben. 6

Was ist OAuth? OAuth unterstützt schwerpunktmäßig einen zentralisierten Autorisierungs- und Datenaustauschprozess. 7

Was ist OAuth? OAuth unterstützt schwerpunktmäßig einen zentralisierten Autorisierungs- und Datenaustauschprozess. Wie sich der Nutzer (etwa über einfaches Login mit Name und Passwort) autorisieren lässt, spielt eine untergeordnete Rolle. 8

Was ist OAuth? Es hat seinen Ursprung in bekannten Autorisierungsmechanismen bekannter APIs (beispielsweise Google, Yahoo und Amazon). 9

Was ist OAuth? OAuth muss keine Authentifizierung des Endnutzers direkt anbieten. 10

Was ist OAuth? OAuth muss keine Authentifizierung des Endnutzers direkt anbieten. OAuth stellt ausschließlich einen Autorisierungs- und Datenaustausch- Mechanismus zur Verfügung. 11

Wie funktioniert OAuth? 12

Wie funktioniert OAuth? OAuth zu verwenden ist mit der Bezahlung per EC-Karte zu vergleichen. 13

Wie funktioniert OAuth? Möchte man in einem Supermarkt mit der EC-Karte bezahlen. 14

Wie funktioniert OAuth? Möchte man in einem Supermarkt mit der EC-Karte bezahlen. Der PIN-Code wird dem Kellner nicht genannt. 15

Wie funktioniert OAuth? Stattdessen tippt der Karteninhaber den PIN- Code direkt in das Eingabegerät des Kartenlesers ein. 16

Rollen und Begriffe in OAuth 17

Rollen und Begriffe in OAuth Service-Provider 18

Rollen und Begriffe in OAuth Service-Provider Endnutzer 19

Rollen und Begriffe in OAuth Service-Provider Endnutzer Konsument 20

Rollen und Begriffe in OAuth Service-Provider Endnutzer Konsument Private Ressourcen 21

Rollen und Begriffe in OAuth Service-Provider Endnutzer Konsument Private Ressourcen Token 22

Rollen und Begriffe in OAuth Service-Provider Stellt seine private Ressourcen zur Verfügung, auf die sich von anderen Anwendungen zugreifen lässt. 23

Rollen und Begriffe in OAuth Service-Provider Stellt seine private Ressourcen zur Verfügung, auf die sich von anderen Anwendungen zugreifen lässt. Muss nicht gleichzeitig derjenige sein, der eine Authentifizierung des Endnutzers durchführt. 24

Rollen und Begriffe in OAuth Endnutzer Besitzt private Ressourcen, die er, nachdem er zugestimmt hat, anderen Webanwendungen zur Verfügung stellen will. 25

Rollen und Begriffe in OAuth Konsument Ist eine Applikation, die einen bestimmten Service oder private Endnutzer-Ressourcen eines Service-Providers in Anspruch nehmen möchte. 26

Rollen und Begriffe in OAuth Konsument Ist eine Applikation, die einen bestimmten Service oder private Endnutzer-Ressourcen eines Service-Providers in Anspruch nehmen möchte. Kann unterschiedliche Formen annehmen. 27

Rollen und Begriffe in OAuth Private Ressourcen Private Ressourcen können in unterschiedlichen Formen auftreten. 28

Rollen und Begriffe in OAuth Private Ressourcen Private Ressourcen können in unterschiedlichen Formen auftreten: Daten 29

Rollen und Begriffe in OAuth Private Ressourcen Private Ressourcen können in unterschiedlichen Formen auftreten: Daten Aktivitäten 30

Rollen und Begriffe in OAuth Private Ressourcen Private Ressourcen können in unterschiedlichen Formen auftreten: Daten Aktivitäten Einfache URL. 31

Rollen und Begriffe in OAuth Token Verwendet man statt des Nutzernamens und des Passworts, um Autorisierung auf privaten Ressourcen zu ermöglichen. 32

Rollen und Begriffe in OAuth Token Verwendet man statt des Nutzernamens und des Passworts, um Autorisierung auf privaten Ressourcen zu ermöglichen. Besteht meistens aus einem zufälligen String (Buchstaben und Zahlen). 33

Rollen und Begriffe in OAuth Token Ist eindeutig und schwer zu erraten. Wird zudem mit einem Konsumenten-Geheimnis kombiniert. 34

Rollen und Begriffe in OAuth Token OAuth verwendet zwei unterschiedliche Token-Typen. 35

Rollen und Begriffe in OAuth Token OAuth verwendet zwei unterschiedliche Token-Typen: Anfrage-Token 36

Rollen und Begriffe in OAuth Token OAuth verwendet zwei unterschiedliche Token-Typen: Anfrage-Token Zugriffs-Token. 37

Anwendungsszenarien 38

Anwendungsszenarien Es gibt zwei typische Anwendungen für OAuth. 39

Anwendungsszenarien Es gibt zwei typische Anwendungen für OAuth: Dreibeiniger OAuth-Typ 40

Anwendungsszenarien Es gibt zwei typische Anwendungen für OAuth: Dreibeiniger OAuth-Typ Zweibeiniger OAuth-Typ. 41

Dreibeiniger OAuth-Typ Ermöglicht eine Interaktion mit Endnutzern. 42

Dreibeiniger OAuth-Typ Ermöglicht eine Interaktion mit Endnutzern. Service-Provider, Konsument und Endnutzer stellen die drei Elemente dar, die diesen Typ ausmachen. 43

Dreibeiniger OAuth-Typ Ermöglicht eine Interaktion mit Endnutzern. Service-Provider, Konsument und Endnutzer stellen die drei Elemente dar, die diesen Typ ausmachen. Er ist für Datenaustausch und Webservice- Aufrufe zwischen Webanwendungen mit der Zustimmung des Endnutzers gedacht. 44

Zweibeiniger OAuth-Typ OAuth ohne Endnutzeraktivitäten. 45

Zweibeiniger OAuth-Typ OAuth ohne Endnutzeraktivitäten. Es geht ausschließlich um eine Maschine-zu- Maschine-Kommunikation, ohne Interaktion von Endnutzern. 46

Zweibeiniger OAuth-Typ Bei diesem Typ ist keine Authentifizierung des Endnutzers nötig. 47

Zweibeiniger OAuth-Typ Bei diesem Typ ist keine Authentifizierung des Endnutzers nötig. Der Typ ist für einen sicheren Zugriff über Webservices gedacht. 48

Ablauf vom dreibeinigen OAuth 49

Ablauf vom dreibeinigen OAuth Bevor eine Konsumenten-Anwendung auf einem Service-Provider zugreifen kann, ist sie zuvor beim ihm anzumelden. 50

Ablauf vom dreibeinigen OAuth Bevor eine Konsumenten-Anwendung auf einem Service-Provider zugreifen kann, ist sie zuvor beim ihm anzumelden. Anschließend erhält die Konsumenten- Applikation Konsumentenschlüssel und -geheimnis. 51

Ablauf vom dreibeinigen OAuth Der Schlüssel wird während der gesamten Kommunikation zwischen Konsumenten und Providern innerhalb einer Anfrage mit angegeben. 52

Demo Der Konsument fragt nach einem nicht bestätigtem Anfrage-Token des Service- Providers. 53

Demo Der Konsument fragt nach einem nicht bestätigtem Anfrage-Token des Service- Providers. Der Endnutzer bestätigt das Anfrage-Token mit einer Authentifizierung durch ein Login beim Service-Provider. 54

Demo Der Konsument tauscht das bestätigte Anfrage-Token mit einem Zugriffs-Token aus. 55

Demo Mit dem zuvor empfangenen Zugriffs-Token fragt der Konsument anschließend aus den privaten Ressourcen des Service-Providers heraus nach den Daten. 56

Demo Der Service-Provider antwortet mit den erfragten Daten. 57

Ablauf vom zweibeinigen OAuth 58

Ablauf vom zweibeinigen OAuth Konsument benötigt ebenfalls ein Konsumentenschlüssel und -geheimnis Beispiel OpenSocial: Anfragen der Konsumenten werden immer im Kontext einer vom Nutzer installierten Applikation gestellt 59

Beispiel Server möchte mit seinem Schlüssel und Geheimnis Daten für einen Nutzer beim Provider anfragen. => Anfrage wird verweigert. 60

Beispiel Der Nutzer installiert zu einem anderen Zeitpunkt die OpenSocial App 61

Beispiel Dadurch autorisiert er den Konsumenten und der Server des Konsumenten kann Daten für den Nutzer abholen 62

Mehr dazu... Dienstag, 10:30: OpenSocial in der Praxis 63

Sicherheitsprobleme in OAuth 64

Sicherheitsprobleme in OAuth Erweiterung des Protokolls 65

Sicherheitsprobleme in OAuth Die OAuth 1.0 Spezifikation nimmt nur application/x-www-form-urlencoded Daten aus dem Request-Body in die Signatur auf Dadurch sind Man-In-The-Middle Attacken möglich, in denen ein nicht enkodierter Request-Body ausgetauscht wird 66

Sicherheitsprobleme in OAuth Lösung: Zusätzlicher Parameter oauth_body_hash 67

Sicherheitsprobleme in OAuth Signieren: Hash über Request Body erstellen Base64 Enkodierung oauth_body_hash Parameter hinzufügen Request normal signieren 68

Sicherheitsprobleme in OAuth Validierung: Request nach OAuth Standard validieren Bestimme ob oauth_body_hash notwendig Nicht notwendig, nicht vorhanden => OK Nicht notwendig, vorhanden => nicht OK Notwendig, nicht vorhanden => Verhalten Provider abhängig Notwendig, vorhanden => Parameter validieren 69

Sicherheitsprobleme in OAuth Man-In-The- Middle-Attacke 70

Sicherheitsprobleme in OAuth Es gab ein Sicherheitsproblem für das dreibeinige OAuth-Protokoll. 71

Sicherheitsprobleme in OAuth Es gab ein Sicherheitsproblem für das dreibeinige OAuth-Protokoll. Dabei ging es um das Ausnutzen des Anfrage-Tokens und der Session beim Autorisierungsprozess in OAuth. 72

Sicherheitsprobleme in OAuth Der Angreifer loggt sich in eine Konsumenten-Webanwendung ein und initiiert den Autorisierungsprozess zu einem Service-Provider. 73

Sicherheitsprobleme in OAuth Der Angreifer loggt sich in eine Konsumenten-Webanwendung ein und initiiert den Autorisierungsprozess zu einem Service-Provider. Statt jedoch den Prozess weiter durchzuspielen, speichert er den Anfrage-URI inklusive des Anfrage-Tokens. 74

Sicherheitsprobleme in OAuth Später versucht der Angreifer ein Opfer zu finden, das den Autorisierungsprozess mit dem gespeicherten Anfrage-URI aus dem gleichen Konsumenten weiterführt. 75

Sicherheitsprobleme in OAuth Später versucht der Angreifer ein Opfer zu finden, das den Autorisierungsprozess mit dem gespeicherten Anfrage-URI aus dem gleichen Konsumenten weiterführt. Damit ermöglicht das Opfer dem Service-Provider einen Zugriff auf seine privaten Ressourcen. 76

Sicherheitsprobleme in OAuth Mit dem Klick auf den Anfrage-URI des Angreifers führt das Opfer den Autorisierungsprozess des Angreifers mit dem vom Konsument ausgestellten Anfrage-Token weiter. 77

Sicherheitsprobleme in OAuth Nachdem das Opfer seine privaten Ressourcen beim Service-Provider freigegeben hat, kann der Angreifer den gespeicherten Anfrage-URI wieder ausführen. Er kann nun auf sämtliche vom Opfer freigegebenen Ressourcen zugreifen. 78

Sicherheitsproblem gelöst Um den Man-In-The-Middle-Angriff zu unterbinden, wurde die Spezifikation um folgende Schritte erweitert: 79

Sicherheitsproblem gelöst Callback-Parameter werden beim Request- Token-Request angehängt Nach der Autorization wird an den Callback ein Verifier angehängt Diesen Verifier muss der Client zusätzlich zum Access-Token mitschicken 80

Fragen? 81

Danke fürs Zuhören! developer.studivz.net max@vz.net andre@vz.net bhofmann@vz.net twitter.com/maxhorvath twitter.com/andre_z twitter.com/bastianhofmann 82