Corona QR-codes: welke data gebruikt China’s Health Code?


Originele afbeelding door Gerd Altmann

In Nederland beschikken we inmiddels over de CoronaCheck-app, waarmee een QR-code voor binnenlandse toegang tot evenementen en internationaal reizen gegenereerd kan worden. Zoals ik in een eerder artikel beschreef had China in februari 2020 al iets vergelijkbaars met zijn Health Code-apps. Tijdens de piek van de coronacrisis in China bepaalde de kleur van de Health Code, een door een app gegenereerde QR-code, of je kon gaan en staan waar je wilde (groen), of je 7 dagen verplicht (!) in quarantaine moest (geel) of dat je 14 dagen binnen moest blijven (rood).

Maar daar waar wij precies weten welke data in de CoronaCheck-app worden gebruikt is dat bij de Health Code altijd schimmig gebleven. MIT Technology Review verzamelde in mei 2020 een database met 49 verschillende COVID-19 tracing-apps. Over de Health Code-app schreef MIT: “Er is heel weinig openbare informatie beschikbaar over hoe de Chinese technologie werkt.” Inmiddels zijn we een jaar verder en probeer ik in dit artikel te achterhalen welke data werden en worden gebruikt ten behoeve van de Health Code.

Honderden varianten

Het is niet eenvoudig de Health Code-apps te doorgronden. Niet alleen zijn er honderden regionale varianten en hebben individuele steden vaak een eigen app, de specificaties veranderen ook continu en apps maken gebruik van verschillende soorten data.

De South China Morning Post beschreef vorig jaar hoe steden verschillende methoden voor contactonderzoek gebruikten. Sommige apps vereisten het delen van GPS-gegevens, die, zoals we zullen zien, accurater zijn dan data van GSM-masten via telecomproviders. Of die GPS-gegevens ook daadwerkelijk uitgelezen werden en welke steden het betrof meldt SMCP echter niet. Andere apps namen genoegen met de locatie, reishistorie en lichaamstemperatuur die gebruikers (dagelijks) zelf invoerden. Hoe de verzamelde data werden geïnterpreteerd kon ook verschillen.

Een bezoek aan een risicogebied als Wuhan, bepaald aan de hand van telecom- en transportdata, en gegevens van de woongemeenschap waarin men leeft werden in 2020 klaarblijkelijk automatisch vertaald naar code geel of rood. De Shanghai Health Code gaf volgens een analyse uit juni 2020 bijvoorbeeld een rode code aan mensen die:

  • arriveren uit risicolanden of –gebieden, of deze langer dan 4 uur hebben bezocht
  • onder medische behandeling staan
  • vermoedelijk besmet waren
  • nog waren opgenomen in het ziekenhuis

Contact met besmette personen werd, net als bij het GGD-contactonderzoek bij ons, uitgevoerd door overheidspersoneel en niet vastgesteld met behulp van bluetooth- of GPS-tracking.

Regulering

Rond het moment van de lancering van de eerste Health Code-apps in februari 2020 kwam de Cyberspace Administration of China (CAC), die in het land het internet en de cyberveiligheid reguleert, al heel snel met instructies om dataverzameling ter preventie van de pandemie te beperken tot het absolute minimum. Dit gebeurde mede naar aanleiding van een aantal ernstige datalekken. Zo circuleerden er in WeChat-chatgroepen lijsten met de gegevens van besmette personen.

Ook zou data alleen verzameld mogen worden om de mobiliteit van burgers weer op gang te brengen en daarbij omslachtige gezondheidscontroles (b.v. temperatuurmetingen) overbodig te maken. Bedrijven die Health Code-apps ontwikkelden zouden transparant moeten zijn over wanneer de gebruiker een rode, gele of groene code krijgt en ervoor moeten zorgen dat de data na de uitbraak verwijderd zouden worden. De vraag is echter in hoeverre lokale overheden zich aan deze instructies houden. De aandrang om goed voor de dag te komen bij de centrale overheid is soms sterker dan de wil om regels strikt op te volgen.

