Transports

Zugänge zu (proprietären) anderen Netzen

XMPP bietet die Möglichkeit, mit Hilfe sogenannter Transports Nachrichten in andere (meistens proprietäre) Netze wie z. B. WhatsApp, Telegram, Signal, etc. senden und empfangen zu können. Die Einrichtung dieser Möglichkeit ist im Nachfolgenden beschrieben.

Es gibt aktuell zwei große Softwares, die diese Transporte ermöglichen:

Diese können selber gehostet werden, müssen es aber nicht. Ein öffentlicher XMPP-Provider, welcher beide Transports anbietet, ist z. B. hot-chilli.im.

Voraussetzungen

  • ein Benutzerkonto des jeweiligen Netzes (z. B. Telegram)
  • ein (angemeldeter) Client des jeweiligen Zielnetzes
  • ein (beliebiger) XMPP Client, für Spectrum2 muss dieser ad-hoc Kommandos unterstützen

so geht es los

Um herauszufinden, ob ein XMPP-Provider Transports anbietet, und wenn ja, welche, kann man mit Hilfe eines entsprechenden XMPP Clients wie z. B. Gajim - grafisch oder profanity - konsolenbasiert eine so genannte "Service Discovery" (disco) durchführen.

Bei profanity lautet der entsprechende Befehl, um den Server von hot-chilli.net zu durchsuchen:

/disco items hot-chilli.net

und es erscheinen (unter anderem) folgende Zeilen:

whatsapp.jabber.hot-chilli.net, (Hot-Chilli WhatsApp Transport)                  
whatsapp.hot-chilli.im, (Hot-Chilli WhatsApp Transport (Slidge Test))

Diese Adressen sollte man sich merken, da diese im Folgenden gebraucht werden, um den Transport nutzen zu können.

... und jetzt?

Die weitere Vorgehensweise hängt jetzt vom zu nutzenden Transport ab. Da die Benutzung von slidge aus meiner Sicht einfacher ist, wird diese hier weiter beschrieben:
Es wird ein 1:1 Chat im XMPP Client geöffnet, und zwar zur oben gezeigten Adresse (im Beispiel whatsapp.hot-chilli.im). Meistens erfolgt eine Warnung, dass das eine Domain ist und keine Chatadresse in der Form name@provider.org, das kann man aber ignorieren. Sollte der gewählte XMPP Client dies nicht unterstützen, bleibt nur das Ausweichen auf einen anderen Client. Die eigentliche Kommunikation erfolgt grundsätzlich unverschlüsselt.

Nun kann man entweder mit ad-hoc Kommandos weiterarbeiten (diese werden z. B. durch Gajim oder Monocles Chat unterstützt), bei slidge hat man jedoch den Vorteil, dass man auch den normalen Chat nutzen kann. Gibt man hier z. B. help ein, so erscheint ein kleines Hilfemenü und danach weiß man, dass man mit dem Befehl register sich am Gateway registrieren kann.

Das weitere Vorgehen hängt jetzt vom Zielnetz ab. Man wird vom slidge-Chat jedoch geleitet, was verlangt wird.

Aufbau der Adressen anhand von WhatsApp und Telegram

Grundsätzlich können Gruppen und Kontakte synchronisiert werden. Diese Kontakte erscheinen dann in der Kontaktliste und brauchen nicht mehr, wie nachfolgend beschrieben, gesucht zu werden.

WhatsApp

Die WhatsApp-Adressen sehen unter slidge in XMPP z. B. wie folgt aus: +4915112341234@whatsapp.hot-chilli.im Dabei ist der erste Teil die Telefonnummer des Kontaktes bei WhatsApp, der Teil nach dem "@" entspricht der Transport-Domain.

Telegram

Eine Telegram-Adresse für einen 1:1 Chat sieht in XMPP z. B. wie folgt aus: 321056789@telegram.hot-chilli.im Dabei ist die Nummer vor dem @ die ID des Chatpartners auf Telegram. Diese kann man mit z. B. mit Bots herausfinden.
Eine Telegram-Adresse für einen Gruppenchat sieht in XMPP z. B. so aus: group-1004567890123@telegram-hot-chilli.im
Hierbei entspricht die Nummer vor dem "@" der Gruppenchat Nummer.

Vor- und Nachteile von Transports

Vorteile

  • es wird nur 1 Client benötigt, um in verschiedenen Netzen unterwegs zu sein
  • für die Gegenseite ist kein Unterschied zu sehen, dass die Kommunikation über ein Transport erfolgt
  • man kann auf mehreren Endgeräten die Nachrichten des Zielnetzwerkes empfangen
  • Transports können auch genutzt werden, um automatisiert Nachrichten an Empfänger zu schicken, die in anderen Netzwerken zu Hause sind. Somit reicht es, sich mit der automatisierten Versendung von Nachrichten über das XMPP Netzwerk auseinanderzusetzen

Nachteile

  • die Ende-zu-Ende Verschlüsselung (sofern aktiviert) geht durch den Transport verloren. Die Transportverschlüsselung ist davon unberührt
  • nicht alle Funktionen des Zielnetzwerks sind möglich (bedingt durch unterschiedliche Netzwerkaufbauten)
  • bei verschiedenen Netzen ist weiterhin ein Client des Zielnetzwerks für erneute Identifikation erforderlich (z. B. bei WhatsApp in Form eines QR-Codes, der im WhatsApp Client eingescannt werden muss ca. alle 2-3 Wochen)
  • im Punkt Datenschutz gelten die gleichen Voraussetzungen wie im Zielnetzwerk
  • für die Anzahl der Accounts gelten die gleichen Voraussetzungen wie im Zielnetzwerk

persönliches Fazit

Wenn es unumgänglich ist, mit bestimmten Kommunikationspartnern über die (proprietären) Netze zu kommunizieren, sind Transports ein gutes Mittel, um den Kontakt zu halten. Vorzuziehen wäre jedoch ein kompletter Umstieg auf das XMPP Netzwerk.