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

friend-to-friend.png

1.2.3. Sprechen wie mit …

friend-to-friend-chat-whatsapp.png

1.2.4. … aber ohne den Überwachungs-Server

  1. Ohne zentralen Server   B_alertblock

    friend-to-friend-chat-freenet.png

1.2.5. Mit Fremden sprechen

  1. Verbundene Freundeskreise   B_alertblock

    friend-to-friend-foaf.png

1.2.6. Ohne Server

  1. Verteilter Zwischenspeicher: Verfügbar wenn offline   B_alertblock

    friend-to-friend-foaf-offline.png

1.2.7. Pionier im Freundeskreis?

  1. Opennet   B_alertblock

    opennet-seed.png

1.2.8. Einwurf: Wir starten eine Sharesite-Seite!

1.3. Warum brauchen wir das?

1.3.1. Warum brauchen wir das?

  1. 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 :-)

  2. 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.    B_columns
    1.    B_block BMCOL

      Im Überwachten Netz

  2.    B_columns
    1. Vertraulich   B_block BMCOL

      gruene_jugend_ffm-stammtisch-cc_by-6272541036_17d2251176_o.jpg


      Im kleinen Rahmen

      Direkter Kontakt

    2. Offiziell   B_block BMCOL

      angela_merkel-eppofficial-european_peoples_party-cc_by-13564824463_ec3499360d_o.jpg


      Selbstzensur

      Fremdbestimmt

    3. Pseudonym   B_block BMCOL

      anonymous_munich-feb_14-cc_by-3282278914_d686734ef2_o.jpg


      Stetig auf der Hut

      Quellenschutz!

  3.    B_columns
    1.    B_block BMCOL

      Stichwort: Panoptikum

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.    B_columns
    1. Tech alleine reicht nicht   B_block BMCOL

      Totale Überwachung und Kontrolle sind möglich.

    2. Politik alleine reicht nicht   B_block BMCOL

      Wenn Überwachung und Zensur trivial sind, werden sie genutzt.

  2. Tech und Politik   B_block BMCOL

    Technologie liefert die Grundlage, auf der Politik arbeiten kann: Überwachung und Zensur so aufwändig und teuer machen, dass wir den politischen Kampf gewinnen können.

    \vspace{0.2cm}

    The NSA surveillance doesn’t scale.
    – Constanze Kurz (EuroPython 2014)

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?

  1. 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?

  1. 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.

  2. 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

    Weiterlesen: Klarnamenspflicht schadet der Online-Kommunikation

1.4.3. Und Propaganda?

  1. 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?”

  2. 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

  1.    BMCOL
    • Mit Freunden verbinden¹ (sicherer), oder
    • Mit Seednode verbinden

    ¹: High Security Mode: nur mit Freunden verbinden

  2.    BMCOL

    opennet-einstieg.png

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>

Nur <routing> wird ins Netz geschickt. <encryption> bleibt lokal.

2.3.3. Dateien aufteilen und hochladen

  1. 32k Blöcke   BMCOL

    freenet-split-file.png

    Schlüssel ist im Link (z.B. CHK).

    Blöcke ohne Link nicht entschlüssel- oder erkennbar.

  2. Verteilen   BMCOL

    freenet-keyspace.png

    Blöcke zufällig überschreiben.

2.3.4. Blöcke finden und zusammenfügen

  1. 32k Blöcke   BMCOL

    freenet-join-file.png

    Verfügbar, solange 50% der Blöcke auffindbar sind.

  2. Sammeln   BMCOL

    friend-to-friend-foaf-finding-block.png

    Routing in Small-World Netzwerk über die Positionen der Freunde von Freunden (FOAF).

2.3.5. Lebenszeit

fetchpull-lifetime-small-success-count.png

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/1
    • SSK@[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

key-utils-zw-data.png

  • 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

http://localhost:8888/USK@rQn…,I1v…,AQACAAE/gms/16/

2.5.3. Externe Programme

  • Server für Foren/NNTP (FMS) und IRC (FLIP)
  • GUI-Programme (jSite)

2.5.4. Externe Programmier-Schnittstellen

2.5.5. Schnittstelle: FCP

  1.    BMCOL

    Async für Programme:

    • Put/Putdir/Get
    • Subscribe to key
    • Plugins kontrollieren
  2.    BMCOL
    ClientHello
    Name=My Client
    ExpectedVersion=2.0
    EndMessage
    
    NodeHello
    ...
    EndMessage
    
    ClientPut
    URI=CHK@
    UploadFrom=disk
    Filename=/tmp/debian-dvd1.iso
    Identifier=sarge-disk-1
    Global=true
    EndMessage
    

2.5.6. Latenz in der Praxis

  • Bis zu 2kiB, raw, realtime mode: <30s
  • Große Dateien, im Manifest: ~5 min
  1.    B_columns
    1. Realtime   B_block BMCOL
      PriorityClass . 2 ;; high
      MaxRetries . 0 ;; default: 10
      RealTimeFlag . true
      DontCompress . true
      ExtraInsertsSingleBlock . 0
      ExtraInsertsSplitfileHeaderBlock . 0
      
    2. Bulk   B_block BMCOL
      PriorityClass . 3 ;; medium
      RealTimeFlag . false
      DontCompress . false
      

2.5.7. Schnittstelle: Plugins

  • In die Web-Oberfläche integriert
  • Schwache Abstraktion
  • Zugriff auf das Innenleben (riskant)
  • Leichtester Einstieg: Bestehendes Plugin anpassen

Beispiele: Sone oder Sharesite

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

freenet-wot-rank.png

  • 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

  1. Alleinstellungsmerkmale   BMCOL
    • Freundeskreis / Opennet,
    • Ohne Server,
    • Schlüssel als Pseudonym,
    • Spamresistenz,
  2. 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.4. Programme

3.4.1. pyFreenet: Kommandozeilenwerkzeuge

3.4.2. infocalypse: Versionsverwaltung über Freenet

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.

pitch-black-paper-screenshot.png

4.1.3. Pitch black gelöst

  1. The mitigation   B_alertblock

    2021 haben wir sie endlich gefixt.

    freenet-logo-blue-gpl.png

    build 1490: “pitch black streaming”

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.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.

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!

  1.    BMCOL

    \centering

    \Huge

    freenet-logo-blue-gpl.png

    freenetproject.org

    \vspace{0.4cm}

    \scriptsize

    Donate: freenetproject.org/donate.html

  2. Werkzeuge   BMCOL
    • Sharesite
    • Sone
    • Verbindung im Freundeskreis

6. Appendix   B_ignoreheading

\appendix

Footnotes:

Author: Dr. Arne Babenhauserheide

Created: 2023-01-17 Di 16:33

Validate