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?