Solid – Fragen & Antworten

Auf der FrOSCon 14 habe ich einen Talk zu Solid gehalten. In der anschließenden Fragerunde gingen überwältigend viele Hände nach oben. Ich möchte diesen Blogartikel nutzen, um die zahlreichen Fragen noch einmal aufzugreifen, sie zu dokumentieren und gegebenenfalls etwas ausführlicher zu beantworten, als es in der knappen Zeit möglich war.

Ist es geplant, Daten von Facebook importieren zu können?

Ja, das ist definitiv geplant und Leute arbeiten daran. In der Praxis ist es tatsächlich nicht so einfach, da sich Facebook mit Händen und Füßen gegen solche Initiativen wehrt. Facebook hat eigentlich die Pflicht – spätestens seit der DSGVO – alle Daten herauszugeben.

Ruben Verborgh hat versucht, von diesem Recht Gebrauch zu machen und wirklich alle Daten von Facebook zu erhalten. Sein Ringen mit dem Konzern zieht sich nun schon seit Monaten hin.

Es ist aber nur eine Frage der Zeit, bis Facebook sich dem geltenden Recht beugen muss. Dann wird es für uns alle einfacher, unser Recht durchzusetzen. Tools, welche die Daten in ein Solid-kompatibles Format übersetzen, lassen sich dann recht leicht programmieren.

Wer kann Bobs Kommentar unter dem Beitrag von Alice sehen? Wer legt die Zugriffsrechte fest?

Wenn Bob einen Kommentar schreibt, wird dieser in Bobs eigenem Pod gespeichert. Bob selbst kann bestimmen, wer darauf zugreifen darf. Der Pod steuert die Zugriffsrechte über Web Access Control (WAC). Damit Alice den Kommentar lesen kann, wird Bob ihr zumindest Leserechte geben. Er kann darüber hinaus aber auch der Öffentlichkeit, oder einer bestimmten Gruppe Rechte erteilen. Ob der Kommentar tatsächlich unter Alices Beitrag erscheint, kann Alice entscheiden, indem sie zu Bobs Beitrag verlinkt, oder dies unterlässt.

Ich identifiziere mich über eine URI im Web. D.h. mein Hoster kann sich als mich ausgeben?

Die URI allein reicht dazu nicht. WebID-OIDC erfordert zur Authentisierung auch Benutzername und Passwort. Wie bei regulärem Webspace oder zentralen Diensten gilt aber auch bei Solid: Ich muss meinem Anbieter vertrauen. Ein Server- bzw. Dienste-Betreibender kann grundsätzlich die dort gespeicherten Daten einsehen und ggf. auch die Identität von Accounts annehmen. Solid unterscheidet technisch zwischen reinen Daten-Pods und dem Identity Provider, welcher die Authentifizierung vornimmt. Nur letzterer könnte mit böser Absicht deine Identität missbrauchen. Das wäre in etwa so, als wenn dein Mail-Provider eine Mail in deinem Namen versendet. Ein seriöser Anbieter ist also essentiell.

Wenn du auf Nummer sicher gehen willst, betreibst du den entsprechenden Pod selbst. In weniger sensiblen Bereichen kannst du dann dennoch auf gehostete Pods setzen. Jede Person kann ihr persönliches Maß an Schutzbedürftigkeit und Vertrauen selbst definieren.

Kann ich Daten von einem Pod exportieren und zu einem anderen umziehen? Was passiert mit den bestehenden Links?

Ja, das geht. Bestehende Links können durch eine Weiterleitung (HTTP Redirect) auf das neue Ziel verweisen.

Alternativ kannst du eine eigene Domain benutzen. Das geht durch entsprechende DNS-Konfiguration auch dann, wenn du den Pod nicht selbst betreibst. Wenn du den Pod-Provider wechselst, ziehen nur die Daten um, bleiben aber unter deiner Domain erreichbar.

Angenommen ich erlaube, dass in einem Post mein Bild angezeigt wird. Kann ich explizit einer Anwendung verbieten, dieses Bild anzuzeigen? Wird bei jedem Linkzugriff die Authentifizierung geprüft?

