Skip to content

Forgejo als Tor-Onion-Service betreiben

Innerhalb unseres Hackspaces wird unter anderem gern git verwendet. Anfangs nutzten wir hierfür GitHub und später stiegen wir auf Selbsthosting um.

Die ersten Experimente mit Selbsthosting begannen mit trac. Aus verschiedenen Gründen wurde das jedoch wenig benutzt. Also startete der nächste Versuch mit Gitea. Das wurde deutlich mehr benutzt. Aufgrund der Entwicklungen bei Gitea entschlossen wir uns später, zu Forgejo zu wechseln. Mittlerweile sind alle Repositorys von GitHub umgezogen und die Adresse https://git.kraut.space/ ist der zentrale Ort für die Repositorys des Krautspace sowie von einigen Mitgliedern.

Um das Bild abzurunden, wollte ich die Seite auch als Tor Onion Service verfügbar machen. Einige Personen im Umfeld des Space' nutzen gern Tor und den Tor-Browser. Daher versuchen wir, einige der selbst gehosteten Dienste auch mit Onion-Adressen zu versehen.

Bei der Einrichtung achten wir nicht darauf, den Dienst bzw. dessen IP-Adresse zu verstecken. Wenn man das als “richtigen” Onion-Dienst betreiben will, müsste man noch weitere Einstellungen im Webserver und im Betriebssystem vornehmen.

Die Einrichtung von Forgejo als Tor Onion Service passiert in zwei Schritten:

  1. Konfiguration von Tor
  2. Konfiguration des Webservers

Konfiguration von Tor

Auf unseren Servern kommt Systemd zum Einsatz. Daher richte ich zunächst eine neue Instanz des Tor-Service ein:

tor-instance-create forgejo

Das legt einen neuen Systembenutzer namens _tor-forgejo und Verzeichnisse in /etc sowie /var/lib/tor-instances an. Weiterhin wird von einem Systemd-Template ein neuer Dienst tor@forgejo.service abgeleitet.

Im Verzeichnis /etc/tor/instances gibt es das Unterverzeichnis forgejo und darin liegt die relevante torrc um den Dienst zu konfigurieren.

Üblicherweise würde man dort folgende Zeilen eintragen:

HiddenServiceDir /var/lib/tor-instances/forgejo
HiddenServicePort 80 127.0.0.1:80
HiddenServiceVersion 3

Nach einem Neustart des Systemd-Dienstes wird in obigem Verzeichnis eine Datei namens hostname angelegt. Dort ist die Onion-Adresse.

Ansonsten sorgt Tor dafür, dass alle Anfragen über den virtuellen Port 80 an die Adresse 127.0.0.1 mit Port 80 weitergegeben werden. Damit müsste ein Webserver entsprechend eingestellt werden.

Wir nutzen Forgejo mit einem nginx als Reverse Proxy, d.h. es gibt einen Unix-Socket, über den kommuniziert wird. Diesen kann man natürlich direkt für Tor verwenden:

HiddenServiceDir /var/lib/tor-instances/forgejo
HiddenServicePort 80 unix:/run/forgejo/forgejo.sock
HiddenServiceVersion 3

Nach einem Neustart des Tor-Dienstes wartet dieser nun auf Anfragen.

Konfiguration des Webservers

An sich wäre bei obigem Schritt die Arbeit zu Ende. Allerdings gibt es den HTTP-Header Onion-Location. Damit kann man den Tor-Browser informieren, dass es einen Onion-Dienst gibt und dieser leitet ggf. automatisch auf die Onion-Adresse um.

In den Einstellungen des nginx für den Dienst wird daher noch folgende Zeile eingetragen:

add_header onion-location  http://kqfdxjpzqt345qplxy6yrgkj4rotfokskmxyqz5a4t4yewg6n62ea2ad.onion$request_uri

Nachdem die Konfiguration neu eingelesen wurde, kann man die Adresse https://git.kraut.space aufrufen. Sofern man einen Browser ohne spezifischen “Onion-Fähigkeiten” verwendet, wird einfach die reguläre Seite verwendet. Sollte man einen Tor-Browser oder einen anderen Browser verwenden, der mit Onion-Adressen umgehen kann und den Header kennt, wird man entweder gefragt, ob man zur Onion-Seite weitergeleitet werden möchte oder es wird automatisch gemacht.

Threads auf Mastodon für alle blockieren?

Das Fediverse ist ein dezentrales Netzwerk, wo viele Dienste mittels des Protokolls ActivityPub miteinander kommunizieren können. Hierzu gibt es die schöne Grafik mit dem Baum des Fediverse' und seinen vielen Ästen:

The many branches of the Fediverse von Per Axbom

The many branches of the Fediverse von Per Axbom. https://axbom.com/fediverse

Ein neuer Zweig kam kürzlich hinzu: Threads. Das ist ein Ableger des Meta-Konzern, besser bekannt als Facebook. Mit einem Account bei Instagram lässt sich auch Threads nutzen. Threads setzt auf ActivityPub und kann damit prinzipiell auch mit allen anderen Diensten Daten austauschen.

Nun entstanden Diskussionen, inwieweit dies gewollt ist und ob man Threads als Betreiber:in eines Mastodon- oder anderen Fediverse-Servers sperren solle. Mit einer Sperre ist eine Kommunikation mit Threads auf dem Server nicht mehr möglich. Als Argument wird Datenschutz und der “Vernichtungswille” von Großkonzernen angeführt. Da ich unter der Adresse Freie-Re.de auch einen Mastodon-Server betreibe, habe ich mir dazu auch Gedanken gemacht.

