Verbeteringen aan open source software
- 12 januari 2017
Open source software, waarbij de voor mensen leesbare broncode vrij beschikbaar is, biedt veel voordelen boven closed source software. Zo kan de code door andere programmeurs worden gecontroleerd op beveiligingsproblemen en kunnen zij relatief eenvoudig aanpassingen maken. Wij gebruiken dan ook zoveel mogelijk open source software. De mogelijkheid om “onder de motorkap” te kijken is mooi, maar dit betekent niet dat privacy- en beveiligingsproblemen verleden tijd zijn.
Onze systeembeheerder weet hoe computers en het internet in elkaar zitten. In deze serie geeft hij praktische tips die jij kunt gebruiken om het leven beter te maken. Niet elke blogpost zal voor iedereen begrijpelijk of handig zijn, kijk daarom in het categorie-overzicht om te zien of er iets voor jou tussen staat. We hopen dat je er iets aan hebt!
Open source biedt veel, maar geen garanties
Vrijwel alle open source ontwikkeling gebeurt vandaag de dag in Git. Git is een versiebeheersysteem dat oorspronkelijk is ontwikkeld door Linus Torvalds om met duizenden vrijwilligers aan zijn Linuxkernel te kunnen werken. Het biedt ontwikkelaars de mogelijkheid gelijktijdig en zelfs offline aan dezelfde code te werken, om op een later moment te synchroniseren met een centrale server. De beheerder van zo’n project kan strenge toegangscontroles instellen om ongeautoriseerde wijzigingen te voorkomen en elke verandering wordt doorgaans gecontroleerd door meerdere vertrouwde ontwikkelaars en de beheerder zelf. Hierdoor is het lastig om achterdeurtjes in de code te smokkelen. Dit systeem werkt dan ook vrij aardig.
Als de controle niet voldoende blijkt te zijn of als het project privacy en beveiliging niet zo hoog in het vaandel heeft staan, kan het misgaan. En als het misgaat en je lijdt hierdoor schade, is het niet altijd zo eenvoudig om de ontwikkelaars aansprakelijk te houden. Vaak sluiten ze in hun licentie alle aansprakelijkheid uit (dit doen veel leveranciers van closed sourced software trouwens ook) en is niet altijd even duidelijk wie je precies kan aanspreken. Het is daarom altijd aan te raden om zorgvuldige keuzes met betrekking tot software te maken.
Ons software-verlanglijstje
We hanteren een strikt beleid voor alle door ons gebruikte software:
- We gebruiken zoveel mogelijk vrije software, zoals omschreven in de Free Software Definition.
- De software moet zo min mogelijk gegevens van de gebruiker verwerken.
- De software mag nooit persoonsgegevens lekken, zoals gebeurt bij het inladen van lettertypen, afbeeldingen of scripts van andere websites.
- Er moeten tijdig beveiligingsupdates uitgegeven worden.
- Ontwikkeling van eigen software vindt plaats op onze GitLab-server.
Vaak blijkt zelfs populaire open source software niet helemaal aan deze eisen te voldoen. Daarom maken we in zulke gevallen een fork (kopie) van de code op onze GitLab-server, passen we wat dingen aan totdat we wel tevreden zijn en rollen het dan pas uit naar de productie-omgeving. Een voorbeeld is Discourse, een populair open source forum met uitgebreide moderatiemogelijkheden. Je kent het misschien van het forum van het Privacy Café. Voor automatische moderatie is het echter wel nodig dat Discourse IP-adressen en informatie over browsers (fingerprints) opslaat. Deze informatie willen we liever niet opslaan, omdat moderatie van berichten van ons niet automatisch hoeft te gebeuren. Bovendien bleek Discourse deze gegevens ook te verzamelen van bezoekers die geen berichten plaatsten. Wij hebben de automatische verzameling van deze gegevens natuurlijk uitgeschakeld. Als je nu een openbaar Discourse-forum beheert zonder dat je maatregelen hebt genomen om te voorkomen dat IP-adressen en browserfingerprints van bezoekers worden opgeslagen, dan moet je ervoor zorgen dat er een geldige wettelijke grondslag is om deze persoonsgegevens te mogen verwerken en moet je aan de overige vereisten van de Wet bescherming persoonsgegevens (vanaf 25 mei 2018 de Europese Privacyverordening) voldoen.
Verbeteringen aan Discourse
Om Discourse geen gegevens van bezoekers te laten verzamelen, hebben we de configuratie van de ingebouwde NGINX webserver aangepast. Dat kan door de optie “access_log” op “off” te zetten, zoals we hier hebben gedaan. Omdat Discourse gebruik maakt van de virtualisatiesoftware Docker moet ook de Dockerfile met instructies voor het bouwen van Discourse worden aangepast. Het enige wat daarvoor nodig is, is het wijzigen van de locatie waar alle code beschikbaar is. Die hebben wij nu naar onze eigen GitLab-server laten verwijzen. Na het installeren van Docker gebruikten we de aangepaste Dockerfile om Discourse met onze eigen aanpassingen te bouwen. Het voordeel hiervan is dat het eenvoudig is om te upgraden terwijl onze eigen aanpassingen blijven bestaan. Discourse kan nu niet meer IP-adressen en fingerprints verwerken. Dat maakt moderatie wat lastiger, maar komt de privacy van de bezoekers ten goede.
Code bijdragen
Af en toe vinden we foutjes in open source software en helpen we deze foutjes op te lossen, zoals we deden met Framadate. Ook schrijven we af en toe met hulp van vrijwilligers eigen software, zie bijvoorbeeld de Internetvrijheid Toolbox, Newspeak en de Privacy Inzage Machine.