<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>salix.host</title><link>https://salix.host/nl/projects/</link><description>Recent blog posts on salix.host</description><generator>Hugo</generator><language>nl</language><lastBuildDate>Fri, 17 Jul 2026 00:00:00 +0200</lastBuildDate><atom:link href="https://salix.host/nl/projects/index.xml" rel="self" type="application/rss+xml"/><item><title>Bots buiten de deur houden zonder Google binnen te laten</title><link>https://salix.host/nl/posts/privacy-friendly-captcha/</link><pubDate>Fri, 17 Jul 2026 00:00:00 +0200</pubDate><guid>https://salix.host/nl/posts/privacy-friendly-captcha/</guid><description>&lt;p>Als je hebt geprobeerd je te registreren op salix.host, is het rijspelletje je vast opgevallen. Je moet achttien seconden verkeer overleven voordat je een registratietoken krijgt. Het is een beetje mal, maar er is een reden dat het bestaat.&lt;/p>
&lt;p>Een open Matrix-server draaien betekent dat ik een manier nodig heb om automatische registraties buiten te houden. Als registratie helemaal open is, vinden bots die vroeg of laat. Ze kunnen de accounts gebruiken voor spam, oplichting of dingen die ik echt niet op mijn server gehost wil hebben. Registratie sluiten zou dat oplossen, maar dan kunnen normale mensen er ook niet meer bij, en dat mist het hele punt van een publieke server.&lt;/p>
&lt;p>Het gebruikelijke antwoord is een CAPTCHA toevoegen. Meestal betekent dat een blokje van Google, Cloudflare of een ander groot bedrijf op de pagina zetten. Het werkt, maar het betekent ook dat iedereen die een account wil eerst met dat bedrijf moet praten. Hun browser stuurt een extra request, hun IP-adres gaat ergens anders heen, en soms mogen ze vijf minuten verkeerslichten aanwijzen omdat een onzichtbare score ze niet mocht.&lt;/p>
&lt;p>Dat voelde nogal krom voor een privacygerichte Matrix-server. &amp;ldquo;Wij geven om je privacy, meld je eerst even bij Google voordat je binnenkomt&amp;rdquo; is geen heel overtuigend welkomstbericht.&lt;/p>
&lt;p>Dus maakte ik er zelf een.&lt;/p>
&lt;h2 id="de-eerste-versie">De eerste versie&lt;/h2>
&lt;p>Het registratiesysteem gebruikte al proof of work. De server geeft je browser een kleine SHA-256-puzzel, en de browser probeert getallen tot hij het juiste vindt. Op een normaal apparaat duurt dat een paar seconden, maar het duizenden keren doen wordt duur voor een spammer.&lt;/p>
&lt;p>Proof of work is nuttig, maar op zichzelf niet genoeg. Een echte bezoeker wacht één keer een paar seconden. Een bot kan de hele dag puzzels oplossen, zeker als de accounts iets waard zijn. Het verhoogt de kosten, en dat is mooi, maar het maakt niet echt onderscheid tussen mensen en scripts.&lt;/p>
&lt;p>Ik wilde een tweede check die wat interactie vroeg, zonder persoonlijke informatie te verzamelen. Om de een of andere reden was mijn antwoord daarop een vijfbaansweg vol slecht bestuurde pixelauto&amp;rsquo;s en vrachtwagens.&lt;/p>
&lt;p>Het idee is geïnspireerd op &lt;a href="https://store.steampowered.com/app/4310270/CAPTCHA_Hell/">CAPTCHA Hell&lt;/a>, een aankomende game over iemand die zich door een stapel steeds belachelijkere CAPTCHA&amp;rsquo;s moet werken. Ik zag daar de rij-captcha en vond hem grappig. Toen begon ik me af te vragen of zoiets ook als echte CAPTCHA kon werken. De eer voor het rare idee ligt dus daar. Ik heb er alleen mijn eigen versie van gemaakt en het waarschijnlijk veel te serieus genomen.&lt;/p>
&lt;p>Je bestuurt een autootje met een schuifje. Andere voertuigen komen de weg af, sommige wisselen van rijstrook, en jij moet ze achttien seconden lang ontwijken. De auto heeft een beetje traagheid, dus je kunt niet in één klap van de ene kant naar de andere springen. Crash je, dan mag je dezelfde weg opnieuw proberen.&lt;/p>
&lt;p>Het is geen wetenschappelijke test op mens-zijn. Het is gewoon een taak die net vervelend genoeg is dat simpele registratiescripts niet op een knop kunnen drukken en onbeperkt accounts krijgen.&lt;/p>
&lt;h2 id="de-browser-wordt-niet-vertrouwd">De browser wordt niet vertrouwd&lt;/h2>
&lt;p>Het voor de hand liggende probleem met een zelfgemaakte CAPTCHA is dat alle browsercode zichtbaar is. Iedereen kan de developer tools openen, de JavaScript lezen en hem aanpassen. Als de pagina simpelweg &lt;code>ik heb gewonnen&lt;/code> naar de server zou sturen, zou een bot ook &lt;code>ik heb gewonnen&lt;/code> sturen, waarschijnlijk een stuk sneller dan ik.&lt;/p>
&lt;p>De server vertrouwt daarom niet op het resultaat dat de browser meldt. Tijdens het spel registreert de browser op elke game-tick de positie van het stuurschuifje. Die lijst met stuurinvoer is wat aan het einde wordt opgestuurd.&lt;/p>
&lt;p>De server draait vervolgens dezelfde bewegingsfysica nog een keer. Hij zet de auto in het midden, past elke stuurinvoer toe en vergelijkt de berekende positie met het verkeer op dat moment. Raakt de replay een voertuig, dan wordt de poging afgekeurd. De browser mag nooit zelf beslissen waar de auto echt was.&lt;/p>
&lt;p>Er was nog een probleem. Als ik alle verkeersdata als nette gestructureerde JSON zou versturen, kon een script elke voertuigpositie lezen en een perfecte route uitrekenen. In plaats daarvan maakt de server het verkeer aan en rendert het naar een PNG-afbeelding. De browser krijgt de pixels die nodig zijn om de weg te tonen, maar geen handige lijst met &amp;ldquo;vrachtwagen op rijstrook drie op tick 120&amp;rdquo;.&lt;/p>
&lt;p>Natuurlijk kun je pixels alsnog analyseren. Ik beweer niet dat ik hier een onkraakbare botdetector heb uitgevonden. Maar een geanimeerde pixelweg analyseren en daar geldige stuurinvoer uit produceren is flink meer werk dan een API aanroepen met de juiste JSON-velden. Voor een kleine hobbyserver maakt dat verschil uit.&lt;/p>
&lt;h2 id="zorgen-dat-het-spel-eerlijk-is">Zorgen dat het spel eerlijk is&lt;/h2>
&lt;p>Willekeurig verkeer klinkt leuk, tot het spel een muur van vrachtwagens over alle rijstroken genereert.&lt;/p>
&lt;p>Voordat de server een challenge verstuurt, controleert hij of de weg echt te halen is met dezelfde snelheidslimieten als de auto van de speler. Hij werkt achterstevoren door het spel en kijkt welke posities nog een ontsnappingsroute hebben. Hij keurt ook wegen af waar stil in het midden blijven zitten genoeg zou zijn, want dan zou het een nogal nutteloze rijtest zijn.&lt;/p>
&lt;p>Dit deel kostte meer werk dan ik had verwacht. Willekeurige auto&amp;rsquo;s genereren is makkelijk. Willekeurige auto&amp;rsquo;s genereren die onvoorspelbaar ogen, sturen vereisen en een normale speler nooit in een onmogelijke val zetten is minder makkelijk.&lt;/p>
&lt;p>Auto&amp;rsquo;s die van rijstrook wisselen knipperen zelfs voordat ze gaan. Dat is deels om eerlijk te zijn, en deels omdat ik me blijkbaar tegenwoordig druk maak om de verkeersmanieren van CAPTCHA-verkeer.&lt;/p>
&lt;h2 id="meerdere-kleine-sloten-in-plaats-van-één-groot-slot">Meerdere kleine sloten in plaats van één groot slot&lt;/h2>
&lt;p>Het rijspelletje is maar één laag. Terwijl je rijdt, lost de browser op de achtergrond de proof-of-work-puzzel op. De challenge is ondertekend door de server, gekoppeld aan de rate-limit-bucket van het IP-adres van de bezoeker, verloopt na vijftien minuten en kan maar één keer worden gebruikt. In minder dan achttien seconden finishen wordt ook afgekeurd, om vrij voor de hand liggende redenen.&lt;/p>
&lt;p>Er zitten limieten op hoeveel challenges en tokens één adres kan aanvragen, plus een globale limiet voor het geval iemand met een grote hoeveelheid adressen aan komt zetten. IPv6 vraagt hier wat zorg, want één apparaat kan enorm veel adressen hebben, dus ik tel ze per netwerk in plaats van te doen alsof elk adres een andere bezoeker is.&lt;/p>
&lt;p>Als alles slaagt, is het registratietoken tien minuten geldig en goed voor één account. Dat is genoeg tijd voor een persoon om het in Element te plakken, maar niet erg nuttig voor iemand die tokens verzamelt voor later.&lt;/p>
&lt;p>Geen van deze beschermingen is in z&amp;rsquo;n eentje perfect. Samen maken ze misbruik onhandig genoeg zonder registratie vreselijk te maken voor normale mensen. Dat is in elk geval de balans die ik probeer te vinden.&lt;/p>
&lt;h2 id="het-gevaarlijke-geheim-ergens-anders-bewaren">Het gevaarlijke geheim ergens anders bewaren&lt;/h2>
&lt;p>De publieke dispenser heeft toestemming nodig om registratietokens uit te delen, maar ik wilde niet dat het publieke proces het administratortoken van Synapse in handen had. Zit er een bug in de dispenser, dan geeft dat geheim een aanvaller veel meer macht dan die ooit zou mogen krijgen.&lt;/p>
&lt;p>Het aanmaken van tokens is daarom opgesplitst in een tweede, heel kleine dienst. Het publieke proces controleert de puzzel, de rijpoging en de rate limits. Pas als dat allemaal klopt, vraagt het de tweede dienst om via een lokale Unix-socket één token te munten.&lt;/p>
&lt;p>Die tweede dienst begrijpt precies één commando: &lt;code>mint&lt;/code>. Hij heeft zijn eigen globale rate limit en geeft een kortlevend token terug dat één keer te gebruiken is. Hij luistert niet op een publieke netwerkpoort. Het publieke proces kan met hem praten, maar kan het administratortoken dat hij vasthoudt niet lezen.&lt;/p>
&lt;p>Processcheiding is niet spannend op een screenshot, maar het is misschien wel het onderdeel waar ik het meest om geef. Een publieke webdienst heeft altijd een aanvalsoppervlak. Hoe minder geheimen je hem geeft, hoe minder rampzalig een fout is.&lt;/p>
&lt;h2 id="wat-het-niet-oplost">Wat het niet oplost&lt;/h2>
&lt;p>Ik weet dat een rijspelletje toegankelijkheidsproblemen heeft. Het vraagt zicht en redelijk precieze invoer, en voor sommige mensen kan het lastig of onmogelijk zijn. Dat is de grootste zwakte van dit ontwerp. Op dit moment is contact met mij opnemen voor een account de terugvaloptie, maar dat is niet zo goed als een toegankelijke optie die in de pagina zelf zit. Hier moet ik nog een beter antwoord op vinden.&lt;/p>
&lt;p>Het houdt ook geen vastberaden aanvaller voor altijd tegen. Iemand kan er computer vision voor bouwen, een browser automatiseren of gewoon mensen betalen om challenges op te lossen. CAPTCHA&amp;rsquo;s zijn een wapenwedloop en een kleine zelfgebouwde ontsnapt daar niet magisch aan.&lt;/p>
&lt;p>Wat het wél tegenhoudt is goedkope, generieke automatisering. Er is geen standaard CAPTCHA-oplosdienst die al klaarstaat voor precies deze rare weg. Er zijn geen cookies, geen fingerprinting en geen script van een derde partij dat leert wie de registratiepagina bezocht. De tijdelijke IP-limieten leven op mijn server, waar de registratie toch al plaatsvindt.&lt;/p>
&lt;p>Dat is goed genoeg voor mijn huidige dreigingsmodel. salix.host is een kleine homeserver, geen bank en niet het volgende gigantische sociale netwerk. Ik hoef niet elke bot op aarde te verslaan. Ik moet massaregistratie meer gedoe maken dan deze server waard is om te misbruiken.&lt;/p>
&lt;p>En als mensen er een klein pixelracespelletje aan overhouden, is dat eerlijk gezegd leuker dan negen wazige fietsen aanklikken.&lt;/p></description></item><item><title>Private messengers vergeleken</title><link>https://salix.host/nl/posts/private-messengers-compared/</link><pubDate>Wed, 08 Jul 2026 00:00:00 +0200</pubDate><guid>https://salix.host/nl/posts/private-messengers-compared/</guid><description>&lt;p>Mensen vragen me soms waarom ik moeite doe met Matrix terwijl Signal bestaat. Terechte vraag. Er zijn een hoop &amp;ldquo;private&amp;rdquo; messengers en eerlijk gezegd proberen ze allemaal net iets andere problemen op te lossen. Dus hier is mijn kijk op de messengers waar ik echt een mening over heb.&lt;/p>
&lt;p>Kleine disclaimer vooraf: ik draai een Matrix-server, dus natuurlijk ben ik bevooroordeeld. Ik zal toch proberen eerlijk te zijn.&lt;/p>
&lt;h2 id="signal">Signal&lt;/h2>
&lt;p>Signal is het standaardantwoord, en met goede reden. De encryptie is zo&amp;rsquo;n beetje de gouden standaard, de apps zijn gepolijst, en het is makkelijk genoeg om je ouders erop te krijgen. Als iemand me vraagt &amp;ldquo;wat moet ik gebruiken in plaats van WhatsApp&amp;rdquo; en geen zin heeft in een college, dan zeg ik Signal.&lt;/p>
&lt;p>Maar er zijn twee problemen die me dwarszitten. Ten eerste: het wil je telefoonnummer. Ze hebben een tijdje terug gebruikersnamen toegevoegd, dus je kunt je nummer verbergen voor anderen, maar Signal zelf weet nog steeds wie je bent. Ten tweede is het één gecentraliseerde dienst, gerund door één stichting in één land. Als Signal uitvalt, of geblokkeerd wordt, of een beslissing neemt die je niet bevalt, is er geen plan B. Je kunt je account nergens anders mee naartoe nemen. Dat is precies waar ik in mijn eerste post over schreef.&lt;/p>
&lt;p>En dit is niet meer theoretisch. Signal vecht al jaren tegen wetten in het VK, en dreigde onlangs nog zich terug te trekken uit Canada vanwege een wetsvoorstel daar. Ze zeiden ook dat ze zoiets als 50 miljoen dollar per jaar nodig hebben om te blijven draaien. Ik vertrouw erop dat ze het goede gevecht voeren, maar het punt blijft staan: als alles afhangt van één organisatie, worden hun problemen jouw problemen.&lt;/p>
&lt;h2 id="matrix">Matrix&lt;/h2>
&lt;p>Je zag dit aankomen. Matrix is geen app, het is een netwerk. Niemand is er eigenaar van, iedereen kan een server draaien (hoi), en servers praten met elkaar zoals e-mail dat doet. End-to-end-encryptie staat standaard aan in privéchats.&lt;/p>
&lt;p>Het is trouwens een goed jaar geweest voor Matrix. Matrix 2.0 en de nieuwe Element X-client hebben veel van de oude traagheid opgelost, overheden in Europa blijven het adopteren voor hun interne communicatie (Frankrijk en Duitsland draaien enorme deployments), en toen Discord in februari hun leeftijdsverificatie aankondigde, kwam er een mooie golf mensen op zoek naar alternatieven die Matrix vonden. En dat is logisch, want voor communities, publieke rooms, spaces, dat hele Discord-achtige gebruik, is Matrix op dit moment simpelweg de beste optie op deze lijst. Niets anders hier doet zelfs maar een serieuze poging: Signal-groepen zijn alleen privé, en je leest straks wat ik vind van grote groepen op SimpleX.&lt;/p>
&lt;p>De eerlijke nadelen: de ervaring hangt sterk af van welke client en server je gebruikt, encryptie in enorme publieke rooms kan nog wat houterig zijn, en metadata (wie met wie praat, roomnamen, dat soort dingen) is voor servers zichtbaarder dan bij Signal. Bovendien is de Matrix Foundation zelf chronisch ondergefinancierd, ze zeggen dat break-even draaien het doel is voor dit jaar. Het protocol verdwijnt niet als zij het moeilijk hebben, het is open en de code ligt overal, maar het is een herinnering dat open infrastructuur op te weinig geld draait.&lt;/p>
&lt;p>En nu ik toch eerlijk ben: er is één ding dat me als serverbeheerder dwarszit, namelijk hoeveel van Matrix in feite één bedrijf is, Element. Zij hebben de meeste kernontwikkelaars in dienst, zij maken de belangrijkste clients, en zij maken Synapse, de serverimplementatie die bijna iedereen draait (ik ook). In 2023 hebben ze Synapse geherlicenseerd van Apache naar AGPL, met een contributor agreement waardoor alleen Element commerciële licenties mag verkopen bovenop ieders bijdragen. AGPL is een prima licentie, maar de stap maakte duidelijk wie er aan het stuur zit. Het is op papier een open netwerk, en dat is het ook echt, ik kan elk moment weg met het protocol intact. Maar in de praktijk hangt de gezondheid van het ecosysteem sterk af van het overleven van de business van één bedrijf, en ik zou rustiger slapen als de serverkant diverser was.&lt;/p>
&lt;p>Hoe dan ook, Matrix ruilt nog steeds wat gelikte afwerking in voor iets dat volgens mij op de lange termijn meer telt: je huurt je identiteit niet van één bedrijf. In het ergste geval gaat je server dood, maak je ergens anders een account aan en ga je verder.&lt;/p>
&lt;p>Dus: Signal is een beter product, Matrix is een beter netwerk. Kies waar je voor wilt optimaliseren.&lt;/p>
&lt;h2 id="threema">Threema&lt;/h2>
&lt;p>Threema is interessant omdat het de &amp;ldquo;eenmalig betalen, geen telefoonnummer&amp;rdquo;-optie is. Het is Zwitsers, het bestaat al eeuwen, en je krijgt een willekeurige ID in plaats van dat je je nummer afgeeft. De apps zijn prima en het bedrijf had een redelijke reputatie.&lt;/p>
&lt;p>Had, verleden tijd, want ik moet hier eerlijk zijn: de oorspronkelijke oprichters verlieten het bedrijf al in 2024, en afgelopen januari kondigde een Duitse private-equityfirma aan Threema over te nemen. Misschien verandert er niets. Maar &amp;ldquo;privacybedrijf wordt opgekocht door private equity&amp;rdquo; is geen zin die meestal goed afloopt, en het is precies het risico van je messenger toevertrouwen aan één bedrijf. Ik zou voorzichtig zijn met het aanraden op dit moment.&lt;/p>
&lt;p>Het andere addertje is dat het een paar euro kost, wat niets lijkt maar in de praktijk een echte drempel is als je een groepschat probeert te verhuizen. &amp;ldquo;Installeer even deze app&amp;rdquo; verliest al de helft van de mensen, &amp;ldquo;installeer even deze app en betaal ervoor&amp;rdquo; verliest de rest. En het is nog steeds gecentraliseerd, hetzelfde verhaal als Signal, alleen met een andere vlag erop.&lt;/p>
&lt;h2 id="session">Session&lt;/h2>
&lt;p>Session nam het idee van het Signal-protocol en haalde het telefoonnummer en de centrale server weg. Je berichten worden gerouteerd via een gedecentraliseerd netwerk van nodes, dus in theorie kan niemand zien wie met wie praat. Er is helemaal geen identifier nodig, je krijgt gewoon een sleutel.&lt;/p>
&lt;p>Ik wil Session graag leuker vinden dan ik doe. Het anonimiteitsverhaal is echt sterk. Maar ze hebben de encryptie aangepast op manieren waar cryptografen niet blij mee waren (ze lieten forward secrecy vallen, wat betekent dat één gelekte sleutel je oude berichten kan blootleggen), en het hele ding hangt vast aan een cryptotoken-ecosysteem, wat me altijd een beetje nerveus maakt.&lt;/p>
&lt;p>Het project heeft het de laatste tijd ook zwaar gehad. Het begon in Australië, en nadat de Australische politie letterlijk bij een medewerker thuis op de stoep stond, verhuisde de stichting in 2024 naar Zwitserland. Eerder dit jaar kondigden ze vervolgens aan dat ze 90 dagen verwijderd waren van een volledige shutdown omdat het geld op was. Donaties redden het op het laatste moment (een flink deel kwam van Vitalik Buterin, van alle mensen), maar het draait nu op een skeletbezetting. Grappig genoeg was de dag dat deze post online gaat de geplande shutdown-datum. Ik ben blij dat het overleefd heeft, maar het laat het risico zien van deze kleinere, min of meer gecentraliseerde projecten: je messenger kan gewoon&amp;hellip; ophouden. Tussen de verzwakte encryptie, het tokengedoe en het fundingdrama kan ik Session eerlijk gezegd niet meer aanraden. Als je dat niveau van anonimiteit nodig hebt, kijk dan naar SimpleX.&lt;/p>
&lt;h2 id="briar">Briar&lt;/h2>
&lt;p>Briar is de extreme, en ik heb er veel respect voor. Helemaal geen servers. Berichten gaan peer-to-peer over Tor, en als het internet plat ligt kan het letterlijk syncen via Bluetooth of wifi tussen telefoons die bij elkaar in de buurt zijn. Dit is de messenger die je wilt tijdens een protest of een internetblackout.&lt;/p>
&lt;p>De prijs van dat ontwerp is gemak. Beide mensen moeten in principe online zijn om berichten door te laten komen, er is geen echt multi-device-verhaal, het batterijverbruik is fors, en iOS-ondersteuning is er nog steeds niet (het team zegt dat iOS te dichtgetimmerd is voor de achtergrondprocessen die P2P nodig heeft, wat eerlijk gezegd meer zegt over Apple dan over Briar). Het wordt ontwikkeld door een kleine non-profit op subsidiegeld, en krijgt in 2026 nog steeds gestage updates, alleen langzaam. Briar probeert WhatsApp niet te vervangen, het is een gereedschap voor situaties waarin al het andere faalt. Goed om geïnstalleerd te hebben, niet iets voor dagelijks gebruik.&lt;/p>
&lt;p>Wat ik stiekem zou willen dat bestond, is iets tussen Briar en Matrix in: een gefedereerd protocol met echte servers, maar waar de servers met elkaar praten over Tor of i2p. Je houdt het gemak van servers (offline bezorging, multi-device, je telefoon die niet de hele dag een Tor-node draait), maar de netwerklaag lekt niet wie met wie federeert. En als de hele stack over Tor liep, clients incluis, zouden veel van de metadataproblemen waar ik in het Matrix-stuk over klaagde geen groot probleem meer zijn: de server ziet nog steeds welke accounts met elkaar praten, maar kan het niet meer koppelen aan een IP-adres of een echte identiteit, omdat je via Tor verbindt en anoniem blijft. Hetzelfde tussen servers, dus federatie zou ook niets prijsgeven. Als bonus zou zo&amp;rsquo;n netwerk heel moeilijk te blokkeren zijn: geen vaste IP&amp;rsquo;s of domeinen om op een zwarte lijst te zetten, alleen onion services. Denk aan wat er met WhatsApp in Rusland gebeurde, dat soort landelijke blokkades werkt dan in feite niet meer. Matrix over onion services werkt half als je het forceert, maar niets is er van de grond af voor gebouwd. Als iemand zo&amp;rsquo;n project kent, stuur me een bericht, serieus.&lt;/p>
&lt;h2 id="whatsapp">WhatsApp&lt;/h2>
&lt;p>Oké, de olifant. WhatsApp gebruikt daadwerkelijk het Signal-protocol voor encryptie, dus de berichtinhoud zelf is beschermd. Eerlijk is eerlijk, dat zijn miljarden mensen met end-to-end-encryptie die er nooit om hebben gevraagd.&lt;/p>
&lt;p>Het probleem is alles rondom de berichten. WhatsApp is van Meta, en het hele verdienmodel van Meta is dingen over jou weten. Ze kunnen je berichten niet lezen, maar ze weten met wie je praat, wanneer, hoe vaak, vanaf waar, en ze koppelen dat allemaal aan het grootste advertentieprofiel op aarde. Encryptie van inhoud is niet hetzelfde als privacy. WhatsApp is daar het bewijs van.&lt;/p>
&lt;p>En het wordt erger, niet beter. Dit jaar kreeg WhatsApp advertenties, en Meta AI zit nu ingebakken in de app. Alles wat je tegen de AI zegt wordt verwerkt op de servers van Meta, buiten de end-to-end-encryptie om, en hun nieuwe beleid zegt dat die AI-gesprekken meegaan in advertentietargeting, zonder opt-out. Dus de versleutelde messenger komt nu met een ingebouwd onversleuteld kanaal recht naar de advertentiemachine. Ze hebben eindelijk ook gebruikersnamen toegevoegd zodat je je telefoonnummer voor vreemden kunt verbergen, wat fijn is, denk ik. O, en Rusland heeft WhatsApp dit jaar volledig geblokkeerd, wat een goede herinnering is dat gecentraliseerde apps van de ene op de andere dag uit een heel land kunnen verdwijnen.&lt;/p>
&lt;p>Als je familie erop zit en niet wil verhuizen, prima, dan zijn de berichten tussen mensen tenminste nog versleuteld. Praat alleen niet met de AI, en noem het geen private messenger.&lt;/p>
&lt;h2 id="simplex">SimpleX&lt;/h2>
&lt;p>SimpleX is het nieuwste project op deze lijst, en het kernidee is echt anders: er zijn helemaal geen gebruikersidentifiers. Geen telefoonnummer, geen gebruikersnaam, zelfs geen willekeurige sleutel die je chats aan elkaar knoopt. Elk gesprek loopt via een eigen paar eenrichtings-berichtenqueues op relayservers, en de twee richtingen van een chat hoeven niet eens dezelfde server te gebruiken. Vanuit het netwerk gezien bestaat &amp;ldquo;jouw account&amp;rdquo; simpelweg niet, dus er valt niets te correleren. Op papier is het het meest private ontwerp van allemaal.&lt;/p>
&lt;p>De relays zijn het uitleggen waard, want het is een mooie middenweg: SimpleX draait standaardservers, maar dat zijn in feite domme brievenbussen die versleutelde queues vasthouden, en je kunt overstappen naar andermans relays of je eigen relay hosten zonder iets te verliezen, omdat je identiteit sowieso nooit op een server stond. Dat betekent ook dat contactontdekking anders werkt: je verbindt door buiten de app om een link of QR-code te delen, er is geen &amp;ldquo;vind vrienden via nummer&amp;rdquo; en dat komt er ook nooit, wat een feature of een dealbreaker is, afhankelijk van wie je het vraagt.&lt;/p>
&lt;p>Het krijgt ook momentum: Trail of Bits heeft het cryptografische ontwerp beoordeeld, deze zomer staat er nog een security-assessment gepland, en de fundingsituatie ziet er gezonder uit dan bij de meeste (Jack Dorsey investeerde, en Vitalik Buterin doneerde ook aan hen, blijkbaar gaat hij gewoon rond om private messengers te financieren). Een Russische rechtbank legde ze een boete op omdat ze weigerden gebruikersdata te overhandigen, en hun transparantierapport zegt dat ze sowieso niets te overhandigen hadden, wat zo&amp;rsquo;n beetje de beste reclame is die een private messenger kan krijgen.&lt;/p>
&lt;p>De nadelen zijn de keerzijde van het ontwerp. Het is jong, en de UX laat dat zien. Geen identifiers betekent dat overstappen naar een nieuwe telefoon of een apparaat toevoegen gepriegel is vergeleken met de rest. En grotere groepen of communities zijn eerlijk gezegd waar het in elkaar zakt: een &amp;ldquo;groep&amp;rdquo; is eigenlijk gewoon een stapel paarsgewijze verbindingen, elk bericht wordt apart naar elk lid uitgewaaierd, dus alles voorbij een klein vriendengroepje wordt traag en onbetrouwbaar. Als je Matrix-achtige publieke rooms en communities wilt, is SimpleX simpelweg het verkeerde gereedschap.&lt;/p>
&lt;p>Nog iets dat me stoort aan het ontwerp. Standaard wordt het verkeer naar de queue van je gesprekspartner geproxyd via je eigen relayservers. Dat is bedoeld om je IP te verbergen voor onbekende servers, wat eerlijk is, maar het betekent dat jouw relay in beide richtingen meedoet: die weet wanneer je een bericht stuurt en wanneer je berichten ophaalt of ontvangt. Dat is precies het soort timing-metadata dat dit hele ontwerp zou moeten vermijden, alleen nu geconcentreerd bij je eigen relay. Ik had veel liever gezien dat ze een ingebouwde Tor-proxy hadden geleverd (of iets dergelijks), zodat je met elke queue direct en anoniem praat, in plaats van je activiteitspatroon door één server te routeren die alles mag meekijken. Je kunt de app zelf over Tor draaien, maar defaults zijn wat er echt toe doet.&lt;/p>
&lt;p>En de funding is durfkapitaal, iets waar ik een half oog op zou houden; investeerders willen uiteindelijk iets terug. Toch is het van alles op deze lijst het project waar ik het nieuwsgierigst naar ben, en het is waar ik mensen tegenwoordig naartoe wijs als ze om echte anonimiteit vragen, in elk geval voor één-op-één-chats.&lt;/p>
&lt;h2 id="de-korte-versie">De korte versie&lt;/h2>
&lt;p>Als je alles hierboven hebt overgeslagen, hier is de tabel. Scores zijn uit 5, en ja, het is mijn persoonlijke oordeel, geen wetenschap:&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;/th>
 &lt;th>Encryptie&lt;/th>
 &lt;th>Anonimiteit&lt;/th>
 &lt;th>Metadata&lt;/th>
 &lt;th>Geen lock-in&lt;/th>
 &lt;th>Communities&lt;/th>
 &lt;th>Gebruiksgemak&lt;/th>
 &lt;th>Toekomst&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>Signal&lt;/strong>&lt;/td>
 &lt;td>5/5&lt;/td>
 &lt;td>2/5&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>1/5&lt;/td>
 &lt;td>3/5&lt;/td>
 &lt;td>5/5&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Matrix&lt;/strong>&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>3/5&lt;/td>
 &lt;td>2/5&lt;/td>
 &lt;td>5/5&lt;/td>
 &lt;td>5/5&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>5/5&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Threema&lt;/strong>&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>1/5&lt;/td>
 &lt;td>3/5&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>3/5&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Session&lt;/strong>&lt;/td>
 &lt;td>2/5&lt;/td>
 &lt;td>5/5&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>3/5&lt;/td>
 &lt;td>3/5&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>2/5&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Briar&lt;/strong>&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>5/5&lt;/td>
 &lt;td>5/5&lt;/td>
 &lt;td>5/5&lt;/td>
 &lt;td>1/5&lt;/td>
 &lt;td>2/5&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>WhatsApp&lt;/strong>&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>1/5&lt;/td>
 &lt;td>1/5&lt;/td>
 &lt;td>1/5&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>5/5&lt;/td>
 &lt;td>5/5&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>SimpleX&lt;/strong>&lt;/td>
 &lt;td>5/5&lt;/td>
 &lt;td>5/5&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>4/5&lt;/td>
 &lt;td>1/5&lt;/td>
 &lt;td>2/5&lt;/td>
 &lt;td>3/5&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>Een paar hiervan verdienen een voetnoot: de anonimiteit van Signal is een 2 vanwege het telefoonnummer, de encryptie van Session een 2 vanwege de ontbrekende forward secrecy, de encryptie van WhatsApp dekt alleen de berichtinhoud, en de 5/5 voor de toekomst van WhatsApp is geen compliment. De redenen voor al het andere staan hierboven in de tekst.&lt;/p>