Een analyse van Wanshu Cong op de website van Frontiers beschrijft hoe de centrale overheid, bij gebrek aan passende wetgeving, een aantal richtlijnen heeft opgesteld voor de Health Code-apps. Nadat zowel Tencent en Alibaba – de ontwikkelaars van de eerste en meest gebruikte Health Code-apps – in maart en april 2020 beiden hun eigen standaard hadden opgesteld, werkten beide techbedrijven samen met de Chinese National Standardization Administration aan het opstellen van een serie nationale standaarden die op 29 april 2020 verschenen.

De standaard voor dataverzameling t.b.v. Health Code-apps beschreef 4 soorten data die verzameld konden worden:

  • Persoonlijke gegevens: naam, geslacht, nationaliteit, ID-type en -nummer, gebied van registratie van huishouden (‘hukou’), huisadres, telefoonnummer, gezondheidsgeschiedenis;
  • Persoonlijke gezondheidsinformatie: lichaamstemperatuur, actuele symptomen, informatie over wonen en verblijven in risicogebieden, contact met mensen uit risicogebieden, tijdstip van gezondheidsverklaring en overige informatie;
  • Reisgeschiedenis: locaties waar de persoon in de afgelopen 14-30 dagen heeft gewoond en voor een bepaalde tijd is verbleven, inclusief huidige locatie- en reisinformatie;
  • Informatie over gezondheidscertificering: beoordeling van de huidige gezondheid door betrokken instanties, inclusief beoordeling van gezondheidsrisico’s, tijdstip en redenen voor de beoordeling, testresultaten, details van instellingen voor gezondheidstests, testtijd en gegevensbronnen.

Hoewel deze standaarden een adviserend en geen verplicht karakter hebben verwijzen ze voor wat betreft privacy wel naar bestaande regelgeving zoals de Cybersecurity Law. De wetgeving in China loopt wat achter de feiten en snelle ontwikkelingen aan. De invoering van een burgerlijk wetboek (Civil Code) en de komst van een wet bescherming persoonsgegevens (zie dit recente artikel) brengen echter verbeteringen in het wettelijke kader voor privacybescherming.

Centralisering

In mei 2020 publiceerde de centrale overheid adviezen voor COVID-19-bestrijding. In artikel 16 is in de vertaling van China Law Translate te lezen hoe overheidsorganen gestimuleerd worden om gezamenlijk gebruik te maken van ‘National Unified Government Services Platform Health Information’. Door gebruik van een centrale uitwisseling tussen verschillende lokale databases zouden steden elkaars Health Codes-apps makkelijker kunnen accepteren in plaats van gebruik van de eigen Health Code-app af te dwingen.

Het centrale platform bevat verwijzingen naar data over:

  • Bevestigde en vermoede besmettingen
  • Contactonderzoek
  • Uitslagen van medische testen
  • Data over koorts
  • Locatiedata op basis van telecomgegevens (hierover later meer)
  • Transportdata (b.v. reizen met treinen en vliegtuigen)
  • Data van grenscontroles
  • Data van lokale woongemeenschapbureaus en sociale gelegenheden
  • Temperatuurmeting van diverse checkpoints
  • Informatie gedeeld door gebruikers
  • Andere gerelateerde epidemische informatie

Sommige data komen uit een combinatie van bronnen. Zo worden reisgegevens deels zelf opgegeven en zijn ze deels afkomstig uit centrale databases, zoals die van treinkaartjes en vliegtickets, die in China beide gebonden zijn aan vaste stoelnummers.

In een artikel op lexatlas-c19.org, een wereldwijd academisch project, dat juridische reacties op COVID-19 in kaart brengt, analyseerde Dr. June Wang van de Western Sydney University de databronnen van de Health Code-apps. Data waren volgens haar onder andere afkomstig uit burgerluchtvaart, spoorwegen, snelwegen, elektronische tolheffing, lokale bussystemen en telecommunicatie-exploitanten. Opmerkelijk genoeg noemt ze ook betalingsgegevens in het bezit van banken en andere financiële instellingen als bron.

To scan or to be scanned, that’s the question

Veel van wat we weten is dus gebaseerd op vastgelegde standaarden die veelal een adviserend karakter hebben. Maar dat zegt niet noodzakelijk iets over de data die daadwerkelijk door lokale overheden verzameld en gebruikt worden.

