De waarheid over Coronalert en gedecentraliseerde contact tracing apps

Inhoudstafel

Te lang om allemaal te lezen? Ga onmiddellijk door naar de conclusie.

Wie mij een beetje kent, weet dat ik privacy erg belangrijk vind. Daarom dacht ik dat contact tracing apps for COVID-19 een zeer slecht idee waren toen men daar enkele maanden geleden begon over te praten. Een app die contant bijhoudt waar je bent en wie je tegenkomt, dat is enkel iets dat je in ondemocratische landen en dictatoriale regimes verwacht, maar niet in Europa waar onze privacy gewaarborgd zou moeten zijn door de GDPR (AVG). En wat met de betrouwbaarheid van deze apps? Bluetooth was nooit voor dergelijke toepassingen ontworpen. Het zou leiden tot veel foutieve waarschuwingen. Geen denken aan dat ik zo’n app ooit zou installeren.

Althans, dat was mijn mening enkele maanden geleden. Ondertussen is mijn mening volledig veranderd. En dat is gebeurd na het lezen over gedecentraliseerde contact tracing apps gebaseerd op de Google en Apple Exposure Notification (GAEN) API en DP-3T. Ik heb reeds de Italiaanse contact tracing app Immuni gebruikt in Italië en ook in België gebruik ik de app Coronalert (Androidversie, iPhone-versie).

DP-3T

Decentralized Privacy-Preserving Proximity Tracing of DP-3T is een open protocol ontwikkeld door verschillende universiteiten waaronder ETH en EPFL uit Zwitserland, de KU Leuven uit België en TU Delft uit Nederland.

Volgende cartoon geeft een eenvoudig overzicht van hoe DP-3T werkt.

Elke dag wordt een nieuwe random seed (gebaseerd op de seed van de dag voordien) op de telefoon van elke gebruiker en deze dagelijkse seed wordt op te elefoon bijgehouden gedurende 14 dagen. Op basis van deze seed worden er ephermal identifiers (EphIDs) aangemaakt. Deze EphIds verandere verscheidene keren per uur.

EphIDs worden uitgewisseld met andere gebruikers van de tracking app via Bluetooth Low Energy (BLE) en elke telefoon houdt de EphIDs die hij ontvangen heeft lokaal bij op de telefoon, samen met de datum en de sterkte van het signaal, dat kan gebruikt worden om de afstand in te schatten.

Wanneer iemand positief test op COVID-19 kan die, met de hulp van de gezondheidsauthoriteiten, de seed van de eerste dag waraop hij besmettelijk was, uploaden naar een centrale server. Op dat moment worden alle voorgaande dagelijkse seeds gewist van de telefoon en wordt een compleet nieuwe random dagelijkse seed aangemaakt, zodat de gebruiker ook in de toekomst niet kan gevolgd worden.

De app downloadt regelmatig een lijst van al de dagelijkse seeds van de besmette gebruikers van de centrale server en kan op basis daarvan al de EphIDs berekenen. De app vergelijkt deze EphIDs met de lijst van EphIDs die hij onlangs is tegengekomen. Op basis van de het aantal overeenkomstige EphIDs kan de app berekenen hoe lang de twee in elkaars buurt zijn geweest en op basis van de opgeslagen signaalsterkte kan een inschatting gemaakt worden van de afstand. Als de twee langer dan een bepaalde tijd binnen een bepaalde afstand in elkaars buurt zijn geweest, dan zal de gebruiker een waarschuwing krijgen dat hij in contact is geweest met een besmettelijke persoon, samen met verdere instructies. Een contact met een besmette persoon wordt in het Engels “exposure” genoemad, Coronalert gebruikt in het Nederlands de term “blootstelling”.

Meer details zijn te vinden in de DP-3T white paper.

Apple/Google Exposure Notifications API

De Google/Apple Exposure Notifications API (soms afgekort tot GAEN) is een API die door Google en Apple is ontwikkeld en die gebruikt kan worden door gedecentralseerde contact tracing apps. Deze API is gebaseerd op de principes van het DP-3T-protocol en kan enkel gebruikt worden door apps die zijn goedgekeurd door Google en Apple: slechts één app per land, ontwikkeld door de officiële gezondheidsauthoriteiten, kan goedgekeurd worden. Enkel gedecentraliseerde apps die geen enkele informatie over de positie van gebruikers verzamelen, worden goedgekeurd.

Op Apple iOS kunnen apps normaal geen Bluetooth op de achtergrond gebruiken, maar een uitzondering werd gemaakt voor apps die gebruik maken van deze API. Dit betekent dat op Apple iPhone, deze API de enige manier is om een betrouwbare contact tracing app te maken. Apps die deze API niet gebruiken, zoals de StopCovid France app, moeten via work-arounds de app in de achtergrond toch naar de voorgrond halen, wat hen potentieel minder betrouwbaar maakt en een negatief effect heeft op het batterijverbruik.

