7.2 KiB
title | outputs | |
---|---|---|
Dezentrale Messenger |
|
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 verschieden unabhängige 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 %}}
- Auswirkung: nicht alle Daten können geklaut oder analysiert werden
Dezentralität
Nachteile
- Komplexität steigt
- Gewollte Verringerung an Marktanteil
- Kann auch von kriminellen Elementen genutzt werden
- Nutzer müssen ggf. sich Ihre Adresse und Passwort 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
<message from="geno@fireorbit.de"
to="#ccchb@irc.hackint.org" type="groupchat">
Hello World
</message>
Types:
- chat
- groupchat
- headline
- normal
- error
XMPP
Present: Aktuelle Live Informationen
<present to="#ccchb@irc.hackint.org" type="subscribe">
</present>
Types:
- error
- probe
- subscribe(d)
- unavailable
- unsubscribe(d)
XMPP
IQ (Instant Query): Abfragen mit Rückantworten
<iq to="irc.hackint.org" type="get">
<ping xmlns='urn:xmpp:ping'/>
</iq>
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
Software Clients
Bombus - Client in J2ME für normale Telefone
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 (support Alles / API)
- Status 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
{{% 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 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.