Lite om XMPP och Googles dumhet

Jag gillar XMPP, det är ett trevligt protokoll, det är det ända IM protokollet som jag tycker är vettigt, och det är också det ända IM protokollet som jag använder över huvud taget.

En stor styrka med Jabber är att det är helt öppet och decentraliserat. Vem som helst kan sätta upp en Jabber-server på sin egna domän och köra med och komma åt resten av alla användare i hela det öppna nätverket. Det är fantastiskt. Innebörden är att du kan ha i stort sett full kontroll på vilken data som hamnar var.

Jabber fungerar på det viset att du tar en valfri klient, ansluter till en valfri server där du har konto och lägger till personer i din Roster(Kontaktlista), oavsett om de bor på en annan server eller ej, detta löses genom att servrarna pratar med varandra. Hur man håller reda på vem som är vem görs genom att de sparar ens JID, Jabber-ID. Det består av användarnamn@servernamn. På samma sätt som en epostadress.

Så om nu kalle@example.com ska prata med bertil@example.org, hur går det till? Hur hittar de varandra i nätverket? Hur appliceras krypteringen?

För vanlig chatt i Jabber så använder man delvis c2s(Client To Server) och s2s(Server To Server) anslutningar. Så resultatet när Kalle skriver till Bengt är att trafiken går såhär:
kalle@example.com –> example.com –> example.org –> bertil@example.org

Normaltsett så är alltid c2s och s2s anslutningarna krypterade, det innebär att man kan prata anonymt mellan olika servrar, och det skickas aldrig mer info än vad som är nödvändigt för att kommunikationen ska fungera. Sedan så kan du välja att skicka ut statusmeddelanden och sådant till dina vänner om du vill. Men vill du absolut inte haden funktionaliteten så kan du stänga av det i servern, om du kör egen server.

Jabber har även utmärkt stöd för att ha MUC(Multi User Chat, Kanaler), man måste av naturliga skäl ha kanalen bunden till något, som lämpligtvis en server. Så om Kalle Bertil och Adam är i samma MUC så ser det ut ungefär såhär när Kalle skickar ett meddelande:
kalle@example.com –> example.com –> muc.example.se –> kanalen@muc.example.se
Nu har han skickat ett meddelande till kanalen, och kanalens server håller reda på vilka deltagare kanalen har och skickar därefter ut det till alla deltagare på detta vis:
kanalen@muc.example.se –> muc.example.se –> example.org –> bertil@example.org
kanalen@muc.example.se –> muc.example.se –> example.im –> adam@example.im

På detta vis så behöver inte ens alla deltagare i denna MUC veta vad alla har för JID, det ända de behöver se är ett Nick som är obundet till JIDet. Trotts detta kan man skicka privata meddelanden till andra kanaldeltagare på detta vis:
kalle@example.com –> example.com –> muc.example.se –> kanalen@muc.example.se/Bertil –> example.org –> bertil@example.org

Jabber har även resurser, dessa gör att du kan vara inloggad på flera klienter samtidigt, det gör att göra en hel del tuffa saker med. Så Kalle kan ha en klient hemma, en på mobilen och en på jobbet. Och vara inloggad samtidigt. Då kan hans olika resurser se ut såhär:
kalle@example.com/Hemma,  kalle@example.com/Mobil, kalle@example.com/Jobbet

Så om man vill så kan man nu skriva till en specifik resurs, så det kommer till hans konto på hans mobil men inte till någon annan plats. Det vanligaste är att man skickar till alla platser personen är inloggad från, det är enkelt och man vet att det kommer fram. Jag vet ju inte om han glömde sin dator på på jobbet så det är inte nödvändigt att han ser det om jag bara skickar det dit.

Vad har dock Google med detta att göra? Och varför beskriver jag det som dumhet i min titel? Vad har de gjort? Har de ens gjort något?
Det Google har gjort nyligen gällande XMPP är att de har stängt av sin s2s-kryptering. En kedja är aldrig starkare än sin svagaste länk. Visst säkrar användningen fortfarande endel gällande skyddet av informationen som skickas, beroende på var man bryr sig om det mest. Om man inte vill att ens lokala IT-Admin ska kunna se innehållet så är det ganska lungt, men ändå.

Många Jabberservrar som körs är konfigruerade för att kräva just s2s-kryptering i sin konversation med andra servrar! Detta har lett till att Google har sänkt säkerheten och desseutom gjort sig själva inkompatibla med massor av Jabberservrar ute i världen som körs på privata servrar. Både neko.im och jabber.se är vettiga nog att kräva s2s-kryptering, vilket resulterar i att dess användare inte kan prata direkt mot Google talk kontakter.