Het DP-3T framework werd aangepast om gebruik te maken van de Exposure Notifications API.

De Google/Apple Exposure Notifications API en DP-3T wordt gebruikt door de Belgische contact tracing app Coronalert. Andere apps die deze API gebruiken zijn Coronamelder (Nederland), SwissCovid (Zwitserland), Immuni (Italië), Corona-Warn-App (Duitsland).

De broncode van de de implementatie van het framework voor Android en iOS werd in de tweede helft van juli 2020 gepubliceerd.

Veel gestelde vragen (FAQ) – Enkele mythes ontkracht

Deze apps zijn soms onderwerp van moedwillige fake news campages, of lokken in ieder geval hevige reacties uit die het gevolg zijn van een een gebrek aan begrip van de werking van deze apps. Hier zal ik enkele belangrijke vragen beantwoorden.

Schenden deze apps mijn privacy? Zullen de authoriteiten weten wie ik ontmoet, waar ik ben en wat ik doe?

De apps die gebruik maken van de Google Apple Exposure Notification API houden geen persoonlijke informatie bij van de gebruikers: ze kennen je naam niet, je telefoonnummer, waar je woont of andere persoonlijke gegevens. Ze verzamelen ook geen locatiegegevens, dus ze weten niet waar je bent.

Het enige dat deze apps doen, is anonieme codes uitwisselen met andere mensen in je buurt. Deze codes veranderen verscheidene malen per dag, zodat het onmogelijk is om je te volgen door middel van deze codes.

De codes die de uitgewisseld worden, worden enkel lokaal op je telefoon bijgehouden en niet in een centrale databank. Er is dus geen manier voor de authoriteiten om te weten hoeveel mensen en wie u ontmoet heeft.

Contact tracing apps maken daarnaast gebruik van uitgebreide preventiemaatregelen om uw veiligheid en privacy te beschermen: zo doen ze dummy uploads om te vermijden dat door middel van netwerkanalyse zou kunnen ontdekt worden wie een positieve test heeft afgelegd, wordt er gebruikt gemaakt van CA of certificate pinning om man-in-the-middle-aanvallen te voorkomen, enzovoort.

Deze apps zijn geen hulpmiddel voor massarveillance en zijn ook geen Big Brother zoals sommigen beweren.

Hoe kan ik zeker zijn dat de app werkt zoals beweerd wordt en echt geen privé-informatie verstuurd?

Deze apps zijn gewoonlijk open source, wat betekent dat je de zelf de code kan onderzoeken om te zien hoe de app werkt en wat deze precies doet. Zelfs als je zelf de kennis niet hebt om de code na te kijken, dan mag je er zeker van zijn dat er genoeg experten zijn die hier naar kijken en zij zullen het wel luid en duidelijk laten horen wanneer iets niet zuiver op de graat is. Het moet gezegd: vaak zijn degenen die het luidst over deze apps roepen politici uit de oppositie en activisten die nooit naar de code of de documentatie hebben gekeken.

Hier zijn links naar de broncode van enkele contact tracing apps en de documentatie:

Op de issue trackers van deze apps kunnen problemen gemeld worden en vragen gesteld worden.

Ook de broncode van het Exposure Notifications framework, gebruikt door deze apps, is openbaar:

Een eerste analyse van de broncode van de Coronalert app toont aan dat deze inderdaad niet meer gegevens bijhoudt en verstuurt dan aangekondigd en dat Sciensano en Ixor (het Belgische bedrijf dat de backendservers beheert) nooit persoonlijke data ontvangen van de app.

Waarom zou ik Google en Apple, die een slechte reputatie hebben op vlak van privacy, nu moeten vertrouwen?

Eigenlijk hebben Google en Apple deze API zelfs niet nodig om je te volgen. Als je een telefoon gebruikt met iOS of Android met Google Play Services, heb je op zich al een veel groter privacyprobleem dan deze gedecentraliseerde, open source contact tracing apps. Dat is ook het geval als je Facebook, Twitter, Instagram, TikTok, NetFlix, Spotify, FaceAp, Tinder en dergelijk apps gebruikt: deze kennen uw naam, locatie, uw interesses, vrienden en dat allemaal zonder deze API. Gedecentraliseerde contact trcacing apps weten veel minder over u dan al deze apps. Dit beeld vergelijkt de verschillende permissies die SwissCovid, Facebook en Whatsapp kunnen aanvragen op iOS. Het is duidelijk dat het niet de contact tracing app is die het meeste informatie kan verzamelen.

