Security of Online Social Networks

Ähnliche Dokumente
Security of Online Social Networks

Creating OpenSocial Gadgets. Bastian Hofmann

OAuth 2.0. Ralf Hoffmann 03 /

Social Login mit Facebook, Google und Co.

Identity Management. Rudolf Meyer

SAML2 und OAuth in der Cloud

OpenID Connect Kurzer Überblick, Vergleich mit SAML2

Karlsruhe Institute of Technology Die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH)

Enterprise Web-SSO mit CAS und OpenSSO

!"#$"%&'()*$+()',!-+.'/',

Netzwerke und Sicherheit auf mobilen Geräten

datenlink-schnittstelle Version 1.0

!"#$"%&'()*$+()',!-+.'/',

Entwicklung einer REST-API zur Erstellung und Konfiguration von Microsoft Teams. Jan Kruse, utilitas GmbH

BUSINESSMAIL X.400 WEB SERVICE API MAILBOX STATUS V1.0

Crawling & APIs. Valentin Deyringer Centrum für Informations- und Sprachverarbeitung

Literatur. VA SS Teil 11/OAuth

Authentisierung für die Cloud mit dem neuen Personalausweis

RESTful API Grundlagen mit PHP und Payrexx

vcdm im Wandel Vorstellung des neuen User Interfaces und Austausch zur Funktionalität V

SIP: Session Initiation Protocol (Signalisierungsprotokoll für Sessions) Request. Response

Web APIs auf dem Prüfstand Volle Kontrolle oder fertig mit den Azure Mobile Services?

AZURE ACTIVE DIRECTORY

Humboldt-Universität zu Berlin Wintersemester 2012/2013. OpenID

T H E M O S T S I M P L E B U S I N E S S I T Y O U E V E R H A D. mit OA u t h 2.0 in

Titelbild1 ANSYS. Customer Portal LogIn

Hackerpraktikum SS 202

1. Angular-User Group Meetup, Nürnberg. Authentifizierung mit Angular JS und Microservices

Server Architecture for Network Independent Multimedia Service Control. Wolfgang Kellerer

Best Practices API s. Max Horváth, Steffen Irrgang, Andre Zayarni

EntwicklerCamp inotes und XPages. Matthias Schneider

Neue Welten: Externe Daten mit APEX nutzen

Identity Propagation in Oracle Fusion Middleware

Word-CRM-Upload-Button. User manual

Mash-Up Personal Learning Environments. Dr. Hendrik Drachsler

XML-Angriffe auf eid-dienste

Security of IoT. Generalversammlung 21. März 2017

Android VPN. Am Beispiel eines Netzwerktunnels für das Domain Name System (DNS) 1 Andiodine - Android DNS-VPN

Transport Layer Security Nachtrag Angriffe

4. RADAR-WORKSHOP RADAR APPLICATION PROGRAMMING INTERFACE KARLSRUHE, 25./26. JUNI Matthias Razum, FIZ Karlsruhe

Modernes Identitätsmanagement für das Gesundheitswesen von morgen

goalio Documentation Release goalio UG

(c) 2014, Peter Sturm, Universität Trier

0.1 XForms: XML Submission

OpenStack in der Praxis

OSIAM. Sichere Identitätsverwaltung auf Basis von SCIMv2 und OAuth2

OpenID Connect. im Einsatz auf Föderationsebene. Wolfgang Pempe, DFN-Verein

Unified-E Standard WebHttp Adapter

NG-NAC, Auf der Weg zu kontinuierlichem

Web-Konzepte für das Internet der Dinge Ein Überblick

RESTful Web. Representational State Transfer

Steffen Hofmann (Dipl.-Inf.) ZEDAT, Identity and Customer Management (ICM) Neue Shibboleth Versionen, neue Features

IT-Sicherheit Anwendungssicherheit: AuthN/AuthZ in der Cloud

H Mcast Future Internet made in Hamburg?

ORACLE CLOUD VERLEIHT ADF ANWENDUNGEN FLÜGEL. Andreas Koop CEO & Consultant Oracle Technologies

Rechnernetze und -Organisation Michael Hutter Karl C. Posch.

EtherNet/IP Topology and Engineering MPx06/07/08VRS