Ja, du kannst einzelne Anwendungen und auch einzelne Nutzer:innen sperren. Dein Pod prüft die Berechtigungen, bevor er dein Bild, oder irgendwelche Daten, an eine Anwendung ausliefert.

Wie sieht es mit mobilen Apps aus?

Solid ist nicht auf Web-Apps beschränkt. Auch native Apps sollen auf Pods zugreifen können. Solid Apps sind oft Webanwendungen oder Progressive Web Apps (PWA), weil dies für die meisten Anwendungsfälle ausreicht. Für native mobile Apps brauchen wir noch mehr Leute, die sich mit dem Thema beschäftigen. Die Library-Unterstützung ist hier noch nicht so gut.

Wie gut skaliert Solid? Gibt es Probleme mit mehreren Pods / Datenquellen?

Bis jetzt habe ich in der Praxis keine Performanceprobleme gesehen. Auch wenn ich angenommen hunderte Freunde habe und tausende Bilder in der Timeline: Eine App zeigt ja nie alles auf einmal an, sondern hat eine Seitennavigation oder Endless-Scrolling. Wenn gleichzeitig nur 10 oder 20 Bilder angezeigt werden, passieren auch nur 10-20 Requests. Das ist absolut kein Problem. Auch mehrere Datenquellen sind kein Thema: Das Web kennt nur URIs und ruft die Daten von diesen ab, egal wo sie liegen. Die Last verteilt sich dann sogar auf mehrere unabhängige Server.

Was wenn ich meinen Server abschalte?

Nehmen wir an, du hast einen Kommentar zu meinem Beitrag geschrieben. Mein Beitrag verlinkt zu diesem. Nun schaltest du deinen Server ab. Eine App, die meinen Beitrag lädt und dann dem Link zu deinem Kommentar folgt, wird einen HTTP Status 404 (Not Found) oder vielleicht 500 oder ähnliches bekommen.

Die Apps müssen mit so etwas umgehen können, den Kommentar vielleicht ausblenden, oder „gelöschter Kommentar“ oder ähnliches anzeigen. Solche Fehler werden definitiv auftreten. Eine gute Solid App ist resilient programmiert und geht vernünftig damit um.

Macht es Diskussionen nicht unübersichtlich, wenn Server ausfallen oder abgeschaltet werden?

Möglicherweise ja. Die Frage ist, wird es unübersichtlicher als heute auf zentralen Plattformen? Auch dort kommt es vor, dass der Anbieter Inhalte sperrt oder Accounts löscht. Oder Diskutierende löschen ihre Beiträge wieder, oder blockieren dich. Ich gehe davon aus, dass die Masse der Solid Pods auf zuverlässigen Systemen betrieben wird. Das garantiert aber nicht, dass alle Inhalte für alle Zeit erreichbar sein werden.

Bei Diaspora und Mastodon sind am Ende doch alle bei einer zentralen Platform gelandet. Wo ist der Unterschied?

Der Unterschied ist, dass wir alle frei wählen können, wo wir welche Daten speichern und über welche Apps wir diese nutzen. Wenn 90% am Ende bei einem einzigen Anbieter sein wollen, ist das aus meiner Sicht ok. Daraus allein ergibt sich noch kein Problem. Entscheidend ist, dass unsere Daten und Interaktionen zueinander kompatibel sind. Im Gegensatz zu z.B. Mastodon ist Solid auch nicht auf einen einzelnen Use-Case („twittern“) beschränkt, sondern bietet eine Plattform um alle denkbaren Apps zu entwickeln und miteinander zu vernetzen. Es trennt strikt zwischen Apps und Daten. Bei „dezentralen Daten-Silos“, wie Mastodon und Diaspora ist es bequem sich einfach bei einer prominenten Instanz anzumelden und diese zu nutzen, was ungewollt un einer Zentralisierung führt. Bei Solid hingegen, ist es bequem Daten zu dezentralisieren und Apps zu wechseln, weshalb ich denke, dass dies passieren wird, ohne dass Menschen darüber groß nachdenken.

Wo liegt der Unterschied zu Protokollen wie ActivityPub?

