Het artikel onderzoekt de privacy-implicaties van het AT-Protocol, de technologie waarop Bluesky is gebouwd. De auteur stelt vast dat gegevens die worden opgeslagen op 'personal data servers' (PDS) grotendeels openbaar zijn, wat kan leiden tot onbedoelde datalekken.
Specifiek wordt beschreven hoe de app Skyreader RSS-feed-abonnementen opslaat in een openbaar lexicon. Hierdoor kon de auteur toegang krijgen tot meer dan 1.300 feeds, waaronder privé-feeds van Patreon, Gitlab en content achter betaalmuren. Daarnaast wordt vermeld dat soortgelijke privacyproblemen voorkomen bij bepaalde Discord- en Twitch-clones.
De conclusie is dat, hoewel de openheid van het protocol een bewuste ontwerpkeuze kan zijn, de gemiddelde gebruiker waarschijnlijk niet beseft dat hun persoonlijke data en abonnementen publiekelijk vindbaar zijn.
Weten AT-Proto-gebruikers dat dit openbaar is?
Ik heb de "atmosfeer" van het AT-Protocol verkend waar Bluesky op draait, om beter te begrijpen wat mensen ermee doen. Wat ik heb gevonden is een hoeveelheid privégegevens waarvan ik niet zeker weet of mensen weten dat deze openbaar zijn. Niet alleen openbaar, ze zijn ook gemakkelijk te vinden.
Het onderzoek naar feed-readers
Om mijn onderzoek te starten, heb ik twee websites gebruikt die AT-Protocol-apps catalogiseren: atstore.fyi en atmosphereaccount.com. Ik ben een fervent RSS-gebruiker, dus ik werd eerst nieuwsgierig naar feed-readers. Ik vond er een genaamd Skyreader en merkte op dat hun pagina op atstore.fyi recensies en vermeldingen van de app bevatte door mensen die deze hadden gebruikt. Hier komen we zo op terug.
Hoe persoonlijke data servers werken
Iets om te weten over Bluesky is dat je zelf een zogenaamde 'personal data server' of "PDS" kunt hosten. Dit is waar je gegevens van Bluesky en andere apps worden opgeslagen, en dit is grotendeels openbaar. Via een website als PDSls.dev kun je dit zelf verkennen. Als je mijn gegevens zou willen zien, staan ze daar. Ik heb geen controle over hoe of wat je ermee doet; ze bestaan gewoon.
Ik wilde mijn account niet koppelen aan Skyreader zonder te weten wat er openbaar zou worden opgeslagen. Daarom keek ik naar de recensies die mensen voor Skyreader op atstore.fyi hadden achtergelaten. Die staan allemaal naast hun accountnamen, dus ik heb hun handles in PDSls ingevoerd om een idee te krijgen van wat openbaar zou zijn.
Hieruit leerde ik dat elke feed die je volgt, wordt gepubliceerd in het lexicon (wat Bluesky een data-object met een schema noemt) app.skyreader.feed.subscription. Dit object bevat een sleutel genaamd feedUrl waarin de RSS-feed staat. Dit is waardevolle informatie, want nu weet ik dat ik daar geen feeds in moet zetten die ik niet met mijn naam geassocieerd wil hebben.
De risico's van openbare data
Zonder het echt te proberen, vond ik de privé-feed van Club MacStories van iemand, wat me volledige toegang gaf tot hun content. Met iets meer moeite vond ik feeds achter een betaalmuur voor de volledige tekstfeeds van 404 Media, exclusieve feeds voor Patreon-supporters en privé-RSS-feeds voor Gitlab-repositories.
Dit leidde me naar de vraag wat iemand anders nog meer zou kunnen doen met al deze openbaar beschikbare data. Daarom heb ik onderzocht wat er mogelijk is door te zoeken via een Bluesky-relay (zoals bsky.network) om elk collectierecord voor app.skyreader.feed.subscription op te halen. Dit is niet zo simpel als één API-aanroep, omdat dit een array van DID's (decentralized identifiers) teruggeeft. Van daaruit kun je de PDS-server opzoeken om die collectierecords met de eigenlijke data op te vragen.
Dit leverde me meer dan 1.300 RSS-feeds op waar mensen zich via Skyreader hadden aangemeld. Geen authenticatie, geen echte beperkingen. Het is simpelweg publiekelijk beschikbare data op het internet.
Bredere implicaties
Het is niet alleen een Skyreader-ding; ik heb gemerkt dat een paar Discord-clones elk bericht openbaar opslaan. Er is een Twitch-clone die hetzelfde doet. Ik kan toekijken hoe mensen chatten op Stream.place en zelfs de data doorzoeken. Als je alle Twitch-chats gemakkelijk zou kunnen doorzoeken, denk ik dat sommige mensen daar behoorlijk zenuwachtig van zouden worden.
Ik weet zeker dat sommige mensen zullen zeggen: "Zeker, dat is juist het punt," maar ik ben er niet van overtuigd dat de gebruikers het risico begrijpen.
Weten AT-Proto-gebruikers dat dit openbaar is?
Ik heb de "atmosfeer" van het AT-Protocol verkend waar Bluesky op draait, om beter te begrijpen wat mensen ermee doen. Wat ik heb gevonden is een hoeveelheid privégegevens waarvan ik niet zeker weet of mensen weten dat deze openbaar zijn. Niet alleen openbaar, ze zijn ook gemakkelijk te vinden.
Het onderzoek naar feed-readers
Om mijn onderzoek te starten, heb ik twee websites gebruikt die AT-Protocol-apps catalogiseren: atstore.fyi en atmosphereaccount.com. Ik ben een fervent RSS-gebruiker, dus ik werd eerst nieuwsgierig naar feed-readers. Ik vond er een genaamd Skyreader en merkte op dat hun pagina op atstore.fyi recensies en vermeldingen van de app bevatte door mensen die deze hadden gebruikt. Hier komen we zo op terug.
Hoe persoonlijke data servers werken
Iets om te weten over Bluesky is dat je zelf een zogenaamde 'personal data server' of "PDS" kunt hosten. Dit is waar je gegevens van Bluesky en andere apps worden opgeslagen, en dit is grotendeels openbaar. Via een website als PDSls.dev kun je dit zelf verkennen. Als je mijn gegevens zou willen zien, staan ze daar. Ik heb geen controle over hoe of wat je ermee doet; ze bestaan gewoon.
Ik wilde mijn account niet koppelen aan Skyreader zonder te weten wat er openbaar zou worden opgeslagen. Daarom keek ik naar de recensies die mensen voor Skyreader op atstore.fyi hadden achtergelaten. Die staan allemaal naast hun accountnamen, dus ik heb hun handles in PDSls ingevoerd om een idee te krijgen van wat openbaar zou zijn.
Hieruit leerde ik dat elke feed die je volgt, wordt gepubliceerd in het lexicon (wat Bluesky een data-object met een schema noemt) app.skyreader.feed.subscription. Dit object bevat een sleutel genaamd feedUrl waarin de RSS-feed staat. Dit is waardevolle informatie, want nu weet ik dat ik daar geen feeds in moet zetten die ik niet met mijn naam geassocieerd wil hebben.
De risico's van openbare data
Zonder het echt te proberen, vond ik de privé-feed van Club MacStories van iemand, wat me volledige toegang gaf tot hun content. Met iets meer moeite vond ik feeds achter een betaalmuur voor de volledige tekstfeeds van 404 Media, exclusieve feeds voor Patreon-supporters en privé-RSS-feeds voor Gitlab-repositories.
Dit leidde me naar de vraag wat iemand anders nog meer zou kunnen doen met al deze openbaar beschikbare data. Daarom heb ik onderzocht wat er mogelijk is door te zoeken via een Bluesky-relay (zoals bsky.network) om elk collectierecord voor app.skyreader.feed.subscription op te halen. Dit is niet zo simpel als één API-aanroep, omdat dit een array van DID's (decentralized identifiers) teruggeeft. Van daaruit kun je de PDS-server opzoeken om die collectierecords met de eigenlijke data op te vragen.
Dit leverde me meer dan 1.300 RSS-feeds op waar mensen zich via Skyreader hadden aangemeld. Geen authenticatie, geen echte beperkingen. Het is simpelweg publiekelijk beschikbare data op het internet.
Bredere implicaties
Het is niet alleen een Skyreader-ding; ik heb gemerkt dat een paar Discord-clones elk bericht openbaar opslaan. Er is een Twitch-clone die hetzelfde doet. Ik kan toekijken hoe mensen chatten op Stream.place en zelfs de data doorzoeken. Als je alle Twitch-chats gemakkelijk zou kunnen doorzoeken, denk ik dat sommige mensen daar behoorlijk zenuwachtig van zouden worden.
Ik weet zeker dat sommige mensen zullen zeggen: "Zeker, dat is juist het punt," maar ik ben er niet van overtuigd dat de gebruikers het risico begrijpen.