Jag vet inte heller vems förlust det är, Googles eller XMPP’s, till en början tänkte jag att det var Googles förlust… Men sedan när jag tänkte mera på det kom jag mera in på banan, “Varför skulle de bry sig?”. Majoriteten av Google Talk användarna vet inte vad Jabber är. Så jag börjar luta mig åt att det är en förlust för XMPP, man har tidigare använt argument som “Har du gmail så har du jabberkonto, det är bara att skaffa en annan bättre klient!”. Men jag kan inte riktigt använda det längre, för jag känner inte att jag kan uppmana folk att köra på en Jabberserver som inte godkänner inkommande krypterade anslutningar.

Varför suger världen?

Skillnader på XMPP, IRC och MSN

XMPP är till skillnad från MSN och IRC ett väldigt modernt och ungt chatprotokoll, som har fokus på Instant Messanging, som MSN har varit kända för.

Skillnaderna mellan MSN, IRC och XMPP är många, men de liknar ändå varandra till viss del.

Hur är dessa uppbyggda då? Hur går trafiken?

IRC är ganska simpelt.

I ett IRC-nätverk så har man en eller flera servrar som kommunicerar med varandra.

På ett IRC-nätverk finns kanaler. I kanalerna finns den användare som diskuterar olika saker. Man har även möjlighet att skicka PMs till folk om man känner för detta.

IRC är väldigt serverorienterat, du hänger på ett nätverk i en kanal, ditt nick är bara ditt och du måste vakta det. IRC är inte bundet till någon form av konto(med vissa undantag), eller leverantör.

IRC saknar dock en hel del funktionalitet som man kan vilja ha i moderna nätverk, tex en fastslagen teckenkodning, att SSL är standard från början, att man inte är bunden till en server på ett nätverk, osv… En kontaktlista är något många gillar, offlinemeddelanden… Visst jag stänger aldrig av min IRC-Klient, men det är inte alla som alltid kör sin klient.

I IRC så skickar du ditt meddelande från din klient, till den server du är ansluten till, som skickar vidare till de servrar där alla mottagare finns, som skickar ut det till alla mottagare.

När man kommer till MSN då.

MSN är mest äckligt, det finns fria implementationer av detta som man lyckats skapa genom att scanna trafik. Men det är inte rätt väg att gå. Ett protokoll bör vara öppet från början. Men detta är inte en rant.

MSN är bundet till en leverantör, du måste ha ett konto hos denna för att använda tjänsten. Och du kan bara lägga till folk på samma server som du, men det finns ju bara “en” server så det är lugnt.

Om denna ända nod av MSN slås ut så dör hela nätverket, det är inte en bra struktur ur en nätverkssynpunkt. Visst de har felra serverhallar med datorer för att driva det utspridda. Men går en eller ettp ar sådana ner ett par timmar så brukar hela nätverket lida av överbelastning.

MSN är helt okrypterat som standard(enligt den senaste information jag fått). Det finns i verkligheten enbart en klient, och den fungerar inte i mitt OS.

Jag slutade använda det för 2 år sedan, mitt liv blev mindre jobbigt så. Massor av problem försvann.

MSN applicerar även censur och tar bort inlägg som de tycker innehåller olämpliga saker.

Trafiken i MSN går från din klient, till Microsofts server, till din vän på andra sidan. och medan meddelandet är där så gås det igenom av censurlistor.

Så vad gör XMPP bättre?

XMPP/Jabber har ett helt öppet protokoll, så du är inte beroende av leverantör av program.

XMPP har den stora fördelen att det är decentraliserat! Så du registrerar ett konto på vilken XMPP-Server du vill, och så kan du lägga till dina vänner som har konton på andra servrar och chatta med de obehindrat. Om en server går ner så går inte hela nätverket ner.

XMPP har även fin MUC(Multi User Chat), som innebär att om du har ett JID(Jabber-ID) så kan du ta del av det som sägs i en MUC. Så det spelar ingen roll vart du har ditt XMPP-Konto, du kan ändå prata med allt och alla. Och gå med i MUCs som bor på andra servrar. En MUC är bunden till en server, och det är rimligt. Hur ska man annars kunna hitta den?

XMPP har utf-8 som standardkodning på allt. XMPP har kryptering på slaget som standard. Min klient skriker på mig om jag försöker ansluta okrypterat och säger att det är dåligt!

I Jabber så går trafiken såhär när det är kalle@anka.se till jhon@doe.se

Kalle -> anka.se -> doe.se -> Jhon

Så kalle skickar sin trafik till sin provider, som pratar mod providern doe.se och skickar meddelandet dit för att Jhon ska få det. Allt detta sker krypterat.

