From 61f83a852bc3e840bef244cdf784f9706461b341 Mon Sep 17 00:00:00 2001 From: Martin/Geno Date: Wed, 17 Oct 2018 20:21:50 +0200 Subject: [PATCH] init decentral messaging --- README.md | 3 + decentral_messaging/PITCHME.md | 319 +++++++++++++++++++++++++++++++ decentral_messaging/PITCHME.yaml | 12 ++ 3 files changed, 334 insertions(+) create mode 100644 decentral_messaging/PITCHME.md create mode 100644 decentral_messaging/PITCHME.yaml diff --git a/README.md b/README.md index 570306c..dea6ec8 100644 --- a/README.md +++ b/README.md @@ -1 +1,4 @@ ## Presentations: + +2018: +- [Dezentrales Messaging](https://gitpitch.com/ccchb/presentations/master?p=decentral_messaging) diff --git a/decentral_messaging/PITCHME.md b/decentral_messaging/PITCHME.md new file mode 100644 index 0000000..8ba1fcf --- /dev/null +++ b/decentral_messaging/PITCHME.md @@ -0,0 +1,319 @@ +@title[Dezentrales Messenger (XMPP)] +@snap[midpoint] + +

Dezentrale Messenger

+
+

The very last word in instant messaging

+(Motto vom XMPP-Client Converations) + +@snapend + +--- + +## Agenda +- Dezentralität +- XMPP - Der Standard +- Software (Client und Server) +- Ist der Hoster gut +- Verschlüsselung +- Ausblick +- Alternativen +--- + +## Dezentralität +- **Peer-to-Peer** + +Geräte tauschen direkt mit einander Nachrichten aus (ohne eine zentrale Componente) + +- **Federation** + +Mehrere zentrale Komponenten kommunizieren untereinander + + +Note: +**P2P** +- Postkasten, jeder kann zum Empfänger gehen und selbst etwas in den Kasten werfen. + (wenn es keine Post gibt) + +**Federation** +- E-Mail (ISP: benutzer@hoster.de) +- Telefonnummern (Addr: hat oftmals die ersten Ziffern für sich reserviert) + + +--- + +## Dezentralität + +#### Warum notwendig? + +- Eröffnet ein Wettbewerb +- kleine und viele Angriffsziele + - vor Hacker + - vor Regierungen + - alle Überwachen + - blockieren / sperren (Zensur) +- Verringert Missbrauch durch Vertrauen + +Note: +- _Eröffnet ein Wettbewerb:_ damit Fortschritt für neue Marktteilnehmer + (Gewinne gehen zum größten Teile in die USA) + - Entscheidungen: z.B. nur noch auf Englisch, Mark Zuckerberg darf Nachrichten löschen +- _Angriffsziele:_ + - Hacker können nicht alle Server kompromentieren + - Regierungen können nicht + - den Zugang zu allen Servern verlangen (NSA - Snowden) + - alle Server blockieren (Telegram - Russland) +- _Verringert Missbrauch durch vertrauen_ + - **Auswirkung:** nicht alle Daten können **geklaut** oder **analysiert** werden + - Analysiert zur Manipulation für Werbung oder Politisch (Cambridge Analytics) + - **Bei Missbrauch** leichterer Wechsel + +--- + +## Dezentralität + + +#### Nachteile +- Komplexität steigt +- Gewollte Verringerung an Marktanteil + +Note: +- _Komplexität steigt:_ Da nicht nur Clients sondern auch Server untereinander sicher (Ausfall, Vertrauensvoll) kommunizieren müssen. + +--- +## XMPP +- Existiert seit 1999 +- IETF Standard seit 2002 + + +- Google Talk 2005 - 2013 (entwickelte Jingle) +- Facebook 2010 - 2014 +- WhatsApp nutzt es intern + +Note: +- Jingle: + - Aushandlung von Datenverbindung (angelehnt an SIP) + - für: Datienaustausch, Video/Voice-Chat, ... + +--- + +## XMPP +#### Adressierung +JID (Jabber ID) genannt: +``` +node@domain/ressource +``` + +URI-Format: (falls MUC mit `?join` am Ende) + +``` +xmpp:node@domain?join +``` + +Note: + +- MUC (Multi User Chat): Gruppenchat + +**Als User** + +- benutzer@server/gerät + +**In MUC** + +- chatraum@muc-server/nickame + +**Transport** +- ganz unterschiedlich + +--- +## XMPP + +**Message** + +```xml + + Hello World + +``` + +Types: +- chat +- groupchat +- headline +- normal +- error + +--- +## XMPP + +**Present**: Aktuelle Live Informationen + +```xml + + +``` + +Types: +- error +- probe +- subscribe(d) +- unavailable +- unsubscribe(d) + +--- +## XMPP + +**IQ** (Instant Query): Abfragen mit Rückantworten + +```xml + + + +``` + +Types: +- get +- set +- result +- error + + +--- + +## Software Clients +#### Empfehlungen: +- Conversations (Android) + - Pix-Art Messsenger +- ChatSecure (iPhone) +- Gajim (Desktop) +- ConverseJS (WebClient) +- Viele mehr + - mit [OMEMO](https://omemo.top) + - [alle](https://xmpp.org/software/clients.html) + +--- +## Software Clients +Bombus - Client in J2ME für normale Telefone +Wikipedia - Article Java +--- + +## Software Server +- **prosody** in lua + - leicht erweiterbar + - riesige Sammlung an erweiterbaren Modulen (die man nutzen muss) + +- **ejabberd** (Fork: mongooseIM) in erlang + - besitzt alles funktionen von Haus aus + - sehr gut gewartet + +- **OpenFire** in Java + +--- + +## Ist der Hoster gut +Auswahl des richtigen Servers +- [Compliance](https://compliance.conversations.im/) ([support Alles](https://compliance.conversations.im/api/compliant_servers/) / API) +- [Status](https://status.conversations.im/historical/) für S2S + Uptime + +XEPs: +- PEP / PubSub +- MAM (für MUC) +- HTTP-Upload +- DNS-SRV for TLS (HTTPS) + +Note: +- Personal Eventing Protocol: Geolocation, Mood, Activity, Tune +- Message Archive Management: + - Vorteil gegenüber: Threema und WhatsApp (mit OMEMO auch gegenüber Telegram) + - OMEMO: Neue Geräte können alte Nachrichten nicht entschlüsseln +- HTTP-Upload: Offline und in MUC Datenaustausch +- "umgeht" Firewalls + +--- +## XMPP + +### Verschlüsselung +- Off-The-Record +- OpenPGP +- OX +- OMEMO + +Detailert: [here](https://conversations.im/omemo) + +Note: +- Neben TLS (SSL) + +--- +## XMPP Verschlüsselung + +- Geräte erstellt **asynchrones** Schlüsselpaar + - öffentlichen Schlüssel wird per PubSub auf dem Server hinterlegt +- Kontakte werden durch PEP / PubSub über neuen Schlüssel informiert + - Dieser muss diesen öffentlichen Schlüssel + +Note: +- synchrone: entspricht ein allen bekanntes Passwort + - asynchrone: mathematisches Verfahren mit öffentlicher und privater Schlüssel +- Kontakte = Roster +- den **neuen oder weiteren** öffentlichen Schlüssel + +- Signiert und Verschlüsselt +- zurückziehen des Schlüssels + + +--- + +@snap[midpoint] +

