Freenet: the long game
Wann immer eine neue Art Datenschutzverletzung bekannt wird,
erinnern sich einige an das Freenet Projekt,
aber wenige kennen es wirklich.
Ändern wir das.
Vision, Grundlagen und Neuerungen
1. Warum Freenet?
1.1. Warum Freenet?
1.1.1. Warum Freenet?
“There is now no shield from forced exposure…The foundation of Groklaw is over…the Internet is over” –Groklaw, Forced Exposure (2013-08-20)
1.1.2. Warum ich?
- Seit 20 Jahren in der Entwicklung von peer-to-peer Netzen
- Freenet Release-Manager seit 2017
- Vorlesung zu Verteilten Systemen an der DHBW
- 2015 den SUMA Award für Freenet entgegengenommen
1.1.3. Fragen
- Warum gibt es Freenet?
- Wie funktioniert Freenet?
- Was ermöglicht Freenet?
- Was hat sich geändert?
1.2. Was bietet Freenet?
1.2.1. Warum Freenet? Was bringt es?
- Vertraulich oder pseudonym kommunizieren.
- Technischer Grundpfeiler für den Schutz gegen Zensur.
- Dafür: Hohes Datenschutzniveau.
“Covers the needs for protection expected from a secure data broker for Multi-Party Data Exchange in IoT for Health” \citep[Uni Bern]{Benoist2020} — Artikel
1.2.2. Im Freundeskreis sprechen: Vertraulich
1.2.3. Sprechen wie mit …
1.2.8. Einwurf: Wir starten eine Sharesite-Seite!
1.3. Warum brauchen wir das?
1.3.1. Warum brauchen wir das?
- Spiegelbild der Welt B_block
Durch die steigende Vermengung des digitalen Lebens mit dem Analogen wird Analoge Kommunikation zu einem Spiegelbild des beschränkten Lebens im Netz.
— Arne Babenhauserheide, Suma e.V. Kongress 2015 :-) - Das Netz verbreitet sich B_block
Ohne pseudonyme Kommunikation und ohne vertrauliche Kommunikation im Internet, werden wir sie auch in der Analogen Welt verlieren.
1.3.2. Analoge Kommunikation
1.3.3. Die Dystopie: Verlust der Pressefreiheit
I worry about my child and the Internet all the time, even though she's too young to have logged on yet. Here's what I worry about. I worry that 10 or 15 years from now, she will come to me and say 'Daddy, where were you when they took freedom of the press away from the Internet?' –Mike Godwin, Electronic Frontier Foundation, “Fear of Freedom” (1995)
Das Ziel des Freenet-Projektes ist es, den freien Informationsfluss zu gewährleisten.
Auch dann noch, wenn Kriminelle journalistisch Arbeitende und ihre Quellen bedrohen.
1.3.4. Technik und Politik
1.3.5. Die Vision: Ziele des Freenet Projekts
The specific purpose of this corporation is to assist in developing and disseminating technological solutions to further the open and democratic distribution of information over the Internet or its successor electronic communication networks or organizations. It is also the purpose of this organization to guarantee consenting individuals the free, unmediated, and unimpeded reception and impartation of all intellectual, scientific, literary, social, artistic, creative, human rights, and cultural expressions, opinions and ideas without interference or limitation by or service to state, private, or special interests. It is also the purpose of this organization to educate the world community and be an advocate of these purposes. — The Freenet Project Inc, a 501(c)(3) non-profit (EIN 95-4864038) https://freenetproject.org/pages/donate.html
1.3.6. Zensurfreiheit
- Kern von allem in Freenet
- Alle Möglichkeiten und Entwicklungen dienen diesem Ziel
- Artikel 5 GG: eine Zensur findet nicht statt
1.3.7. Folgerungen: Herrschaftsfreiheit
Niemand darf Macht über die Kommunikation anderer haben. Einige der Risiken für Kommunikation:
- Direkte Zensur
- entfernt Beiträge durch Drohung oder Löschung
- Schikane oder Hetze
- schließt Leute aus und treibt sie raus
- Fluten mit Irrelevantem
- macht Wichtiges unauffindbar
- Zerrüttung der Gesprächskultur
- verhindert Evolution von Ideen
1.4. Fragen
1.4.1. Braucht das nicht Moderation?
- Freenet ermöglicht Moderation ohne zentrale Macht B_block
Wähle selbst, wer für dich blocken kann.
Wenn dein pseudonymer Freundeskreis ein Pseudonym blockt, wird es für dich automatisch auch unsichtbar, es sei denn, du hast es explizit freigeschaltet.
Das Anti-Spam-System skaliert besser als Spam. Auch ohne ein Heer ausgebeuteter Content-Moderationsteams aus Billiglohnländern (weiter: Arte: „The cleaners“).
Heutige verteilte Plattformen ziehen langsam nach.
1.4.2. Und Hetze?
- Den Opfern helfen Pseudonyme mehr als den Tätern B_block
Wer Gewalt fürchten muss, kann ohne Pseudonym nicht öffentlich kommunizieren. Überwachung hilft so immer den Tätern.
- Unter Klarnamen sind Leute aggressiver B_block
Results show that in the context of online firestorms, non-anonymous individuals are more aggressive compared to anonymous individuals
- Katja Rost et al.: Digital Social Norm Enforcement: Online Firestorms in Social Media
Weiterlesen: Klarnamenspflicht schadet der Online-Kommunikation
1.4.3. Und Propaganda?
- Propaganda will Herrschaft B_block
Q: “Can I prevent someone from commenting in my thread?”
A: “You did understand the part about no power over others?”
- Herrschaft ist zentralisierte Macht B_block
Tik Toks Algorithmen treiben Leute in ein Labyrinth aus Desinformation.
Selbst zu entscheiden, welchen Einflüssen wir uns aussetzen, ist eine Frage Kommunikativer Selbstbestimmung.
1.4.4. Und Radikalisierung?
Soziale Medien machen alles — und schlimmeres — was Leute jemals bei Freenet befürchtet haben. Außer Zugriff auf brisante Informationen wo Leute sie wirklich bräuchten.
Und außer der Möglichkeit, aggressiven Propagandisten verbal die Stirn zu bieten, ohne sich in Gefahr zu bringen.
1.4.5. Zusammenfassung
- Zensurfreiheit
- Datenschutz
- Vertrauliche Kommunikation
- Pseudonyme
Eine technische Säule für Informationelle Selbstbestimmung.
1.4.6. Einwurf: Unsere Sharesite!
2. Funktionsweise
2.1. Warum will ich das wissen?
2.1.1. Funktionsweise von Freenet
- Grundkonzepte
- Schnittstellen
- Schutzmaßnahmen
2.1.2. Warum Funktionsweise betrachten?
- Quelle der Stärken von Freenet
- Verständnis notwendig für Effizienz
2.1.3. Alleinstellungsmerkmale
- Freund-zu-Freund Darknet (plus Opennet)
- Hosting ohne Server (hochladen und verschwinden)
- Stabile Pseudonyme (privater Schlüssel)
- Kryptografie über Links (einfach nutzbar)
- Dezentrale Spamresistenz (erprobt; hilft Kommunikationskultur)
- Nutzungsabhängige Lebenszeit (anonym)
Praktisch: Seit 22 Jahren durch Tausende genutzt.
2.1.4. Grundkonzepte
- Zugriff auf Daten: dezentral und skalenfrei (small world)
- Referenzierung von Daten über Inhalts-Hash oder Öffentlichen Schlüssel
- Private und Öffentliche Schlüssel als Links
- Updates über Versionierung
2.2. Einstieg
2.2.1. Einstieg
2.2.2. Small World / grob Skalenfreies Netz
- Verbunden zu vielen Nahen Knoten und wenigen entfernten
- 6 Degrees of Separation: Wie Briefe über Bekannte
- Ring: Location liegt zwischen 0.0 und 1.0
- Wer bei 0.3 ist, kennt v.a. Leute nahe 0.3
- Bei Opennet über den Einstieg realisiert
- Bei Friend-to-Friend über Tausch der Location
2.3. Datenoperationen
2.3.1. Dateien referenzieren: Schlüsseltypen
- CHK: Datei nach Inhalt
- SSK: Public/Private Key
- USK: Aktualisierbar
- KSK: Gemeinsames Passwort
CHKs sind 32kiB groß, SSKs 2kiB. Größere sind Bäume von CHKs mit SSK oder CHK für das Manifest.
2.3.2. Struktur der Schlüsseltypen
CHK@<routing>,<encryption>,<flags>/<name>/[optional-path] SSK@<routing>,<encryption>,<flags>/<name>/[optional-path] USK@<routing>,<encryption>,<flags>/<name>/<version>/[optional-path] KSK@<password>
- CHK: CHK@7ER…,F2u…,AAMC–8/fetchpull-lifetime-realtime-success-count.png
- SSK: SSK@rQn…,I1v…,AQACAAE/gms-16/
- USK: USK@rQn…,I1v…,AQACAAE/gms/16/
- KSK: KSK@the-long-game
Nur <routing> wird ins Netz geschickt. <encryption> bleibt lokal.
2.3.3. Dateien aufteilen und hochladen
2.3.4. Blöcke finden und zusammenfügen
2.3.5. Lebenszeit
Jeder Zugriff startet die Uhr neu.
2.3.6. Recht auf Vergessen?
- Lebenszeit aus öffentlichem Interesse
- Recht auf Vergessen in Technologie
- Datenschutzfreundlich
Technischer Hintergrund: wichtigste Frage bei verteilten Speichernetzen: wie entscheiden wir, was wir löschen?
2.3.7. Und Update-Infos? In konstanter Zeit: Date Hints
- Nutzer:
SSK@…/meine-seite-1/...→SSK@…/meine-seite-2/activelink.png - Entwickler:
USK@…/meine/seite/1SSK@[key]/[sitename]-DATEHINT-[year]
HINT 46 2013-7-5
DATEHINT-[year], DATEHINT-[year]-WEEK-[week], DATEHINT-[year]-[month], DATEHINT-[year]-[month]-[day]
2.4. Ordner
2.4.1. Ordner in Freenet: Manifest-Daten
- Ein Archiv (Tarball), transparenter Zugriff
2.4.2. Ordner in Freenet: Als Manifest
2.5. Schnittstellen
2.5.1. Schnittstellen
- Browser
- Verteilte Datenbank für Programme
- Plugins
2.5.2. Der Browser
- Zugriff üblicherweise auf http://localhost:8888
- freenetbrowser (automatisch generiertes Firefox-Profil) für bessere Sicherheit
- Optimierungen für Pre-Fetching und Media-Streaming
2.5.3. Externe Programme
- Server für Foren/NNTP (FMS) und IRC (FLIP)
- GUI-Programme (jSite)
2.5.4. Externe Programmier-Schnittstellen
- FCP: Freenet Client Protokoll
- HTTP-Ähnlich:
Key: valueZeilenweise, Optional Data-Bytes am Ende - https://github.com/freenet/wiki/wiki/FCPv2
- HTTP-Ähnlich:
- Bibliotheken
- Maintained: Java, Python
- Unmaintained or experimental: ruby, go, C++
- https://github.com/freenet/wiki/wiki/Projects#libraries
- Plugins
2.5.5. Schnittstelle: FCP
2.5.6. Latenz in der Praxis
- Bis zu 2kiB, raw, realtime mode: <30s
- Große Dateien, im Manifest: ~5 min
2.5.7. Schnittstelle: Plugins
2.5.8. Grundlagen der Kommunikation über Freenet
- Einstieg: Seed-keys + Captcha-Queue: KSK-Prefix
- Suche: Nutzerspezifische Seiten mit Links, Update-Infos
- Verteilung: Gossip keys, Dateien einfach hochladen
- Störungsresistenz: Web of Trust mit langsam steigender Sichtbarkeit
Einwurf: Konstruktive Spammer: https://xkcd.com/810/
2.6. Schutzmaßnahmen
2.6.1. Schutzmaßnahmen
- Datenschutz trotz Browser
- Abstreitbarkeit
- Spam-Abwehr
2.6.2. Content Sanitizing: Vor dem Browser schützen
Browser und Media-Player: Anderes Bedrohungs-Szenario
⇒ Inhalte filtern, um Zugriffe auf Clearnet-Resourcen zu vermeiden
Beispiel: Album-Art einer Radiosendung über URL nachladen.
2.6.3. Abstreitbarkeit: Das war jemand anders
- Anfragen haben Hops to Live (HTL)
- Mit jedem Schritt um 1 verringert
- HTL 18 wird nur bei 50% der Verbindungen verringert — Wahl bleibt
über die Dauer der Verbindung bestehen
⇒ Anfragen mit HTL 18 können immer von einem anderen Knoten kommen
2.6.4. Spam-Abwehr
WoT (Web of Trust): Eine von zwei praktisch genutzten Möglichkeiten. Die andere ist FMS (Freenet Message System).
- ID = USK
- Trust -100 bis 100
- Rank: Distanz → capacity
- Score: Summe über alle Wertungen: trust * rank
- Skaliert bei 22 Nachrichten pro Tag1 (Dunbar-Zahl)
2.6.5. Capacity
- Rank 1 40 %. rank 1: 100 trust, 40 Punkte als Score.
- Rank 2 16 %
- Rank 3 6 %
- Rank 4 2 %
- Rank 5 und niedriger: 1 %
Integer-Mathematik: 2 * 6 / 100 = 0.
2.6.6. Zusammenfassung
- Alleinstellungsmerkmale BMCOL
- Freundeskreis / Opennet,
- Ohne Server,
- Schlüssel als Pseudonym,
- Spamresistenz,
- Grundkonzepte BMCOL
- Small-World
- Schlüsseltypen (CHK: Inhalt, USK: Aktualisierbar, KSK: Passwort)
- Dateien werden aufgeteilt, Redundanz
- Lebenszeit nach Zugriffshäufigkeit
- Ordner
- Schnittstellen
- Schutzmaßnahmen
3. Werkzeuge
3.1. Werkzeuge
3.1.1. Werkzeuge
Sieht spannend aus, aber was kann ich mit Freenet praktisch machen?
3.1.2. Der Browser
- Browse
- Hoch-/Herunterladen
- Plugins
- Freund-zu-Freund-Nachrichten
- Lesezeichen mit Update-Info (5 min Latenz)
- Indexe mit Listen von Seiten (pseudonym betriebene Crawler)
3.2. Konkret
3.2.1. Sharesite: Einfachstes pseudonymes Veröffentlichen
3.2.2. FMS and Flip: pseudonyme Foren and IRC
3.2.3. Sone: pseudonymes Microblogging
Beispiele: USK@nwa…,DuQ…,AQACAAE/sone/82/
3.2.4. Freemail: vertrauliche E-Mail
3.3. Plugins
3.3.1. Shoeshop: Sneakernet mit Freenet
3.3.2. jfniki: Wiki über Freenet
3.3.3. KeyUtils: Technische Details über Uploads
3.3.4. Keepalive: Ein paar Dateien verfügbar halten
3.3.5. Freereader: RSS über Freenet verbreiten
3.4. Programme
3.4.1. pyFreenet: Kommandozeilenwerkzeuge
3.4.2. infocalypse: Versionsverwaltung über Freenet
3.4.3. jSite: Webseiten hochladen mit GUI
4. Neuerungen
4.1. Neuerungen
4.1.1. Neuerungen
Was sich in 15 Jahren seit dem Rewrite in 0.7 getan hat.
One secret of success: relentless optimization.
4.1.2. Pitch-Black Attack
2007 haben Christian Grothoff et al. eine Schwachstelle gefunden und belegt.
4.1.3. Pitch black gelöst
4.1.4. WoT: Precisely updating and subscription-based
4.1.5. Bessere Geschwindigkeit
- Von 10kiB/s bis 11MB/s (und mehr)
- Unterstützt bis zu 15.000 Subscriptions: Binnen 5 Minuten Updates sehen
- 30 Sekunden Round-Trip-Zeit für Chat
4.1.6. Mehr HTML and CSS
- Unterstützung für Teile von CSS3.
- Nur, bei was die Sicherheit garantiert werden kann.
4.2. Multimedia
4.2.1. Audio streaming
4.2.2. Video on demand
4.3. Mobil / Handy
4.3.1. mobile-node: Freenet auf Android
4.3.2. FreeChat: Chat auf Android
4.3.3. icicles: Nachrichten von Freunden und Knoten verbinden
4.4. Offene Fragen
4.4.1. Offene Fragen
- Besseres Routing? (dank Pitch Black mitigation wurden auch neue Strukturen möglich)
- Freund-zu-Freund Verbindungen über tor und i2p? (braucht UDP!)
- Steganographic Transport Plugins
- Dezentrale Suche in Freenet (Spider/Library optimierungsbedürftig)
4.4.2. Pläne
No plan survives contact with reality, but a good plan provides set-pieces for the path you might actually walk.
- High-Impact Tasks (in Freenet)
- High-Level Roadmap — structured by major version
- Bugtracker-Roadmap — very detailed but outdated
5. Zusammenfassung
5.1. Zusammenfassung
5.1.1. Zusammenfassung 1
- Warum gibt es Freenet?
- Freie Kommunikation
- Was ermöglicht Freenet?
- Vertraulich und Pseudonym, ohne zentrale Server, Datenschutzfreundliche Datenbank für verteilte Programme.
- Wie funktioniert Freenet?
- -
- Einstieg:
- Freund-zu-Freund (High Security) oder über Seednode (Opennet)
- Routing:
- Small-World mit FOAF-Routing
- Dateien:
- Aufteilen, Verschlüsseln, 100% Redundanz, Verfügbar solange genutzt.
5.1.2. Zusammenfassung 2
- Was hat sich geändert?
- Pitch Black gelöst, Spam-Schutz über WoT/Sone und FMS, schneller, IRC Chat, Multimedia-Streaming, Android-Unterstützung, Sharesite für einfachste Webseiten, Stetige Optimierung in praktischer Nutzung.
5.1.3. Nutzt Freenet!
6. Appendix B_ignoreheading
\appendix
6.1.
6.1.1. Andere Projekte
- Tor mit SecureDrop
6.1.2. Quellen
6.1.3. Quellen 2
6.1.4. Quellen 3
6.1.5. Quellen 4
Lizenzen:
(und neuere Versionen)
6.1.6. References
\bibliographystyle{apalike} \bibliography{ref}

