XMPP Clients für PC und unterwegs

Aus­ge­löst durch Tem­po­ra und Prism, war ich ja auf der Suche nach Alter­na­ti­ven für Cloud Diens­te, um mei­ne Daten nicht wei­ter grund­sätz­lich bei Anbie­tern über dem Teich able­gen zu müs­sen.

Über Sinn oder Unsinn sol­cher Aktio­nen kann man natür­lich strei­ten. Klar, wer will kommt an die Daten wei­ter dran. Ich will aber wenigs­tens, dass es eben nicht ein­fach so von Haus aus ist.  Lan­ge Rede, nun aber zum The­ma.

Für die Kom­mu­ni­ka­ti­on habe ich inzwi­schen beschlos­sen auf XMPP umzu­sat­teln. Nur die Suche nach den pas­sen­den Cli­ents hat sich etwas schwie­ri­ger gestal­tet. Unter Andro­id und Linux haben ich aber inzwi­schen ein paar durch­pro­biert und bin inzwi­schen pro Platt­form bei einem Pro­gramm hän­gen­ge­blie­ben.

Linux

Anfangs dach­te ich noch, da kann ich wei­ter mein Pidgin her­neh­men. Aber recht gleich stellt sich her­aus, dass die grund­sätz­li­che Unter­stüt­zung für XMPP zwar gege­ben ist, aber nicht sehr weit ent­wi­ckelt ist. So wer­den z.B. die Res­sour­cen nicht (außer infor­ma­ti­ve Anzei­ge) unter­stützt. Nicht bes­ser sieht es bei Kope­te aus. Glück­li­cher­wei­se gibt es eine recht gro­ße Aus­wahl an Alter­na­ti­ven, die sich auf XMPP spe­zia­li­siert haben. Bei Gajim bin ich dann am Ende hän­gen geblie­ben. Er kann, was man so braucht, ist ein­fach und in Python geschrie­ben. Das hat mir dann auch sofort gefal­len.

Am Wich­tigs­ten war mir, dass ich direkt ein­zel­ne Res­sour­cen anschrei­ben kann, sprich direkt sagen: die­se Nach­richt soll jetzt am Han­dy her­aus­kom­men und nicht am PC. Zwi­schen meh­re­ren Gajim-Cli­ents wird auch schon auto­ma­tisch mit TSL End-zu-end ver­schlüs­selt, dann gibts natür­lich noch OTR und GPG. Was auch sehr schön ist, dass man sei­ne eige­nen Res­sour­cen ange­zei­gen kann und kann damit recht ein­fach schnell mal ein Pass­wort (mit OTR ver­schlüs­selt) oder einen Link vom PC ans Han­dy sen­den.

Android

Unter Andro­id bin ich inzwi­schen halb­glücklick bei IM+. War­um dazu gleich mehr. Erst­mal hat­te ich aber Xab­ber. Soweit ist die­ser ganz nett, auch ist er Open­Sour­ce und kos­tet nichts und beherrscht sogar OTR. Ganz zufrie­den war ich anfangs zwar schon, in der Pra­xis war es dann aber etwas pro­ble­ma­tisch. Haupt­pro­blem waren vor allem die Benach­rich­ti­gun­gen. So wur­den die­se Teil­wei­se ohne Icon ange­zeigt und waren somit im Nor­mal­fall nicht zu sehen. Wei­ter dann noch das Pro­blem, das sie bei dem Nexus 4 mei­ner Freun­din immer erst dann erschie­nen sind, wenn man das Han­dy ent­sperrt hat. Und das ers­te was dann auch mei­ner Freun­din gleich auf­ge­fal­len ist, hier kann man ja gar nicht so ein­fach Whats­App like emo­ti­ons und Bil­der ver­sen­den. Des­we­gen muss­te natür­lich eine Alter­na­ti­ve her.

IM+

IM+ als kom­mer­zi­el­ler Dienst ist mir dann auch schon gleich ins Auge gefal­len. Hier muss­te ich zwar für die (wer­be­freie) App bezah­len, auch für den OTR Sup­port (Was ein­ma­lig und auch nicht viel ist), dafür hat man dann auch eine Sup­port Adres­se die man bei Pro­ble­men befra­gen kann.

Dies habe ich auch schon gleich genutzt. Mein ers­tes Miss­trau­en war dann näm­lich die Opti­on, einen glo­ba­len, per Web abruf­ba­ren Nach­rich­ten­ver­lauf zu akti­vie­ren. Da frag­te ich mich natür­lich gleich, ob da nicht etwa alle Daten gleich zu den IM+ Ser­vern wan­dern. Und das tun sie, in jedem Fall. Der Sup­port hat mir das aber ohne Umweg gleich erklärt. Sprich das es so ist, war­um es so ist und was es mir bringt. Auch wenn nicht alle der Grün­de bei XMPP rele­vant waren, glo­bal gese­hen ist es logisch.

