Maskeer ← naar de tool

Architectuur en bewijs

Deze pagina beschrijft hoe zeropii Maskeer werkt, wat er is gemeten en wat de tool niet doet. Bedoeld voor wie moet beoordelen of dit in de organisatie past, en voor wie het gewoon wil narekenen.

Waar je document heen gaat

Er staat geen stap 4. De verwerking gebeurt in de browser die je nu open hebt; het bestand gaat niet naar zeropii of naar iemand anders. De pagina blijft werken als je je internet uitzet nadat hij geladen is.

Zelf controleren: open de netwerk-tab van je browser en maskeer een document. Er hoort geen enkel verzoek te verschijnen. De pagina stuurt bovendien een instructie mee (connect-src 'none') die de browser verbiedt om überhaupt verbinding te maken. Dat geldt ook als er per ongeluk code zou staan die het toch probeert.

Deterministisch, geen AI-model

Er komt geen taalmodel aan te pas. Herkenning gebeurt met vaste patronen, en waar het kan met een wiskundige controle:

GegevenHoe herkendControle
BSNnegen cijferselfproef
IBANNederlands rekeningnummermod-97-controlegetal
E-mailadrespatroongeen
TelefoonnummerNederlands mobiel (06 / +316)geen
Postcodevier cijfers + twee lettersgeen
KvK-nummeracht cijfersgeen

Dat heeft een praktisch gevolg: hetzelfde document geeft altijd hetzelfde resultaat. Geen model dat vandaag iets vindt en morgen niet. De keerzijde staat verderop bij de beperkingen. Een patroon zonder controlegetal kan zich vergissen, en een naam herkent een patroon niet.

Gegevens die onzichtbaar door het bestand verspreid staan

Word verspreidt lopende tekst vaak over losse stukjes in het bestand, op plekken die je op je scherm niet ziet. Een BSN dat er voor jou uitziet als één getal, kan intern in stukken verdeeld staan.

Eenvoudige maskeertools lopen het bestand stukje voor stukje af, vinden zo'n opgeknipt gegeven niet, en melden "niets gevonden". zeropii Maskeer vindt die gegevens wél, ook wanneer ze over meerdere stukjes verdeeld staan. De rest van het document blijft ongemoeid. Hoe betrouwbaar dat is, staat verderop bij Wat er gemeten is.

Welke onderdelen worden gelezen

Niet een vaste lijst met plekken waarvan wij dachten dat er tekst staat. De tool loopt alle onderdelen van het bestand langs, en de inhoud bepaalt hoe elk onderdeel wordt behandeld. Onderdelen die niet gelezen kunnen worden (een afbeelding bijvoorbeeld) worden niet stilzwijgend overgeslagen maar gemeld, in het scherm én in het rapport.

Wordt gelezen en gemaskeerdWordt niet gelezen
  • Hoofdtekst en tabellen
  • Kop- en voetteksten
  • Voetnoten en eindnoten
  • Tekstvakken en vormen
  • Opmerkingen
  • Bijgehouden wijzigingen, inclusief tekst die verwijderd is maar nog niet geaccepteerd
  • Documenteigenschappen (auteur, laatst opgeslagen door, bedrijf)
  • Het adres achter een e-maillink
  • Gegevens die een zaaksysteem in het bestand heeft meegegeven
  • Opgeslagen tekstblokken en autotekst
  • Tekst in afbeeldingen of scans: er zit geen tekstherkenning in
  • Namen van personen: een naam heeft geen vaste vorm om op te zoeken. Dat zit in zeropii voor organisaties
  • Straatnaam, huisnummer en woonplaats: hier wordt van een adres alleen de postcode gemaskeerd
  • Buitenlandse rekeningnummers, vaste telefoonnummers
  • Ingesloten bestanden zoals een meegestuurde spreadsheet

Wat er gemeten is

Onderstaande cijfers komen uit de tests die bij elke wijziging draaien. Ze staan hier zoals ze zijn, niet afgerond naar iets mooiers.

MetingUitkomstWaarop
Versnipperde gegevens teruggevonden 14 van 14 12 documenten met gegevens opgeknipt over meerdere stukjes, ook midden in een woord
Gegevens buiten de hoofdtekst gevonden en weg 14 van 14 opmerkingen, verwijderde wijzigingen, documenteigenschappen, e-maillinks, zaaksysteem-gegevens
Document blijft heel 9 van 9 zaaknummers, grafiekwaarden, bladwijzers en stijlen mogen niet als gegeven worden aangezien
Verzoeken naar internet tijdens verwerking 0 gemeten in een echte browser op de live pagina

Eerlijk over wat dit is: de testdocumenten zijn door ons gemaakt, met verzonnen gegevens. Dat betekent dat ze bewijzen dat de tool vindt wat wij erin hebben gestopt. Niet dat hij alles vindt wat in de praktijk voorkomt. Precies die beperking heeft ons eerder pijn gedaan: een testverzameling die dezelfde blinde vlek had als de code liet gegevens in opmerkingen ongemoeid, terwijl alle tests groen stonden. Daarom staan er nu ook tests die zijn geschreven door mensen die de code niet hadden gebouwd, met als opdracht hem te breken. Er is geen meting op een echte, onafhankelijke Nederlandse testverzameling; als we die doen, komt hij hier te staan.

Wat er mis kan gaan

Bekijk een document dus altijd zelf voordat je het deelt. Automatische maskering is een hulpmiddel, geen garantie.

Het rapport

Bij elk document kun je een rapport downloaden. Daar staat in wat er is gevonden per soort, hoe vaak, welke onderdelen zijn gelezen en welke niet, plus een controlegetal (SHA-256) van het bestand vóór en na. Wat er niet in staat: de gegevens zelf. Geen BSN, geen adres, ook niet versleuteld of gehasht. Een BSN is negen cijfers, dus een hash daarvan is met een gewone computer binnen seconden terug te rekenen. Dat zou het rapport zelf tot een lek maken.

Versie

Deze pagina beschrijft versie 0.2.0. Het versienummer staat ook in elk rapport dat je downloadt, zodat je later kunt nagaan met welke versie een document is behandeld.

Iets gevonden?

Denk je dat er een gegeven doorheen glipt, of dat er iets anders niet klopt: mail [email protected]. Meldingen over beveiliging staan beschreven in security.txt. Stuur geen echte persoonsgegevens mee. Een beschrijving of een document met verzonnen gegevens is genoeg.