Beide haben gewisse Überschneidungen in den Zielen. ActivityPub und Solid können sich gut ergänzen. Ein Solid Server könnte z.B. das Activity Pub Protokoll implementieren. Das Activity Streams Vokabular lässt sich schon heute wunderbar nutzen, um Social-Web-Aktivitäten in einem Solid Pod zu speichern. Solid insgesamt bietet aber deutlich mehr Freiheiten und geht über den Zweck von ActivityPup hinaus. Im Solid Ökosystem lassen sich alle möglichen Daten miteinander verlinken.

Gibt es einen Standard um Referenzen zu eigenen (wissenschaftlichen) Publikationen abzulegen?

Da Solid und allgemein Linked Data im wissenschaftlichen Umfeld entstanden sind, sollte es gerade in diesem Bereich an nichts mangeln. Mit Dublin Core z. B. lassen sich die wichtigsten Metadaten über Veröffentlichungen erfassen.

Wo liegen denn die verlinkten Daten? Was wenn ich berühmt werde und zehntausende Requests bekomme?

Um viele Anfragen verarbeiten zu können, muss ein Pod-Server skalieren. Daten die ein so großes öffentliches Interesse wecken, wirst du definitiv nicht mehr auf einem Raspberry Pi bei dir zuhause hosten können, sondern du suchst dir einen guten Dienstleister.

Das heißt aber nicht, dass du alle deine Daten bei einem Provider hosten musst. Bei Solid kannst du die Daten auf beliebig viele Pods verteilen und miteinander verlinken. Während du öffentliche Daten mit vielen Requests bei einem passenden Dienst einstellst, wirst du private Daten vielleicht weiterhin zuhause lagern.

Ist es nicht für die Masse zu kompliziert und aufwändig sich mit Solid zu befassen?

Die Nutzung von Solid-Apps und Pods muss nicht komplizierter sein, als die Benutzung von Social-Media-Diensten heute. Wenn ich mich nicht mit der Technik befassen möchte, dann kann ich die Daten weiterhin „in der Cloud“ speichern. Diese „Cloud“ wird dann jedoch kein abgeschottetes Daten-Silo sein, sondern ein Netzwerk aus verlinkten Solid-Pods. Dadurch habe ich jederzeit Zugriff auf meine Daten und kann frei entscheiden, mit welchen Apps ich sie verwende.

Durch die Verlinkung der Daten sind auch hybride Lösungen kein Problem: So kann ich zum Beispiel öffentliche Bilder im Pod einer kostenlosen Fotoplattform hosten und private Urlaubsfotos beim Pod-Anbieter meines Vertrauens oder auf einem eigenen Server.

Zertifikate muss ich mir selber holen?

Wenn du einen Solid-Server selbst betreiben möchtest, dann muss dieser unter HTTPS laufen und du brauchst ein Zertifikat, ja. Das ist jedoch heute dank Let’s Encrypt keine große Sache mehr.

Wie kann ich darauf vertrauen, dass die Rechte korrekt verwaltet/gesetzt werden?

Auch für die Berechtigungen kann es Solid-Apps geben und du kannst frei wählen, welche du dafür verwenden möchtest. Nimm eine App deines Vertrauens, oder programmiere dir bei Bedarf eine eigene. Grundsätzlich kannst du die Rechte aber direkt im Solid-Server setzen. Da alle Daten (zumindest beim Node Solid Server) als Textdateien vorliegen, kannst du im Zweifel sogar die Rechte über einen einfachen Texteditor wie vim setzen, wenn du auf Nummer sicher gehen möchtest.

Kostet ein Pod wirklich 15-20 Euro?! Also muss ich ordentlich blechen oder meine Privatsphäre aufgeben?

Nein, das ist eine salopp dahergesagte Zahl! Wie die Preise sich entwickeln und welche Geschäftsmodelle und Initiativen entstehen ist völlig offen. Neben bezahlten Dienstleistern können auch öffentliche und soziale Lösungen entstehen: Zum Beispiel könnten Bibliotheken, Vereine und Universitäten als Pod-Hoster in Erscheinung treten. Was auch immer passiert ist jedoch ein Fortschritt im Vergleich zu heute, wo für uns alle nur die Option „Privatsphäre aufgeben“ besteht.

Schreibe einen Kommentar