Lange tijd heb ik mij afgevraagd in hoeverre er nauwkeurige locatiedata worden vastgelegd via de Health Code-apps zelf. In de media verschenen schijnbaar tegenstrijdige berichten. In sommige plaatsen zou men QR-codes van locaties moeten scannen, terwijl men elders zijn persoonlijke QR-code uit de Health Code-app moest laten scannen. Volgens andere geluiden hoefde alleen de huidige status van de Health Code getoond te worden, zonder dat er gescand wordt. Dit lijkt misschien een arbitrair detail, maar zegt veel over de mogelijke werking van een app.

Laat ik voor degenen die er minder bekend mee zijn even uitleggen hoe het scannen van QR-codes werkt. Bij de invoering van mobiel betalen met QR-codes in China stelde men vaak de vraag ‘ni sao wo ma’ (scan jij mij?) of ‘wo sao ni ma’ (scan ik jou?). Je kon dan ofwel:

a) jouw persoonlijke QR-Code, die je opvroegtin een app, laten scannen door een ander

of

b) met een QR-codescanner (b.v in WeChat) een andere QR-code, van een persoon of organisatie, scannen. Dat kon een vaste QR-code op een bordje of printje zijn of een QR-code gegenereerd in een app.

Links: persoonlijke QR-code op smartphone die gescand kan worden voor ontvangen van betaling. Midden: man scant vaste QR-code van een locatie. Rechts: mini program QR-code wordt gescand om mini program op te starten.

Scant iemand jouw QR-code (a) dan kan de informatie opgeslagen in die QR-code (b.v. jouw identiteit) worden overgedragen aan de scannende partij. De data worden door het scannende apparaat doorgestuurd naar een centrale server. Daarbij kunnen eventueel additionele data (b.v. locatie) centraal worden opgeslagen doordat deze vastgelegd is in de gegenereerde QR-code of worden meegezonden door het scannende device (op basis van GPS).

Scan jij zelf de vaste of gegenereerde QR-code (b) dan stuur jij daarmee de data uit die QR-code door naar een centrale server. De locatiegegevens zullen dan waarschijnlijk, al dan niet indirect, opgeslagen zijn in de QR-code. Voorbeeld: aan de hand van een ID-nummer van een restaurant kan de data verrijkt worden met het exacte adres.

Wordt er niets gescand, bijvoorbeeld als je alleen een QR-code genereert in de Health Code-app en deze toont zonder dat hij door een ander gescand wordt, dan wordt de combinatie van de informatie over de scanner, de gescande en de locatie dus niet per definitie doorgezonden. Echter… theoretisch kan een app of mini program in WeChat en AliPay nog steeds de GPS-gegevens doorsturen naar een centrale server als de Health Code-app geopend wordt voor het genereren van de QR-code.

Kortom, in alle mogelijke scenario’s van gebruik van de Health Code-apps is het theoretisch mogelijk dat de locatie van de gebruiker wordt geregistreerd. Of dit ook daadwerkelijk (in elke variant) gebeurt is echter de vraag. De standaarden zeggen niets over GPS of bluetooth, wat echter niet betekent dat die door lokale overheden niet worden gebruikt.

Locatiedata

Omdat ik vanwege de inreisbeperkingen zelf niet naar China kon vroeg ik David Cohen, hoofdredacteur van Technode, vorig jaar hoe het precies zat met dat scannen. Hij vertelde me dat je in Hangzhou’s oorspronkelijke systeem een QR-code kon scannen om je Health Code op te vragen, ofwel de app zelf (het mini program) op te starten. Dat is een zeer gangbare methodiek; om een mini program snel op te starten scan je een QR-code die je in ‘de offline wereld’ tegenkomt. Je kon echter ook gewoon het bijbehorende mini program in WeChat of Alipay starten zonder iets te scannen. Dit komt overeen met wat een relatie uit Hangzhou mij vorig jaar vertelde.

Al in het begin van de coronacrisis in China werden data van telecombedrijven ingezet om aan te kunnen tonen in welke steden men de voorgaande weken geweest was. Uiteindelijk kwamen de telecombedrijven met een service waarmee iemand zijn reishistorie kon opvragen en zo kon bewijzen niet in een risicogebied geweest te zijn. Daarnaast hebben overheidsfunctionarissen in Beijing bevestigd dat data van de telecomproviders worden gebruikt om te traceren waar iemand binnen de stad is geweest.

