Het artikel betoogt dat digitale communicatie moet worden beschouwd als essentiële infrastructuur. Om vendor lock-in te voorkomen en digitale soevereiniteit te waarborgen, zijn open standaarden cruciaal, omdat deze interoperabiliteit garanderen en voorkomen dat één commerciële partij de volledige controle behoudt.
De auteur maakt een belangrijk onderscheid tussen open-source software en open standaarden. Hoewel diensten als Signal privacy-vriendelijk zijn, blijven ze 'walled gardens'. Ook Matrix wordt bekritiseerd; volgens de auteur is het in feite een single-vendor platform (beheerd door Element) in plaats van een echte open standaard.
Als het superieure alternatief wordt XMPP (Jabber) gepresenteerd. Dankzij de extensibiliteit via XEP's en het beheer door een Standards-Developing Organization (SDO), heeft XMPP zich over een periode van 25 jaar kunnen aanpassen aan nieuwe eisen, zoals mobiel gebruik en end-to-end versleuteling (OMEMO). De conclusie is dat XMPP een bewezen en veerkrachtig fundament biedt voor echte digitale onafhankelijkheid.
Jabber/XMPP: 25 jaar digitale onafhankelijkheid
Infrastructuur
"We zouden eigenaar moeten zijn van onze eigen infrastructuur." Veel mensen zouden instinctief instemmend knikken bij deze uitspraak. Toch verschuift de betekenis van "we" afhankelijk van het type infrastructuur. Snelwegen, spoorwegen, bruggen en havens vereisen inspanningen op nationaal niveau. De watervoorziening ligt meestal in handen van gemeenten. En de wens om eigenaar te zijn van infrastructuur gaat door tot op een veel kleiner niveau: het bezitten van een eigen huis is een droom voor velen — hoewel zo'n eigendom niet noodzakelijkerwijs op individueel niveau georganiseerd hoeft te worden. In plaats daarvan kunnen coöperaties of door de stad beheerde woningen [1] vergelijkbare voordelen bieden.
China's neokolonialisme, dat zich onder andere manifesteert in het bouwen en kopen van infrastructuur in soevereine landen, wordt terecht door velen bekritiseerd. Het principe om je watervoorziening niet te verkopen aan Nestlé is universeel geaccepteerd, en verhuurders behoren tot de meest gehate klassen.
Lange tijd heeft Europa digitale diensten niet aan dezelfde standaard getoetst. Deels kan dit worden verklaard door het feit dat Europa Amerikaanse corporaties impliciet heeft meegenomen in een collectief "we" — een aanname die officieel onder het huidige Trump-regime uiteenviel, maar waar al veel eerder met scepsis naar had moeten worden gekeken. Corporaties zijn niet onze vrienden. De belangrijkste factor is echter dat Europa digitale diensten simpelweg niet als infrastructuur beschouwde. Hoewel anti-Amerikanisme weer in trek is en een groot deel van de beweging voor digitale soevereiniteit aanjaagt, moet Europa voorzichtig zijn dat het Amerikaanse bedrijven niet simpelweg vervangt door Europese, maar moet streven naar collectief eigendom.
Onder het kapitalisme zullen winstgerichte bedrijven altijd een rol spelen bij het bouwen en zelfs het exploiteren van onze infrastructuur. Ze moeten echter gedwongen worden in een positie waarin ze gemakkelijk vervangbaar zijn. Het is acceptabel om een bedrijf in te huren om een weg aan te leggen, maar wanneer het halverwege de eeuw aankomt op het onderhoud en de reparatie ervan, moeten we in staat zijn om een ander bedrijf voor die klus in te huren. Het is acceptabel om een bedrijf in te huren voor de bouw en exploitatie van de hoofdtransportlijnen, maar we willen niet dat dat bedrijf het volledige elektriciteitsnet bezit. We willen dat kleinere spelers kunnen aansluiten en kunnen interopereren binnen het net. Dat is waar open standaarden in beeld komen.
Het internet werd vroeger — en in zekere mate nog steeds — gebouwd rond standaarden. Een datacenterbeheerder kan servers kopen van het ene bedrijf, switches van een ander, routers van een derde, en deze verbinden met een backbone-internetprovider die hardware van nog een ander bedrijf gebruikt. Als een bedrijf failliet gaat of overgaat tot anti-consumentenpraktijken, kan de volgende generatie hardware eenvoudig bij een andere leverancier worden besteld.
De noodzaak van en de voordelen van deze onafhankelijkheid in de toeleveringsketen zijn gemakkelijk te begrijpen, zelfs voor mensen die niet professioneel datacenters beheren. Echter, wanneer het gaat om communicatiemiddelen, laten zelfs technisch onderlegde mensen dezelfde kritische blik varen.
Na ademen, eten en voortplanten is communiceren waarschijnlijk het vierde belangrijkste dat mensen doen. Toch herkennen we onze communicatiemiddelen vaak niet als onderdeel van onze infrastructuur.
Voorvechters van digitale rechten wijzen vaak naar Signal, Wire en Threema als voorbeelden van communicatiemiddelen die zijn ontwikkeld en worden beheerd door entiteiten met iets ethischere bedrijfsvoeringen dan hun Big Tech-tegenhangers. Wat de meeste privacy-enthousiastelingen niet begrijpen, is dat deze bedrijven nog steeds "walled gardens" exploiteren waaruit geen ontsnapping mogelijk is. Ze interopereren niet. Het is niet zo dat Signal inherent kwaadaardig iets heeft gedaan — hoewel het betalen van de CEO bijna een miljoen dollar per jaar en het draaien van servers op AWS zeker vragen oproept — maar het is dat we geen vangnet hebben voor het geval dat wel gebeurt.
Open-source software staat los van dit probleem. Het helpt ervoor te zorgen dat de software geen spyware is — in tegenstelling tot WhatsApp en andere Meta-producten [2] — en dat de end-to-end versleuteling solide is, maar het beschermt ons niet als Signal morgen zijn servers uitschakelt of stopt met zijn activiteiten in de EU [3]. Open-source alleen is niet voldoende om te voldoen aan de eisen die we aan onze infrastructuur zouden moeten stellen.
Om te voldoen aan de standaarden die we voor onszelf stellen, moeten we systemen ontwerpen waarin self-hosting structureel mogelijk is, maar niet strikt noodzakelijk. Net als het bezitten van een huis, zou het draaien van je eigen server mogelijk moeten zijn, evenals collectief eigendom. Digitale systemen kunnen en moeten de voordelen van coöperatieve huisvesting repliceren naast die van individueel eigendom.
Het behandelen van digitale communicatie als echte infrastructuur kan alleen worden bereikt door het adopteren en verplicht stellen van open standaarden.
Het Extensible Messaging and Presence Protocol (XMPP) [4, 5] is een standaard voor online communicatie. Het is niet gecreëerd om in een specifieke tijdgeest te passen of om op het huidige politieke klimaat in te spelen. Sterker nog, de wortels ervan gaan meer dan 25 jaar terug.
Standaarden
Interoperabiliteit en leveranciersonafhankelijkheid worden bereikt door het vaststellen van en het houden aan standaarden. Om te voorkomen dat individuele leveranciers standaarden pushen die potentiële concurrenten expliciet of impliciet uitsluiten of anderszins onredelijke voordelen bieden, worden organisaties voor standaardisatie (Standards-Developing Organizations, SDO's) opgericht voor wederzijdse samenwerking. Deze hebben meestal waarborgen die voorkomen dat één enkel bedrijf te machtig wordt. Bekende voorbeelden van dergelijke organisaties zijn de ISO, de IETF, het W3C en het Unicode Consortium.
Er is een onderscheid te maken tussen een leverancier die zijn API publiceert en anderen toestaat deze te gebruiken, en belanghebbenden die samenkomen om collectief een standaard te ontwikkelen binnen het kader van een SDO. Organisaties zoals de IETF slagen omdat ze verschillende mensen met verschillende behoeften dwingen tot overeenstemming. Protocollen worden niet gedicteerd door de prioriteiten van één enkel bedrijf; in plaats daarvan worden ze beoordeeld en getest door concurrenten, beveiligingsonderzoekers en onafhankelijke ontwikkelaars.
Element (voorheen bekend als Riot en NewVector) ontwikkelt een instant messaging-product met een set functies — zoals self-hosting en federatie — die vergelijkbaar zijn met die van XMPP-gebaseerde oplossingen. Opvallend is echter dat Element ervoor koos XMPP niet te adopteren, maar in plaats daarvan zijn eigen API publiceerde onder de naam Matrix. In tegenstelling tot traditionele standaarden behoudt Element strikte controle over alle wijzigingen of toevoegingen aan de publieke API. Belangrijke leidinggevende posities binnen de Matrix Foundation worden voornamelijk bekleed door huidige en voormalige Element-medewerkers. Het is berucht moeilijk om bijdragen van buitenaf geaccepteerd te krijgen in de specificatie [6]. Toch trappen Europese overheidsinstanties in hun streven naar digitale soevereiniteit regelmatig in de val door dergelijke single-vendor platforms in te kopen, waarbij ze een open-source codebase verwarren met een open standaard.
Het is natuurlijk dat voorstellen voor standaarden ontstaan binnen één organisatie. JMAP, een moderne vervanging voor IMAP en SMTP Submission (wat niet heel anders is dan Matrix — een JSON API over HTTP), begon bij Fastmail voordat het naar de IETF werd gebracht. Jabber begon als een open-source community-project voordat het naar de IETF werd gebracht en werd omgedoopt tot XMPP. Ideeën beginnen klein, maar om een standaard te creëren zijn externe feedback, samenwerking en de structuur van een SDO nodig.
Voor consumenten is het verschil tussen de benaderingen van Fastmail en Element frappant. Niet alleen is JMAP merkbaar verbeterd op protocolniveau tijdens het proces in de IETF-werkgroep, maar er zijn nu minstens drie onafhankelijke servers en talloze onafhankelijke client-applicaties. Matrix daarentegen — ondanks dat het uit hetzelfde tijdperk rond 2014 stamt — zit nog steeds vast aan één dominante referentie-implementatie, terwijl een tweede alternatief nog in de kinderschoenen staat en worstelt om tractie te krijgen. Het exploiteren van die referentie-implementatie is berucht resource-intensief, wat self-hosting moeilijk maakt voor kleinere organisaties en individuen. Element verkoopt closed-source plugins om de prestaties te versnellen.
De X in XMPP
De oorsprong van XMPP — dat begon als Jabber — gaat meer dan een kwart eeuw terug. De oorspronkelijke RFC7 dateert uit oktober 2004 en is in maart 2011 slechts minimaal herzien [4]. De eisen voor instant messaging zullen in zo'n tijdsbestek natuurlijk veranderen. Gelukkig staat de X in XMPP voor Extensible, en extensies bieden een manier voor het protocol om zich in de loop der tijd aan te passen en te veranderen. Extensies voor XMPP worden XMPP Extension Protocols (XEP's) genoemd en worden beheerd door de XMPP Standards Foundation (XSF). De XSF schrijft zelf geen extensies; in plaats daarvan biedt het het kader van een SDO zodat ontwikkelaars hun eigen voorstellen kunnen indienen en standaardiseren.
Het aanpassen aan veranderende eisen is niet altijd soepel verlopen. XEP-0198 (Stream Management), een extensie die cruciaal is om berichtverlies bij mobiele implementaties te voorkomen, werd gestabiliseerd in 2009, maar kreeg pas rond 2014–2015 brede implementatie. De iPhone kwam uit in 2007; de HTC Dream, de eerste commerciële Android-telefoon, volgde in 2008. OMEMO (XEP-0384), de specificatie van XMPP voor end-to-end versleuteling volgens industriestandaard, won vanaf 2016 aan terrein, drie jaar nadat Edward Snowden [8] de wereldwijde surveillance van de NSA onthulde en de noodzaak voor E2EE op de kaart zette. De artikelen "The (Sad) State of Mobile XMPP in 2014" door Georg Lukas [9] en "The State of Mobile XMPP in 2016" door deze auteur [10] illustreren deze moeizame transitie naar het mobiele tijdperk.
Dit bewijst dat het enkel hebben van specificaties niet genoeg is. Standaarden moeten worden ondersteund door meerdere, bij voorkeur onafhankelijke, implementaties. Tegenwoordig houdt de XSF de implementatiestatus van zijn XEP's bij [11]. Deze gegevens helpen auteurs en de XSF om voorstellen door hun levenscyclus te leiden, zoals het bepalen van het juiste moment om een XEP van 'Experimenteel' naar 'Stabiel' te verplaatsen. Het stelt ontwikkelaars ook in staat om gemakkelijk andere clients en servers te identificeren die een bepaalde specificatie ondersteunen voor interoperabiliteitstests. Ten slotte helpt het eindgebruikers om de juiste client voor hun behoeften te vinden door een omgekeerde zoekopdracht te bieden van welke software welke functies ondersteunt.
Moderne clients zoals Dino op Linux of Conversations op Android zijn gelijkwaardig aan alternatieven die zijn gebouwd op propriëtaire protocollen. Recente toevoegingen aan de functies zijn emoji-reacties, synchronisatie van leesstatus over verschillende apparaten en tijdzone-indicatoren om te voorkomen dat contactpersonen tijdens hun lokale nachturen worden bericht. Een unieke functie onder de self-hostbare instant messaging-oplossingen — die helaas relevant werd na een door een staat gesponsorde aanval op een publieke XMPP-provider [12] — is channel binding, een mechanisme om bepaalde machine-in-the-middle-aanvallen te voorkomen.
Kijkend naar de nabije toekomst werkt de XMPP-community momenteel aan antwoorden op berichten (message replies), het delen van meerdere afbeeldingen in galerijstijl en OAuth-ondersteuning. Al deze functies hebben al experimentele XEP's, maar de community wacht momenteel op implementatie-ervaring voordat ze verder worden bevorderd. Ondertussen onderzoekt de community ook opties voor het bijwerken van de RFC en het terugbrengen van het protocol naar de IETF als "XMPP 2.0".
Instant messaging is geen homogene gebruikerservaring. Een messenger voor teams kan een andere set functies vereisen dan iets dat is geoptimaliseerd voor gebruik met vrienden en familie. Niet elke XMPP-client streeft naar dezelfde gebruikerservaring, maar de standaarden zijn er zodat ontwikkelaars whatever gespecialiseerde client hun gebruikers nodig hebben kunnen bouwen, zonder een protocol vanaf nul te hoeven uitvinden.
Een toekomst in het verleden
Er is iets fascinerend aan het feit dat XMPP ontwikkelaars in zijn community heeft die jonger zijn dan het protocol zelf. Het heeft in stilte venture-funded startups, propriëtaire platforms en volledige tech-cycli overleefd. Dat uithoudingsvermogen biedt de veerkracht die we in uitdagende tijden nodig hebben. Het is het anker, de ruggengraat, de infrastructuur.
Matrix heeft het wiel opnieuw uitgevonden als een metro met rubberbanden. Op papier biedt het echte voordelen, zoals het beklimmen van steilere hellingen, wat vervolgens wordt gebruikt om agressief te adverteren en lokale overheden te lobbyen om in te stappen. Maar uiteindelijk raakt de gemeente vastgeketend aan één enkele leverancier.
Een veranderende geopolitieke situatie enHet besef dat Big Tech te veel macht heeft, leiden ertoe dat we zoeken naar en alternatieven ontwikkelen. Maar wat als het alternatief al meer dan 25 jaar vlak onder onze neus ligt? De standaard voor instant messaging — RFC 6120: Extensible Messaging and Presence Protocol (XMPP).
***
Bronnen en voetnoten:
- https://en.wikipedia.org/wiki/HousinginVienna
- https://localmess.github.io/
- https://mastodon.world/@Mer__edith/112535616774247450
- https://www.rfc-editor.org/rfc/rfc6120.html
- https://www.rfc-editor.org/rfc/rfc6121.html
- https://github.com/matrix-org/matrix-spec-proposals/pull/4174
- https://www.rfc-editor.org/rfc/rfc3920.html
- https://en.wikipedia.org/wiki/Snowden_disclosures
- https://op-co.de/blog/posts/mobilexmppin_2014/
- https://gultsch.de/posts/the-state-of-mobile-xmpp-in-2016/
- https://xmpp.org/extensions/
- https://notes.valdikss.org.ru/jabber.ru-mitm/
Jabber/XMPP: 25 jaar digitale onafhankelijkheid
Infrastructuur
"We zouden eigenaar moeten zijn van onze eigen infrastructuur." Veel mensen zouden instinctief instemmend knikken bij deze uitspraak. Toch verschuift de betekenis van "we" afhankelijk van het type infrastructuur. Snelwegen, spoorwegen, bruggen en havens vereisen inspanningen op nationaal niveau. De watervoorziening ligt meestal in handen van gemeenten. En de wens om eigenaar te zijn van infrastructuur gaat door tot op een veel kleiner niveau: het bezitten van een eigen huis is een droom voor velen — hoewel zo'n eigendom niet noodzakelijkerwijs op individueel niveau georganiseerd hoeft te worden. In plaats daarvan kunnen coöperaties of door de stad beheerde woningen [1] vergelijkbare voordelen bieden.
China's neokolonialisme, dat zich onder andere manifesteert in het bouwen en kopen van infrastructuur in soevereine landen, wordt terecht door velen bekritiseerd. Het principe om je watervoorziening niet te verkopen aan Nestlé is universeel geaccepteerd, en verhuurders behoren tot de meest gehate klassen.
Lange tijd heeft Europa digitale diensten niet aan dezelfde standaard getoetst. Deels kan dit worden verklaard door het feit dat Europa Amerikaanse corporaties impliciet heeft meegenomen in een collectief "we" — een aanname die officieel onder het huidige Trump-regime uiteenviel, maar waar al veel eerder met scepsis naar had moeten worden gekeken. Corporaties zijn niet onze vrienden. De belangrijkste factor is echter dat Europa digitale diensten simpelweg niet als infrastructuur beschouwde. Hoewel anti-Amerikanisme weer in trek is en een groot deel van de beweging voor digitale soevereiniteit aanjaagt, moet Europa voorzichtig zijn dat het Amerikaanse bedrijven niet simpelweg vervangt door Europese, maar moet streven naar collectief eigendom.
Onder het kapitalisme zullen winstgerichte bedrijven altijd een rol spelen bij het bouwen en zelfs het exploiteren van onze infrastructuur. Ze moeten echter gedwongen worden in een positie waarin ze gemakkelijk vervangbaar zijn. Het is acceptabel om een bedrijf in te huren om een weg aan te leggen, maar wanneer het halverwege de eeuw aankomt op het onderhoud en de reparatie ervan, moeten we in staat zijn om een ander bedrijf voor die klus in te huren. Het is acceptabel om een bedrijf in te huren voor de bouw en exploitatie van de hoofdtransportlijnen, maar we willen niet dat dat bedrijf het volledige elektriciteitsnet bezit. We willen dat kleinere spelers kunnen aansluiten en kunnen interopereren binnen het net. Dat is waar open standaarden in beeld komen.
Het internet werd vroeger — en in zekere mate nog steeds — gebouwd rond standaarden. Een datacenterbeheerder kan servers kopen van het ene bedrijf, switches van een ander, routers van een derde, en deze verbinden met een backbone-internetprovider die hardware van nog een ander bedrijf gebruikt. Als een bedrijf failliet gaat of overgaat tot anti-consumentenpraktijken, kan de volgende generatie hardware eenvoudig bij een andere leverancier worden besteld.
De noodzaak van en de voordelen van deze onafhankelijkheid in de toeleveringsketen zijn gemakkelijk te begrijpen, zelfs voor mensen die niet professioneel datacenters beheren. Echter, wanneer het gaat om communicatiemiddelen, laten zelfs technisch onderlegde mensen dezelfde kritische blik varen.
Na ademen, eten en voortplanten is communiceren waarschijnlijk het vierde belangrijkste dat mensen doen. Toch herkennen we onze communicatiemiddelen vaak niet als onderdeel van onze infrastructuur.
Voorvechters van digitale rechten wijzen vaak naar Signal, Wire en Threema als voorbeelden van communicatiemiddelen die zijn ontwikkeld en worden beheerd door entiteiten met iets ethischere bedrijfsvoeringen dan hun Big Tech-tegenhangers. Wat de meeste privacy-enthousiastelingen niet begrijpen, is dat deze bedrijven nog steeds "walled gardens" exploiteren waaruit geen ontsnapping mogelijk is. Ze interopereren niet. Het is niet zo dat Signal inherent kwaadaardig iets heeft gedaan — hoewel het betalen van de CEO bijna een miljoen dollar per jaar en het draaien van servers op AWS zeker vragen oproept — maar het is dat we geen vangnet hebben voor het geval dat wel gebeurt.
Open-source software staat los van dit probleem. Het helpt ervoor te zorgen dat de software geen spyware is — in tegenstelling tot WhatsApp en andere Meta-producten [2] — en dat de end-to-end versleuteling solide is, maar het beschermt ons niet als Signal morgen zijn servers uitschakelt of stopt met zijn activiteiten in de EU [3]. Open-source alleen is niet voldoende om te voldoen aan de eisen die we aan onze infrastructuur zouden moeten stellen.
Om te voldoen aan de standaarden die we voor onszelf stellen, moeten we systemen ontwerpen waarin self-hosting structureel mogelijk is, maar niet strikt noodzakelijk. Net als het bezitten van een huis, zou het draaien van je eigen server mogelijk moeten zijn, evenals collectief eigendom. Digitale systemen kunnen en moeten de voordelen van coöperatieve huisvesting repliceren naast die van individueel eigendom.
Het behandelen van digitale communicatie als echte infrastructuur kan alleen worden bereikt door het adopteren en verplicht stellen van open standaarden.
Het Extensible Messaging and Presence Protocol (XMPP) [4, 5] is een standaard voor online communicatie. Het is niet gecreëerd om in een specifieke tijdgeest te passen of om op het huidige politieke klimaat in te spelen. Sterker nog, de wortels ervan gaan meer dan 25 jaar terug.
Standaarden
Interoperabiliteit en leveranciersonafhankelijkheid worden bereikt door het vaststellen van en het houden aan standaarden. Om te voorkomen dat individuele leveranciers standaarden pushen die potentiële concurrenten expliciet of impliciet uitsluiten of anderszins onredelijke voordelen bieden, worden organisaties voor standaardisatie (Standards-Developing Organizations, SDO's) opgericht voor wederzijdse samenwerking. Deze hebben meestal waarborgen die voorkomen dat één enkel bedrijf te machtig wordt. Bekende voorbeelden van dergelijke organisaties zijn de ISO, de IETF, het W3C en het Unicode Consortium.
Er is een onderscheid te maken tussen een leverancier die zijn API publiceert en anderen toestaat deze te gebruiken, en belanghebbenden die samenkomen om collectief een standaard te ontwikkelen binnen het kader van een SDO. Organisaties zoals de IETF slagen omdat ze verschillende mensen met verschillende behoeften dwingen tot overeenstemming. Protocollen worden niet gedicteerd door de prioriteiten van één enkel bedrijf; in plaats daarvan worden ze beoordeeld en getest door concurrenten, beveiligingsonderzoekers en onafhankelijke ontwikkelaars.
Element (voorheen bekend als Riot en NewVector) ontwikkelt een instant messaging-product met een set functies — zoals self-hosting en federatie — die vergelijkbaar zijn met die van XMPP-gebaseerde oplossingen. Opvallend is echter dat Element ervoor koos XMPP niet te adopteren, maar in plaats daarvan zijn eigen API publiceerde onder de naam Matrix. In tegenstelling tot traditionele standaarden behoudt Element strikte controle over alle wijzigingen of toevoegingen aan de publieke API. Belangrijke leidinggevende posities binnen de Matrix Foundation worden voornamelijk bekleed door huidige en voormalige Element-medewerkers. Het is berucht moeilijk om bijdragen van buitenaf geaccepteerd te krijgen in de specificatie [6]. Toch trappen Europese overheidsinstanties in hun streven naar digitale soevereiniteit regelmatig in de val door dergelijke single-vendor platforms in te kopen, waarbij ze een open-source codebase verwarren met een open standaard.
Het is natuurlijk dat voorstellen voor standaarden ontstaan binnen één organisatie. JMAP, een moderne vervanging voor IMAP en SMTP Submission (wat niet heel anders is dan Matrix — een JSON API over HTTP), begon bij Fastmail voordat het naar de IETF werd gebracht. Jabber begon als een open-source community-project voordat het naar de IETF werd gebracht en werd omgedoopt tot XMPP. Ideeën beginnen klein, maar om een standaard te creëren zijn externe feedback, samenwerking en de structuur van een SDO nodig.
Voor consumenten is het verschil tussen de benaderingen van Fastmail en Element frappant. Niet alleen is JMAP merkbaar verbeterd op protocolniveau tijdens het proces in de IETF-werkgroep, maar er zijn nu minstens drie onafhankelijke servers en talloze onafhankelijke client-applicaties. Matrix daarentegen — ondanks dat het uit hetzelfde tijdperk rond 2014 stamt — zit nog steeds vast aan één dominante referentie-implementatie, terwijl een tweede alternatief nog in de kinderschoenen staat en worstelt om tractie te krijgen. Het exploiteren van die referentie-implementatie is berucht resource-intensief, wat self-hosting moeilijk maakt voor kleinere organisaties en individuen. Element verkoopt closed-source plugins om de prestaties te versnellen.
De X in XMPP
De oorsprong van XMPP — dat begon als Jabber — gaat meer dan een kwart eeuw terug. De oorspronkelijke RFC7 dateert uit oktober 2004 en is in maart 2011 slechts minimaal herzien [4]. De eisen voor instant messaging zullen in zo'n tijdsbestek natuurlijk veranderen. Gelukkig staat de X in XMPP voor Extensible, en extensies bieden een manier voor het protocol om zich in de loop der tijd aan te passen en te veranderen. Extensies voor XMPP worden XMPP Extension Protocols (XEP's) genoemd en worden beheerd door de XMPP Standards Foundation (XSF). De XSF schrijft zelf geen extensies; in plaats daarvan biedt het het kader van een SDO zodat ontwikkelaars hun eigen voorstellen kunnen indienen en standaardiseren.
Het aanpassen aan veranderende eisen is niet altijd soepel verlopen. XEP-0198 (Stream Management), een extensie die cruciaal is om berichtverlies bij mobiele implementaties te voorkomen, werd gestabiliseerd in 2009, maar kreeg pas rond 2014–2015 brede implementatie. De iPhone kwam uit in 2007; de HTC Dream, de eerste commerciële Android-telefoon, volgde in 2008. OMEMO (XEP-0384), de specificatie van XMPP voor end-to-end versleuteling volgens industriestandaard, won vanaf 2016 aan terrein, drie jaar nadat Edward Snowden [8] de wereldwijde surveillance van de NSA onthulde en de noodzaak voor E2EE op de kaart zette. De artikelen "The (Sad) State of Mobile XMPP in 2014" door Georg Lukas [9] en "The State of Mobile XMPP in 2016" door deze auteur [10] illustreren deze moeizame transitie naar het mobiele tijdperk.
Dit bewijst dat het enkel hebben van specificaties niet genoeg is. Standaarden moeten worden ondersteund door meerdere, bij voorkeur onafhankelijke, implementaties. Tegenwoordig houdt de XSF de implementatiestatus van zijn XEP's bij [11]. Deze gegevens helpen auteurs en de XSF om voorstellen door hun levenscyclus te leiden, zoals het bepalen van het juiste moment om een XEP van 'Experimenteel' naar 'Stabiel' te verplaatsen. Het stelt ontwikkelaars ook in staat om gemakkelijk andere clients en servers te identificeren die een bepaalde specificatie ondersteunen voor interoperabiliteitstests. Ten slotte helpt het eindgebruikers om de juiste client voor hun behoeften te vinden door een omgekeerde zoekopdracht te bieden van welke software welke functies ondersteunt.
Moderne clients zoals Dino op Linux of Conversations op Android zijn gelijkwaardig aan alternatieven die zijn gebouwd op propriëtaire protocollen. Recente toevoegingen aan de functies zijn emoji-reacties, synchronisatie van leesstatus over verschillende apparaten en tijdzone-indicatoren om te voorkomen dat contactpersonen tijdens hun lokale nachturen worden bericht. Een unieke functie onder de self-hostbare instant messaging-oplossingen — die helaas relevant werd na een door een staat gesponsorde aanval op een publieke XMPP-provider [12] — is channel binding, een mechanisme om bepaalde machine-in-the-middle-aanvallen te voorkomen.
Kijkend naar de nabije toekomst werkt de XMPP-community momenteel aan antwoorden op berichten (message replies), het delen van meerdere afbeeldingen in galerijstijl en OAuth-ondersteuning. Al deze functies hebben al experimentele XEP's, maar de community wacht momenteel op implementatie-ervaring voordat ze verder worden bevorderd. Ondertussen onderzoekt de community ook opties voor het bijwerken van de RFC en het terugbrengen van het protocol naar de IETF als "XMPP 2.0".
Instant messaging is geen homogene gebruikerservaring. Een messenger voor teams kan een andere set functies vereisen dan iets dat is geoptimaliseerd voor gebruik met vrienden en familie. Niet elke XMPP-client streeft naar dezelfde gebruikerservaring, maar de standaarden zijn er zodat ontwikkelaars whatever gespecialiseerde client hun gebruikers nodig hebben kunnen bouwen, zonder een protocol vanaf nul te hoeven uitvinden.
Een toekomst in het verleden
Er is iets fascinerend aan het feit dat XMPP ontwikkelaars in zijn community heeft die jonger zijn dan het protocol zelf. Het heeft in stilte venture-funded startups, propriëtaire platforms en volledige tech-cycli overleefd. Dat uithoudingsvermogen biedt de veerkracht die we in uitdagende tijden nodig hebben. Het is het anker, de ruggengraat, de infrastructuur.
Matrix heeft het wiel opnieuw uitgevonden als een metro met rubberbanden. Op papier biedt het echte voordelen, zoals het beklimmen van steilere hellingen, wat vervolgens wordt gebruikt om agressief te adverteren en lokale overheden te lobbyen om in te stappen. Maar uiteindelijk raakt de gemeente vastgeketend aan één enkele leverancier.
Een veranderende geopolitieke situatie enHet besef dat Big Tech te veel macht heeft, leiden ertoe dat we zoeken naar en alternatieven ontwikkelen. Maar wat als het alternatief al meer dan 25 jaar vlak onder onze neus ligt? De standaard voor instant messaging — RFC 6120: Extensible Messaging and Presence Protocol (XMPP).
***
Bronnen en voetnoten:
- https://en.wikipedia.org/wiki/HousinginVienna
- https://localmess.github.io/
- https://mastodon.world/@Mer__edith/112535616774247450
- https://www.rfc-editor.org/rfc/rfc6120.html
- https://www.rfc-editor.org/rfc/rfc6121.html
- https://github.com/matrix-org/matrix-spec-proposals/pull/4174
- https://www.rfc-editor.org/rfc/rfc3920.html
- https://en.wikipedia.org/wiki/Snowden_disclosures
- https://op-co.de/blog/posts/mobilexmppin_2014/
- https://gultsch.de/posts/the-state-of-mobile-xmpp-in-2016/
- https://xmpp.org/extensions/
- https://notes.valdikss.org.ru/jabber.ru-mitm/