ActivityPub funktioniert als Protokoll im wesentlichen so, dass ein Beitrag in einen Postausgangskorb gelegt wird. Andere Server kommen vorbei und holen diese Nachricht ab. Andere Nutzer:innen werfen eine Nachricht in den eigenen Posteingangskorb und ich hole diese irgendwann dort ab. Das Ganze ist unten sowie auf der Wikipedia-Seite zu ActivityPub genauer beschrieben.

Aktivitäten bei ActivityPub.
Aktivitäten bei ActivityPub. Details unter https://de.wikipedia.org/wiki/ActivityPub

Wenn ich nun Beiträge schreibe, holt Threads diese wie alle anderen aus meinem Postausgang ab. Wie alle anderen, sieht der Server die Inhalte und einige andere Eigenschaften des Beitrages. Was dort genau hinterlegt wird, hängt vom konkreten Dienst ab. Mastodon legt keine zusätzlichen personenbezogenen Daten, wie IP-Adresse oder anderes, ab. Damit kann der fremde Server auch nichts mehr sehen.

Anders sieht es natürlich für die Nutzer:innen von Threads aus. Wer sich dort einen Account anlegt und die App nutzt, gibt eine Vielzahl an Daten an den Dienst. Dazu gehören laut App-Store Kontaktdaten, Standortdaten und viel, viel mehr. Das heißt, wer Bedenken hinsichtlich des Datenschutzes hat, sollte sich gut überlegen, ob ein Account bei Threads eine gute Idee ist.

Für Nutzer:innen aus dem Fediverse sehe ich hier jedoch keine größeren Gefahren. Die Daten, die eh öffentlich sind, können auch von Threads gelesen werden. Dadurch entsteht also kein zusätzliches Risiko.

Das zweite geäußerte Bedenken ist der “Vernichtungswille”. Viele große Konzerne und große Firmen verfolgen eine Strategie, die als Embrace, Extend und Extinguish bezeichnet wird. Das heißt, anfangs wird ein freies Protokoll oder eine freie Software gelobt und gern verwendet. Irgendwann gibt es dann Erweiterungen des Protokolls oder der Software, die nur für diejenigen nutzbar sind, die Kund:innen der Firma sind. Später werden dann alle Verbindungen in die “freie Welt” gekappt und das Produkt ist nur noch für Kund:innen nutzbar. Beispiele finden sich bei Google, Facebook und anderen Konzernen.

Der Ansatz ist auch hier zu befürchten. Das heißt, am Anfang gibt es eine Verbindung in das Fediverse und alle jubeln, dass Threads sich für ein freies Protokoll entschieden hat. Ich kann mir vorstellen, dass dann vielleicht Bilder und Videos nur in schlechter Auflösung ins Fediverse gelangen. Wer das Original sehen will, braucht ein Threads-Konto. Oder man kann nur mit den Accounts bei Threads interagieren, wenn man dort ein Konto hat. Hier könnt ihr eure Fantasie benutzen, wie sich das sinnvoll einschränken lässt, um andere zu Threads zu locken. Wenn dann genügend Leute Threads nutzen, kann die Verbindung ins Fediverse gekappt werden. Nutzer:innen sind dahin abgewandert und eventuell fristet das Fediverse dann ein Nischendasein. Das ist natürlich im Moment eine Vermutung und was genau passieren wird, weißt außerhalb von Meta niemand.

Ich halte es aufgrund der Beobachtungen anderer Firmen für eine erwartbare Entwicklung und für eine, auf die sich die Betreiber:innen einstellen sollten. Doch bringt ein Block von Threads hier etwas?

Wenn sich viele und insbesondere die großen Instanzen auf einen Block einlassen, würde das sicher etwas bringen. Dann fehlen Threads die initiale Zahl an aktiven Konten und sie müssen den Dienst irgendwie anders zum Laufen bekommen. Hier gibt es für den Konzern viele Möglichkeiten und ein Block wird sie einfach bewegen, anfangs einen anderen Weg zu nutzen.

Wenn sich jedoch nur ein kleiner Teil des Fediverse' zu einem Block durchringen kann, wird Threads weiter föderieren und vielleicht obigen Weg verfolgen. Sollte der Extinguish-Teil klarer werden, ließe sich vielleicht durch die Drohung, dass geblockt wird, Druck aufbauen.

Im allgemeinen bin ich der Meinung, dass weder ein präventiver Block noch ein späterer Block langfristig in dem Sinne etwas bringt, dass man den Konzern umstimmen kann. Hier wäre es wichtig, dass sich die Gemeinschaft der Betreiber:innen frühzeitig zusammenrauft und eigene Strategien entwickelt, wie mit der potenziellen Strategie von Threads umgegangen wird. Innerhalb dieser Strategie kann dann ein Block ein Baustein sein.

Aufgrund dieser Überlegungen habe ich mich daher entschieden, mit Threads zu föderieren und diese nicht zu blockieren. Derzeit überlasse ich das den Nutzer:innen. Wenn es irgendwelche anderen Gründe für einen Block geben sollte, würde ich die Gründe prüfen und aufgrund der Bewertung einen Block vornehmen, so wie das auch bei anderen mache.

Tor entfernt 1000 Server aus dem Netz

Unter dem Titel Safeguarding the Tor network: our commitment to network health and supporting relay operators veröffentlichte das Tor-Projekt einen Blog-Artikel. Darin wurde gemeldet, dass mehrere Server aus dem Netzwerk entfernt wurden.

Verlauf der Relays über die letzten TageAuf der obigen Grafik ist die Delle deutlich zu sehen. Auch eine Suche nach Relays findet um die 1000 Tor-Server. Was ist passiert?