Na de uitbraak van een coronacluster op de Xinfadi-groothandelsmarkt in Beijing in juni 2020 werkte de overheid samen met telecomproviders om te identificeren wie er in de buurt van de Xinfadi-markt was geweest. Die personen kon men dan een tekstbericht sturen. Deze data bleken niet altijd even bruikbaar. Personen die met de metro of auto langs Xinfadi waren gereisd, zonder die daadwerkelijk te bezoeken, kregen volgens een krantenartikel het bericht ook toegezonden. David Cohen’s interpretatie was dat locatiedata (destijds) beperkt zinvol en/of grofmazig waren. Grove locaties waren beschikbaar op basis van aangeroepen zendmasten, maar fijnmazige positiebepaling op basis van GPS ontbrak.

Over de situatie op dit moment vertelde David me: ”Een maand na de Xinfadi-uitbraak voegde Beijing een nieuwe functionaliteit toe waarmee je QR-codes van locaties kon scannen. Dit genereerde dan een check-informulier. Zo hoefden winkeliers geen data meer op papier vast te leggen. Maar de handhaving liet te wensen over. Een kleine kebabzaak kon er gebruik van maken, terwijl een grote markt even verderop dat niet deed”. Dit lijkt op het systeem dat in Australië gebruikt wordt en in het vorige artikel besproken is.

“Deze functie werd echter niet veel gebruikt tot de uitbraken rond Chinees Nieuwjaar dit jaar”, voegt David toe. “Op dat moment begonnen de meeste plaatsen en taxi’s/ride-hailing-chauffeurs er enkele maanden lang op aan te dringen, dat mensen hun QR-codes moesten scannen”. TechNode rapporteerde dat de regels niet eenduidig waren; in Beijing diende men in maart 2021 locaties te scannen, maar in de meeste andere steden was dat niet nodig. 

David: ”De laatste tijd heb ik, ondanks de uitbraken in Guangdong, Liaoning en Anhui, niet veel verandering gezien in de vraag om te scannen en zelfs nauwelijks in controles van mijn Health Code. Ik was gisteren in Sanlitun, dat vroeger erg streng was in het controleren van Health Codes, en hoewel de controleposten er nog zijn, denk ik niet dat ze bemand waren, laat staan dat ze mensen tegenhielden”.

Omdat Xi’an, de stad waar ik zelf ook enkele jaren gewoond heb, bekend staat als een van de steden met de meest strikte coronaregels vroeg ik mijn vriend Leo naar de stand van zaken aldaar.

“Toen het vorig jaar allemaal begon moest je je Health Code tonen, maar die werd voor zover ik me kan herinneren nooit gescand. Ze controleerden alleen of je kleur groen was. Later in 2020 veranderde de situatie en moesten we QR-codes scannen bij vrijwel elke publieke locatie of in elk openbaar vervoersmiddel. Elke locatie heeft zijn eigen QR-code. Zo hebben bussen aan de buitenkant, bij de deur, en ook in de bus zelf een QR-code. De buschauffeur controleert of je hebt gescand. Toen m’n 5G een keer niet werkte kon ik niet scannen. Ik heb toen even met de chauffeur moeten praten om de bus in te mogen. Als je bij de metro niet kunt scannen worden je gegevens genoteerd.”

Links: menu van Xi’an’s Health Code-app. Midden: Health Code gegenereerd in Xi’an’s Health Code. Rechts: Xi’an’s Health Code voor openbaar vervoer. (Oorspronkelijke QR-code is vervangen door een dummy).

“Op het moment vragen de meeste locaties, zoals winkelcentra, je echter niet meer de QR-code te scannen. Sommige locaties (b.v. Walmart) echter nog wel. Ook is het nog nodig om de metrostations en de bus in te komen. De meeste steden lijken daar al mee gestopt te zijn, maar in Xi’an is dat al zo sinds het begin van de uitbraak.”

In het derde en laatste deel van deze reeks onderzoeken we hoe de Health Code-app zich in een aantal steden verder heeft ontwikkeld en heeft verankerd in het dagelijks leven.