Prof. Bart Preneel (KU Leuven), een cryptograaf die meegewerkt heeft aan het de ontwikkeling van het DP-3T framework, zegt dat “voor één keer Google en Apple kiezen voor de goede kant van de privacy”.

Daarnaast is er een manier om deze contact tracing apps te gebruiken zonder enige Google-services op je telefoon. Het microg-project heeft zijn eigen, volledig open source implementatie gemaakt van de Exposure Notification API. Deze kan geïnstalleerd worden op een Androiddistributie zoals LineageOS. Er is bevestiging dat SwissCovid en Immuni werken met de microg-implementatie van de API, dus andere apps werken wellicht ook. Op deze manier is het mogelijk om deze contact tracing apps te gebruiken zonder enige binaire code van Google of Apple.

Waarom vereist Coronalert dat Locatie aan staat op mijn Androidtelefoon als de app zogezegd mijn locatie niet bijhoudt?

Om te scannen naar Bluetooth-apparaten op Android, is het nodig dat de locatie-instelling aan staat op Android omdat dit in theorie kan gebruikt worden om uw positie te bepalen. Dit wordt bijvoorbeeld gebruikt door navigatie-apps om uw positie te bepalen in ondergrondse tunnels. In werkelijkheid is het voor apps die gebruik maken van de GAEN API niet toegelaten om uw locatie op te vragen. Het kan ook in de broncode van de app geverifieerd worden dat op geen enkel moment de locatie wordt bepaald. In Instellingen – Locatie – Machtigingen op app-niveau kan u ook nog altijd locatietoegang uitschakelen voor apps. Coronalert (of andere contact tracing app gebaseerd op de Expsoure Notificatoins API) zal in deze lijst niet verschijnen omdat deze geen locatie opvraagt.

In Android 11, uitgekomen in september 2020, is het niet meer nodig om Locatie aan te hebben op uw telefoon om contact tracing apps te gebruiken die gebaseerd zijn op de Exposure Notifcation API.

Zullen deze apps mij een waarschuwing geven telkens wanneer een besmette persoon voorbijgekomen is en dus heel wat valse waarschuwingen geven?

De apps zullen enkel een waarschuwing geven als aan bepaalde voorwaarden voldaan is. Die voorwaarden worden gewoonlijk door de overheid vastgelegd op basis van epidemioloigsche data. De Italiaanse Immuni app bijvoorbeeld, zal een waarschuwing geven wanneer iemand op een afstand van maximaal 2 meter staat gedurende minstens 15 minuten. SwissCovid zal pas waarschuwen bij een contact van minstens 15 minuten binnen een afstand van 1,5m.

De afstand wordt geschat op basis van de verzwakking van het signaal. Die verzwakking hangt helaas wel af van heel wat parameters, zoals het model van de telefoon dat gebruikt wordt, de richting waarin die telefoon wordt gehouden, enzovoort. Google past voor elk telefoonmodel een correctie toe op de verzwakking, zodat de waardes vergelijkbaar zouden moeten zijn tussen verschillende modellen. De drempelwaarden die worden gebruikt om waarschuwingen te geven, zijn gebaseerd op experimenten in verschillende omgevingen en kunnen in de toekomst nog aangepast worden om het aantal vals positieven en negeatieven aan te passen.

Dus nee, contact tracing apps zullen u geen waarschuwing geven telkens wanneer iemand die even kortbij gepasseerd is, positief wordt getest. Enkel wanneer zeer redelijke drempelwaarden worden overschreden, zal u een waarschuwing krijgen. Ook de authoriteiten realiseren zich dat deze contact tracing apps een hulpmiddel zijn voor tracing, maar nooit manuele contact tracing kunnen vervangen. Een contact tracing app kan ook nooit een COVID-19-test vervangen.

In de praktijk zal Coronalert ook niet-risicovolle contacten weergeven: er zal dan in de app staan dat er een blootstelling geweest is, maar het risico blijft op laag staan en de app blijft groen. Enkel bij een contact langer dan 15 minuten op een afstand die minder dan 1,5m geschat wordt, zal het scherm rood worden en zal er een notificatie komen over een hoogrisico-contact. Enkel in dat laatste geval zal een quarantaine en test aangeraden worden.

Zijn deze apps nuttig als niet iedereen of ten minste een groot deel van de bevolking ze gebruikt?

Contact tracing apps zijn zeker nuttig, zelfs als enkel een deel van de bevolking ze gebruikt.

Een vaak geciteerd artikel van de Oxford University stelt dat als 60% van de bevolking een contact tracing app gebruikt, dit de epidemie volledig zou kunnen stillegen. Wat echter veel minder geciteerd wordt is het volgende deel van de zin: “zelfs met een lager aantal van gebruikers van de app, schatten we een vermindering in het aantal coronavirusgevallen en het aantal doden”. Ze schatten dat één besmetting kan vermeden worden voor elke 2 gebruikers van de contact tracing app.

