Nach einer kleinen Abstinenz haben wir diesmal, wie versprochen, wieder ein Thema. Mario Volke (Webholics) hat uns das Thema FoaF+SSL vorgeschlagen, vorbereitet und erklärt uns in der aktuellen Folge wie es funktioniert :)
Vielen Dank auch an Henry Story, dem geistigen Schöpfer von FoaF+SSL, der uns im IRC-Chat mit Rat und Tat zur Seite stand.
Ihr Browser unterstützt diesen Audio-Player nicht.
Länge: 0:55h (47.5 MB), Download MP3
News
Google Buzz
Liste der offenen Standards
Salmon-Protokoll
PubSubHubbubShownotes
(Vielen Dank an Mario, der die Shownotes zusammengestellt hat)
dezentralisiertes Authentifizierungsprotokoll
One-Click-SignOn (kein Username, kein Passwort)
WebID: Ein URI als ID für deine Person (LinkedData)
100% Standardbasiert: REST, RDF, LinkedData, SSL, X509
Alle Vorteile von Semantic Web Technologies: strikte Semantik, Erweiterbarkeit (Namespaces), Reasoning (OWL)
Web of TrustUse Cases
neben einfachem Login
Web site personalization
Profil (FOAF) portabel und unter Kontrolle des Users, import mit nur einem Klick (FOAF+SSL Login)
Einfaches Kommentieren (keine Eingabe von persönlichen Daten mehr notwendig)
Distributed Access Control
Zugang nur einer bestimmten foaf:Group gewähren
Rule Based Access Control: Komplexe Policies möglich (bsp. nur Freunde von bereits vorhandenen Usern erhalten Zugang, dies macht jeglichen Invitation-Mechanismus obsolet)
Komplexität der Policies lediglich durch Aussagekraft von RDF/OWL beschränkt
Distributed Social Networks
auch hier komplexe Rollen und Zugangsbeschränkungen möglich
Details
Was braucht ein User um sich einzuloggen?
X509-Zertifikat (normalerweise direkt im Browser installiert)
FOAF-File (öffentlich auf einem bel. Server, LinkedData)
SSL (RSA)
Zertifikate häufig nur, um Server gegenüber Client zu authentifizieren
jetzt: Browser besitzt self-signed Zertifikat und authentifiziert sich gegenüber dem Server
X509-Zertifikat enthält Link zur WebID (und damit zum FOAF-File) (im Feld “X509v3 Subject Alternative Name”)
Der Public-Key des Zertifikats muss mit dem im FOAF-Profil identisch sein
Protokoll
User klickt auf Login-Button
Server eröffnet SSL Handshake und verlangt Zertifikat vom User
Server holt sich das FOAF-Profil des Users (überprüft den Public-Key auf Gleichheit)
nun sind weitere beliebige Autorisierungsschritte anhand des FOAF-Profils möglich (Web of Trust)
Wie erstelle ich mir ein Zertifikat?
z.B. HTML5 -Tag (Firefox, Opera, Safari, Chrome) (http://test.foafssl.org/cert/)
mit ActiveX für IE
zur Not Serverseitig, allerdings Security Risk weil der Server dann den Private Key kennt
Gibt es bereits Server-Implementierungen?
Ja, einige, z.B. für PHP, Python, Java, Apache Modul
Browser-Support:
Firefox und Fennec
Opera
Safari, iPhone (mit bugs)
Chrome
Internet Explorer >= 6
Links
Hauptseite Wiki: http://esw.w3.org/topic/foaf+ssl
Mailing-List http://lists.foaf-project.org/mailman/listinfo/foaf-protocols
Paper: FOAF+SSL: RESTful Authentication for the Social Web - http://dig.csail.mit.edu/2009/Papers/SPOT/foaf-ssl-spot2009.pdf
Vergleich OpenID vs. FOAF+SSL http://blogs.sun.com/bblfish/entry/what_does_foaf_ssl_give
Das ganze funktioniert sogar mit dem iPhone: http://blogs.sun.com/bblfish/entry/one_click_global_sign_on
xfn ontology: http://vocab.sindice.com/xfn#
vcard ontology: http://www.w3.org/Submission/2010/SUBM-vcard-rdf-20100120/
foaf+ssl als Alternative zu OAuth: http://blogs.sun.com/bblfish/entry/sketch_of_a_restful_photo
FOAF & SSL: creating a global decentralised authentication protocol: http://blogs.sun.com/bblfish/entry/foaf_ssl_creating_a_global
foaf+ssl: adding security to open distributed social networks: http://blogs.sun.com/bblfish/entry/foaf_ssl_adding_security_to