In den Kommentaren im Tor-Blog und auch an anderen Stellen im Internet wird auf ATOR verwiesen. Dies ist eine Cryptocoin, die darauf basiert, dass andere Tor-Server betreiben. Soweit ich das sehe, muss in der torrc der String ator mit Werten enthalten sein. ATOR scheint dann auszuwerten, wie lange die Server online und auf der Basis Geld auszuschütten. Das ist zumindest das, was ich mir aufgrund divreser Quellen zusammengereimt habe.

Das Tor-Projekt hat nun herausgefunden, dass es diese Server gibt und begonnen, die Relays aus dem Netzwerk zu verbannen. Eine Suche ergibt immer mal einzelne neue, aber weitestgehend sind die aus dem Netzwerk verschwunden.

Die Gründe hierfür sind vielfältig. Im Allgemeinen geht das Projekt davon aus, dass die Betreiber:innen die Relays nicht aus eigener intrinsicher Motivation betreiben, sondern des Geldes wegen. Dies eröffnet natürlich Raum für Angriffe und ist in der wissenschaftlichen Welt seit etwa 15 Jahren diskutiert worden. Über die letzten Jahre war nun immer wieder zu sehen, dass verschiedene Gruppen Angriffe versuchen. Daher lässt das Projekt mittlerweile auch viel mehr Vorsicht walten, was es als gute oder bösartige Relays ansieht. In dem Fall war die Wahl dann klar.

Gesichtserkennung an schottischen Schulen

Die Schulen im schottischen Bezirk North Ayrshire setzten Ende 2021 Gesichtserkennungssysteme ein, um Schulkinder zu erkennen. Das System sollte die Kinder identifizieren und denen dann die Teilnahme am kostenlosen Schulessen ermöglichen. Diese Praxis sorgte bereits für einige Kritik in UK-Medien und rief auch die dortige Datenschutzbehörde ICO auf den Plan.

Diese hat den Sachverhalt geprüft und kam zu dem Schluss, dass Gesichtserkennung in Schulen im Allgemeinen möglich ist. Allerdings hat der North Ayrshire Council (NAC) gegen verschiedene Bestimmungen in der DSGVO verstoßen. Konkret wurden folgende Punkte benannt:

  • Grundsatz der Rechtmäßigkeit, Verarbeitung nach Treu und Glauben, Transparenz
  • Informationspflicht
  • Speicherbegrenzung
  • Datenschutz-Folgenabschätzung

Der NAC wurde empfohlen bei der Datenminimierung und dem Grundsatz der Richtigkeit Verbesserungen vorzunehmen.

Die DSGVO schreibt im Erwägungsgrund 38, dass Kinder einen besonderen Schutz bei der Verarbeitung ihrer Daten genießen, da Kinder sich der betreffenden Risiken, Folgen und Garantien und ihrer Rechte bei der Verarbeitung personenbezogener Daten möglicherweise weniger bewusst sind.

Insbesondere wenn die Verarbeitung sehr tief in die Rechte und Freiheiten eingreift, so muss eine so genannte Datenschutz-Folgenabschätzung vorgenommen werden. Hierbei müssen die konkreten Risiken bewertet und Abhilfemaßnahmen eingebaut werden. Dies erschien der ICO im Falle der Schulen zwingend notwendig, war aber nicht vorhanden.

Die ICO hat sich die Anlage genauer angeschaut und versucht, eine Bewertung entlang der Pflichten der DSGVO vorzunehmen. Das Schreiben an die NAC liest sich wie eine Horrovorstellung.

  • NAC were unable to demonstrate that there was a valid lawful basis for the processing.
    Zu gut Deutsch: Für die Verarbeitung gab es keine Rechtsgrundlage. Personenbezogene Daten dürfen aber nur verarbeitet werden, wenn es eine solche gibt. Anfangs wurde wohl behauptet, dass die Schulen Aufgaben des öffentlichen Interesses wahrnehmen. Später ist man dann umgeschwenkt und hat eine Einwilligung als Rechtsgrundlage herangezogen. Allerdings gab es eben keine wirkliche Einwilligung, die den Vorgaben der DSGVO entsprach. Die Eltern scheinen mehr so eine Art allgemeine Einwilligung abgegeben zu haben.
  • Die Gesichtserkennung diente hier zur Identifizierung von Kindern. Das sind also biometrische Daten und damit besondere Kategorien personenbezogener Daten. Deren Verarbeitung ist im Art. 9 DSVGO nochmal explizit untersagt und hier gibt es eine Liste von Ausnahmen.
  • Einwilligung für Kinder müssen in einem für sie verständlichen Text geschrieben sein. Die ICO schreibt, dass es in der Tat zwei verschiedene Einwilligungsformulare (Erwachsene und Kinder) gab. Der Unterschied zwischen beiden Formularen waren die Worte Ihr Kind und Du. Dazu muss man wohl nichts mehr sagen.
  • Die ICO konnte nicht herausfinden, wann welche Daten wirklich gelöscht werden. Die NAC gab an, dass die Bilder fünf Jahre nach dem Ausscheiden oder am 23. Geburtstag der Person gelöscht werden. Warum gerade fünf Jahre ausgewählt wurden oder ob sowohl die Vorlage, die zur Erkennung genutzt wird wie auch die Einzelaufnahmen gelöscht werden, konnte nicht herausgefunden werden.
  • Auch zur Datenschutz-Folgenabschätzung ist die ICO eindeutig: We consider that the DPIA we reviewed is unlikely to have complied with Article 35 of the UK GDPR

Insgesamt ist das Schreiben der ICO sowie die Case Study ein schönes Dokument, um mal zu erfahren, wie man es nicht macht. Allerdings schreibt die ICO auch sehr gut und detailliert, wie die Schulen es besser machen könnten.