Dus zelfs een adoptiegraad van minder dan 60% is nuttig om de curve te helpen afplatten of zelfs naar beneden te halen, waardoor mensenlenvens gered worden.

Zal dit nefast zijn voor het batterijverbruik van mijn telefoon?

Doordat gebruik gemaakt wordt van Bluetooth Low Energy, zou het batterijverbruik beperkt moeten zijn. Bluetooth Low Energy is speciaal ontworpen voor een laag energieverbruik en wordt ook gebruikt om verbinding te maken met smartwatches en draadloze hoofdtelefoons. Het batterijverbruik zou minder dan 5% moeten zijn in vergelijking met een situatie waarin Bluetooth volledig uitgeschakeld is op de telefoon.

Moet ik een andere app installeren als ik naar het buitenland ga?

Met de steun van de Europese Unie werd een gateway service gebouwd die de uitwisseling van keys van besmette personen tussen Europese landen mogelijk maakt. Op 19 oktober 2020 werd deze in gebruik genomen en sindsdien kunnen de Italiaanse (Immuni), Duitse (Corona-Warn-App) en Ierse app (COVID Tracker) hiervan gebruik maken. Het is de bedoeling dat de apps van andere EU-landen deze ondersteuning ook in de toekomst krijgen. Voor de Belgische app Coronalert wordt dit in verwacht tegen november 2020.

Merk op dat er geen uitwisseling mogelijk is met de StopCovid France app omdate deze een gecentraliseerd systeem gebruikt in plaats van het gedecentraliseerde DP-3T.

Wat vinden experts van deze apps?

Het is belangrijk om te herhalen dat DP-3T en dus het Google/Apple Expsoure Notifications framework dat erop gebaseerd is, ontworpen is door academici van universiteiten in verschillende landen. Prof. Bart Preneel (KU Leuven), een cryptograaf die meegewerkt heeft aan het de ontwikkeling van het DP-3T framework, zegt dat “voor één keer Google en Apple kiezen voor de goede kant van de privacy”.

Het British Information Commissioner’s Office (de nationale gegevensbeschermingsauthoriteit) “gelooft dat het CTF (Google/Apple’s contact tracing framework) van bij het ontwerp rekening houdt met de principes van gegevensbescherming, inclusief ontwerpprincipes rond dataminimisatie en veiligheid.

Prof. Douglas Leith (Trinity College Dublin) heeft analyse van het netwerkverkeer van contact tracing apps gedaan. In een rapport besluit hij: “We vinden dat de apps zich over het algemeen goed gedragen op vlak van privacy, alhoewel de privacy van de Ierse, Poolse en Letse apps kan verbeterd worden.” Hij bekritiseerde wel het feit dat het Google/Apple Exposure Notifcations framework niet open source was op dat moment (intussen is de code daarvan wel openbaar) en het feit dat de Google Play Services privégegevens verzenden naar Google (iets dat op alle Androidtelefoons met Google Play Services gebeurt, los van de aanwezigheid van dit framework.)

Analyses van de broncode van de apps zoals deze van Coronalert en deze van Immuni, tonen aan dat de apps geen persoonlijke data bijhouden en versturen.

De grootste kritiek op het framework komt van prof. Serge Vaudenay, cryptograaf van EPFL. Hij klaagt over het feit dat de GAEN (toen nog) closed source was en stelt dat een aantal aanvallen op het systeem mogelijlk zijn. Het DP-3T-team heeft geantwoord op de kritiek.

Conclusie

Vergeet al de samenzweringstheorieën en de bezwaren van privacy-activisten die nooit uitgezocht hebben hoe deze apps werken: gedecentraliseerde open-source contact tracing apps die gebruik maken van de Google/Apple Exposure Notification API zijn geen Big Brother en geen instrument voor massale spionage van de bevolking. Het protocol werd ontwikkeld door academici gespecialiseerd in IT-beveiliging en privacy en de broncode van de apps kan door iedereen nagekeken worden. Uitgebreide documentatie beschrijft de werking van de apps, en legt uit wat er allemaal gedaan wordt om de privacy van de gebruikers te beschermen. Door anonieme ephemerial IDs te gebruiken en geen locatiegegevens te verzamelen, weten deze contact tracing apps minder van u dan de meeste social network apps of dan het besturingssysteem van uw telefoon zelf. Als u zich zorgen maakt om uw privacy, hebt u belangrijkere dingen om u zorgen over te maken.

