transWhat

simsons_vermittlung„transWhat“ ist ein XMPP Transport, der den WhatsApp Messenger in das Jabber Netzwerk einbindet.

Das Gateway simuliert dabei serverseitig die normale WhatsApp App von Android bzw. iPhone. Der User benötigt nur noch einen normalen XMPP Client wie beispielsweise Adium, Gaijm, IM+ oder Pidgin. Damit ist es nun möglich WhatsApp auf nahezu allen Geräten und Betriebssystemen einzusetzen.
Ich kann transWhat sehr in Kombination mit Pidgin auf Desktops und Laptops und mit IM+ auf Tablets empfehlen 🙂

Nutzung

Alle Details, Serverdaten, Logins, Tipps und Tricks findet ihr hier im Wiki.

Aus verschiedenen Gründen werde ich den Code nicht veröffentlichen sondern das Gateway nur als Service anbieten.

Ich habe mich nun doch dazu entschieden den Quelltext freizugeben. Er ist in meinem GitHub Repository zu finden.

Nach dem Break gibt’s noch ein paar technische Details und Informationen zur Umsetzung.

Background

WhatsApp basiert bereits selbst auf einer abgewandelten Form des XMPP Protokolls, welches es mir recht einfach machte sämtliche Features der offiziellen App in mein Gateway zu implementieren. Gruppenchats, das Empfangen von Medien, Statusbenachrichtungen, der Online Status, Tipp-Benachrichtigungen etc. werden unterstützt.

Probleme gab es nur bei der Registrierung und dem Verwalten der Buddyliste, da WhatsApp hier von XMPP abweicht:

  • WhatsApp lässt den Nutzer kein eigenes Passwort wählen um sich damit zu authentifizieren. Das Passwort wird im Hintergrund während des ersten Start der App vom Server beantragt und dann verschlüsselt im Handy gespeichert. Nun können wir auch diesen Mechanismus nachbilden, was aber leider dazu führt, dass das Handy nunmehr ein ungültiges Passwort besitzt und sich nicht mehr einloggen kann. Oder wir sniffen das Passwort während der Registrierung mit (weiteres dazu im Wiki)
  • WhatsApp speichert keine Kontaktlisten auf ihren Servern. Folglich benötigen wir einen alternativen Weg um Kontakte in die XMPP Buddyliste zu importieren. Gelöst haben wir das Problem mit dem Import des Google Adressbuchs. Dafür ist eine kurze, einmalige Authentifizierung nach der ersten Anmeldung nötig.

Sicherheit

In der Vergangenheit kassierte WhatsApp Kritik für massive Sicherheitslücken in ihrem Service. Seit Mitte 2012 hat man die Schwachstellen auch auf Seiten von WhatsApp erkannt und, mit der Einführung einer neuen Version der API, reagiert. Mit dieser neuen Version konnte ein Angreifer, der in Besitz der IMEI oder MAC Adresse des Opfers war, nun nicht mehr das Passwort „entschlüsseln“. Auch die kritisierte Klartextübertragung von Adressbuch und Nachrichten, die ein einfaches mitsniffen erlaubte, wurde durch Verschlüsselung erschwert.

Mittlerweile zeigt sich, dass auch die neue Version schlampig umgesetzt wurde. Mit yowsup (Python) und WhatsAPI (PHP) existieren zwei nahezu vollständige OpenSource Implementierungen des Protokolls.

Legal

Bei WhatsApp herrscht das Motto „Security by Obscurity„, auch wenn in Vergangenheit hier nachgebessert wurde. Da man bereits den Entwicklern von WhatsApi mit rechtlichen Schritten gedroht hat, möchte ich den Sourcecode nicht releasen. Ich hoffe nur dass man hier in Zukunft einen vielleicht versöhnlicheren Weg findet mit Entwicklern umzugehen und offene Schnittstellen anbietet. WhatsApp trägt (Missbrauch ausgeschlossen) keinen finanziellen Schäden davon. Ihr jährlicher Beitrag wird auch weiterhin fällig. Sie profitieren im Gegenteil durch den Zuwachs von neuen Usern.

Wer mein Gateway zum Spammen missbraucht wird sofort dauerhaft gebannt.