Sicheres HTTP. 8. Juni Proseminar Electronic Commerce und digitale Unterschriften

Grundlagen der Web-Entwicklung INF3172

Authentication im Web

Benchmark: Sicherheitslücken & Compliance-

1. General information Login Home Current applications... 3


Backend. Hochschule Darmstadt, Fachbereich Informatik, Wintersemester 2016/2017. Christopher Dörge, Thomas Sauer, David Müller

Forms auf Tablets. Vision oder Realität?

Secure Bindings for Browser-based Single Sign-On

100 Trying Ein Anruf wird zu vermitteln versucht. Anruf wird weitergeleitet

REST Services in Domino

Social Web Revolution

NEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient

Flash, Network und Facebook. Steven Mohr

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

A-Trust REGISTRIERKASSE mobile Developer Manual

Sicherheit für Web-Anwendungen mit SAML2 und OAuth2

<Insert Picture Here> Ohne Fenster-zur-Welt SSO mit ios-apps und Oracle Access Manager

Ingenics Project Portal

Quick Installation Guide

vrealize Log Insight- Entwicklerressourcen 11. September 2017 vrealize Log Insight 4.3

Hypertext Transfer Protocol

SARA 1. Project Meeting

LIVING BUSINESS AG. Getting Started - centrexx API ONE STEP AHEAD. Guide zum Umgang und Umfang der 3D-centrexX API in der Version 1.

XML Template Transfer Transfer project templates easily between systems

Quick Reference Guide Schnellstart Anleitung

am Beispiel - SQL Injection

ENTWURF, ERRICHTUNG, BETRIEB VON DATENNETZEN

SharePoint 2010 Mobile Access

SharePoint 2016 was kommt auf uns zu? SharePoint & Office 365 Community Zentralschweiz

The Future Internet in Germany and Europe

MICROSERVICES-SCHNITT JETZT MIT GRAPHQL!

Von der Steinzeit ins neue Jahrhundert. Migration von APEX 4.2 auf 18.1 in die Cloud & Open ID Anbindung (Erfahrungsbericht)

ORACLE. EXPERTISE. PASSION.

XML-RPC, SOAP und Web Services. Jörn Clausen

am Beispiel - SQL Injection

RADIUS. Moritz Blanke (KaWo1) TANAG 2017

Architektur der Geodateninfrastruktur Deutschland

INDUSTRIAL DATA SPACE DATA ECONOMY AND ANALYTICS CONCEPTS AND IMPLEMENTATION

VERTRAUENSWÜRDIGE IDENTITÄTEN FÜR DIE CLOUD

Markus BöhmB Account Technology Architect Microsoft Schweiz GmbH

Transkript:

Security of Online Social Networks Interfaces Lehrstuhl IT-Sicherheitsmanagment Universität Siegen May 3, 2012 Lehrstuhl IT-Sicherheitsmanagment 1/38

Recapitulation Graph Model formal data representation Login Procedures Authentification Web ID Open ID TLS Lehrstuhl IT-Sicherheitsmanagment 2/38

Overview Lesson 04 OAuth Concluding Authentication Open Graph Open Social Lehrstuhl IT-Sicherheitsmanagment 3/38

