Soevereine PII-straat · Woo / open overheid
Wordsworth leest overheidsdocumenten, pseudonimiseert elk persoonsgegeven vóór indexering, en laat je er vrij in zoeken. Onthullen kan achteraf — per afdeling, met een eigen sleutelbos, intrekbaar en geaudit.
Elk document loopt één kant op. Alleen de gepseudonimiseerde vorm bereikt de index.
/ingest, content-addressed opgeslagen.Persoon 1); origineel versleuteld weggeschreven.Zoek door het corpus. De ranking draait volledig over de gepseudonimiseerde index — resultaten, scores en snippets bevatten nooit klare PII. Termen matchen op de niet-PII-tekst (BM25 + semantisch); en omdat gelijke gegevens hetzelfde pseudoniem krijgen, kun je zelfs op een pseudoniem filteren — Locatie 1 is in meerdere documenten dezelfde plaats, zónder dat je die plaats ziet. Kies een resultaat om het te openen.
Zelfde document, andere sleutelbos. Kies een afdeling: elk ziet precies de PII-types waarvoor die de sleutel houdt — HR meer, Sales minder. Elke reveal landt in het audit-spoor.
Elke afdeling houdt een andere set sleutels (grants).
Append-only: wie, welke afdeling, welke types — nooit de waarde.
🛡️Geen klare waarde verlaat ooit dit spoor of de index.
De staat houdt de sleutels — niet de cloud, niet de leverancier.
◆Rol-gebonden sleutels
Elke afdeling krijgt een grant voor precies de PII-types die ze nodig heeft. HR ziet BSN, Sales niet.
◆Per-type versleuteld
Elke PII-soort onder een eigen sleutel; een grant deelt precies één set types.
◆OpenBao-envelope
Datasleutels gewrapt door een KEK die OpenBao nooit verlaat. Auto-unseal, on-prem.
◆Deelbaar & intrekbaar
Grants geef je uit aan een afdeling en trek je in — direct, geaudit.
◆Hash-chained audit
Elke reveal is een keten-geverifieerde toegang, met de beller — zonder de waarde.
◆Geen cloud in het pad
Anonimiseren, sleutels en index draaien on-prem. EUPL-1.2, open tooling.
Down the rabbit hole. Hoe de straat en het soevereine sleutelbeheer écht in elkaar zitten — van ingest tot OpenBao.
Elk document loopt één kant op: binnenkomen, ontleden, pseudonimiseren, indexeren en doorzoekbaar maken, en — alleen met een grant — heridentificeren. Elke stap schrijft een regel in een hash-gekoppeld audit-spoor.
Envelope-encryptie: de data wordt versleuteld met een data-sleutel (DEK), en die DEK wordt door OpenBao Transit gewrapt met de key-encryption-key (KEK). De KEK verlaat OpenBao nooit — alleen wrappen en unwrappen gebeurt binnen de kluis.
Git is de bron van waarheid. ArgoCD op het homelab-cluster reconcilieert de gewenste staat uit de repo naar draaiende workloads — geen handmatige kubectl in productie.
Waarom dit soeverein is
De eigenaar van de data houdt de sleutels — niet de cloud, niet de leverancier. De sleutel-encryptiesleutel (KEK) leeft in OpenBao op eigen infrastructuur en verlaat die nooit. Zonder die sleutel is de koppeling tussen pseudoniem en persoon wiskundig niet te openen — geen externe partij, en Wordsworth zélf ook niet, kan heridentificeren. Onthullen is een bewuste, geautoriseerde daad van de eigenaar, geen standaardtoegang.
De harde garantie
Klare persoonsgegevens bereiken nooit de index, de logs, het audit-spoor, een export of een reveal-respons zonder grant. Eén invariant, overal afgedwongen — kan een stap 'm niet garanderen, dan faalt die stap dicht in plaats van te lekken.
Nog dieper? Code, ADR's en invarianten zijn open — EUPL-1.2, open tooling, geen cloud in het kritieke pad.
Interactieve demo met synthetische voorbeeldgegevens — geen echte persoonsgegevens. Zoeken en reveal draaien hier lokaal in je browser om het mechanisme te tonen; de echte straat zoekt over de index, gate't elke reveal op een afdelings-grant + sleutel, en logt de beller.