Vid MUC så kan det se ut såhär:

kalle@anka.se skickar ett meddelande till kanalen bakgruppen på servern bakakaka.se

Trafiken ser då ut såhär:

Kalle -> anka.se -> bakakaka.se -> alla som är i kanalen genom deras providers

Så en MUC är lite som en mailinglista, du skickar mail till en server som skickar vidare till folk på listan, fast för chat. ungefär som IRC, fast du behöver inte massor av konton och du “ansluter” aldrig till gruppchatten. Du pratar aldrig med servern gruppchatten ligger på. All din trafik går krypterat genom din provider.

Så att ansluta till Jabber gör man genom att logga in på sitt jabberkonto, för att ta sig in i gruppchatter så säger man åt sin klient att prata med sin provider och kasta in dig i en gruppchat.

Hittar du ingen provider du litar på så kan du alltid sätta upp din egna jabberserver.

Brysselresa

Jag var som säkert många jag känner vet i Bryssel i början av Februari. Det var en helt galet bra vistelse, jag är fruktansvärt nöjd med min resa. Det var nog den bästa resa jag någonsin gjort.

Jag kommer i denna blogg post inte kunna skriva ner allt om resan, men jag tänkte ta det lite kortfattat om hur vi planerat, vad som hände och hur saker gick.

Planering:

  • Flygbiljetter var bokade.
  • Vi skulle träffas på Proxxi kvällen innan resan för att planet gick tidigt.
  • Vi skulle boka flygbuss biljetter på kvällen på Proxxi.

Vad vi inte planerat var alltså bland annat boende, mat och sådant. Jag hade med mig 95€, utan möjlighet att ta ut pengar där nere.

Lördagen

Tidigt på morgonen tar vi flygbussen ner och flyger ner till Charleroi. Från Charleroi tar vi en motsvarande flygbuss in till centrala Bryssel, där vi stötte på folk som också skulle till FOSDEM.

Vi går på ett flertal riktigt bra föreläsningar. (Om ni har intresse av vilka så kan jag lägga upp mitt personliga schema vid senare tillfällle).

Det blir kväll, och vi börjar bli trötta. Vi börjar söka boende men hittar inget lämpligt. Jag får sms av Amelia Andersdotter, där vi blev uppmanade till att åka till hsbxl, för de hade fest på kvällen. Vi krånglar oss dit, det var inte jättetrivialt att förstå deras lokaltrafik i alla lägen.

Jag fick möjligheten att smaka Club-mate för första gången. På festen träffar vi Julianna, en fantastisk person, bland annat Cochsurfare, Linuxanvändare, fd lärare i C på universitetet med lägenhet nära FOSDEM. Hon hade haft gäster som skulle stanna över helgen som åkt tidigare.

Vi fick sovplats hemma hos Julianna, jag växlade några ord med Amelia innan vi åkte hem till Julianna och sov.

Söndag

Vaknar på morgonen, dricker te och promenerar ner till FOSDEM, vi fick även låna nyckel hem till Julianna för att vi skulle sova där till måndagen också.

Gick på ett flertal fantastiska föreläsningar, CAcert Assurance Party, och en del annat roligt. Jag köpte en Analog Printer av FSFe, dvs en bläckpenna som var väldigt välgjord och snygg. Donerade pengar till FOSDEM som ett tack för eventet och fick en tröja där det står “Fosdem <3 me”.

Åkte ner till hsbxl på kvällen för att vi hört att det skulle vara folk där. Väl där så lämnade vi våra saker och gick och köpte mat. Kom tillbaka åt vår mat, och satt och snackade med folk. Då hittade vi även drycken, Club-Mate Cola. En riktigt god cola som dessutom var billig. Jag köpte på mig ett par flaskor av denna.

Senare på kvällen så åkte vi hem till Julianna och sov.

Måndag

Vi vaknade, och fick te precis som morgonen innan. Så blev vi rekommenderade att gå upp till universitetet och åt lite mat i en av studentrestaurangerna. Det var billigt och gott. På väg tillbaka till Juliannas lägenhet för att hämta upp våra saker och börja ta oss in mot centralare delar av staden så passerade vi en chokladbutik och köpte på oss en chokladbit var.

Vi tog oss in till stationen där vår flygbuss tidigare anlänt, letade upp var den gick. Sedan gick vi och åt våfflor, det var något i en klass för sig. Riktigt goda var de, så åkte vi till flygplatsen och fördrev endel tid där.

Vi landade vid Skavsta  framåt tolvtiden på kvällen. Jag hade ingen möjlighet att ta mig hem och hamnade då på Proxxi, där jag satt och pratade med lite folk som råkade vara där om vistelsen i Bryssel.