Ich hoffe ja, dass die Schulen lernen und das System abbauen und nicht wieder benutzen. In Anbetracht der Tatsache, dass vorher dort wie auch an anderen Schulen in Schottland Fingerabdrucksysteme zum Einsatz kamen, habe ich da jedoch wenig Hoffnung.

Mastodon und die DSGVO

Bild eines Mastodons
Mastodon von Thomas Quine

Die Software Mastodon ist eine neue Erfolggeschichte aus meiner Heimatstadt Jena. Seitdem Elon Musk Twitter übernommen hat, suchen sich viele Menschen ein neues Social-Media-Zuhause und deren Wahl fällt sehr oft auf Mastodon. Andere gehen einen Schritt weiter, nehmen den Code von Eugen Rochko und bauen Server für sich und andere auf. Der Betrieb eines solchen Servers bietet einerseits einige technische Herausforderungen, aber aber auch viele aus dem nicht-technischen Bereich. Ich will in dem Beitrag mal den Augenmerk auf die Pflichten aus der Datenschutz-Grundverordnung (DSGVO) legen. Der Podcast Rechtsbelehrung hat kürzlich noch einen viel weitere Blick genommen. Hört mal in die Folge 112 zu Nutzungsbedigungen, Datenschutz und Digital Services Act rein.

Folgende Punkte gilt es zu beachten:

Mastodon-Startansicht
Mastodon-Startansicht

DSGVO?

Die erste Frage, die man sich stellen kann, ist, ob die DSGVO überhaupt relevant ist. Mit dem Betrieb eines Mastodon-Servers werden E-Mail-Adressen, Namen und anderes verarbeitet. All dies sind personenbezogene Daten. Damit ist die Verordnung anzuwenden.

Auftragsverarbeitung

Am Anfang steht die Frage, wo die Software installiert werden soll. Es könnte der eigene Server zu Hause sein, ein Raspberry Pi oder ein Server, der bei einem Provider in einem Rechenzentrum gemietet wird. In all diesen Fällen liegt die komplette Verantwortung in euren Händen. Hier müsst ihr euch später Gedanken zur Sicherheit machen. Aber hinsichtlich Auftragsverarbeitung können wir einen Haken machen. Denn dies ist nicht der Fall.

Wenn ihr ein “Fertigangebot”, wie masto.host, nutzt, dann beauftragt ihr eine fremde Firma mit der Verarbeitung der personenbezogenen Daten. Dies ist dann eine Auftragsverarbeitung. Damit müsst ihr sicherstellen, dass sich euer Anbieter auch an die DSGVO hält und auch ausreichende Sicherheitsmaßnahmen eingebaut hat. Die Anbieter haben für den Nachweis meist Listen mit technischen und organisatorischen Maßnahmen, Zertifikate oder anderes. Hier solltet ihr einen Blick drauf werfen und abschätzen, ob das euren Anforderungen genügt.

Der zentrale Punkt ist dann ein Vertrag zur Auftragsverarbeitung. Dieser Vertrag muss sich an die Vorgaben des Art. 28 DSGVO halten. Praktisch haben die Anbieter meist vorgefertigte Verträge, die ihr nur herunterladen und unterschreiben müsst.

Mit diesem ersten Schritt habt ihr die erste Hürde überwunden und könnt zur Installation oder Konfiguration des Servers schreiten.

Sicherheit der Verarbeitung

Beim Installieren und Einrichten des Servers (wie auch später im laufenden Betrieb) ist es sinnvoll, sich Gedanken über die Sicherheit zu machen.

Die DSGVO möchte ein angemessenes Sicherheitsniveau haben. Dies muss der Art der verarbeiteten Daten und dem Risiko entsprechen. Dabei muss der Stand der Technik und die Kosten der Einführung mit berücksichtigt werden. Doch welche Daten verarbeitet ihr? Soweit ich das sehe, sind das bei einem Mastodon-Server:

  • Name und Profilname
  • E-Mail-Adresse
  • Passwort
  • öffentliche Toots und “private” Nachrichten

Dabei sind Name, Profilname und öffentliche Toots Daten, die die Person mit der Verwendung des Dienstes auch veröffentlicht. Hier ist der Schutzbedarf eher gering. Meiner Meinung nach sind nur die E-Mail-Adresse, das Passwort und die privaten Nachrichten Daten, wo sich tiefergehende Gedanken über die Absicherung “lohnen”. Andererseits werden all diese Daten in einer Datenbank liegen. Somit ist es sinnvoll, die Datenbank als Ganzes zu betrachten.