Also was pas­siert: Der IM+ Ser­ver fun­giert als Pro­xy ins Jabber Netz. Mit Erlaub­nis zitie­re ich mal aus der Ant­wort:

Con­nec­tion to Jabber ser­ver is pro­xied.
This means that con­nec­tion goes through IM+ gate ser­vers.
When you launch IM+ on your device and press «Con­nect» but­ton, IM+ con­nects to its gate ser­vers (first con­nec­tion sta­ge)
and then con­nects your account to the ser­ver of the spe­ci­fic mes­sen­ger ser­vice (second con­nec­tion sta­ge).

We’re using this con­nec­tion type as it has a lot of bene­fits, here are a few of them:
— app­li­ca­ti­on on device runs fas­ter and data traf­fic is saved, New ava­tars and sta­tu­ses are recei­ved not by IM+ app­li­ca­ti­on, but by our ser­vers. Only the updates are sent to IM+, which means fewer amount of data to be trans­fer­red and pro­ces­sed.
— the size of app­li­ca­ti­on is smal­ler, becau­se some func­tio­na­li­ties are imple­men­ted on our ser­vers ins­te­ad of being inclu­ded into the app­li­ca­ti­on.
— con­nec­tion is not drop­ped when you lea­ve WiFi area or when data net­work coverage is not suf­fi­ci­ent;
— you may remain con­nec­ted even when IM+ is not run­ning;
— inco­m­ing messa­ges can be deli­ve­r­ed to device with Push even when IM+ is clo­sed (which also saves you bat­te­ry life);
— we’re able to fix con­nec­tion issu­es without updating app­li­ca­ti­on.

IM+ uses SSL encryp­ti­on for con­nec­tion to our ser­vers. On the second sta­ge authen­ti­ca­ti­on and encryp­ti­on depend on requi­re­ments of every spe­ci­fic messa­ging ser­vice and match them. IM+ ser­vers are ope­ra­ted by SHAPE Ser­vices and we do our best to ensu­re this data can­not be inter­cep­ted by third par­ties at any sta­ge.

Die Fir­ma selbst sitzt in Stutt­gart. Ihre Ser­ver ste­hen in Deutsch­land und Kana­da. Was Traf­fic angeht haben sie auch deut­lich Recht. Obwohl mein Xab­ber nur Online war, aber nicht wei­ter genutzt wur­de, hat es mehr Traf­fic gene­riert als die IM+ App, über die ich Nach­rich­ten aus­ge­tauscht habe. Was man sich hier aber auch wie­der bewusst sein muss: Der Cli­ent befin­det sich dann (wenn man es nicht abstellt, was dann wie­der mehr Daten und Ener­gie kos­tet) im Push Modus, was dazu führt, dass die Nach­rich­ten prak­tisch wie­der über Goog­le ver­sen­det wer­den. Zumin­dest aber kann man hier wie­der ein­stel­len, dass dies nur für die ers­te Nach­richt der Kon­ver­sa­ti­on der Fall sein soll und nicht für die fol­gen­den. Also schon mal ein Teil­erfolg beim The­ma Daten nicht kom­plett über den Teich schi­cken und tro­z­dem noch paar Vor­tei­le nutz­ten. Ganz glück­lich bin ich also aber bei die­sem Punkt noch nicht.

OTR

Was das The­ma Ver­schlüs­seln mit OTR angeht bin ich bis jetzt auch noch erst teil­wei­se glück­lich. Hier ergibt sich die Schwie­rig­keit, dass für jede Kon­ver­sa­ti­on neue Schlüs­sel aus­ge­han­delt wer­den. Das führt nun aber zu dem Pro­blem, dass, wenn die Kom­mu­ni­ka­ti­on eben noch Han­dy zu Han­dy war, ich aber auf den PC wech­seln will, ich OTR neu­star­ten muss. Rich­tig pro­ble­ma­tisch ist das vor­al­lem dann, wenn man nicht dar­an denkt. Steht noch eine ver­schlüs­sel­te Kon­ver­sa­ti­on zwi­schen A und B, und B2 schreibt an A, kommt die Ant­wort von A bei B2 nur als ver­schlüs­sel­ter Text an, was A aber nicht mit­be­kommt. Macht B2 nun einen “restart” der Ver­schlüs­se­lung, schaut man mit dem B Cli­ent dann aber in die Röh­re. Der bekommt das nicht mit und man schreibt dann ver­schüs­sel­ten Text, der von A nicht mehr gele­sen wer­den kann.