16 Gedanken zu „transWhat“

  1. Via google bin ich auf diesen Blog/Artikel gestoßen und war erst recht freudig überrascht.
    Einen XMPP Transport für Whatsapp habe ich lange gesucht!

    Die Arbeit, die Sie in diesen Transport gesteckt haben war sicherlicher zeitaufwändig und vermutlich auch mit Schwierigkeiten verbunden.

    Leider ist ihr Transport für mich (und sicherlich viele Andere) in dieser Form nicht verwendbar.
    „Aus verschiedenen Gründen werde ich den Code nicht veröffentlichen sondern das Gateway nur als Service anbieten. Sorry! :-(“

    Die Gründe kenne ich nicht und sicherlich haben Sie sich darüber Gedanken gemacht!
    Aber an dieser Stelle möchte ich Sie bitten, zu überlegen, ob eine Freigabe der Sourcen nicht doch möglich wäre.

    Zum Einen dürfte die Last für Ihren Server recht hoch werden, falls viele Menschen Ihren Transport verwenden,
    zum Anderen verfolgt XMPP ja auch das Ziel, so ‚dezentral‘ wie E-mails zu sein, so, dass man sich sicher auf seinen Anbieter,
    oder seinen eigenen Server verlassen kann.
    Ein Transport, der von einem ‚Fremden‘ zur Verfügung gestellt wird, ist zwar eine nette Möglichkeit und für den Einen oder Anderen
    sehr funktional, da selbst nichts einzurichten ist; für jemanden, der sich, speziell heutzutage (PRISM, Tempora u.a.),
    um die Sicherheit seiner Daten/Kommunikation sorgt, ist es aber leider nicht nutzbar.

    Da Sie den Transport als Service anbieten, scheint Ihnen daran gelegen zu sein, dass Ihre Arbeit geschätzt und verwendet wird;
    würden Sie den Transport z.B. dem Kraken-Gateway (http://sourceforge.net/projects/kraken-gateway/) hinzufügen,
    könnten Sie sich recht sicher sein, dass genau dies geschehen wird.

    Ich hoffe, dass ich Sie zumindest zum Nachdenken gebracht habe, es wäre wirklich schade, sollte Ihre Arbeit ‚umsonst‘ (bitte nicht falsch verstehen) gewesen sein… .

    Bis dahin, Grüße
    Martin

  2. Ich kann mich Martin leider nur anschließen. Ich habe nämlich auch schon lange nach so einer Möglichkeit gesucht und mich gerade fast über diese hier gefreut, allerdings habe ich dann den Hinweis gelesen, dass der Quelltext nicht öffentlich verfügbar ist.
    Schade eigentlich, denn das wäre eine tolle Möglichkeit gewesen WhatsApp auf anderen als den gängigen Betriebssystemen lauffähig zu machen und endlich alle Chats in einem Messenger zusammenzubringen aber so ist das ganze leider ziemlich nutzlos.

    Liebe Grüße
    Max

  3. Ist dein Gateway noch online? Leider schlägt die Verbindung stets fehl (Versand und Empfang von Nachrichten via yowsup geht, PW usw. ist also richtig).

    1. Hi Billy,
      das Gateway ist down, da ich mich entschieden habe den Quellcode zu veröffentlichen. Jeder kann sich nun sein eigenes Gateway aufsetzen.
      Momentan ist das leider noch nicht so einfach. Ich arbeite aber noch daran es zu vereinfachen.

      viele Grüße
      Steffen

  4. Prima Tool! Hänge aber bei der Installation:
    Habe alle Schritte aus der Readme-Datei befolgt, die Umgebung ist fehlerfrei installiert – einen Whatsapp account habe ich auch …
    Aber wie installiere ich den eigentlichen Server? Welche Konfigurationsdateien muss ich alles anpassen?

    Für ein paar grobe Hinweise währ ich Dankbar!

    Sebastian

  5. Hi,

    ich nutze auf meinem Debian Server Prosody als XMPP server + spectrum2 für einen ICQ Gateway.

    Wie kann ich diesen mit Transwhat erweitern?
    Ich habe mein Passwort von Whatsapp erfolgreich gesnifft vorliegen.

    1. ich hätte genau das gleiche Setup, nur auf den ersten Blick komme ich auch auf keinen grünen Zweig wie man da am besten den Gateway ins bestehende Setup einhängt.

  6. Auf Github ist seit 2 Jahren nix mehr passiert, wird daran nochmal gearbeitet bzw. die Installation von dem Gateway erklärt oder erleichtert?

    Ka ob er überhaupt noch funktioniert, bei Whatsapp hat sich ja auch einiges geändert…

    1. Hallo Friesi,

      nein an transWhat wird (zumindestens von mir) nicht mehr gearbeitet.
      Dazu fehlt mir zur gerade die Zeit und zugegebenermaßen auch die Motivation.
      Aber ich würde mich natürlich freuen, wenn sich jemand dem Projekt annimmt.

      Auf GitHub gibt es im Buchdrucker ein paar Anregungen, was mal gemacht werden müsste.
      Zum Beispiel gibt es eine neue Version von yowsup.

      viele Grüße

  7. Hi,
    vermutlich hat der letzte Kommentar hier vor meinem noch Bestand. Insbesondere deshalb, weil WhatsApp offenbar kürzlich an der Verschlüsselung geschraubt hat.

    Leider sind Teile des Projektes (libCommuni) so desaströs dokumentiert, dass ich mir nicht sicher bin, ob ich nach so viel Aufwand nicht vielleicht enttäuscht werde. Gibt es noch laufende TransWhat-Instanzen, Erfahrungsberichte oder alternative WhatsApp-Transports?

    Viele Grüße
    Micha

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.