Die konkreten Überlegungen hängen davon ab, wie ihr den Server betreibt, also steht der bei euch zu Hause oder im Rechenzentrum, läuft der auf einer eigenen Maschine oder auf einem Rechner, der von vielen anderen benutzt wird etc.? Mit den untenstehenden Fragen will ich ein paar Denkanstöße hinsichtlich von Sicherheitsmaßnahmen geben. Denkt mal bitte darüber nach, wie das bei eurem Server aussieht und ob dieser hinreichend abgesichert ist:

  • Zugang zum Server: Ein Schutz besteht schon, wenn niemand den Server “anfassen” kann. Das heißt, Personen, die keine Berechtigung haben, sollten auch keinen physischen Zugang zu dem Gerät bekommen. Wie sieht das bei euch aus? Steht das Gerät in einem stark frequentierten Raum oder separat in einem abgeschlossenem Raum? Gibt es Fenster und Türen, durch die Menschen einfach an das Gerät kommen? Stellt euch einen Einbrecher vor und fragt euch, wie leicht oder schwer es dieser Person fallen könnte, direkt auf euren Server zuzugreifen. Anhand dessen könnt ihr euch dann Maßnahmen überlegen, die dies erschweren. Wenn es ein Server in einem Rechenzentrum ist, erübrigen sich diese Gedanken meist. Denn hier gibt es meist Zugangsrichtlinien, die kontrolliert werden und auf die ihr auch keinen Einfluss habt.
  • Zugriff auf die Daten: Wenn es nun jemand zum Server geschafft hat, soll die Person möglichst keinen Zugriff auf die Daten bekommen. Dies könnte passieren, wenn diese Person vor dem Rechner steht und versucht, euer Passwort zu erraten oder über SSH Rateversuche unternimmt. Eventuell hat sich Schadsoftware auf der Maschine breit gemacht und liest Daten aus. Bei Überlegungen zu dem Punkt ist eure Kreativität gefragt. Auf welche Weise könnte ein Angreifer Zugriff auf eure Daten bekommen und wie unterbindet ihr das?
  • Abhören der Daten: Beim Einloggen in den Server oder auch bei der Benutzung des Servers könnte es sein, dass Unbefugte versuchen, mitzuhören. Es wäre möglich, dass jemand eure Kommunikationswege (E-Mail, Messenger etc.) überwacht, um Daten mitzulesen. An der Stelle bruacht ihr ebenfalls Maßnahmen. In der Regel sind das verschiedene Verschlüsselungsmaßnahmen. Das heißt, die Webseite muss über TLS erreichbar sein, eure Mails und anderen Kommunikationen müssen mindestens transportverschlüsselt sein. Wenn ihr die Daten physisch umher tragt, solltet ihr ebenfalls über eine Verschlüsselung nachdenken.
  • Verfügbarkeit der Daten und des Dienstes: Vermutlich gebt ihr keine Garantien hinsichtlich der Verfügbarkeit ab. Dennoch kann es schnell passieren, dass euer Dienst im Nirvana verschwindet. Hitze, Staub und Feuchtigkeit können dem Server zusetzen. Wenn der im Rechenzentrum steht, haben sich andere Gedanken gemacht. Wenn der Server auf euren Maschinen läuft, müsst ihr euch diese Gedanken machen. Weiterhin ist ein Backup ein wichtiger Schritt. Denkt darüber nach, wie die Datenbank und die einzelnen Dateien gebackupt werden können und testet regelmäßig die Wiederherstellung.

Ihr könnt natürlich noch viel mehr Maßnahmen einsetzen und den Schutz deutlich erhöhen. Die obige Aufstellung soll euch ein paar Anstöße liefern. Das Grundschutzkompendium des BSI ist u.a. eine Quelle, wo verschiedene Maßnahmen mit aufgelistet sind.

Rechte der betroffenen Personen

Die DSGVO gibt den betroffenen Personen einige Rechte. Diese sollen wissen, dass Daten von ihnen verarbeitet werden, welche das sind, wie lange etc. Die Rechte müsst ihr beim Betrieb eines Servers natürlich auch gewährleisten.

Datenschutzhinweise

Wenn Daten erhoben werden, beginnt für euch eine Pflicht, die Menschen zu informieren. Dies geschieht in der Regel über Datenschutzhinweise auf der Webseite. Der Artikel 13 der DSGVO enthält genaue Hinweise, welche Daten dort aufzuführen sind. Ich habe euch exemplarisch mal Hinweise anderer Instanzen verlinkt. Dort könnt ihr sehen, solche Informationen aussehen können.

Auskunftsrecht

Nun können die betroffenen Personen jederzeit zu euch kommen und euch um eine Auskunft zu den verarbeiteten Daten bitten. Das bedeutet, zunächst müsst ihr prüfen, ob ihr überhaupt Daten dieser Person verarbeitet und falls ja, ist dann eine Auskunft zur Verarbeitung zu machen.

Wichtig ist hier zunächst, dass ihr einen solchen Antrag überhaupt wahrnehmt. Vermutlich werden sich die meisten über eine Mastodon-Nachricht oder eine E-Mail an euch wenden. Das heißt, ihr solltet sicherstellen, dass ihr regelmäßig eure Direktnachrichten und E-Mails lest. Denn ihr müsst spätestens innerhalb eines Monats nach Eingang auf die Nachricht reagieren.

Wenn ich davon ausgehe, dass jemand mit einem Mastodon-Konto auf eurem Server eine solche Anfrage stellt, so können die erforderlichen Angaben dem untenstehenden Verzeichnis der Verarbeitungstätigkeiten entnommen werden.

Sollte nun jemand ohne Account bei eurem Mastodon-Server eine Anfrage stellen, wird es spannend. Denn unter Umständen verarbeitet ihr auch dessen Daten. Soweit ich das sehe, müssten die folgenden Punkte mit in der Auskunft erwähnt werden. Bitte kopiert dies jedoch nicht einfach hier von der Seite, sondern prüft das nochmal nach. Wenn ihr zu einem anderen Ergebnis kommt, freue ich mich natürlich über eine Rückmeldung.

  • Zweck der Verarbeitung: Betrieb eines Mastodon-Servers, Austausch und Kommunikation
  • Kategorien personenbezogener Daten: Name, Mastodon-Benutzername, Uhrzeit des Beitrags, verwendete Software, Inhaltsdaten, (ggf. IP-Adresse und weiteres)
  • Empfänger: Besucher:innen der Webseite, andere Mastodon-Benutzer:innen
  • Speicherdauer: Hier musst du in deine Einstellungen schauen.
  • Drittlandübermittlung: Wenn dein Server oder auch dein Anbieter außerhalb der EU agiert, wäre das hier mit zu erwähnen.
  • Weiteres: Daneben musst du die User auf deren Rechte hinweisen. Genaueres siehe Art. 15 DSGVO.