Contact tracing apps kunnen zeer nuttig zijn in het bestrijden van de epidemie, ook als slechts een klein deel van de bevolking ze gebruikt. Voor mij is het gewoon een kwestie van verantwoordelijkheid waarom ik gebruik maak van deze apps: om anderen te beschermen, om onze maatschappij en economie te beschermen en uiteindelijk om zelf beschermd te worden door anderen die de app gebruiken.

Meer informatie

Geschiedenis van dit artikel

Update 19 september 2020: voeg links naar broncode Coronalert toe – Voeg informatie toe over de implementatie van microg van de API

Update 29 september 2020: voeg informatie over EU gateway service toe

Update 13 oktober 2020: voeg informatie over laagrisico- en hoogrisicontacten in Coronalert toe

Update 19 oktober 2020: EU federation gateway actief in 3 landen

The truth about decentralized contact tracing apps like Immuni

Lees dit artikel in het Nederlands: De waarheid over gedecentraliseerde contact tracing apps zoals Coronalert

Too long to read? Skip to the conclusion.

Table of contents

Those that know me a bit, know that I think that privacy is very important. For this reason when they started talking about contact tracing apps for COVID-19 a few months ago, I thought this was an extremely bad idea. Having an app constantly tracking where you are and who you meet, is only something which you think is possible in undemocratic nations and dictatorial regimes. Something you expect in North Korea, China but not in European countries, where our privacy is supposed to be protected by the GDPR. And then what about the reliability of these apps? Bluetooth was never made for this. It would result in many false positives and negatives. No way I would ever install such an app.

That was at least my opinion a couple of months ago. Now my opinion about this matter has completely changed. Reading about decentralized solutions based on the Google and Apple Exposure Notification (GAEN) API and DP-3T, has completely changed my mind. I use the Italian contact tracing app Immuni and I am willing to use a similar decentralized app from any country where I am staying.

DP-3T

Decentralized Privacy-Preserving Proximity Tracing or DP-3T is an open protocol developed by different universities amongst others ETH and EPFL from Switzerland, KU Leuven from Belgium, Tu Delft from the Netherlands.

This comic shows a simple explanation of how it works.

Comic describing the DP-3T protocol

Technically speaking, every day a new random seed (based on the seed of the day before) is created on every user’s phone, and this daily seed is saved on the phone for 14 days. From this seed are derived ephemeral identifiers (EphIDs). These EphIDs change several times an hour.

EphIDs are exchanged with other users of the tracking app by Bluetooth Low Energy (BLE) and every phone saves the EphIDs he received locally on the phone, together with the date and the attenuation of the signal, which can be used to estimate the distance.

When a user is tested positive for COVID-19, this user can, with the help of authorized health personal, upload the seed of the first day he was contagious, to a central server. All previous daily seeds are deleted from the infected user’s phone, and a completely new random daily seed is created, so that he does not become trackable in the future.

All other app users regularly download a list of all daily seeds of all contagious users from the central server and they can derive all EphIDs from them. The app compares all these EphIDs with the list of stored EphIDs which they met recently. Based on the amount of matching EphIDs the app can calculate how long the two have seen each other and based on the stored attenuation it can estimate the distance. If they were longer than a certain time within a certain distance, a warning will be given to the user that they were exposed to a contagious user, with instructions on what to do.

More details can be found in the DP-3T white paper.

Apple/Google Exposure Notifications API

The Google/Apple Exposure Notifications API (sometimes abbreviated as GAEN) is an API created from a joint effort by Google and Apple and enables the creation of decentralized contact tracing apps. This API, which is based on the principles of the DP-3T protocol described above, can only be used by apps approved by Google and Apple (only one per country, and created by official healthcare instances). Only decentralized contact tracing apps which do not collect any location information can get approved.

Apple by default does not allow background apps to use Bluetooth, except for approved contact tracing apps using this API. This means that on Apple iPhone, this API is the only way to create a reliable contact tracing app. Apps which don’t use this API, such as the StopCovid France app, have to apply work-arounds to keep the app waking up in the background, making them potentially less reliable and draining the battery more.

The DP-3T framework has since been modified to make use of the Exposure Notifications API.

Some of the apps currently available using the Google/Apple Exposure Notifications API are SwissCovid (Switzerland), Immuni (Italy), Corona-Warn-App (Germany).

The source code of the implementation of the framework for Android and iOS of the API were published the second half of July 2020.

Frequently Asked Questions – Debunking some myths

These apps appear to be the subject of deliberate fake news campaigns or at least emotional reactions resulting from a lack of understanding of how they work. Here I will try to address some questions.

Will these apps violate my privacy? Will the authorities know who I meet and where I am, what I do?

The applications based on the Google Apple Exposure Notification API do not know any personal information about the users: they don’t know your name, your phone number, where you live, or any other personal data. They also do not collect location data, so they don’t know where you are.

The only thing these apps do, is exchanging anonymous codes with other people in your neighbourhood. These codes change multiple times a day, making it impossible to keep tracking you.

The exchanged codes are only stored on your own phone and not in a central database. So there is no way for the authorities to know how many people and who you met.

Contact tracing apps usually apply even more extensive kinds of measures to protect security and privacy: for example dummy uploads are done in order to prevent network traffic analysis revealing a positive test, CA or certificate pinning to prevent MITM attacks, etc…

This is not a mass surveillance tool or Big Brother, as some try to let you believe.

How can I be sure that the app really works as promised and really does not collect and send private information?

These apps are usually open source, which means you can check the code to see how they work and what they do exactly. Even if you personally don’t have the knowledge to check the code, rest assured that there are enough experts taking a look at this, and will shout loudly when something is wrong. It has to be said: the only ones shouting loudly about these apps are politicians and activists who clearly have never looked at the source code, nor at the documentation. For example code reviews of Coronalert and Immuni have found these apps do live up to their privacy claims.

Here are some links to the source code of the different apps and their documentation:

On the issue tracker of these apps you can report problems and ask questions.

Also the source code of the Exposure Notifications framework, used by these apps, is available:

Why should I trust Google and Apple, who have a bad track record in privacy?

Actually Google and Apple don’t even need this API to track you. If you are running a phone running iOS or Android with Google Play Services, you actually already have much larger privacy problems than these decentralized, open source contact tracing apps. The same if you are using any of Facebook, Twitter, Instagram, TikTok, NetFlix, Spotify, FaceApp, Tinder. These do know your name, your location, your interests, your friends, and this without this API. Decentralized contact tracing apps, do know much less than any of these apps. This picture compares the different permissions SwissCovid, Facebook and Whatsapp can request.

That being said, there is now a way to run these contact tracing apps without using any Google services on your phone. The microg project now includes its own completely open source implementation of the Exposure Notification API. It can be installed on an Android distribution like LineageOS. It is confirmed that SwissCovid and Immuni work with microg’s implementatoin of the API, probably other apps do too. This way you can run these applications without having to rely on any of Google’s or Apple’s proprietary binaries.

Why does this app require Location setting to be enabled on my Android phone if no location information is collected?

To scan for nearby Bluetooth devices on Android the Location setting needs to be switched on because Bluetooth scanning can in theory be used to determine your location. For example this is used by navigation apps to determine your location in underground tunnels. In reality, apps making use of the GAEN API are not allowed to request your location. It can be verified in the source code of the app that at no time it determines your location. In Settings > Location > App permission you can still disable location access to apps. In Android 11, which came out in September 2020, it is noe required any more to have Location enabled on your device in order to use contact tracing apps based on the Exposure Notification API.

Will this app give me a warning every time an infected person passes nearby, resulting in many false positives?

The apps will only give warnings when certain conditions, usually defined by the government based on epidemiological data, are satisfied. For example, the Italian Immuni app will give a warning when someone is standing within a distance for 2 metres for at least 15 minutes. The SwissCovid app requires a 15 minute contact within 1,5 metre distance. Coronalert will show you also low-risk exposures in the app, however only in case of a high-risk exposure (at least 15 minutes within 1,5 – 2 m of distance) will result in a red screen and an explicit exposure notification. Only in this case a test and quarantine is recommended.

The distance is estimated from the attenuation of the signal. Unfortunately, attenuation will depend on lots of parameters, such as the the phone model being used and the direction in which it is hold, etc. Google adds a per device correction value to the attenuation so that values should be similar between different devices. The thresholds being used are based on experiments in different environments and can be modified in the future in order to lower false positives and negatives. Immuni for example uses an attenuation threshold of 73 dBm.

So no, contact tracing apps are not going to give you a warning when anyone who shortly passed nearby, is tested positive. Only when reasonable thresholds are exceeded, you will get a warning. Nevertheless, false positive and false negatives are possible. Authorities also realize this, and view the tracing app as a support tool for tracing, but not as a complete replacement for manual contact tracing. A contact tracing app also does not replace a diagnostic test.

Are these apps useful if not everyone or at least a large part of the population downloads them?

Contact tracing apps are certainly useful, even if only a part of the population uses them.

A highly quoted article from Oxford University states that if 60% of the population installs the contact tracing app, this can completely stop the epidemic. However what is often not quoted is the next part of the phrase: “even with lower numbers of app users, we still estimate a reduction in the number of coronavirus cases and deaths.” They estimate that that one infection will be averted for every one to two users.

So even much lower numbers than 60% are useful to help flattening or crushing the curve, saving lives.

Will this drain the battery of my phone?

