Author Topic: Dezentrales, Ende-zu-Ende verschlüsseltes Soziales Netzwerk  (Read 3423 times)

puddy

  • Global Moderator
  • Gopher
  • *****
  • Posts: 72
  • Karma: +18/-0
    • View Profile
Dezentrales, Ende-zu-Ende verschlüsseltes Soziales Netzwerk
« on: September 22, 2013, 11:16:49 pm »
Wir sind uns einig: die großen sozialen Netzwerke haben außer dem großen Vorteil ihres Verbreitungsgrades nicht viel zu bieten.
Ob Überwachung und Profiling durch Geheimdienste oder global agierenden Firmen, beides ist letztendlich inakzeptabel. Selbst bei Menschen die sich sonst kaum mit (Daten-)Sicherheit oder Privatssphäre beschäftigen regt sich eine gewisse Bereitschaft auf ein anderes Netzwerk umzuziehen, allerdings gibt es noch immer keines welches für die breite Masse genügend Vorzüge bietet.

Meine aus der Luft gegriffenen Anforderungen sind:
- konsequente Datensicherheit
- hohe Usability - sowohl in web wie auch mobiler Version
- schnelle Verbreitung

Es gibt bereits etliche Versuche bessere soziale Netzwerke aufzuziehen, einer der Grundgedanken dabei ist klar Dezentralität. Der gedanke ist offensichtlich: wenn nicht mehr eine Instanz alle Daten in der Hand hält, wird Missbrauch deutlich schwieriger. Problem hierbier sind nur Geheimdienste, die letztendlich immernoch an alle Daten herankommen können.
Nichts ist perfekt, doch nichts kommt näher an echte Privatssphäre heran, als Ende-zu-Ende Verschlüsselung. Will heißen: nur Absender und Empfänger können die Nachricht lesen.

Warum gibt es das noch nicht? Vermutlich wegen dem stark erhöhten Anforderungen an die Infrastruktur.
Klartext:

User Karl verfasst einen Post den nur seine engsten Freunde lesen können sollen. Wir gehen davon aus, dass dies ca. 50 Personen sind.
Karls Nachricht ist 400 Zeichen lang (~400 Byte). PGP Verschlüsselt wächst diese Nachricht auf ~4000 Bytes. Karl muss die Nachricht für jede der 50 Personen individuell verschlüsseln, also muss Karls Rechner 50x400 Byte verschlüsseln und 50x4000 Bytes (~200 kB) an einen Server übertragen. Der Server speichert die selbe Nachricht ebenfalls für jeden Empfänger extra - verschlüsselt.
Mit Textnachrichten geht das noch gut, sobald man allerdings auch Bilder oder andere Dateien verschlüsselt übetragen möchte, wächst der Speicherbedarf schnell an. Ich hab leider meine Rechnungen nicht mehr, aber nach meinen Schätzungen kann man pro Benutzer auf einem Server mit 50 GB Speicherbedarf pro 180 Tage rechnen. Zentral ist das schwer zu stemmen, aber durch ein dezentrales Konzept wird das schon wieder realistischer. Auch ein Verfallsdatum für Einträge ist denkbar - markiert ein Benutzer eine Nachricht oder ein Bild nicht als "archiviert", so wird es nach z.B. 180 Tagen einfach gelöscht.

Abgesehen von Metadaten (z.B. Uhrzeit, Absender und Empfänger der Nachricht) hat absolut niemand Zugriff auf die Nachricht, außer dem Personenkreis für den sie bestimmt ist.

Ich habe nicht vor, ein vollwertiges soziales Netzwerk zu entwickeln. Ich möchte eine simplifizierte Version erschaffen, die beweist, dass es möglich ist. Meine Hoffnung ist, dass andere Menschen von meinem Projekt erfahren und beschließen, dass sie das weitaus besser können als ich und ein Netzwerk entsteht das es allen Menschen erlaubt miteinander zu kommunizieren und dabei Gewissheit zu haben, dass ihre Daten nur mit Menschen geteilt werden, von denen sie es wünschen.

---
Ich nenne mein Projekt SSN - Secure Social Network

