Die Suche nach einem Jabber-Server könnte dank der großen Auswahl schnell abgeschlossen sein. Doch nicht jeder dieser Server unterstützt das OMEMO-Protokoll — unsere Verschlüsselungsempfehlung — und entsprechende Clients in vollem Umfang. Und auch darüber hinaus unterscheiden sich die Server in diversen Sicherheits- und Komfort-Aspekten. Deswegen haben wir für euch eine Liste mit Servern zusammengestellt, die eine Datenschutz- und benutzerfreundliche Ende-zu-Ende-verschlüsselte Multiple-Client-Chatumgebung ermöglichen. Im Anschluss findet ihr die Liste, eine kurze Erklärung zu den Punkten sowie allgemeine Hinweise und eine detaillierte Aufschlüsselung unserer Kriterien.
Disclaimer
Die hier veröffentlichen Daten stammen von der jeweiligen Website und unserer persönlichen Korrespondenz mit den Administratoren. Sie stellen den aktuellen IST-Zustand dar und können sich theoretisch jederzeit ändern. Weder wir noch der Betreiber haften für abweichende Werte, die beispielsweise bei einer Fehlkonfiguration oder durch Softwarefehler entstehen können.
Die Verwendung von Software und Diensten beruht auf Vertrauen. Solange ihr die Software nicht selbst schreibt und die Server für eure Dienste selbst hostet, seid ihr darauf angewiesen. Ihr vertraut beispielsweise eurem App-Store oder eurem Betriebssystem-Hersteller, dass er euch keine Trojaner unterjubelt. Und genauso eurem Server-Betreiber, dass die Angaben korrekt sind. Wenn ihr dieses Vertrauen nicht aufbringen möchtet, solltet ihr euch euren eigenen XMPP-Server hosten.
Wenn ihr einen Server kennt, den wir auf die Liste setzen sollen, Fehler findet oder sonstige Anliegen zu diesem Artikel habt, schreibt uns ein Kommentar oder eine E-Mail.
Wer die Wahl hat…
Selbst wenn hier und da ein Feature fehlt, ist generell jeder dieser Server eine exzellente Wahl. Bevor ihr euch nun aber nur auf diesen Informationen basierend entscheidet, solltet ihr noch einen weiteren Aspekt einbeziehen: Dezentralisierung.
Zentralisierung, wie ihr sie von WhatsApp kennt, erleichtert Manipulation, Überwachung und Zensur. Versucht euch darum — im Sinne des föderierten Systems — auf die vorhandenen Server aufzuteilen. Wählt also gezielt andere Server als eure Freunde und regt sie dazu an, das gleiche zu tun.
Manche Server geben ihre Nutzerzahl an. Überprüft das, bevor ihr euch registriert. Ein kleiner Server ist tendenziell attraktiver als ein großer. Offensichtlich: Große Server machen es leichter, mit wenig Aufwand eine große Zahl an Nutzern zu überwachen.
Wenn ihr euch für einen Server entschieden habt, denkt außerdem über eine Spende nach. Zwar sind alle Server für euch kostenfrei nutzbar, das heißt aber nicht, dass nicht trotzdem Kosten entstehen. Die Betreiber sind Privatpersonen, die für den Betrieb, das Hosting und die Domain aus ihrer eigenen Kasse zahlen. Ihr könnt euch bei eurem Serverbetreiber mit einer Spende bedanken und euren Teil zum Erhalt des Servers beitragen.
Die Liste im Detail erklärt
Datenschutz & Sicherheit
Kein IP-Logging
IP-Adressen tauchen in keiner Log-Datei auf. Allerdings wird die IP-Adresse aus technischen Gründen bei einer offenen Sitzung (Client ist mit dem Server verbunden) benötigt. Die Metadaten werden aber nach Schließen der Sitzung verworfen.
Ausnahme: Bei fehlerhaften Login-Versuchen kann die IP-Adresse protokolliert werden, um Accounts vor Angriffen zu schützen.
Minimalistische Registrierung
Für eine Anmeldung auf diesem Server genügen Nutzername und Passwort.
Bei diesem Server ist zusätzlich eine E-Mail-Adresse erforderlich. Der Betreiber möchte euch eine Möglichkeit bieten, bei verlorengegangenem Passwort den Zugriff auf das Konto zurückzuerlangen.
Gehashte Wörter
Das Passwort, das ihr zur Registrierung eures Kontos verwendet habt, wird auf dem Server verschlüsselt als Hash-Wert hinterlegt. Denkt daran, bei bei jedem Konto ein einzigartiges Passwort zu verwenden.
Enforced Encryption
Client-zu-Server- sowie Server-zu-Server-Verbindungen sind immer verschlüsselt. Dabei berücksichtigen wir nicht die Qualität der Zertifikate, wie es etwa Thomas Leister zur Abwehr von MITM-Attacken vorschlägt. Eine A-Bewertung im Bereich Transportverschlüsselung wurde beim Test mit IM Observatory erreicht.
Unverschlüsselte Verbindungen sind ebenfalls zulässig.
Tor Hidden Service
Der Server besitzen eine Adresse im Tor-Netzwerk, die es euch ermöglicht, euch über den Tor-Client zu eurem XMPP-Server zu verbinden.
Das kann zu Einschränkungen führen: Beispielsweise kann der Client eine Fehlermeldung wegen eines ungültigen Zertifikats ausgeben und Dateien können über das HTTP-Upload-Modul nicht durch Tor getunnelt werden. Wenn ihr aber ohnehin schon Tor benutzt, könnt ihr natürlich bequem auf OnionShare zurückgreifen.
Sonstiges
Erweiterungsprotokolle (XEPs)
Hier könnt ihr sehen, ob der Server die XEPs beherrscht, die wir unter Kompatibilität als nicht essentiell bewertet haben, speziell SOCKS5-Bytestreams, Push-Benachrichtigungen und XMPP over TLS. Davon ausgenommen ist das XEP Message Archive Management.
Ihr könnt selbst entscheiden, ob davon etwas bestimmtes für euch besonders wichtig ist. Falls ihr euch etwa oft hinter einer restriktiven Firewall befindet, könnte XMPP over TLS ein wichtiges Feature sein.
Upload-Limit
Serverbetreiber legen ein Limit für die maximale Dateigröße und die maximale Speicherdauer fest. Solltet ihr gerne Dateien versenden, könnte das für euch ein Kriterium sein.
Dieses Limit betrifft euch nur, wenn ihr per HTTP-Upload eine Datei auf dem Server zwischenspeichern wollt. Um etwa ein Bild mit eurem Kontakt zu teilen, verwendet Conversations automatisch das HTTP-Upload-Modul. In Gajim könnt ihr das Modul als Plugin nachrüsten. Hier ist es bisher der einzige Weg, eine Datei OMEMO-verschlüsselt zu übertragen. Sollte das Bild aber eine gewisse Dateigröße überschreiten, verweigert der Server die Annahme. Conversations bietet in diesem Fall die Option, die Datei direkt an den Empfänger zu leiten, dafür muss aber das Gerät speziell gewählt werden — hier gibt es also keine Multiple-Client-Funktionalität.
Kontaktmöglichkeit
Gibt es eine Möglichkeit den Administrator zu kontaktieren?
Der Serverbetreiber bietet euch die Möglichkeit, über ein Formular auf seiner Site, seine JID (Jabber-ID) oder E-Mail-Adresse mit ihm in Kontakt zu treten.
Registrierung
Es gibt in der Regel zwei Möglichkeiten, ein Konto auf einem Server zu eröffnen: die bandinterne (in-band) und bandexterne (out-of-band) Registrierung.
Bandinterne Registrierung
XEP-0077: In-Band Registration erlaubt die Registrierung eines Kontos direkt über das XMPP-Protokoll. In Conversations könnt ihr beim Hinzufügen eines neuen Kontos den Haken bei Neues Konto auf Server erstellen setzen. Nun müsst ihr nur eure Jabber-ID und euer Passwort angeben.
Die Jabber-ID besteht immer aus eurem gewünschten Nutzernamen und der Domain des Servers, auf dem ihr das Konto registrieren wollt.
Beispiel: Benutzer@Domain / thorsten@datenschutzhelden.org
Bei einigen Servern ist diese Art der Registrierung deaktiviert.
Bandexterne Registrierung
Die Registrierung außerhalb des XMPP-Protokolls wird meistens über ein Registrierungsformular auf der Website des Betreibers durchgeführt. Denkbar ist allerdings auch, dass der Administrator neue Benutzerkonten händisch auf seinem Server registriert.
UPDATE: Wir haben den Punkt Kein Logging von Nutzeraktivität vorerst aus der Liste entfernt. 30.07.2017
Wir haben für euch weitere Informationen zu diesem Thema bereitgestellt. Im Folgenden erklären wir euch
- warum XMPP mit OMEMO besondere Anforderungen an den Server stellt.
- unsere Kriterien bei der Serverauswahl.
- die Funktion der XEPs, auf die der XMPP-Compliants-Tester prüft.
1. Einführung
Das Extensible Messaging and Presence Protocol (XMPP) wird für Instant Messaging eingesetzt und kann mit den XMPP Extension Protocols (XEPs) stetig erweitert werden. Früher hieß XMPP übrigens Jabber und wird deswegen oft weiterhin so genannt.
OMEMO (Multi-End Message Object Encryption) ist eines dieser XEPs und ermöglicht echten Multiple-Client-Chat mit Ende-zu-Ende-Verschlüsselung. Im Gegensatz zu anderen Messenger könnt ihr hier mehrere Clients mit dem selben Account verbinden. Ihr braucht also nur einen Account, mit dem ihr euch auf euren Geräten wie Smartphone, Tablet oder PC anmeldet, und könnt dann von jedem dieser Geräte chatten. Notlösungen wie einen Webclient, den ihr vielleicht von WhatsApp und anderen Messegern kennt, braucht ihr nicht. Die Nachrichten werden an jedes eurer Geräte ausgeliefert und eure Antworten werden ebenfalls synchronisiert. Für einen reibungslosen Betrieb muss nicht nur der Chat-Client, sondern auch der XMPP-Server die Nutzung weitere spezieller XEPs erlauben.
2. Unsere Kriterien
2.1 Kompatibilität
Der Entwickler Daniel Gultsch, der unter anderem am Android XMPP-Client-Conversations arbeitet, hat ein Programm geschrieben, das die Server auf Kompatibilität mit seiner App prüft. Das Ergebnis findet ihr auf seiner Site.
Seine Kriterien haben wir für unsere Liste teilweise übernommen. Da eine benutzerfreundliche Ende-zu-Ende-verschlüsselte Multiple-Client-Chatumgebung möglich sein soll, müssen neben Conversations auch Gajim und ChatSecure mit dem Server harmonieren.
Von den 13 XEPs die der Compliance-Tester prüft, sind folgende für diesen Anspruch nicht zwingend erforderlich.
XEP-0313: Message Archive Management
Grund: Dieses XEP synchronisiert euren Nachrichtenverlauf mit dem Server. Verwendet ihr OMEMO, liegen keine Nachrichten im Klartext vor, die gespeichert werden können. Nachrichtensynchronisation unter OMEMO übernimmt das XEP-0280: Message Carbons.
XEP-0357: Push Notifications
Grund: Wenn ihr Android ohne Google verwendet — wie wir es euch in unserem Artikel Android im Griff mit Custom-ROMs empfohlen haben — könnt ihr diese Funktion nicht nutzen. Der Push-Dienst ist Teil des in GApps enthaltenen Google Cloud Messaging. Keine Angst, die Nachrichten kommen trotzdem genauso schnell an.
XEP-0065: Socks5 Bytestreams (Proxy)
Grund: Hiermit könnt ihr Dateien direkt versenden, die die maximale Größe für den Upload auf euren Server überschreiten. ChatSecure und Gajim (in Verbindung mit OMEMO) unterstützen diese Funktion bisher nicht.
XEP-0368: SRV records for XMPP over TLS
Grund: Diese Erweiterung erlaubt es eurem Client, bei einer Störung der regulären Verbindung — etwa durch eine Firewall — eine Verbindung über den Port aufzubauen, über den sonst der HTTPS läuft. Auch das ist ein nützliches Feature, doch die wenigsten werden es im Alltag benötigen.
2.2 Datenschutz
Für die Nutzung proprietärer Chatsoftware wie WhatsApp zahlt ihr mit euren Daten. Sie werden hauptsächlich für Werbezwecke verarbeitet und für erhöhte Effektivität untereinander verknüpft, selbst wenn dafür nur Metadaten zur Verfügung stehen. Ob Hintertüren für Polizei und Geheimdienste vorhanden sind, könnt ihr wegen dem geheimen Quellcode nicht herausfinden. Über all das müsst ihr euch bei XMPP keine Sorgen machen.
Trotzdem: Ein Richter kann die Herausgabe von Daten anordnen und einige Betreiber warnen ausdrücklich:
“Sollte ich aufgrund eines Gesetzes zur Kooperation mit Strafverfolgungsbehörden verpflichtet sein, werde ich dem nachkommen (müssen).”
Wir sagen: Wer nichts speichert, kann nichts raus geben! Deswegen begrüßen wir folgende Server-seitigen Datenschutzeinstellungen:
- Kein Logging von IP-Adressen.
- Kein Logging von Nutzungsverhalten.
- Passwörter werden verschlüsselt gespeichert.
- Keine personenbezogenen Daten zur Registrierung erforderlich.
Euer zukünftiger Server wird die Inhalte eurer Nachricht — dank der Ende-zu-Ende-Verschlüsselung — nicht mitlesen können. Trotzdem teilt ihr viele Informationen mit dem Server.
Bei Jabber wird folgendes auf dem Server gespeichert:
- Eure Jabber-ID und die eurer Kontakte sowie die Einteilung in Gruppen.
- Euer Profil und Avatar (optional).
- Offline Nachrichten (betrifft auch MUCs).
Kein Problem, solange die Nachrichten verschlüsselt sind. - Geteilte Dateien.
Kein Problem, solange die Dateien verschlüsselt sind. - MUC-Lesezeichen.
- Euer öffentlicher OMEMO-Schlüssel.
Außerdem entstehen — wie bei jeder Kommunikation — Metadaten.
3. Hintergrundwissen: XEPs
Hier könnt ihr mehr zu den XEPs erfahren, auf die der Compliance-Tester für Conversations prüft.
XEP-0115: Entity Capabilities
Dieses XEP erlaubt es eurem Client, die Kompatibilität des Clients eures Gesprächspartners herauszufinden. Kann dieser beispielsweise kein OMEMO verwenden, wird die Option ausgegraut.
XEP-0163: Personal Eventing Protocol
Mit dieser Erweiterung können Informationen direkt an den Server übertragen werden, wie etwa eure OMEMO-Schlüssel.
XEP-0237: Roster Versioning
Hiermit wird sichergestellt, dass Client und Server nur dann die Kontaktliste (Roster) synchronisieren, wenn tatsächlich Änderungen vorliegen. Ansonsten würde das Roster bei jeder neuen Verbindung übermittelt werden. Das ist vor allem bei mobilen Clients mit begrenztem Datenvolumen interessant, deren Verbindung häufig abbrechen kann.
XEP-0280: Message Carbons
Dieses XEP synchronisiert den Nachrichtenverlauf auf allen euren Geräten. Damit seht ihr beispielsweise die Antwort, die ihr von eurem Smartphone gesendet habt, auch auf eurem PC.
XEP-0191: Blocking Command
Hiermit erhaltet ihr die Möglichkeit, Nutzer zu blockieren und wieder freizugeben.
XEP-0045: Multi-User Chat
Server, die diese Funktion unterstützen, erlauben es euch Gruppenchats zu eröffnen. In XMPP/Jabber nennt man einen Gruppenchat auch MUC (Multi-User Chat).
XEP-0198: Stream Management
Dieses XEP soll dafür sorgen, dass Nachrichten nicht verloren gehen und unterbrochene Verbindungen so schnell wieder aufgebaut werden, dass die Unterbrechungen von euch nicht bemerkt werden.
XEP-0313: Message Archive Management
Speichert euren Chatverlauf auf eurem Server und synchronisiert ihn mit euren anderen Clients.
Hinweis: Wenn ihr OMEMO verwendet, ist euer Chatverlauf verschlüsselt.
XEP-0352: Client State Indication
Diese Erweiterung hilft dabei, Akku zu sparen und die Datennutzung zu reduzieren, wenn ihr die App gerade nicht verwendet.
XEP-0363: HTTP File Upload
Erlaubt es euch, Dateien auf den Server hochzuladen. Der Empfänger kann die Datei von dort herunterladen. Ihr könnt die Datei also senden, selbst wenn der Kontakt offline ist. Da die Datei zwischengespeichert ist, kann der Kontakt oder alle Kontakte in einem Gruppenchat die Datei herunterladen.
Gajim benötigtdas httpUpload-Plugin, um OMEMO-verschlüsselte Dateien zu versenden.
XEP-0065: Socks5 Bytestreams (Proxy)
Diese Erweiterung bietet die Möglichkeit, eine Datei direkt an einen Empfänger zu senden. Conversations nutzt diese Option automatisch, etwa wenn eine Datei zu groß für den HTTP-Upload ist. Um die Übertragung zu beginnen, muss der Empfänger die Datei zunächst annehmen. Die Datei kann nur an ein Endgerät gesendet werden, deswegen ist diese Art der Dateiübertragung nicht für Multi-User-Chats geeignet.
XEP-0357: Push Notifications
Diese Erweiterung stellt sicher, dass ihr unter Android und iOS das System für Push-Benachrichtigungen verwenden könnt. Nutzt ihr unter Android keine Google-Bibliotheken — wie wir es im Artikel Android im Griff mit Custom-ROMs empfohlen haben –, ist diese Funktion für euch uninteressant.
XEP-0368: SRV records for XMPP over TLS
Falls ihr euch in einem Firmen- oder Gast-WLAN befindet, kann die Verbindungen ins Internet durch eine Firewall eingeschränkt sein. In den meisten Fällen werden ausschließlich Verbindungen über das HTTP- und HTTPS-Protokoll erlaubt, da diese notwendig sind, um Websites aus dem Internet aufzurufen. Das macht sich dieses XEP zunutze und stellt die Verbindung automatisch über den Port her, der für HTTPS benötigt wird.
– Eure Datenschutzhelden
Quellen: