Over artikels die ik elders schreef (oude berichten, pagina 1)

Monitor en beperk het netwerkverkeer van je IoT-apparaten met SPIN

Het Internet of Things (IoT) is wat uit de hand aan het lopen, en cybercriminelen maken dankbaar misbruik van al die goedkope apparaatjes in je thuisnetwerk. Maar je hoeft het kind niet met het badwater weg te gooien. Hoe houd je je IoT-apparaten in het oog en, beter nog, hoe blokkeer je hun netwerktoegang selectief, zodat je met een geruster hart kunt gaan slapen?

Het SIDN (Stichting Internet Domeinregistratie Nederland) biedt met SPIN (Security and Privacy for In-home Networks) opensourcesoftware voor je thuisrouter aan waarmee je de verkeersstromen van al je IoT-apparaten in beeld brengt en kunt ingrijpen als een van je apparaten gecompromitteerd is.

In het februari/maartnummer van PCM van dit jaar schreef ik een artikel over SPIN. Je kunt dit nu online lezen, in twee delen:

Monitor en beperk netwerkverkeer

Er bestaan kant-en-klare routers met SPIN ingebouwd, maar je kunt het ook op OpenWrt installeren of op Valibox, een OpenWrt-gebaseerd besturingssysteem van SIDN. Het apparaat zet een draadloos netwerk op, en daarmee verbind je de IoT-apparaten die je wilt analyseren. Ik heb SPIN getest door de Valibox-firmware op een Raspberry Pi 3B te installeren.

Uit mijn test bleek dat SPIN ook prima geschikt is om het netwerkverkeer van een smartphone in het oog te houden. Onmiddellijk nadat je op je met de SPIN-router verbonden smartphone naar een website surft of een app opent, zie je in het live overzicht van SPIN allerlei verbindingen, verrassend meer dan je op het eerste gezicht zou verwachten:

/images/spin-nodes.png

Je kunt ook het netwerkverkeer van een apparaat dat je niet meer vertrouwt blokkeren, of je kunt het netwerkverkeer in een pcap-bestand opslaan. Dat pluis je daarna dan met een packet sniffer zoals Wireshark uit.

Een veiliger internet

IoT-apparaten worden steeds populairder, maar fabrikanten besteden helaas niet altijd voldoende aandacht aan de beveiliging ervan. Er is zeker een mentaliteitswijziging bij IoT-fabrikanten nodig, zodat hun apparaten een veilige standaardconfiguratie hebben, van veilige programmeermethodes gebruikmaken, regelmatig updates krijgen enzovoort.

Maar ondertussen hebben gebruikers ook een verantwoordelijkheid: geef niet elk willekeurig IoT-apparaat in je huis volledige toegang tot je netwerk. SPIN is daarbij een handig hulpmiddel: installeer het op je thuisrouter of, beter nog, op een afzonderlijk draadloos toegangspunt voor je IoT-apparaten.

Turris MOX, de modulaire opensourcerouter

Voor PCM heb ik een tijdje geleden de Turris MOX aan de tand gevoeld. Mijn bevindingen lees je in het artikel Turris MOX review - Modulaire opensource-router. De intro:

Als je een normale router koopt, zit je vast aan de specificaties. De Turris MOX is anders: je koopt een of meerdere modules, die je aan elkaar klikt om van het apparaat te maken wat je wilt: een router, switch, draadloos toegangspunt, server of welk ander netwerkapparaat dan ook. Ook achteraf kun je nog extra modules toevoegen. Hoe dat bevalt, lees je in deze Turris MOX review.

De Turris MOX, een modulaire opensourcerouter

Ik keek al lange tijd uit naar dit apparaat en ik wilde het heel graag testen. Ik ging er al van uit dat ik na mijn test de Turris MOX zou kopen voor mijn thuisnetwerk. Dat heb ik niet gedaan, hoe graag ik het ook wilde. Ik vond de installatie van de Turris MOX té omslachtig, de Wi-Fi-antennes in de behuizing wegwerken té precair, de software nog wat te buggy en uiteindelijk betaal je toch veel voor de flexibiliteit die het apparaat je biedt.

Maar het concept vind ik nog altijd geweldig. Er zouden meer van deze oplossingen moeten zijn. Een thuisnetwerk evolueert, je vereisten kunnen op enkele jaren snel veranderen, en als je dan gewoon eenvoudig een Wi-Fi-adapter kunt vervangen of ethernetpoorten of een modem voor het mobiele netwerk kunt toevoegen, is dat een veel duurzamer oplossing dan een nieuw apparaat te moeten kopen.

Ik hoop dus dat dit concept van een modulaire opensourcerouter aanslaat en nog verfijnd wordt. Hopelijk ben ik na de volgende test wél tevreden genoeg om er zelf een aan te schaffen.

Volledige anonimiteit bestaat niet

Overheden, onderzoeksinstellingen of bedrijven geven vaak om allerlei redenen 'geanonimiseerde' data vrij over personen. Helaas blijkt het in veel gevallen nog mogelijk om de personen achter de data te identificeren.

In PC-Active 311 van april schreef ik een artikel over de moeilijkheid om echt geanonimiseerde datasets aan te maken. Het artikel is nu ook op de website gepubliceerd: Volledige anonimiteit bestaat niet.

Bruikbaar of anoniem, nooit beide

Een geanonimiseerde database bevat geen namen meer, maar in combinatie met andere gegevensbronnen zijn de personen alsnog te identificeren (bron: Paul Ohm)

Een veel geciteerd artikel is dat van professor Paul Ohm van de University of Colorado Law School: Broken Promises of Privacy: Responding to the Surprising Failure of Anonymization (2010). Daarin argumenteert hij dat privacywetten niet volstaan om re-identificatie van personen in 'geanonimiseerde' datasets tegen te gaan. Privacywetten beperken zich immers tot gegevens die jou persoonlijk identificeren.

In deze tijd van grootschalige databases en grote computerkracht is het echter kinderspel om gigantisch veel gegevens te combineren, te vergelijken en te correleren, waardoor je uit een combinatie van schijnbaar anonieme gegevens die volledig aan de privacywetten voldoen de identiteit van iemand kunt achterhalen.

Ohms voorstel was om niet meer toe te laten zulke grote databases in zijn geheel te analyseren, maar ze interactief te maken of alleen gemiddeldes over verschillende personen als resultaat terug te geven. Dat beperkt natuurlijk de bruikbaarheid van de gegevens, maar dat is juist zijn punt: gegevens zijn ofwel bruikbaar ofwel perfect anoniem, maar nooit beide. Geen enkele bruikbare database kan perfect anoniem zijn en hoe bruikbaarder de data gemaakt worden, hoe minder privacy de betreffende personen hebben.

Hoe dan wel anonimiseren?

In het artikel bespreek ik diverse studies waaruit blijkt dat elke anonimisering van individuele gegevens gedoemd is om gedeanonimiseerd te worden. Enkele aanpakken die beter werken, zijn:

  • Gegevens van verschillende personen samenvoegen en alleen deze geaggregeerde data in de dataset bijhouden.

  • Privacygevoelige gegevens van ruis voorzien en de gegevens van meerdere personen bij elkaar optellen om statistieken te berekenen, zodat personen niet meer op individueel niveau te identificeren zijn. Dit heet differentiële privacy.

  • Een neuraal netwerk trainen op identificeerbare gegevens en daarmee een synthetische dataset genereren die statistisch identiek is aan de originele dataset, maar op geen enkele manier meer tot individuele personen terug te leiden is.

Kortom, anonimiteit is niet eenvoudig te bereiken.

Veilig thuiswerken met Linux Magazine

Linux Magazine 3 jaargang 21, over thuiswerken

Linux Magazine 3 is nu te koop, met als thema thuiswerken. Als privacy-activist heb ik mijn bijdrage aan het thema geleverd met twee artikels die opensourcetoepassingen met end-to-end encryptie bespreken:

Veilig videobellen met opensourcesoftware

Ik testte Jitsi Meet, Jami en Nextcloud Talk en vergeleek ze als oplossingen om te videobellen, met speciale aandacht voor beveiliging en end-to-end encryptie. Mijn conclusie: Jitsi biedt allround de meeste mogelijkheden, Jami is ideaal als je volledig peer-to-peer wilt werken en Nextcloud Talk is vooral interessant door zijn naadloze integratie met de andere componenten van Nextcloud.

Cryptpad: samen documenten bewerken zonder pottenkijkers

Ik testte Cryptpad, een opensource realtime collaborative editor voor het web. Je kunt hiermee dus samen met anderen aan teksten werken, maar uniek is dat dit end-to-end encryptie gebruikt. Daardoor kan zelfs de server waarop Cryptpad draait je data niet inzien: alle encryptie gebeurt client-side in de webbrowser van de gebruikers.

En uiteraard staan in dit nummer ook mijn vaste rubrieken: de geek pages, de /rant waarin ik oproep om bij te dragen aan open datasets voor spraaktechnologie zoals Mozilla's Common Voice, Focus op veiligheid en experttips.

Versleuteld e-mailen met Thunderbird of Mailvelope

De extensie Enigmail voegt OpenPGP-ondersteuning aan Thunderbird toe, een krachtige opensource e-mailtoepassing uit de Mozilla-stal. Daardoor kun je je e-mails versleutelen en digitaal ondertekenen en kun je versleutelde boodschappen van anderen lezen en verifiëren.

Mailvelope is een andere interessante oplossing om veilig te e-mailen via OpenPGP: het is een browserextensie van Duitse makelij voor Firefox, Chrome en Edge die zich integreert met webmailtoepassingen zoals Gmail, Freenet en GMX.

Hoe je deze programma's gebruikt lees je in het derde deel van mijn 4-in-1 workshop over encryptie in het februarinummer van PCM, nu ook op de website van PCM te vinden: Versleuteld mailen met Thunderbird en Mailvelope. De intro:

Versleuteld mailen is de bestaansreden van OpenPGP. Diverse projecten helpen je hiermee, zowel voor e-mailclients op je computer zelf als voor webmail. We laten hier zien hoe het werkt in Thunderbird en Mailvelope.

Heb je altijd al veiliger willen e-mailen maar wist je niet waar te beginnen? Probeer dan de instructies in het artikel eens uit.

Versleutel en onderteken boodschappen met GNU Privacy Guard en Kleopatra

Het tweede deel van mijn 4-in-1 workshop over encryptie in het februarinummer van PCM is ondertussen op de website van PCM te lezen: Versleutelde bestanden versturen met Gpg4win en Kleopatra. De intro:

Encryptie is een notoir moeilijk onderwerp. Iedereen maakt dagelijks onbewust gebruik van encryptie, zoals https. Maar er zijn niet veel mensen die bewust gegevens versleutelen. We leggen hier uit hoe dat werkt en hoe je die versleutelde bestanden versturen kunt.

Ik werk zelf nogal graag met programma's op de opdrachtregel, en ik begin het artikel dan ook met een uitleg van hoe je een bestand symmetrisch versleutelt met gpg. Voor asymmetrische encryptie is mijn indruk dat velen afhaken bij de opdrachten die je ervoor nodig hebt, dus voor dit artikel probeerde ik Kleopatra uit, een grafisch programma om met OpenPGP te werken. Het werkt best gebruiksvriendelijk en draait zowel op Windows als Linux. Als je je altijd al eens met encryptie wilde bezighouden maar de instructies je afschrikten, is Kleopatra misschien wel iets voor jou.

Een flexibele NAS met Ansible-NAS op Ubuntu Server

In het januarinummer van PCM schreef ik een artikel over Ansible-NAS, een Ansible-configuratie die van een Ubuntu-server een NAS (network-attached storage) en thuisserver maakt. Ondertussen is het ook op de website van PCM te lezen: Ansible-NAS installeren op Ubuntu Server. De intro:

Wil je een flexibele nas, dan leent Ubuntu Server zich daar goed voor. Ook omdat je met Docker eenvoudig allerlei extra diensten kunt draaien. Ansible-NAS maakt zowel het bestanden delen als extra diensten draaien op Ubuntu Server extra eenvoudig, inclusief dashboard. Hoe je Ansible-NAS installeren kunt op je Ubuntu Server, lees je hier.

Ik heb jarenlang FreeNAS gebruikt als besturingssysteem voor mijn NAS. Ik vertrouw mijn data aan geen enkel bestandssysteem toe behalve ZFS, en FreeNAS was voor mij de logische keuze omdat ik op mijn desktopmachine FreeBSD draai.

Maar met FreeNAS maakte ik enkele problematische upgrades mee waardoor ik vorig jaar naar een alternatief zocht. Dat vond ik in Ansible-NAS, een project van David Stephens die exact hetzelfde meemaakte als ik. Een ander voordeel van Ansible-NAS is dat je het volledig op de opdrachtregel configureert, met Ansible. Ik was nooit een voorstander van de focus die FreeNAS legt op de webinterface.

Basiskennis over encryptie die iedereen zou moeten hebben

In het februarinummer van PCM schreef ik over de basis van encryptie (versleuteling). Ondertussen is het ook op de website van PCM te lezen: Alles over de verschillende encryptie-soorten. De intro:

Wat is encryptie en hoe werkt het in grote lijnen? In dit artikel kijken we naar de verschillende encryptie-soorten die mogelijk zijn. Belangrijke basiskennis voor elke computergebruiker die zijn communicatie graag privé houdt.

Ik bespreek er het principe van Kerckhoffs, het verschil tussen symmetrische en asymmetrische encryptie, geheime en publieke sleutels, digitale handtekeningen en hashwaardes.

Embedded Linux: Dit OS infiltreert al je apparaten

In het januarinummer van PCM verscheen een achtergrondartikel van me over embedded Linux, oftewel Linux in elk apparaat. Ondertussen is het ook op de website van PCM te lezen: Embedded Linux: Dit OS infiltreert al je apparaten. De intro:

De kans is groot dat je zonder dat je het weet thuis talloze apparaten met Linux hebt draaien. Je internetmodem, je draadloos toegangspunt, je nas, je smart-tv en zelfs je smartphone, ze draaien allemaal vaak 'embedded Linux'. Hoog tijd om hier eens uitgebreid bij stil te staan.

Ik heb het in het artikel over typische embedded Linux-projecten zoals uClibc, BusyBox, ARM, RISC-V, Mender, Ubuntu Core, Yocto Project, OpenWrt en U-Boot.

Kan een corona-app ons uit de crisis helpen?

Een app die je waarschuwt als je in de buurt van een met het coronavirus besmette persoon geweest bent. Dat zou de oplossing zijn om uit de coronacrisis te raken. Maar werkt dat wel? En kunnen we zo'n corona-app vertrouwen?

Ik volg al sinds het begin de ontwikkelingen van apps voor contact tracing. Daarbij was ik vooral onder de indruk van het werk van DP-3T. Maar omdat dit project open was in zijn ontwikkeling, zag ik ook alle mogelijke problemen die in de issues op GitHub naar voren werden gebracht.

Eerder al schreef ik op de website van PCM het artikel Kan een corona-app ons uit de crisis helpen? waarin ik op de werking van dit soort apps inga, en ook op de technische en maatschappelijke problemen. Een uitgebreidere versie is nu als achtergrondartikel in het julinummer van PCM verschenen. Daarin heb ik het ook over de Exposure Notifications API van Apple en Google, bespreek ik nog meer de technische uitdagingen en de bredere maatschappelijke discussie.

Het is vooral die bredere maatschappelijke die wel eens wordt vergeten. Als bestuurslid van The Ministry of Privacy vind ik privacy uiteraard een belangrijk aspect. Maar daarnaast vind ik dat men veel te veel vertrouwen heeft in een app als kant-en-klare oplossing en dat men te weinig nadenkt over mogelijke neveneffecten zoals stigmatisering van potentieel besmette personen en misbruik van de app voor andere doeleinden. [1]

Transparantie

Een ander persoonlijk stokpaardje van mij is transparantie. Voordat ik zo'n app zou installeren die verregaande transparantie van mij vraagt over mijn contacten, ook al zijn de data geanonimiseerd, wil ik zelf volledige transparantie over de werking van de app. Dat betekent onder andere dat ik de broncode wil kunnen inzien van de app en de back-end en wil kunnen verifiëren of die broncode overeenkomt met de software die op mijn smartphone draait. Dat kan met reproducible builds.

Ik hoor ondertussen al maanden dat men in België bezig is aan een app en dat die gebaseerd zou zijn op DP-3T. Professor Bart Preneel die in het DP-3T-consortium zit zei in De afspraak van 26 mei op VRT dat de Belgische app voor 80% gelijk is aan de Zwitserse app. Daarvan is de broncode voor Android en iOS beschikbaar. Maar ik heb nog geen enkele broncode van de Belgische app gezien, wat niet transparant is als de Belgische overheid verwacht dat burgers die app binnenkort op hun smartphone gaan installeren. Volledige transparantie bereik je maar met een opensource ontwikkelingsmodel vanaf het begin, zodat burgers de ontwikkeling kunnen volgen en bijsturen, zelf commentaar kunnen leveren en zo kunnen bijdragen aan de app.

Bovendien belooft een recente analyse van de Zwitserse app SwissCovid door de Franse cryptograaf Serge Vaudenay niet veel goeds. Zijn observaties beginnen met:

  • Although the source code of the app is available, we cannot compile it, run it, and make it work without signing an agreement with Apple or Google. We do not find it compatible with the notion of open source.

  • A big part of the contact tracing protocol (which was originally the DP3T protocol) is implemented by Apple-Google in a part of the system called GAEN. This part has no available source code although the law requires disclosure of the source code of all components of the system.

Apple en Google hebben zich als redders van de wereld opgeworpen met hun gezamenlijke API, maar door deze zo diep in het besturingssysteem in te bouwen, is er weinig transparantie over wat de code exact doet. Het toont voor mij nog maar eens aan hoe belangrijk het is om een volledige opensourcestack te hebben, van de app waarmee de eindgebruiker in contact komt tot het besturingssysteem zelf. [2]