OAuth vs. OpenID [http://en.wikipedia.org/wiki/file:openidvs.pseudo-authenticationusingoauth.svg] Lehrstuhl IT-Sicherheitsmanagment 4/38

OAuth Lehrstuhl IT-Sicherheitsmanagment 5/38

OAuth Overview resource owner (User) client credentials client (Consumer) temporary credentials server (Service Provider) token credentials Objectives: Redirection-Based Authentication partial authorisation to (web)-resource no password disclosure to client Lehrstuhl IT-Sicherheitsmanagment 6/38

OAuth State 2012 OAuth 1.0 RFC 5849 [1] Session Fixation Attack OAuth 2.0 Facebook deployed, Microsoft, Google experimental (source: http://hueniverse.com/oauth/) Lehrstuhl IT-Sicherheitsmanagment 7/38

OAuth Phases Preliminaries: 0. (Client Credentials) Server Communication Endpoints: 1. Temporary Credential Request 2. Resource Owner Authorisation 3. Token Request Lehrstuhl IT-Sicherheitsmanagment 8/38

OAuth 1.0: Temporary Credential Request Owner Client Server GET use resource consumer key, callback,... token, token secret,... 3xx server auth?token, callback Lehrstuhl IT-Sicherheitsmanagment 9/38

OAuth 1.0: Resource Owner Authorisation Lehrstuhl IT-Sicherheitsmanagment 10/38

OAuth 1.0: Resource Owner Authorisation Owner Client Server 3xx server auth?token auth?token Authenticate(owner) Authorise(client) Login/Auth-Form Password 3xx callback?token,token verifier callback?token&token verifier Lehrstuhl IT-Sicherheitsmanagment 11/38

OAuth 1.0: Token Request Lehrstuhl IT-Sicherheitsmanagment 12/38

OAuth 1.0: Token Request Owner Client Server callback?token&token verifier token?token verifier token, token secret Using Resource resource?token resource! OK Lehrstuhl IT-Sicherheitsmanagment 13/38

OAuth 1.0: Session Fixation Attacker uses (honest) client to get temp. credential Attacker does not follow authorisation redirect Attacker tricks resource owner to click redirect Owner authorises honest client at server Attacker uses saved temp. credential to request token Attacker uses token to access resource (source: http://oauth.net/advisories/2009-1/) Lehrstuhl IT-Sicherheitsmanagment 14/38

OAuth 2.0 Why update? OAuth 1.0 too complex Scalability issues Incompatible to existing Auth. Schemes State: Almost stable IETF draft v2.22 (source http://hueniverse.com/2010/05/introducing-oauth-2-0/) (see http://tools.ietf.org/html/draft-ietf-oauth-v2-22) Lehrstuhl IT-Sicherheitsmanagment 15/38

OAuth 2.0: Delta Role Separation: Authorization Server 6 Different Protocol Flows: User-Agent, Web-Server, Device, Username-Password, Client Credentials, Assertion (eg. SAML) Bearer Tokens Short-Lived Tokens/Long-Lived authorizations (source http://hueniverse.com/2010/05/introducing-oauth-2-0/) Lehrstuhl IT-Sicherheitsmanagment 16/38

OAuth 2.0: Flow (source: OAuth v2.22 (draft) Lehrstuhl IT-Sicherheitsmanagment 17/38

Concluding Authentication Lehrstuhl IT-Sicherheitsmanagment 18/38

WebID vs. OpenID vs OAuth WebID OpenID OAuth ID Provider self self/3rd 3rd Authentication local key passwd/assertion various Channel TLS assertion token Lehrstuhl IT-Sicherheitsmanagment 19/38

Open Graph Lehrstuhl IT-Sicherheitsmanagment 20/38

facebook social graph representation https://developers.facebook.com/docs/opengraph/ http://ogp.me/ Lehrstuhl IT-Sicherheitsmanagment 21/38

OG mechanics Lehrstuhl IT-Sicherheitsmanagment 22/38

Open Social Lehrstuhl IT-Sicherheitsmanagment 23/38

Overview set of API Community product, no owner (OpenSocial Foundation) Contribution Licensing Agreement Non-Assert Agreement Standardisation process: consensus and running code Gadgets, Container, Social Server current version 2.0.1 Lehrstuhl IT-Sicherheitsmanagment 24/38

Gadget web-based software component Container context of a gadget (e.g. web-page) User viewer of gadget at runtime Social API Server OpenSocial Container Lehrstuhl IT-Sicherheitsmanagment 25/38

OpenSocial Specification Dependencies Core Container Spec Core API Server Social API Server Core Gadget Container Social Gadget Container Open Social Container OpenSocial Specification Lehrstuhl IT-Sicherheitsmanagment 26/38

Core API Server Spec Protocols: REST or RPC Security: OAuth (Access Tokens) Content Upload Common Parameters: Request-ID, Auth-Token, Content-Type, Return-Object, Invalidation-Key-List, HTTP-Status-Code Request Parameters: Updated-Since, Encoding Format Discovery Services Concurrency Control: HTTP/AtomPup (MAY) Lehrstuhl IT-Sicherheitsmanagment 27/38

REST Protocol Request: GET /api/people/@me/@self?fields=name HTTP/1.1 Host: api.example.org Authorization: hh5s93j4hdidpola Content-Type: application/json Response: HTTP/1.x HTTP-Status-Code [ "Content-Type: " Content-Type ] [ REST-Response-Payload ] Lehrstuhl IT-Sicherheitsmanagment 28/38

Social API Server Spec OpenSocial Social API Server Specification 2.0.1 [2] People, Groups, Activity Streams, AppData, Albums, MediaItems, Messages Lehrstuhl IT-Sicherheitsmanagment 29/38

REST Create Relationship REST-HTTP-Method REST-URI-Fragment REST-Query-Parameters REST-Request-Payload = "POST" = "/people/" User-Id "/" Group-Id = null = Person POST /rest/people/@self/@friends HTTP/1.1 HOST api.example.org Authorization: hh5s93j4hdidpola Content Type: application/xml <entry xmlns="http://ns.opensocial.org/2008/opensocial"> <id>example.org:34kjdcskjn2hhf0dw20394</id> </entry> Lehrstuhl IT-Sicherheitsmanagment 30/38

Reflective Create Relationship (WebID+REST) (1) A (2) Bob s (3) Alice s (4) (1) Bob s Page (for Alice) (4) append knows Person bob (2) click know him! (3) POST /alice/rest/people/@alice#me/@knows HTTP/1.1 HOST alice.info Authorization: alice.info/alice#me Content Type: application/xml [...] <foaf:person> <foaf:homepage rdf:resource="http://bob.org/bob#me"/> <foaf:mbox_sha1sum>8a75535cfeb076f13del68aa113e91abaeb7340</foaf:mbox_sha1sum> </foaf:person> Lehrstuhl IT-Sicherheitsmanagment 31/38

Reflective Create Relationship (WebID+REST) (1) (5) A (2) (6) Bob s (3) Alice s (4) (1) Bob s Page (for Alice) (2) click know him! (4) append knows Person bob (5) Redirect back to Bob s Return-Object: Person Bob (3) POST /alice/rest/people/@alice#me/@knows HTTP/1.1 HOST alice.info Authorization: alice.info/alice#me Content Type: application/xml [...] <foaf:person> <foaf:homepage rdf:resource="http://bob.org/bob#me"/> <foaf:mbox_sha1sum>8a75535cfeb076f13del68aa113e91abaeb7340</foaf:mbox_sha1sum> </foaf:person> (6) Request Bob s Page Lehrstuhl IT-Sicherheitsmanagment 32/38

OpenSocial with WebID Authorisation? Identities in URLS? Lehrstuhl IT-Sicherheitsmanagment 33/38

RPC create friendship (WebID) POST /bob/rpc HTTP/1.1 Host: bob.org Authorization: <auth token> Content-Type: application/json { "method" : "people.create", "id" : "createfriend" "params: { "userid" : "@alice.info/alice#me", "groupid" : "@knows", "person" : { "id" : "@bob.org/bob#me" } } } Lehrstuhl IT-Sicherheitsmanagment 34/38

Sending a message REST-HTTP-Method REST-URI-Fragment REST-Query-Parameters REST-Request-Payload = "POST" = "/messages/" User-Id "/@self/@outbox" = null = Message Lehrstuhl IT-Sicherheitsmanagment 35/38

HTTP-Status Codes 400 BAD REQUEST invalid syntax 401 UNAUTHORIZED missing OAuth Credentials/no access 403 FORBIDDEN insufficient context rights 404 NOT FOUND resource missing 405 METHOD NOT ALLOWED response with Allow header 409 CONFLICT response with details 500 INTERNAL SERVER ERROR generic 501 NOT IMPLEMENTED optional feature missing Lehrstuhl IT-Sicherheitsmanagment 36/38

Conclusion Protocols Authentication towards Identity Provider towards 3rd Party Data Exchange Formats WebID needs additional API Lehrstuhl IT-Sicherheitsmanagment 37/38

Literatur I The OAuth 1.0 Protocol, IETF Informational RFC 5849, April 2010. OpenSocial Social API Server Specification 2.0.1, OpenSocial Foundation Std., Rev. 2.0.1. [Online]. Available: http://opensocial-resources.googlecode.com/svn/spec/2.0.1/ Social-API-Server.xml Lehrstuhl IT-Sicherheitsmanagment 38/38