&lt;h2 id="dus-wat-moet-je-gebruiken">Dus wat moet je gebruiken?&lt;/h2>
&lt;p>Saai antwoord: het hangt af van je threat model.&lt;/p>
&lt;ul>
&lt;li>Je wilt makkelijk en degelijk: &lt;strong>Signal&lt;/strong>&lt;/li>
&lt;li>Je wilt eigenaar zijn van je identiteit en deel uitmaken van een open netwerk: &lt;strong>Matrix&lt;/strong> (ik ken een leuke server)&lt;/li>
&lt;li>Je wilt communities en publieke rooms, het Discord-achtige spul: ook &lt;strong>Matrix&lt;/strong>, niets anders komt in de buurt&lt;/li>
&lt;li>Je wilt geen enkel telefoonnummer geven en vindt betalen geen probleem: &lt;strong>Threema&lt;/strong>, maar houd in de gaten hoe de overname uitpakt&lt;/li>
&lt;li>Je hebt echte anonimiteit nodig: &lt;strong>SimpleX&lt;/strong> (niet Session, sorry)&lt;/li>
&lt;li>Het internet staat in brand: &lt;strong>Briar&lt;/strong>&lt;/li>
&lt;li>Je familie weigert te verhuizen: WhatsApp, dan maar. Ik ben niet boos, alleen teleurgesteld.&lt;/li>
&lt;/ul>
&lt;p>Het echte punt is dat al deze opties beter zijn dan de standaard van alles via één gigantisch advertentiebedrijf doen. Kies er een, sleep wat vrienden mee, en het netwerkeffect-probleem wordt voor iedereen een beetje kleiner.&lt;/p>
&lt;p>Zoals altijd: als je Matrix wilt proberen, weet je waar je me kunt vinden.&lt;/p></description></item><item><title>Chat Control is nog steeds niet dood (helaas)</title><link>https://salix.host/nl/posts/chat-control-is-still-not-dead-july-2026/</link><pubDate>Tue, 07 Jul 2026 00:00:00 +0000</pubDate><guid>https://salix.host/nl/posts/chat-control-is-still-not-dead-july-2026/</guid><description>&lt;p>Oké, vandaag een ander onderwerp. Als je in de EU woont en ook maar een beetje om privacy geeft, heb je vast weleens van Chat Control gehoord. Het is het EU-voorstel om berichtenapps privéberichten te laten scannen op materiaal van kindermisbruik. Klinkt redelijk als je het zo zegt, en dat is precies het probleem, want wat het in de praktijk betekent is het scannen van &lt;em>ieders&lt;/em> berichten, de hele tijd, zonder enige verdenking. En dat kan niet met end-to-end versleutelde berichten zonder de versleuteling te breken. Er bestaat geen magische versie hiervan waarbij je chats privé blijven maar toch gescand worden. Elke cryptograaf die ernaar keek zei hetzelfde.&lt;/p>
&lt;p>Deze wet is nu al jaren &amp;ldquo;bijna aangenomen&amp;rdquo;, en ik merk dat de meeste mensen met wie ik praat compleet het overzicht kwijt zijn over waar hij staat. Eerlijk gezegd raak ik het zelf soms ook kwijt. Dus hier is de huidige stand van zaken, op het moment dat ik dit schrijf.&lt;/p>
&lt;h2 id="het-goede-nieuws">Het goede nieuws&lt;/h2>
&lt;p>Er was dit voorjaar echt een overwinning. Op 26 maart stemde het Europees Parlement tegen het verlengen van &amp;ldquo;Chat Control 1.0&amp;rdquo;, de tijdelijke regel die aanbieders zoals Meta toestond om &amp;ldquo;vrijwillig&amp;rdquo; ieders berichten te scannen. De stemming was 307 tegen 306.&lt;/p>
&lt;p>Eén stem. Laat dat even bezinken.&lt;/p>
&lt;p>Hoe dan ook, die tijdelijke verordening verliep vervolgens op 3 april. Dus op dit moment is er, voor het eerst in jaren, helemaal geen wettelijke basis voor het massaal scannen van privéberichten in de EU. Dat is gebeurd omdat een heleboel gewone mensen er herrie over maakten. Het werkte.&lt;/p>
&lt;h2 id="het-slechte-nieuws">Het slechte nieuws&lt;/h2>
&lt;p>En dit is het deel dat nu echt urgent is: ze proberen Chat Control 1.0 terug te brengen. Het Parlement stemde om het te laten sterven, het verliep, en nu hebben EU-ambassadeurs erop aangedrongen om het gewoon alsnog te verlengen, en Europarlementariërs worden gevraagd te stemmen over het terugdraaien van hun eigen besluit van maart. Lees dat nog eens. Het Parlement zei nee, hoe krap de marge ook was, en het antwoord daarop is blijkbaar &amp;ldquo;stem opnieuw tot je ja zegt&amp;rdquo;. Dat is de stemming om nu in de gaten te houden, en daarom is de druk juist &lt;em>nu&lt;/em> weer belangrijk en niet op een vaag moment in de toekomst.&lt;/p>
&lt;p>En op de achtergrond wordt er nog steeds onderhandeld over de permanente versie, Chat Control 2.0 (officieel de CSA-verordening), tussen het Parlement, de Raad en de Commissie. Dat gevecht is hetzelfde als altijd. Het standpunt van het Parlement is eigenlijk prima: alleen specifieke verdachten scannen, en alleen met een gerechtelijk bevel. Gewoon normaal politiewerk, eigenlijk. De Raad wil dat iedereen zonder verdenking gescand wordt. Hun nieuwste truc is om het scannen &amp;ldquo;op eigen initiatief&amp;rdquo; van de aanbieders te noemen, zodat op papier niemand &lt;em>gedwongen&lt;/em> wordt om te scannen, knipoog knipoog. Zelfs de juridische dienst van de Raad zelf keek daar in juni naar en zei nee, dit is nog steeds het algemeen scannen van privécommunicatie. En dat is precies het ding waarvan de EU-rechters blijven zeggen dat het niet verenigbaar is met de grondrechten.&lt;/p>
&lt;p>Er zou op 29 juni een laatste onderhandelingsronde over 2.0 plaatsvinden, en die klapte, precies op deze kwestie van scannen zonder verdenking. Dus ook daar nog geen akkoord. De gesprekken gaan nu verder onder het Ierse voorzitterschap, en Ierland is helaas een van de landen die &lt;em>voor&lt;/em> het scannen pleiten.&lt;/p>
&lt;p>Dit is het patroon met Chat Control. Het wordt afgewezen, het komt terug onder een nieuwe naam. Het wordt geblokkeerd, het komt terug onder het volgende voorzitterschap. Het verloopt, en ze proberen het achteraf alsnog te verlengen. De mensen die het doordrukken hoeven maar één keer te winnen. Wij moeten elke keer opnieuw winnen. Die asymmetrie baart me nog de meeste zorgen, meer dan welke specifieke versie van de tekst dan ook.&lt;/p>
&lt;h2 id="waarom-ik-erom-geef">Waarom ik erom geef&lt;/h2>
&lt;p>Nou, ik draai een Matrix-server. Als een scanverplichting zoals deze wordt aangenomen, wat moet ik dan precies doen? De versleuteling voor mijn gebruikers breken, of ermee stoppen? De grote bedrijven kunnen compliance-mensen inhuren en scaninfrastructuur bouwen. Signal heeft tenminste het gewicht om te zeggen &amp;ldquo;dan verlaten we de markt&amp;rdquo; en daar de krantenkoppen mee te halen. Een kleine homeserver zoals de mijne sterft gewoon in stilte, of ik word gedwongen mijn server te verhuizen naar een plek met betere privacywetgeving.&lt;/p>
&lt;p>En zelfs als je zelf niks draait: zodra de infrastructuur bestaat om alles te scannen, is &amp;ldquo;het is alleen voor CSAM&amp;rdquo; gewoon een belofte. Zulke beloftes hebben een geschiedenis. Eerst is het dit, dan is het terrorisme, dan auteursrecht, en dan alles waar de regering van de dag geen zin in heeft. Surveillancebevoegdheden krimpen nooit vanzelf.&lt;/p>
&lt;h2 id="wat-je-echt-kunt-doen">Wat je echt kunt doen&lt;/h2>
&lt;p>De stemming in maart was 307 tegen 306. Zulke marges ontstaan niet zonder dat gewone mensen hun vertegenwoordigers lastigvallen, dus dit is niet zo&amp;rsquo;n situatie van &amp;ldquo;niks wat je doet maakt uit&amp;rdquo;. Concreet:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Neem contact op met je Europarlementariërs.&lt;/strong> De makkelijkste manier is &lt;a href="https://fightchatcontrol.eu">fightchatcontrol.eu&lt;/a>, zij hebben een tool die je vertegenwoordigers vindt en je helpt contact op te nemen, en ze houden ook de actuele status van alles bij. Kost vijf minuten. Een kort persoonlijk bericht is beter dan een copy-paste, maar een copy-paste is een stuk beter dan niks.&lt;/li>
&lt;li>&lt;strong>Als jouw regering aan de pro-scanning-kant staat&lt;/strong> (Denemarken, Ierland, Spanje, Frankrijk, Italië en nog een stel andere), schrijf hen dan ook aan. De ergste versies hiervan blijven uit de Raad komen, en de Raad is gewoon een verzameling nationale regeringen, en die geven om nationale kiezers.&lt;/li>
&lt;li>&lt;strong>Volg de mensen die dit echt bijhouden.&lt;/strong> &lt;a href="https://www.patrick-breyer.de/en/posts/chat-control/">Patrick Breyer&lt;/a> documenteert al jaren elke wending van deze saga, en &lt;a href="https://edri.org">EDRi&lt;/a> doet veel van het echte beleidswerk.&lt;/li>
&lt;li>&lt;strong>Gebruik versleutelde messengers, en krijg anderen er ook op.&lt;/strong> Niet omdat het de wet repareert, maar omdat hoe normaler versleuteling is, hoe moeilijker het politiek wordt om het te verbieden. Ik ben toevallig bezig met een hele post waarin ik de opties vergelijk, die komt morgen online.&lt;/li>
&lt;/ul>
&lt;p>Ik weet dat &amp;ldquo;schrijf je politicus aan&amp;rdquo; klinkt als het nutteloosste advies ter wereld. Maar dit specifieke gevecht is nu al meerdere keren gewonnen door precies dat. Eén stem in maart. Dat waren mensen die herrie maakten.&lt;/p>
&lt;p>Ze gaan het opnieuw proberen, dat doen ze altijd. Dus blijf luid.&lt;/p>
&lt;p>En zoals altijd: als je hierover wilt praten, weet je me te vinden.&lt;/p></description></item><item><title>Waarom ik met salix.host begin</title><link>https://salix.host/nl/posts/why-im-starting-salix-host/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><guid>https://salix.host/nl/posts/why-im-starting-salix-host/</guid><description>&lt;p>Zo, eerste post. Het leek me goed om even uit te leggen wat dit hele ding is en waarom ik de moeite heb genomen om het op te zetten.&lt;/p>
&lt;p>salix.host is een Matrix-homeserver. Als je Matrix niet kent, de korte versie: het is een chatnetwerk dat van niemand is, een beetje zoals e-mail maar dan voor berichten. Je kiest een server, maakt daar een account aan, en je kunt praten met iedereen op elke andere server. Geen enkel bedrijf in het midden dat de regels bepaalt of je berichten meeleest.&lt;/p>
&lt;h2 id="maar-waarom">Maar waarom?&lt;/h2>
&lt;p>Eerlijk gezegd was ik het zat. Zat dat elke berichtenapp in handen is van een of ander bedrijf dat je gesprekken als product behandelt. Je bent op die platforms niet echt eigenaar van je account, je leent hem alleen totdat zij anders beslissen. Eén beleidswijziging, één ban zonder uitleg, en jaren aan contacten en geschiedenis zijn weg.&lt;/p>
&lt;p>Het standaardantwoord is &amp;ldquo;draai gewoon je eigen server&amp;rdquo;. En ja, dat werkt, ik doe het zelf ook. Maar laten we eerlijk zijn, de meeste mensen gaan echt geen VPS huren en een Synapse-installatie onderhouden alleen maar om met hun vrienden te chatten. Dat is nogal wat gevraagd.&lt;/p>
&lt;p>Dat is het gat dat salix.host probeert te vullen. Een simpele, generieke toegangspoort tot het Matrix-netwerk. Je krijgt hier een account, en je bent binnen. Je hoeft zelf niets te draaien, je hoeft niet te snappen hoe federatie onder de motorkap werkt. Het werkt gewoon, en je privacy krijg je erbij.&lt;/p>
&lt;h2 id="wat-deze-server-is-en-niet-is">Wat deze server is (en niet is)&lt;/h2>
&lt;ul>
&lt;li>Hij is klein, en dat vind ik prima zo. Ik probeer niet het volgende grote platform te bouwen.&lt;/li>
&lt;li>Hij wordt gerund door één persoon (ik) die er echt om geeft dat hij online blijft en netjes blijft.&lt;/li>
&lt;li>Het is geen bedrijf. Er is geen groeidoel, geen advertenties, geen dataverkoop. Er is sowieso geen data om te verkopen, het meeste dat hier doorheen gaat is end-to-end versleuteld.&lt;/li>
&lt;/ul>
&lt;p>Ik ga niet doen alsof het perfect is. Een server met één beheerder betekent dat als er om 3 uur &amp;rsquo;s nachts iets kapotgaat, het kapot blijft tot ik wakker word. Maar ik denk dat er waarde zit in kleine servers die door echte mensen worden gerund, in plaats van dat iedereen op dezelfde twee of drie gigantische servers duikt. Federatie werkt alleen als het netwerk ook echt verspreid is.&lt;/p>
&lt;h2 id="wat-komt-er-nog">Wat komt er nog&lt;/h2>
&lt;p>Ik wil hier meer gaan schrijven. Niet alleen serveraankondigingen, maar ook posts over self-hosting, privacy, en eerlijk gezegd ook wat maatschappelijke dingen, want ik denk niet dat je over privacy kunt praten zonder het te hebben over waarom het voor mensen belangrijk is.&lt;/p>
&lt;p>Wil je een account, of wil je gewoon even hoi zeggen, kom me dan opzoeken op Matrix. Dat is eigenlijk precies waar het om draait.&lt;/p></description></item></channel></rss>