Überlegungen:
- Verschlüsselung per PGP
- Die Ver-/Entschlüsselung muss am Client statt finden
- Vorzugsweise eine JavaScript Implementation von PGP, falls es dadurch zu performance Problemen kommt, können Applets angeboten werden (Java, Flash oder Sonstiges). Für Mobile Geräte löst eine Java App das Performance Problem
- Als Backend vorläufig PHP/MySQL, schlicht und einfach weil ich damit vertraut bin. Damit hab ich schnell eine Testumgebung auf den Beinen, dann kann ich weitersehen. Auch Server-Server Kommunikation werde ich vorerst nicht implementieren, aber in der Planungsphase durchaus berücksichtigen.
- Bilder werden beim Client resized bevor sie hochgeladen werden. Dadurch Reduktion von nötiger Rechenleistung zur Verschlüsselung und Uploadmenge (http://www.plupload.com/)
- http://apiux.com/2013/04/03/url-design-restful-web-services/

Aktueller Stand:
- JS PGP Lib gefunden (http://openpgpjs.org/) allerdings: "“Fully supports” Chrome only". Bisher scheint aber alles auch in Firefox und Safari zu funktionieren. Andere Browser noch nicht getestet.
- local storage bietet genügend Platz um Sessionübergreifend Daten wie public keys oder Metainformationen von Kontakten lokal im Browser zu speichern. Auch der eigene private Key soll dort abgelegt werden (mit Option zu Import/Export)

Aktuelle To-do:
# Serverseite grundlegend implementieren
- Login
- Metadaten zu Personen anbieten
- Postliste innerhalb von Zeitraum X anbieten ("Posts für meine Timeline", "Posts auf meinem Profil", "Posts auf Profil X", "Kommentare zu Post X", "Private Nachrichten zwischen Benutzer X und Y")
- Einzelne Posts anbieten
- Freundesliste anbieten
- Post erstellen
- Containerseiten anlegen (Profilseite, Timeline, Private Nachrichten, Threadansicht zu Post)
- Datenbankstruktur anlegen

# Clientseite grundlegend implementieren
- Postliste abfragen
- Postliste dekodieren
- Postliste in ihren Container einfügen
- Lokale Daten managen (Cache für Profile und Keys)

Bin mir gerade nicht sicher, ob das ganze vollständig ist. Falls ihr Fragen und/oder Anregungen habt, haltet euch bloß nicht zurück. Auch falls sich jemand beteiligen möchte, bin ich dem nicht abgeneigt.



« Last Edit: September 22, 2013, 11:20:50 pm by puddy »

fraggle

  • the breaker
  • Global Moderator
  • Apache
  • *****
  • Posts: 118
  • Karma: +17/-0
    • View Profile
Re: Dezentrales, Ende-zu-Ende verschlüsseltes Soziales Netzwerk
« Reply #1 on: December 09, 2013, 03:04:28 pm »
Hast du schon einige Fortschritte erzielen können?
May the Force be with you.

puddy

  • Global Moderator
  • Gopher
  • *****
  • Posts: 72
  • Karma: +18/-0
    • View Profile
Re: Dezentrales, Ende-zu-Ende verschlüsseltes Soziales Netzwerk
« Reply #2 on: May 07, 2014, 01:26:02 am »
Ne, die Uni hält mich deutlich zu beschäftigt für aufwändigere private Projekte.
Trotzdem hätte mir mal jemand sagen können, was ich da für nen Unfug plane!
Warum ein Bild mit 50 verschiedenen Schlüsseln kodiert speichern, wenn man einfach einen neuen Schlüssel erzeugen kann, das Bild mit diesem kodieren und dann den Schlüssel 50 mal kodieren und speichern kann? So haben trotzdem nur die 50 Zielpersonen Zugriff auf die Datei, aber der Speicherbedarf schrumpft erheblich.
Denk doch mal jemand mit! Das finde ich jetzt doch wieder ganz witzig. Ich glaube ich versuche zumindest mal für meine Abschlussarbeit einen Prof zu finden der es betreuen würde oder mir die Idee zumindest fundiert ausredet.

Greetings

p

  • Global Moderator
  • Apache
  • *****
  • Posts: 110
  • Karma: +27/-0
    • View Profile
Re: Dezentrales, Ende-zu-Ende verschlüsseltes Soziales Netzwerk
« Reply #3 on: May 07, 2014, 10:32:30 am »
Trotzdem hätte mir mal jemand sagen können, was ich da für nen Unfug plane!
[...]
Denk doch mal jemand mit! Das finde ich jetzt doch wieder ganz witzig. Ich glaube ich versuche zumindest mal für meine Abschlussarbeit einen Prof zu finden der es betreuen würde oder mir die Idee zumindest fundiert ausredet.

Greetings

Wer selbst auf Fehler kommt, lernt mehr.
Wir hätten es dir schon sagen können.. aber wo wäre da denn der Lerneffekt gewesen?
 :ugly;

puddy

  • Global Moderator
  • Gopher
  • *****
  • Posts: 72
  • Karma: +18/-0
    • View Profile
Re: Dezentrales, Ende-zu-Ende verschlüsseltes Soziales Netzwerk
« Reply #4 on: May 08, 2014, 05:08:44 pm »
Ihr seid zu gut zu mir!! :)

Hab bisschen in der http://tox.im Wiki rumgeblättert, ein multiplatform p2p end2end verschlüsselter Chat. Die Lösen das Problem "wie funktionieren end2end verschlüsselte Gruppenchats" irgendwie angenehm simpel:
Es gibt einen Client der Chatraumbots zur Verfügung stellt. Man sucht sich einen Server dem man vertraut oder hosted selber einen dieser bots. Ein Gruppenchat ist im Grunde ein Sternförmiges Netzwerk - alle User chatten direkt nur mit dem Bot, dieser leitet geschriebenes wiederum an alle anderen weiter. Ich sehe noch nicht unbedingt wie das auf mein Konzept anwendbar ist, aber es ergeben sich daraus interessante andere Gedanken.

puddy

  • Global Moderator
  • Gopher
  • *****
  • Posts: 72
  • Karma: +18/-0
    • View Profile
Re: Dezentrales, Ende-zu-Ende verschlüsseltes Soziales Netzwerk
« Reply #5 on: May 09, 2014, 08:36:10 pm »
http://qnrq.se/solving-the-browser-crypto-problem/

Quote
The best way of doing it and successfully integrating it into web browsers is to run a webserver locally which pre accepted remotely served content can communicate with. The most important detail is that private keys should never ever be available for the web browser but instead reside in the local GnuPG keyring which the API manipulates through the local GnuPG binary.

https://github.com/qnrq/pygpghttpd/