Sammanfattning

Resan var otroligt rolig, allt läste sig jättebra tak vare massor av snälla personer. Det var lärorikt, vi har fått upp ögonen för ett flertal nya program, lärt oss saker om massor av saker.

Jag har blivit Assurer inom CAcert. Jag har träffat en kvinnlig utvecklare av FireFox. Jag har träffat XMPP-Utvecklare, Perl-Utvecklare. Sett föreläsningar om FreeRunnern. Pratat med OpenMoko-människor.

Jag tog inga fotografier alls, för att jag var för upptagen med att gå på intressanta föreläsningar, prata med intressanta personer, och bara njuta av resan.

Jag har noterat att i Belgien så gillar man pomes frites väldigt mycket. Man har det till allt och lite till. När vi var och åt middag på söndagen så var det folk som beställde bröd med smaksatt majonäs och pomes frites i.

Jag fick möjlighet att besöka hsbxl, som är Bryssels lokala hackerspace. Det var verkligen kul att ha varit där.

Tack till:
(Alla jag vill tacka för resan kommer nog inte se detta, eller kunna läsa det)

  • Mina resekamrater som jag åkte med.
  • Amelia, för att hon försökte hjälpa oss och vi hade nog inte lyckats lika bra om vi inte hamnat på hsbxl.
  • Julianna för boendet och råd vi fick.
  • Arrangörerna av FOSDEM.
  • Alla föreläsare som gjort bra föreläsningar jag såg.
  • hsbxl för gästfriheten och att vi fick möjligheten att hälsa på.
  • Alla trevliga människor jag träffat och pratat med.
  • Min släkt som gav mig pengar i julklapp som gav mig möjligheten till detta.

Skype, mm.

Igår så skrev Anna, Klara, Emma och säkerligen andra där ute också. Men jag har nyligen satt upp min RSS-Läsare pånytt och missat endel.

De skrev om att Piratpartiet har ett förslag om att sluta använda skype som kommunikationsmedium, vilket jag tycker att det inte är en dag för sent. Jag tycker att det var dumt att börja med det från början. Vill man ha chat så förstår jag att man väljer Skype före MSN, men varför inte IRC?

IRC är enligt mig ett av de absolut bästa sättet att hålla multikonversationer. Vem som helst kan gå in och titta på mötet om de så vill. Man kan moderera vilka som får prata om man vill det.

Jag tror inte på forumdiskutioner för möten, men det är kanske bara jag.

Om man nu är ute efter möjligheterna till ljudöverföreng så duger inte IRC. Vill man ha ljudöverföring så kan jag rekommendera både Voicechatter och Mumble. Båda är fria och utmärkta program för att tala flera personer över internet. Voicechatter är dock lättare att ställa in alla saker i klienterna och är över lag mindre problem, men båda är bra. Båda är chattrumsbaserade, typ som irc fast ljud. Eller ja, fria Ventrilo och TeamSpeak ersättare.

Ett tag så var jag inblandad i Ung Pirat Stockholm. Då kom förslagen upp att ha både MSN och Skypemöten. Men jag kunde inte komma på något av de, sedan hade vi möten genom att vi sågs och på IRC. Jag kan inte komma på Skypemöten eller MSN möten pga avtalen, och licenserna.

Visst MSN är hackat sedan länge och det finns en oändligt stor hög med fria MSN-Klienter. Men det kräver fortfarande ett konto hos Microsoft, och att man använder sig av protokollet. Protokollet är för mig också viktigt. MSN sysslar dock med censur, det är nog viktigt nog för mig att inte vilja ha möten där eftersom man inte vet vad som kommer fram och inte kommer fram.

Skype är dock inte hackat, men de har linux-klient. Det är lite pluspoäng, men inte bra nog. Protokollet är krypterat och jättestängt. Man har ingen direkt aning om vad som händer i verkligheten.

Jag kan även föreslå Jabber med Jingle.
Jabber har ett utmärkt stöd för kontaktlistor, Multi User Chat(hädanefter MUC), där man med MUC kan sätta upp ett chatrum på en server där folk kan mötas och diskutera. Och senare när fler och fler klineter får Jingle-Stöd så kommer allt vad videokonversationer, och Ljudöverföring och allt vad det nu heter inte vara ett problem. Det finns klienter som har Jinglestöd, tex Psi.

För ett parti som sysslar med öppenhet och fri kunskap ser jag det som fel att det använder ofria saker i sin interna kommunikation. Sedan första gången jag hörde talas om det har jag mått lite dåligt av det och inte velat veta det egentligen.