Löschrecht

Neben einer Auskunft kann jemand auch die Löschung seiner Daten verlangen. Das könnte sowohl jemand mit als auch ohne Konto bei eurem Server sein. Im ersteren Fall wird ein Löschantrag sicher schwierig, denn die Person hat ja noch ein Konto. Damit wäre eine weitere Verarbeitung vermutlich notwendig und es gäbe keinen Löschanspruch.

Wenn jemand ohne Konto eine Löschung verlangt, wird es schon schwieriger. Diesen Fall diskutiert Enno Lenze auch in seinem Beitrag “Weg von Twitter, hin zu Mastodon?”.

Datenschutzverletzungen

Wenn euer Server gehackt werden sollte, so gibt es auch seitens der DSGVO Pflichten, die auf euch zukommen. Einerseits ist das eine Meldepflicht in Richtung der Aufsichtsbehörden und andererseits eventuell auch eine Information der betroffenen Personen.

Eine Datenschutzverletzung kann dabei vieles sein. Im Allgemeinen muss es sich um eine Verletzung der Sicherheit handeln, die zu

  • Vernichtung
  • Verlust
  • Veränderung
  • unbefugter Offenlegung oder
  • Zugang durch Unbefugte

führt. Also wären

  1. ein versehentliches Löschen der Datenbank,
  2. Ransomware, die alle Daten verschlüsselt,
  3. ein Datenbankdump, der auf der Webseite frei zum Download steht oder
  4. ein “klassisch” gehackter Server

Beispiele für Datenschutzverletzungen. Es wäre sinnvoll, dass ihr euch immer mal wieder Gedanken macht, was in eurem Fall konkret Datenschutzverletzungen sein können. Oftmals stellt man fest, dass auch schon triviale Sachen in die Definition passen und gemeldet werden müssen.

Ich will die obigen Beispiele kurz diskutieren:

  1. Wenn ihr für die Datenbank ein Backup habt, spielt ihr das ein und der Server läuft wieder. In dem Fall ist aus meiner Sicht kein besonderes Risiko für die betroffenen Personen entstanden. Daher gehe ich nicht von einer Meldepflicht aus. Allerdings solltet ihr gemäß Art. 33 Abs. 5 DSGVO den Vorgang dokumentieren. Also kurz aufschreiben, was passierte und was ihr gemacht habt.
  2. Eine Ransomware, die nur die Daten verschlüsselt, könnte auch durch Aufspielen eines Backups “bekämpft” werden und der Fall wäre wie der oben zu behandeln. Allerdings müsst ihr sicherstellen, dass es keinen Fremdzugriff gab und das ist gerade bei aktueller Schadsoftware nicht der Fall. Das heißt, hier wird sehr oft auf die Daten zugegriffen, die heruntergeladen etc. In solch einem Fall liegen die personenbezogenen Daten in den Händen Fremder. Also besteht ein Risiko für die Betroffenen. Es empfiehlt sich eine Meldung an die Aufsichtsbehörden und ich würde hier sogar eine Meldung an die Betroffenen befürworten.
  3. Wenn der Dump nur kurze Zeit auf der Seite war und ihr Fremdzugriffe ausschließen könnt oder wenn der Dump verschlüsselt ist, könnte man wie bei 1. auf die Meldung verzichten. Aber gerade wenn das nicht der Fall ist, wäre eine Meldung an die Betroffenen und die Aufsichtsbehörden Pflicht.
  4. Ein gehackter Server ist immer ein Grund für eine Meldung an die Behörden. Es sei denn, ihr könnt durch spezielle Sicherheitsmaßnahmen im Vorfeld ausschließen, dass es einen Zugriff auf personenbezogene Daten gab.

In einer Meldung über eine Datenschutzverletzung muss folgendes stehen:

  1. Art der Verletzung
  2. Kategorien und Zahl der betroffenen Personen
  3. ungefähre Zahl der Datensätze
  4. Beschreibung der Folgen der Verletzung
  5. Beschreibung der Maßnahmen, die ihr ergriffen habt.

Ich würde euch empfehlen, euch bereits vorher Gedanken über eine solche Meldung zu machen. Das macht es im konkreten Fall oft leichter, die Meldung abzusetzen.

Verzeichnis von Verarbeitungstätigkeiten

Ein recht “spannender” Punkt ergibt sich aus dem Art. 30 DSGVO. Demnach wäre ein Anbieter eines Mastodon-Servers verpflichtet, ein Verzeichnis von Verarbeitungstätigkeiten (VVT) zu führen. Das ist eine Auflistung von Vorgängen oder Prozessen bei denen personenbezogene Daten verarbeitet werden. In diesem Punkt steckt meist viel Detailarbeit. Beim Betrieb eines Mastodon-Servers müsste man zumindest die Verarbeitung durch den Server selbst sowie Kommunikation per E-Mail mit erfassen. Alles weitere hängt von euren Gegebenheiten ab. Ich habe untenstehend mal einen Versuch unternommen, die Einträge aufzuschreiben. Korrekturen sind herzlich willkommen.