By using Bluetooth Low Energy, battery consumption should be limited. Bluetooth Low Energy was created specifically for low energy consumption and is also being used to connect to smartwatches and wireless headphones. Battery consumption should be less than 5% in the worst case, if you otherwise did have Bluetooth completely disabled.

Do I need to install another app when I go abroad?

With support of the European Union, a gateway service has been built that allows the exchange of keys of infected persons between European countries. The 19th of October 2020 the Italian (Immuni), German (Corona-Warn-App) and the Irish app (StopCOVID Tracker) started using this. It is planned that other decentralized contact tracing apps of the European Union will connect to this this gateway too, for example the Belgian Coronalert will add support in November.

However note that keys can never be exchanged with the StopCovid France app because this one uses a centralized system instead of the decentralized DP-3T.

What do experts say about these apps?

First it’s important to repeat that DP-3T, and hence the Google/Apple Exposure Notifications framework based on it, were designed by academics from universities in different countries. Prof. Bart Preneel (KU Leuven), cryptographer, who contributed to the DP-3T framework, says that “for once, Google and Apple are on the right side of privacy“.

The British Information Commissioner’s Office (the national data protection authority) “believes the CTF (Google/Apple’s contact tracing framework) is aligned with the principles of data protection by design and by default, including design principles around data minimisation and security.”

In a report from prof. Douglas Leith (Trinity College Dublin), analysis of network traffic of contact tracing apps was done. He concludes: “We find that the health authority client apps are generally well behaved from a privacy point of view, although the privacy of the Irish, the Polish and Latvian apps could be improved.” They criticize the closed source nature of the Google/Apple Exposure Notifications framework though and the fact that Google Play Services sends private data to Google (something which happens on any Android phone having Google Play Services installed, irrespective of the presence and usage of this framework). Update 23 July 2020: the source code of the framework itself is now available.

The biggest criticism of the framework appears to come from prof. Serge Vaudenay, cryptographer of EPFL. He complains about the closed source nature of the GAEN, and the fact that some attacks are possible. There is an answer by the DP3T team to one of his papers. Update 23 July 2020: the source code of the GAEN framework itself is now available.

Conclusion

Forget all conspiracy theories and emotional objections by privacy activists who never looked at how these apps work: open source decentralized contact tracing apps making use of the Google/Apple Exposure Notification API are not Big Brother, no mass surveillance instrument. The protocol has been developed by academics specialized in security and privacy in IT and the source code of the apps can be verified by anyone. Extensive documentation describes the working of the apps and what is being done to protect the privacy of the users. By using anonymous ephemeral IDs and not collecting any location information, these contact tracing apps know less from you than the average social network app or your phone’s OS itself, so if you are worried about privacy, you have more important things to look at.

Contact tracing apps can be very useful in combating this epidemic, also if only a small part of the population is using them. For me it’s simply a matter of responsibility installing these apps: to protect others, to protect our society and economy and in the end to get protected myself by others using the app.

Further information

History of this article

Update 23 July 2020: Added links to the source of Google and Apple Exposure Notifications framework – Added info about Belgian contact tracing app in development – Added link to picture comparing permissions requested by SwissCovid, Facebook and Whatsapp

Update 6 September 2020: Added question about Location requirement on Android phones

Update 19 September 2020: Added link to source code of Belgian Coronalert app – Added info about an Expsore Notifications API implementation in microg, enabling you to run these apps without Google services

Update 4 October: add information about EU gateway service

Update 19 October: EU federation gateway service in use by 3 apps

Apple forcing its own web browser to iTunes users

It seems that recently, Apple started pushing its Safari web browser to all Windows users having iTunes installed. I’ve never been an Apple fan: I think the OS is certainly not more userfriendly in contrast to what some people say, and although it is somewhat Unix based, they removed and re-implemented half of it (I’m thinking of things like launchd, broken NIS support and others), which is terrible for people used to *nix. And I have my doubts about the hardware too: apparently the latest generation Macbook Pro still come with way too less USB ports to work comfortobly, the international keyboards are different from standard PC keyboards, and I’m still not sure it is really that cheap, or at least the “Pro” stuff).

With the decision to force the installation of Safari on all Windows systems running the Apple updater, Apple is finally showing its real face: just like Microsoft, it does not care at all about its users and will do whatever is necessary to gain widespread adoption.

Anti-competitive behaviour

