Hoe uniek zijn unieke nummers?
Neem nu iets makkelijks als een postcode: iedereen weet dat dat vier cijfers en twee letters zijn. Daar worden hele systemen op gebaseerd: bijvoorbeeld locatienet.nl. Daar kun je simpel twee postcodes intikken en je krijgt een kaartje hoe je moet reizen. Eerst vissen we een willekeurige postcode op van postcode.nl: de Einsteinweg in Amsterdam, bekend als de ringweg waar geen file meer stond toen eraan gewerkt werd. Postcode.nl geeft vele mogelijkheden, want die weg is lang. We nemen de eerste: 1013. Inderdaad, geen letters. Ik vermoed dat er alleen letters zijn als er een telefoonaansluiting is die tevens geregistreerd staat op de Einsteinweg. De postcodes zijn ooit verzonnen om verwerking te vereenvoudigen. En dat is vast aan een bestaand systeem geborduurd dat de postcodes genereert op basis van telefoonkabels of aansluitingen. Laten we checken met locatienet.nl wat die site denkt van deze niet aangeklede postcode. Die meent dat het gaat om de De Ruyterkade 1-9 in Amsterdam. Als je dan nog even doorgraaft blijkt dat de postcode van deze kade eigenlijk 1013 AA is. Maar net als ik, neemt locatienet.nl voor het gemak aan dat als je geen letters opgeeft dat je dan de eerste geldige postcode beginnend met 1013 bedoelde. Nee dus. Wat is hier aan de hand? De postcodes zijn wel uniek, maar de interpretatie ervan niet: het ene systeem kent aan een viercijferig getal de betekenis toe dat er geen bebouwing is met een geregistreerde telefoonaansluiting (of iets anders duisters), en het andere denkt dat de vier cijfers een afkorting voor de eerst geldige met letters is. Door die betekenisverschillen worden de unieke nummers van hun uniciteit beroofd. In feite zijn er voor de postcode 1013 nu twee adressen volgens twee verschillende websites. Dit betekent dat het koppelen van locatienet.nl met postcode.nl niet werkt, terwijl je best wilt weten hoe je vanuit een uitzichtloze file op de Einsteinweg er even tussenuit kunt wippen richting de De Ruyterkade. Nu is dat met die postcodes wellicht niet zo erg, maar als het met postcodes al aanmodderen is, hoe is het dan met andere identificatiecodes? En de koppeling tussen verschillende systemen, die allemaal hun eigen idee hebben over de betekenis van die codes? Wat dacht je van oormerken? Ieder beest een uniek nummer zodat integrale ketenbewaking een feit is. Van elk drupje melk weet men waar het vandaan komt, en waar het naartoe gaat. Hoe is het dan mogelijk dat volgens het Identificatie- en Registratiesysteem van de overheid Tina 28 al vijf keer geslacht is, terwijl ze volgens de eigenaar nog springlevend is? Over unieke nummers gesproken, Tina’s nummer is werkelijk uniek te noemen: NL 111111110. Wat doe je als je moet oefenen met dat systeem? Je tikt een nummer in, bijvoorbeeld allemaal enen. Maar dat voldoet niet aan de 11-proef, dus het systeem zal een foutmelding geven, dat het een ongeldig nummer is, en na een paar keer proberen, kom je dan uit op 111111110. En als je dat nu in de productie-omgeving doet, dan krijg je al die slachtmeldingen. Het nummer is wel uniek, maar de interpretatie niet: een trainee weet niet dat oefenen met zo’n systeem gevolgen heeft voor de productiedatabase. Waarom zouden sofinummers nu oplossingen zijn, als postcodes, oormerken, en andere identificatienummers zich ontpoppen als problemen? Sofinummers zijn net als oormerken negencijferig en voldoen aan de 11-proef. En wat schetste mijn verbazing laatst? Net als oormerken in paren komen, had een collega van me ook een setje sofinummers: een voorlopige en een definitieve. Uiteraard bleek het voorlopige sofinummer onuitroeibaar en levert het tal van problemen op. Het is jammer dat er op grote schaal fraude gepleegd wordt met sofinummers, maar gegeven de vele problemen met allerhande zogenaamd unieke nummers, zou dat toch werkelijk geen verrassing moeten zijn. Met alleen een 11-proef alleen kom je er niet – het eerste de beste oormerk van een rund voldoet dan ook. Prof.dr.Chris Verhoef is hoogleraar computerscience aan de VU in Amsterdam en columnist van Automatisering Gids.