# IBP-verklaring Sterrenjacht 360

Deze verklaring beschrijft per maatregel hoe Sterrenjacht 360 past bij het
mbo-normenkader ibp (informatiebeveiliging en privacy) en het
SURF-toetsingskader. Per maatregel staat het bewijs dat wij kunnen tonen.

Laatst bijgewerkt op 3 juli 2026.

## Maatregelen en mapping

| Maatregel | mbo-normenkader ibp | SURF-toetsingskader | Bewijs |
| --- | --- | --- | --- |
| Toegangsscheiding per organisatie en per rol via row level security (RLS) in de database; studenten, docenten en anonieme bezoekers zien alleen wat bij hun rol hoort | Cluster toegangsbeveiliging (logische toegang, autorisatiebeheer) | Toegangsbeheer en autorisatie | Geautomatiseerde RLS-testsuite (fase 0 tot en met 6) die per rol bewijst wat wel en niet zichtbaar is; draait bij elke fase-check |
| Verplichte tweestapsverificatie (TOTP) voor docenten en beheerders, server-side afgedwongen in de middleware (aal2) | Cluster toegangsbeveiliging (sterke authenticatie) | Authenticatie | Middleware-poort in de code, e2e-tests van de MFA-flow |
| Studenten loggen in zonder wachtwoord via een eenmalige e-maillink (magic link); geen wachtwoorden om te lekken | Cluster toegangsbeveiliging | Authenticatie | Auth-configuratie en e2e-tests van de claim-flow |
| Gegevensopslag binnen de EU: database, authenticatie en bestanden bij Supabase op AWS Frankfurt; e-mail via de EU-regio van Mailgun | Cluster ruimte en apparatuur / leveranciersbeheer | Gegevenslocatie en doorgifte | Subverwerkerslijst met regio's, projectconfiguratie (eu-central-1) |
| Versleuteling van verkeer (TLS, HSTS) en opslag (encryptie at rest bij de subverwerkers) | Cluster continuiteit en beveiliging | Encryptie | Security-headers in middleware en vercel.json; platformgaranties Supabase en Vercel |
| Audit-log van beheerhandelingen (registreren, vrijgeven, exporteren, opschonen) met organisatie-scoping | Cluster controle en logging | Logging en monitoring | Tabel audit_log plus log_audit-functie; tests op audit-regels in de fase-suites |
| Automatische verwijdering van projectgegevens na de bewaardatum, inclusief foto's in de opslag; de docent ziet en kiest de datum | Cluster verwerking en privacy (dataminimalisatie, bewaartermijnen) | Verwijdering en retentie | Retentie-functie purge_expired_projects, dagelijkse opschoontaak, retentie-testsuite (fase 6) met voor- en na-bewijs |
| Dataminimalisatie: beoordelen kan anoniem, IP-adressen worden niet opgeslagen, rate limiting werkt op gehashte sleutels | Cluster verwerking en privacy | Dataminimalisatie | Code van de edge functions en de rate-limit-functie; tests fase 3 |
| Eenmalige beoordeeltokens met server-side maxima en throttling tegen misbruik | Cluster toegangsbeveiliging | Applicatiebeveiliging | Tokenflow-tests fase 3 (dubbelbescherming, throttle, maximum) |
| Scheiding van omgevingen en geheimen: secrets alleen in omgevingsvariabelen, nooit in de repo; rotatie via de dashboards | Cluster beheer en organisatie | Geheimenbeheer | Gitleaks-controle bij elke commit; werkafspraken in de repo-documentatie |
| Toegankelijkheid en zorgvuldige communicatie in B1-taal | Kwaliteitsaspect dienstverlening | Toegankelijkheid | Axe-toegankelijkheidstests op de kernflows (fase 6), toegankelijkheidsverklaring |
| Gefaseerde, geteste ontwikkeling: elke fase heeft een eigen checksuite die alle eerdere fases meedraait | Cluster wijzigingsbeheer | Wijzigingsbeheer | check:fase0 tot en met check:fase6 met groen/rood-rapportage per onderdeel |
| Incidentproces met melding aan de instelling binnen 72 uur | Cluster incidentbeheer | Incidentmanagement | Intern datalek-runbook met rollen en het Supabase- en Vercel-incidentpad |

## Toelichting

- Sterrenjacht 360 gebruikt geen analytics of tracking; er staan geen
  third-party scripts op de studentschermen.
- De volledige testsuite (RLS, tokens, rekenlaag, retentie, exports en
  toegankelijkheid) draait tegen de productie-databaseconfiguratie en levert
  per onderdeel een groen/rood-resultaat.
- Vragen over deze verklaring: eric@internetid.nl.