VVT zum Serverbetrieb

  • Name und Kontaktdaten des Verantwortlichen: Das solltet ihr leicht ermitteln können. :-)
  • Zweck der Verarbeitung: Bereitstellung einer öffentlichen Kommunikationsplattform auf der Basis des ActivityPub-Protokolls
  • Kategorien betroffener Personen: Besucher:innen, Nutzer:innen
  • Kategorien personenbezogener Daten: Name, Mastodon-Username, Uhrzeit, verwendete Software, Inhaltsdaten, Verbindungsdaten
  • Empfänger: Andere Mastodon-Server, Dritte
  • Übermittlung in Drittländer: keine (oder Nennung, falls ihr sowas einsetzt) oder, aufgrund des Charakters des Dienstes, immer :-)
  • Löschung der Daten: Nennung, wann ihr welche Daten löscht. Hier gibt es Unterschiede zwischen Nutzungsdaten, wie IP-Adresse, und Inhaltsdaten, wie Beiträgen.
  • IT-Sicherheitsmaßnahmen: Nennung der Sicherheitsmaßnahmen, die ihr implementiert habt. Es ist meist besser, das in einem eigenem Dokument aufzuschreiben und darauf zu verweisen.

VVT für E-Mails

  • Name und Kontaktdaten des Verantwortlichen: Das solltet ihr leicht ermitteln können. :-)
  • Zweck der Verarbeitung: Elektronische Kommunikation
  • Kategorien betroffener Personen: Nutzer:innen, Dritte
  • Kategorien personenbezogener Daten: Name, E-Mail-Adresse, Verbindungs- und Inhaltsdaten
  • Empfänger: eventuell andere Admins des Dienstes (überlegt, wer die Mails noch “sieht”)
  • Übermittlung in Drittländer: keine (oder Nennung, falls ihr sowas einsetzt)
  • Löschung der Daten: E-Mails als Geschäftsbriefe 6 Jahre Aufbewahrung, E-Mails als steurrechtliche Unterlagen 10 Jahre Aufbewahrung
  • IT-Sicherheitsmaßnahmen: Nennung der Sicherheitsmaßnahmen, die ihr implementiert habt. Es ist meist besser, das in einem eigenem Dokument aufzuschreiben und darauf zu verweisen.

Weiteres und Fragen

Beim Schreiben dieses Artikels fiel mir auf, dass es noch viel mehr Dinge geben könnte, auf die man ein Auge haben müsste bzw. es gäbe andere Spezialfälle, die man auch diskutieren könnte. Ich habe mich letztlich entschieden, diese wegzulassen. Falls du beim Lesen des Beitrags Fragen hast oder dir Themen fehlen, schreibe am besten einen Kommentar (oder nutze andere Wege). Ich versuche, darauf zu antworten oder den Beitrag entsprechend anzupassen.

Onionshare für den Dateiaustausch verwenden

In regelmäßigen Abständen habe ich das Vergnügen, auf Journalisten aus verschiedenen Ländern der Welt zu treffen. Ich schule diese, wie man Internetsperren umgehen kann, worauf es bei der Anonymität ankommt etc. Eines der Werkzeuge, die ich dabei erwähne und welche Begeisterung auslöst, ist OnionShare (Onion-Link).

Wie der Name schon sagt, geht es um den Austausch (von Dateien) über Onions (also das Tor-Netzwerk). OnionShare entstand ursprünglich als Werkzeug, um eine einfache und sichere Downloadmöglichkeit über Tor Onion Services zur Verfügung zu stellen. Das Gute hieran ist, dass der Austausch komplett über das Tor-Netzwerk läuft, Sender und Empfänger können also unerkannt kommunizieren. Wenn OnionShare beendet wird, dann verschwindet auch der Link und kann auch nicht wieder wiederhergestellt werden. Mittlerweile lassen sich über das Programm Downloads oder Uploads bereitstellen, chatten und auch Webseiten anbieten. All das passiert mit wenigen Klicks. Wie funktionier das?

Für Windows gibt es eine MSI-Datei und für macOS eine DMG-Datei, die man installieren kann. Unter Linux gibt es Flatpak- oder Snap-Pakete. Ich nutze in der Regel das Flatpak. Dazu müsst ihr zunächst Flatpak einrichten. Der konkrete Weg ist abhängig von eurer Distribution und verbirgt sich hinter dem Link. Wenn das eingerichtet ist, kann das dann über flatpak install flathub org.onionshare.OnionShare installiert werden.

Willkommen-Bildschirm beim Start von OnionShare
Willkommen-Bildschirm beim Start von OnionShare

Oben seht ihr das Menü nach dem Start von OnionShare. Im einfachsten Fall klickt ihr auf “Connect to Tor”, OnionShare verbindet sich mit Tor und ihr könnt nun aus vier Möglichkeiten auswählen:

  1. Dateien teilen
  2. Dateien empfangen
  3. Webseite
  4. Anonym chatten

Sollte keine Verbindung zu Tor hergestellt werden können, empfehle ich einen Blick in das Handbuch. Dort stehen verschiedene Möglichkeiten beschrieben, die ihr einstellen könnt.

Die weitere Benutzung von OnionShare ist recht einfach. Ihr wählt den entsprechenden Menüpunkt aus, beantwortet ein paar Fragen und schon kann es losgehen.

Wenn ihr Dateien teilen wollt, klickt auf Dateien oder Ordner hinfügen und wählt diese aus. Wenn ihr damit fertig seid, könntet ihr schon mit dem Teilen beginnen. Allerdings solltet ihr über zwei Punkte nachdenken:

  1. Standardmäßig lässt OnionShare einen Download zu und schließt danach den Onion Service. Das ist sinnvoll, wenn ihr einer Person die Datei(en) schicken wollt. Wenn sich der Download an mehrere richtet, solltet ihr den Menüpunkt “Dateifreigabe beenden, …” deaktivieren. Dann bleibt der Dienst bis zum Schließen von OnionShare erhalten.
  2. Weiterhin richtet OnionShare eine private OnionShare-Adresse ein. Damit wird neben der Onion-Adresse ein privater Schlüssel erzeugt, der an den Empfänger übertragen werden muss. Dies ist einerseits die sichere Variante, andererseits macht das aus meiner Erfahrung mehr Probleme. Daher wähle ich meist aus, dass das ein öffentlicher OnionShare-Dienst ist.

