Durch meine Mitarbeit an der node-openid Bibliothek und der Gestaltung meiner neuen Webseite bin ich mal wieder intensiv in den Kontakt mit OpenID gekommen.
Nun bin ich über einen sehr guten Artikel gestolpert der die Frage stellt, ob OpenID nun tot ist. Ganz provokant wird OpenID als der erfolgreichste Fehlschlag des Webs bezeichnet.
Auch aus meiner Sicht ist sicherlich etwas falsch gelaufen. Die auch im Artikel angesprochene Asymmetrie ist überdeutlich: fast jeder Internetnutzer hat wahrscheinlich ohne es selbst zu wissen schon mehrere OpenIDs, dennoch gibt es extrem wenige Webseiten bei denen man sich mittels OpenID anmelden kann. Nur die wenigsten setzen ganz auf OpenID, so wie ich.
Der Grund warum ich es einsetze ist einfach: Ich habe weder Lust noch Fachwissen um hundertprozentige Sicherheit zu gewährleisten. Die billigsten Webseiten speichern einfach die Passwörter im Klartext in der Datenbank, andere benutzen dafür Hashwerte die je nach benutzter Hashfunktion und Salt auch relativ unsicher sind. Ein offizielles SSL Zertifikat kann sich keine Privatseite leisten, über ein selbst signiertes wie ich es benutze schreit der Browser standardmäßig. Dadurch ist das Passwort meist unverschlüsselt im Netzwerk unterwegs. Für die Persistenz kann man auch noch mehr oder weniger unsichere Cookies verwenden.
Alles in allem: Echte Sicherheit zu gewährleisten ist schwer und mit OpenID kann ich all dies an den OpenID Provider delegieren. Das Benutzerpasswort kriege ich nie mit, das einzige was meinen Benutzer identifiziert ist seine OpenID, und die ist sowieso öffentlich. Diese wird auch für Persistenz benutzt und im Cookie gespeichert. Auch hier kann das Cookie gern über XSS oder sonstige Methoden gestohlen werden, es sind ja keine sensitiven Informationen darin enthalten.
Zurück zum Thema: Es gibt zu wenige Seiten bei denen man sich mittels OpenID anmelden kann. Zudem ist das Protokoll auch übermäßig komplex wie ich bei meiner Arbeit an der Bibliothek feststellen musste.
Der Artikel geht aber noch auf ein anderes Problem mit OpenID ein: Der Standard ist für die Authentifizierung gedacht, das heißt sicherzustellen, das dem Benutzer die eingegebene OpenID (z.b. swatinem.de) wirklich gehört.
Über Erweiterungen wie Simple Registration (Sreg) oder Attribute Exchange (AX) kann die Webseite weitere Daten wie beispielsweise E-Mail Adresse und Name anfordern. Diese Erweiterungen sind optional und es ist nicht sichergestellt, das der OpenID Provider diese Informationen auch liefert, also muss man so oder so eine Registrierungsmaske bereitstellen.
Nebenbei Erwähnt: Sreg definierte nur wenige Attribute und wurde daher durch AX ersetzt. AX stattdessen setzt auf absolut flexible an RDF angelehnte URIs als Attribut Schlüssel und somit nicht einheitlich, zu unübersichtlich und zu kompliziert.
Ich als technisch versierter Nutzer kann einerseits nicht nachvollziehen warum so viele Webseiten unnötig viele Nutzerdaten haben wollen, andererseits will ich absolute Kontrolle darüber haben welche Webseite welche Daten von mir hat. OpenID bietet mir genau das.
Als Alternative ist die Anmeldung über Facebook sehr beliebt, nicht allerdings bei mir. Möglicherweise ist das zugrundeliegende OAuth ein einfacheres und besser Protokoll als OpenID, allerdings nerven mich zwei Sachen: erstens das die Webseite von Facebook anscheinend beliebig viele Daten erhalten und ausnutzen kann. Andererseits, weshalb ich die Anmeldung über Facebook nicht implementieren werde: Für die Anmeldung über Facebook ist es erforderlich das die Webseite bei Facebook eingetragen ist, und dazu benötigt man ein Facebook Konto. Dieser Netzwerkeffekt und Anmeldezwang ist es was ich an Facebook am meisten verabscheue und gegen was ich auch weiterhin ankämpfen werde.
Ich will einfach ein dezentrales System wie E-Mail, Jabber, OpenID und möglicherweise Diaspora bei dem jeder miteinander agieren kann egal welchen Dienstanbieter er benutzt. Was wäre bitte E-Mail wenn ich mit meiner Googlemail Adresse nur an Googlemail senden könnte und nicht an GMX oder Hotmail? Dieser Zwang zu einem Dienstanbieter und dadurch dessen Monopolisierung ist meiner Meinung nach eine der größten Gefahren für die Freiheit im Web und muss daher dringend entgegengewirkt werden.