--- title: "Dezentrale Messenger" outputs: - "Reveal" ---

Dezentrale Messenger


The very last word in instant messaging

(Motto vom XMPP-Client Converations) genofire - Chaos Computer Club Bremen e.V. --- ## 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 miteinander Nachrichten aus (ohne eine zentrale Componente) - **Federation** Kommunikation über zentrale Komponenten {{% 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) {{% /note %}} --- ## Dezentralität #### Warum notwendig? - Eröffnet ein Wettbewerb - kleine und viele Angriffsziele - vor Kriminelle - vor Regierungen - alle Überwachen - blockieren / sperren (Zensur) - Verringert Missbrauch durch Vertrauen {{% note %}} - _Eröffnet einen Wettbewerb:_ damit fortschritt (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 (Werbung oder politisch, siehe Cambridge Analytica) - **Bei Missbrauch** leichterer Wechsel {{% /note %}} --- ## Dezentralität #### Nachteile - Komplexität steigt - Gewollte Verringerung an Marktanteil - Kann auch von kriminellen Elementen genutzt werden - Nutzer müssen sich ggf. sich Ihre Adresse und Passwort sich merken {{% note %}} - _Komplexität steigt:_ Da nicht nur Clients, sondern auch Server untereinander sicher (Ausfall, vertrauensvoll) kommunizieren müssen. - _kriminellen Elementen:_ wie bei jeder Technologie kann diese auch von Bösen genutzt werden. - _... sich merken:_ allerdings müssen Sie dies auch für Ihre E-Mail-Adresse, was noch Standard im Internet ist. {{% /note %}} --- ### Extensible Messaging and Presence Protocol (XMPP) - Existiert seit 1999 (unter den Namen Jabber) - 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: Datenaustausch, Video/Voice-Chat, ... {{% /note %}} --- ## 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 {{% /note %}} --- ## 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 {{% note %}} - Die Inhalte, die in diesen XML-Elementen drin sind, werden im RFC nicht vorgegeben und kann für viele Funktionen genutzt werden. {{% /note %}} --- ## Software Clients #### Empfehlungen: - Conversations (Android) - Pix-Art Messenger - 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 alle nötigen Funktionen von Haus aus - sehr gut gewartet - **OpenFire** in Java --- ## Ist der Hoster gut Tools zum Testen des Servers (Auswahl an Servern) - [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 {{% /note %}} --- ## XMPP ### Verschlüsselung - Off-The-Record - OpenPGP - OX - OMEMO Detailert: [here](https://conversations.im/omemo) {{% note %}} - Neben TLS (SSL) {{% /note %}} --- ## 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 laden {{% note %}} - synchrone: Entspricht einem Passwort, was allen Gesprächsteilnehmern bekannt ist. - asynchrone: mathematisches Verfahren mit Schlüsselpaaren (öffentlicher und privater Schlüssel) - Kontakte = Roster - den **neuen oder weiteren** öffentlichen Schlüssel - Signiert und verschlüsselt - zurückziehen des Schlüssels {{% /note %}} ---

Demo

[Anleitung](https://media.kuketz.de/blog/artikel/2016/conversations/Anleitung_Conversations_V1.1_CC-BY-SA.pdf)
--- ## Ausblick - Transports - Biboumi: IRC - Spectrum2: e.g AIM, ICQ, MSN, Yahoo, Telegram, Twitter, "WhatsApp" - PubSub - Blogging / Posting (siehe Movim) - Commands - Internet of Things [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 {{% /note %}} --- ## Alternativen zu XMPP #### Peer-to-Peer - Nutzen das Tor-Netzwerk - **Tox** - **Briar** - kann auch Local per Wifi und Bluetooth genutzt werden - ... (viele mehr) - libp2p - (mir sonst keine Weiteren bekannt ...) --- ## Alternativen zu XMPP #### Federation - **Matrix** (Riot): - Änderungsvorschläge am Protokoll werden durch das Unternehmen entschieden - (mir sonst keine Weiteren bekannt ...) ---

Ende

Hackerethik

**3. Mißtraue Autoritäten – fördere Dezentralisierung.**