Beide Punkte findet ihr auch bei den anderen Menüpunkten von OnionShare. Wenn ihr eure Auswahl getroffen habt, klickt auf den grünen Knopf und das Teilen kann beginnen.

OnionShare teilt Dateien

OnionShare teilt Dateien

Die obigen Ansicht zeigt euch OnionShare an, nachdem das Teilen begonnen wurde. Ich habe mal eine Datei geteilt, die nsu-akten-gratis.pdf heißt. Wenn ihr den Artikel lest, wird es die Onion-Adresse nicht mehr geben. Die Datei bezieht sich auf eine Veröffentlichung von Frag den Staat und Jan Böhmermann (Alternative). Das Original liegt hier.

Das Wichtige oben ist die Onion-Adresse. Diese schickt ihr weiter und der Empfänger öffnet diese mit dem Tor-Browser. Dort wird dann folgendes angezeigt:

Download im Tor-Browser
Download im Tor-Browser

Mit einem Klick auf “Download Files” werden die Dateien schließlich heruntergeladen. Probiert das mal aus. Ihr werdet sehen, dass dies wirklich einfach ist.

Doch wie funktionieren die anderen drei Punkte? Findet es heraus! Probiert es mal für euch und teilt eure Erfahrungen in den Kommentaren. Ich freue mich, von euren Erfahrungen zu hören. ;-)

Warum eine Onion-Adresse betreiben anstatt Menschen animieren, Tor zu nutzen

Dieser Text ist eine Übersetzung des Blogpostings Why offer an Onion Address rather than just encourage browsing-over-Tor? von Alec Muffett. Alex pflegt auch eine Liste nützlicher Onion-Adressen.


Es gibt eine Reihe von Gründen, eine Onion-Site einzurichten. Ein Reihe von Vorteilen waren für Plattformen wie Facebook, BBC oder NYTimes von Nutzen.

Die ersten Vorteile sind Authentizität und Verfügbarkeit: Wenn du den Tor-Browser benutzt und genau die richtige Onion-Adresse eingibst, bist du garantiert mit der erwarteten Seite verbunden, was du erwartest - oder eben gar nicht.

Das ist für die Menschen sehr einfach zu begreifen und auch einfach zu erklären.

Diese Funktion entschärft Angriffe, die von möglicherweise bösartigen “Tor-Exit-Knoten” ausgehen können. Die Angriffe sind zwar selten, existieren aber dennoch. Die Tatsache, dass du eine “.onion”-Adresse verwendest, setzt voraus, dass du Tor und den Tor-Browser verwendest. Dies entschärft die folgenden möglichen Angriffe:

  • landesweite Websperren
  • Man-in-the-Middle-Angriffe auf das TLS-Protokoll
  • SNI-Filter
  • Tracking und Zensur von DNS-Anfragen (betrifft sowohl Clients wie auch Exitknoten)
  • Probleme beim Tracking durch Cookies und Fingerprinting-Angriffen
  • … sowie eine Reihe weiterer Probleme

Um es anders zu formulieren: Die Werbung für eine Onion-Adresse ist ein implizites Verkaufsargument für die Nutzung von Tor.

Update: Eine Sache, die ich in der ursprünglichen Version dieses Beitrags vergaß zu erwähnen, ist, dass die Nutzung von Onion-Netzwerken für Seiten mit hohem Traffic den Druck auf die Exit-Node-Infrastruktur von Tor reduziert. Denn der Traffic fließt stattdessen durch die größere und reichhaltigere Menge an Middle-Relays, ohne Exit-Nodes und/oder das Klartext-Internet zu nutzen.

Letzteres ist wichtig und bringt uns zum zweiten (dritten?) Satz von Vorteilen:

Der Betrieb einer Onion-Site ist eine Verpflichtung [der Plattform], mit Tor-Benutzer:innen gerecht umzugehen; bei der normalen Benutzung von Tor werden die Benutzer mit allen anderen vermischt, die aus dem Internet kommen, und (seien wir ehrlich) einige Leute benutzen Tor manchmal zum Herunterladen einer kompletten Webpräsenz (Scraping) oder anderem unangenehmen Verhalten.

Das führt zu der Herausforderung, die “Spreu vom Weizen zu trennen”.

Das Einrichten einer Onion-Adresse ist jedoch ein praktischer Schritt, der zeigt, dass die Plattform explizit auf die Bedürfnisse von Tor-Nutzern eingeht, und nun kehrt sich das Problem um: Ein gewisses Maß an schlechtem Verhalten über die Onion-Adresse kann überwacht und als “schlechtes Verhalten” eingestuft werden, was den Tor-Nutzern maximale Freiheit gewährt.

Dies ist eine Angelegenheit, die ich bei Facebook hautnah miterlebt habe und auf einer Tor-Mailingliste beschrieben habe.

Wenn ich die Vorteile in einem Satz zusammenfassen sollte, wäre es folgender: Eine Onion-Adresse ist ein Versprechen und ein Mechanismus, der sicherstellt, dass du die Bedürfnisse der Leute, die Tor benutzen, ernst nimmst.

Anstatt ihnen zum Beispiel eine endlose Reihe von CAPTCHAs auf Basis der IP-Reputation aufzudrängen.

 

 

cronjob