De Belgische eID

Een identiteitskaart schuin van boven gezien, met een goudkleurige chip, naast de gleuf van een kaartlezer.

Sinds je twaalfde zit er in je portefeuille een klein computertje. Je identiteitskaart heeft een chip, en in die chip zit álles wat je op deze site gezien hebt: twee sleutelparen op een elliptische kromme, certificaten die bewijzen dat ze van jou zijn, en een minuscule processor die kan ondertekenen zonder ooit zijn private sleutels los te laten. In dit hoofdstuk gebruik je ze echt.

Woorden die je zo nodig hebt

Chip
Het goudkleurige vierkantje op je kaart. Een echte, piepkleine computer met eigen geheugen en eigen processor. Hij krijgt stroom van de kaartlezer.
Kaartlezer
Het apparaatje waar je de kaart insteekt, met een USB-kabel naar je computer. Je ouders hebben er misschien een voor hun belastingen. Zonder lezer kan je dit hoofdstuk wel lezen, maar de demo niet doen.
Helper
Een klein programma dat op de achtergrond draait op je computer en de brug vormt tussen je browser en de kaartlezer. Zonder dat programma kan geen enkele website bij je kaart — dat is met opzet zo, anders zou elke website zomaar je kaart kunnen uitlezen. Je installeert het één keer; zie "Wat je nodig hebt" hieronder.
Pincode
Vier cijfers die je kreeg bij je kaart. De chip doet niets met je private sleutels zonder die code. Drie keer fout: geblokkeerd.
Rijksregisternummer
Het nummer waarmee de Belgische Staat jou kent. Het staat op je kaart en begint met je geboortedatum, achterstevoren.

Wat er in de chip zit

WatWaarom
Je naam, geboortedatum, rijksregisternummerOndertekend door de Staat, dus onvervalsbaar
Je adresApart opgeslagen, want het verandert vaker dan de rest
Je pasfotoEen JPEG van een paar kilobyte — in base64 als je ze uitleest
Sleutel authOm te bewijzen dat jij het bent bij het inloggen
Sleutel signOm documenten te ondertekenen, juridisch geldig
CertificatenDe ketting van vertrouwen tot aan de Belgische Staat

Het belangrijkste staat er niet bij: de private sleutels kunnen de chip niet verlaten. Er bestaat geen commando om ze uit te lezen. Het enige wat een programma kan vragen, is: "onderteken dit voor mij". De chip doet dat vanbinnen, nadat jij je pincode gaf, en geeft alleen de handtekening terug. Daarom is je kaart veiliger dan een sleutel op je harde schijf: die kan gekopieerd worden. Een chip niet.

Wat je nodig hebt

Dit hoofdstuk werkt alleen op een computer — niet op je gsm of tablet. Een smartphone heeft geen aansluiting voor een kaartlezer en er bestaat geen versie van de helper voor Android of iOS. Lees dit hoofdstuk gerust op je telefoon, maar doe de demo op een Windows-, macOS- of Linux-computer.

  1. Je eID en je pincode.
  2. Een kaartlezer, aangesloten op deze computer via USB. Sommige laptops hebben er zelfs een ingebouwd; anders volstaat een lezer van een paar euro.
  3. De officiële eID-software van de overheid — download ze op eid.belgium.be. Die herkent je kaart en je kaartlezer.
  4. De helper van het beID-platform — download die op beid.hermesplatform.be/download. Dat is het programma dat deze site (en elke andere site die met je eID werkt) nodig heeft om bij de kaartlezer te kunnen.

Beide installaties doe je één keer; daarna draaien ze op de achtergrond. Mist er iets, dan zegt de demo hieronder precies wat: "geen kaart of lezer gevonden" of "de helper draait niet op deze computer".

Probeer het met je eigen kaart

Let op: deze demo gaat wél langs een server. Dat kan niet anders — de kaartlezer wordt aangesproken door het beID-platform, en het antwoord komt via een beveiligde omweg terug. Alles wat van je kaart komt, wordt één keer op je scherm getoond en daarna weggegooid. Niet opgeslagen, niet gelogd, aan niemand doorgegeven. Doe dit alleen met je eigen kaart.

  1. Kies wat je wil doen. Begin met Identiteit uitlezen.
  2. Klik Start de kaartsessie. Je wordt doorgestuurd, de lezer licht op, je geeft je pincode.
  3. Je komt terug met je gegevens op het scherm — én het bewijs dat ze echt van je kaart komen.
  4. Probeer daarna Ondertekenen met de authenticatiesleutel: typ een tekst, laat je chip ze ondertekenen, en zie hoe deze site de handtekening controleert. Dat is hoofdstuk zeven, in het echt.

Over sign: die handtekening is juridisch even geldig als je handtekening met een pen. Voor deze demo maakt dat niets uit — je ondertekent een zinnetje dat nergens bewaard wordt. Maar onthoud het verschil: auth zegt "dit ben ik", sign zegt "ik ga akkoord". Geef je pincode voor sign nooit aan een site die je niet vertrouwt.

Wat er in die paar seconden gebeurt

  1. Deze site schrijft op wat ze wil (bijvoorbeeld "lees de identiteit"), zet dat in base64 en ondertekent het met haar eigen private sleutel. Zo weet het platform dat het verzoek echt van hier komt. (Hoofdstuk 1 en 7.)
  2. Je browser stuurt dat naar het platform. De lezer wordt wakker, jij typt je pincode, de chip doet haar werk.
  3. Het platform stuurt je terug met een code: een willekeurig nummertje, twee minuten geldig. Er zit nog geen enkel gegeven in.
  4. De server van deze site wisselt die code in bij het platform, en ondertekent ook dát verzoek. Terug komt een token met je gegevens, door het platform ondertekend.
  5. Deze site controleert die handtekening, controleert de hash van de inhoud (hoofdstuk 2), en pas dan gelooft ze ook maar één veld.

Koos je auth of sign? Dan controleert deze site bovendien de handtekening van je chip tegen het certificaat dat diezelfde chip meestuurde — precies de Verifiëren-knop uit hoofdstuk zeven, maar met een private sleutel die in een stukje plastic zit dat je in je hand houdt.

Alles in die vijf stappen heb je al gezien: base64, hashing, sleutelparen, krommen, handtekeningen. Er komt geen enkel nieuw idee bij. Zo is het bij álle beveiliging: een handvol wiskundige ideeën, slim gestapeld.

Twee generaties kaarten

Oudere kaarten werken nog met RSA (hoofdstuk 5), nieuwere met een elliptische kromme (hoofdstuk 6). Je ziet het aan het resultaat: staat er pkcs1, dan heb je een RSA-kaart; staat er der, dan een kromme. Voor de controle maakt het niet uit — het certificaat zegt welk systeem het is.

Voor wie later zelf wil bouwen: de volledige technische handleiding van het platform staat op beid.hermesplatform.be. De code achter deze pagina volgt ze regel voor regel.

Dit is wiskunde: wat er in twee seconden gebeurt

Tussen het intikken van je pincode en het resultaat op je scherm zijn er vier handtekeningen gezet en gecontroleerd, elk een berekening op een elliptische kromme met getallen van meer dan honderd cijfers; is er minstens drie keer een hash berekend; en is er één keer een geheim afgesproken met het verf-trucje. Alles wat je op deze site één voor één zag, in een fractie van een seconde. Dat is wat wiskunde doet als je ze laat werken.