Demo

+[Anleitung](https://media.kuketz.de/blog/artikel/2016/conversations/Anleitung_Conversations_V1.1_CC-BY-SA.pdf) +@snapend +--- + +## Ausblick + +- Transports + - Biboumi: IRC + - Spectrum2: e.g AIM, ICQ, MSN, Yahoo, Telegram, Twitter, "WhatsApp" +- Commands + - Internet of Thinks + +[XEP-Liste](https://xmpp.org/extensions/) letzter Eintrag: XEP-0410: MUC Self-Ping (Schrödinger's Chat) + +Note: +- Transport WhatsApp Warnung, vor Protokolländerungen und Sperrungen + +--- + +## Alternativen zu XMPP + +#### Peer-to-Peer +- Nutzen das Tor netzwerk + - **Tox** + - **Briar** + - kann auch Local per Wifi und Bluetooth arbeiten + - ... (viele mehr) +- libp2p + +- (mir sonst keine Weiteren bekannt ...) + +--- + +## Alternativen zu XMPP + +#### Federation +- **Matrix** (Riot): + - Protokoll durch einer Firma vorgegeben + - IRC (Transport) representiert oftmals alle Benutzer, als ein Einziger +- (mir sonst keine Weiteren bekannt ...) + + +--- + +@snap[midpoint] +

Ende

+

Hackerethik

+ +3. **Mißtraue Autoritäten – fördere Dezentralisierung.** +@snapend + diff --git a/decentral_messaging/PITCHME.yaml b/decentral_messaging/PITCHME.yaml new file mode 100644 index 0000000..112b772 --- /dev/null +++ b/decentral_messaging/PITCHME.yaml @@ -0,0 +1,12 @@ +logo : https://ccchb.de/logo/CCCHB-logo_256x256_bw.png +footnote : "Chaos Computer Club Bremen e.V. - genofire" + +layout : top-left +theme : black +highlight : ir-black +theme-override : custom.css + +transition : none +published : true + +code-line-numbers : true