Finally Microsoft lost the appeal against the ruling of the European Commission. I heard an analyst say on the radio here that this would be bad for customers: users would receive an OS without multimedia player now, and would have to search for such a basic application themselves. Not so knowledgeable people, would even pay for such software. It’s unbelievable that people who don’t even know what this case is about, are being considered as “experts”. Microsoft is still allowed to sell the version with media player, and actually as history has proven already, almost nobody will be interested in distributing the OS without the media player. The most important thing of this ruling (and always ignored in popular media), is that Microsoft is forced now to publish “interoperability information”, which can be used by for example the Samba team, to better implement things like Active Directory support. This is what matters in this ruling! For those people who think that Europe is only trying to bully a successful foreign commercial company, please read the whole ruling. As you’ll see, this was not a light decision. See paragraphs 807-809 for the decisions related to the interoperability information.

Speaking of anti-competitive behaviour, Apple currently is not much better than Microsoft. The new iPOD generation, protects its internal database with a hash, making it impossible to play any files uploaded with programs other than iTunes. All other alternatives cannot be used anymore, and because iTunes only exists for Windows and Mac OS X, Linux users are completely locked out. A few days later, the hash was already cracked, so this proves once again that all this DRM-alike stuff is not working at all, and just annoying users. Actually this is not the first time Apple is trying to block its competitors. It already has done something similar with the DAAP protocol in the past, also locking out all non-iTunes users. Hello Europe, will you continue accepting this?

If anybody knows of a good alternative for the iPOD, supporting Ogg Vorbis and having a capacity of at least 20 GB, I would like to hear about it. And don’t answer Cowon’s iAUDIO. Owning an iAUDIO M3 for a bit more than 3 years, I know that this player has a very serious hardware design flaw, actually making the whole device almost unusable in the end, and technical support in Europe is almost non-existent. So no more Cowon for me anymore…

Resistance is futile, you will be packaged!

Today, I had again the honour to work with an operating system which is not based around a package manager. The victim: Mac OS X Server. It’s a brand new Mac Pro machine being used as a mail and web server.

Mac OS X Server already comes with most software for configuring a web and mail server included, and has graphical configuration tools. Postfix, Cyrus, Amavisd-new, Spamassassin, Clamav, Apache HTTPD, etc, are all there by default, and easy to configure. Sounds great? Wait a minute…

The problem is that the versions included, are really old, even completely outdated. Let’s take Apache. The version included is some 1.3 version. If you need Subversion running on Apache with Webdav support, then you need at least Apache 2.0… Clamav? the included version is some 0.88 version, which cannot use today’s virusdb updates anymore. That makes Clamav completely useless… Spamassassin? You have the outdated version 3.0.1, hardly impressive if you need to filter’s todays spammer’s creations.

So to make your system really useful, you have to compile a lot of programs by hand. On the system there was Macports installed, and Perl version 5.8 (not sure if it came like this by default, or someone else installed these on this machine before I touched it). So I installed Spamassassin with Perl 5.8 CPAN. All went fine. Let’s restart amavisd, and it will be using the new spamassassin, right? Wrong! Amavisd-new itself is a Perl program, and does not use the spamassassin or spamc binaries, but directly accesses the Spamassassin Perl module. amavisd-new was still using Perl 5.6 as installed by default in Mac OS X, while Spamassassin used Perl 5.8 from Macports, so amavisd-new only found the old Spamassassin in @INC. That should not be too difficult to fix: let’s just change the shebang in amavisd-new, so it uses Perl 5.8 in /opt/local/bin. I restart amavisd, and got a lot of errors of missing Perl modules. By trial and error (read: installing dependency, trying to start amavisd, getting new error, installing dependency,….), I succeed in the end in installing all its dependencies, and amavisd starts fine now. A bit later, new mail starts arriving, and this causes weird errors in the amavisd log (something about wrong file handles). Huh? Well, the amavisd-new included in Mac OS X is very old (from 2004 or 2005 if I remember correctly). Maybe it simply does not work with Perl 5.8?

So now I had to upgrade amavisd-new too… Fortunately some great documentation on the web helped me a lot. Again I had to install some Perl dependencies with cpan, I had to patch amavisd-new for Mac OS X as instructed in the guide, and I had to recreate a new amavisd.conf file. But in the end, I finally had a working amavisd-new installation.

But we don’t have finished yet! Now it seems mails are not scanned anymore with Razor2, although it is installed by default in Mac OS X and I have activated it in my Spamassassin 3.2 configuration… Well it’s the same problem again: Razor2 is installed in Perl 5.6 @INC, but not in Perl 5.8. So again I had to grab the sources and install it by hand, to make it work. While at it, I also compiled Pyzor and dcc-client. And I created a little cronjob wich uses sa-update to grab new rules from SARE.

So, after several hours of work, I think I finally have an adequate working spam filtering system on Mac OS X Server. On an operating system with a good package manager and enough available packages, such as Debian or Mandriva, this would have cost me about an hour at most. Operating systems like Mac OS X, Slackware and others which lack a complete and well integrated packaging system and ditto repositories, really make this a terrible experience. Avoid them if you can!