Naar de inhoud
Aanvraagwijzer

Technische richtlijnen security & privacy

Hoe Aanvraagwijzer uw gegevens beschermt, hoe dat technisch is ingericht, en wat nog niet af is. We beschrijven alleen wat er nu werkelijk is; wat nog komt, staat er zo bij.

Bijgewerkt op 4 november 2026.

Samenvatting

In het kort

  • Alle gegevens staan bij Amazon Web Services (AWS) in Frankfurt (eu-central-1). Een kopie van de back-ups staat in Ierland (eu-west-1). Beide in de EU.
  • Versleuteld onderweg (HTTPS met HSTS) en in opslag (AES-256).
  • Inloggen met een code per e-mail, een wachtwoord, een passkey of Microsoft (Entra ID). Een organisatie kan voor haar medewerkers een passkey of Microsoft verplicht stellen.
  • Elk uur een back-up van de database, 35 dagen beschermd tegen wissen. Hersteldoel: hooguit 1 uur aan gegevens kwijt, binnen 4 uur weer in de lucht.
  • AI doet een eerste controle van documenten; een projectleider beslist. Documenten worden niet gebruikt om AI te trainen. Ook de AI-verwerking gebeurt in de EU.
  • We gebruiken ISO 27001:2022 en de Baseline Informatiebeveiliging Overheid (BIO) als leidraad. Aanvraagwijzer is niet gecertificeerd.

Identiteit en toegang

Manieren van inloggen

  • Code per e-mail: zes cijfers, 15 minuten geldig, één keer te gebruiken, maximaal 5 pogingen. Een aannemer of gemeente heeft geen wachtwoord nodig.
  • Wachtwoord (optioneel): opgeslagen als Argon2id-hash met een eigen salt en een geheime pepper die niet in de database staat. Wachtwoorden die in bekende datalekken voorkomen worden geweigerd; daarvoor verlaten alleen de eerste 5 tekens van de SHA-1-hash de server (k-anonimiteit).
  • Passkey (WebAuthn): gebonden aan aanvraagwijzer.nl, dus niet bruikbaar op een nagemaakte site.
  • Microsoft Entra ID (OpenID Connect met PKCE), per organisatie: alleen de Microsoft-omgeving die aan de organisatie is gekoppeld, en alleen voor medewerkers die een account of uitnodiging hebben. Een Microsoft-sessie duurt hooguit 12 uur, zodat wie in Entra wordt uitgeschakeld dezelfde dag geen toegang meer heeft.in voorbereiding

Wat een organisatie kan instellen

  • “Inloggen met passkey of Microsoft verplicht” voor medewerkers. Wie nog geen passkey heeft, voegt er eerst een toe en heeft tot dan geen medewerkersrechten.
  • Inloggen alleen via Microsoft, als de organisatie dat wil.
  • Rollen: beheerder, projectleider, aannemer of gemeente, netbeheerder. Een aannemer ziet alleen de eigen projecten, een netbeheerder alleen de projecten waarvoor hij is uitgenodigd. Rechten worden op de server gecontroleerd, niet alleen in de browser.

Sessies en misbruik

  • De sessie staat in een cookie die alleen de server kan lezen (HttpOnly, Secure, SameSite). In de database staat alleen een hash van het sessietoken. Uitloggen beëindigt de sessie op de server.
  • Pogingen zijn beperkt per account en per netwerkadres, bijvoorbeeld 5 wachtwoordpogingen per 15 minuten per account. Wordt een limiet bereikt, dan krijgt ons beheerteam een melding.
  • Komt er een passkey of authenticator-app bij een account, dan krijgt de eigenaar daarover direct een e-mail.
  • Een e-mail bij inloggen op een nieuw apparaat.

Toegang door ons

  • Platformbeheer (wij, over alle organisaties heen) vraagt naast het inloggen een tweede factor: een authenticator-app of passkey, in elke sessie opnieuw, en opnieuw voor gevoelige handelingen als de laatste bevestiging ouder is dan 15 minuten.
  • Meekijken in een organisatie (voor ondersteuning) duurt hooguit 2 uur, wordt vastgelegd in het logboek en direct gemeld aan het beheerteam.
  • Het AWS-hoofdaccount (root) heeft MFA en geen toegangssleutels.

Opslag en versleuteling

Waar en hoe

  • Database (PostgreSQL) op een server in AWS Frankfurt, op een versleutelde schijf (EBS, AES-256). Ook de dagelijkse snapshots van die schijf zijn versleuteld.
  • Documenten in Amazon S3 in Frankfurt, versleuteld (AES-256) en zonder publieke toegang. Een bestand is alleen via het portaal op te halen, na controle van de rechten.
  • Van elk bestand wordt een SHA-256-vingerafdruk vastgelegd, zodat te bewijzen is dat het niet is veranderd.
  • Geheimen (sleutels en wachtwoorden van systemen) staan in AWS Systems Manager Parameter Store, versleuteld met AWS KMS; elke wijziging staat in CloudTrail. Ze staan niet in de code; een scan op elke wijziging controleert dat.
  • De geheime sleutel van een authenticator-app wordt versleuteld opgeslagen (AES-256-GCM).

Uploads

  • Tot 150 MB per bestand, alleen toegestane bestandstypen. Zip-bestanden worden uitgepakt met grenzen aan grootte en aantal.
  • Bestanden worden gelezen in een afgeschermde container zonder internettoegang, zonder toegang tot AWS-rechten en met een alleen-lezen bestandssysteem.

Netwerk

Wat er openstaat

  • Alleen poort 443 (HTTPS) en poort 80 (doorsturen naar HTTPS en het vernieuwen van certificaten). Geen SSH: beheer van de server loopt via AWS Systems Manager.
  • HTTPS met certificaten van Let's Encrypt en HSTS (1 jaar, inclusief subdomeinen).
  • Beveiligingsheaders op elke pagina: Content-Security-Policy, framen door andere sites geweigerd, nosniff, Referrer-Policy, en geen toegang tot camera, microfoon of locatie.
  • Verzoeken mogen hooguit 10 MB zijn, behalve op de uploadadressen.

Op de server

  • Instance-metadata alleen via IMDSv2.
  • Elk onderdeel draait in een eigen container met zo min mogelijk rechten (geen extra Linux-rechten, geen rechtenverhoging) en een geheugengrens.

Wat eraan komt

  • AWS CloudFront met AWS WAF voor de site: filters van AWS tegen bekende aanvalspatronen en adressen met een slechte reputatie, en een limiet op het aantal verzoeken per adres, strenger op de inlogpagina. Daarna is de server alleen via CloudFront bereikbaar.in uitrol
  • VPC Flow Logs: een registratie van het netwerkverkeer van de server.

Logging en monitoring

In het portaal

  • Per project en per organisatie een logboek: wie wat indiende, controleerde, besloot of wijzigde, en wanneer.
  • Bij inloggen en bij handelingen van platformbeheer wordt het netwerkadres bewaard, voor onderzoek na een incident. Na 90 dagen wordt het adres verwijderd.
  • Vastleggen wie een document bekijkt of downloadt.

Op de server en in AWS

  • De logs van alle onderdelen gaan naar Amazon CloudWatch Logs en worden 1 jaar bewaard. De server kan er alleen aan toevoegen, niet in wissen.
  • Een log van elk verzoek aan de webserver (zonder cookies en inloggegevens).
  • AWS CloudTrail legt elke handeling in het AWS-account vast, in alle regio's, met een controle dat de logbestanden niet zijn aangepast. 1 jaar bewaard.
  • Amazon GuardDuty zoekt naar verdachte activiteit. Bevindingen en elke login met het AWS-hoofdaccount gaan direct per e-mail naar het beheerteam.
  • Elke 10 minuten een automatische controle of het portaal werkt en of de laatste back-up recent is.
  • Foutmeldingen gaan naar Sentry (EU-regio), zonder persoonsgegevens: geen gebruikers, cookies, headers, formulierinhoud of AI-invoer, en e-mailadressen worden gemaskeerd.

Back-up en herstel

Wat we bewaren

  • De database elk uur (2 dagen bewaard) en elke dag (35 dagen bewaard), in een aparte S3-bucket in Frankfurt.
  • Die back-ups zijn 35 dagen vergrendeld (S3 Object Lock). De server kan back-ups alleen toevoegen, niet lezen of wissen; wie de server overneemt, kan de back-ups dus niet weggooien.
  • Een kopie van elke back-up in Ierland (eu-west-1), met dezelfde bescherming, voor als Frankfurt in zijn geheel uitvalt.
  • Documenten: S3 bewaart ze in meerdere datacenters; een gewiste of overschreven versie is 30 dagen terug te halen.
  • Elke nacht een snapshot van de serverschijf, 7 bewaard.

Herstel

  • Doelen: hooguit 1 uur aan databasegegevens kwijt (RPO), en binnen 4 uur weer in de lucht (RTO).
  • Een schriftelijk herstelplan voor drie gevallen: een fout in de gegevens, een kapotte of overgenomen server, en uitval van heel Frankfurt. In dat laatste geval zijn documenten pas weer te openen als Frankfurt terug is.
  • Elk kwartaal een hersteltest: de nieuwste back-up terugzetten in een aparte database en per tabel het aantal rijen vergelijken. Laatste test: 4 november 2026, geslaagd, terugzetten in 7 seconden. De eerste poging die dag vond een fout in het ophalen van back-ups; die is opgelost en daarna opnieuw getest.

Ontwikkeling en uitrol

Van wijziging naar productie

  • Elke wijziging gaat door een typecontrole, automatische tests en een controle op kwetsbare afhankelijkheden. Een kritieke kwetsbaarheid houdt de uitrol tegen.
  • Uitrollen gebeurt via GitHub Actions met kortlevende AWS-rechten (OpenID Connect). Er staan geen AWS-sleutels in GitHub. De server haalt de nieuwe versie op via AWS Systems Manager, niet via SSH.

Scans en updates

  • Bij elke wijziging en elke week: npm audit en pip-audit (bekende kwetsbaarheden), gitleaks (per ongeluk opgeslagen geheimen, over de hele geschiedenis) en Trivy (afhankelijkheden en de instellingen van Docker en Terraform).
  • Dependabot stelt elke week updates van afhankelijkheden, images en GitHub Actions voor.
  • Basis-images van containers en de gebruikte GitHub Actions zijn vastgezet op een exacte versie (digest of commit), zodat er niet ongemerkt iets anders wordt gebruikt.

Infrastructuur als code

  • De AWS-inrichting (server, netwerkregels, rechten, opslag, monitoring) is beschreven in Terraform.
  • Elke wijziging aan de infrastructuur alleen nog via Terraform, met een vooraf beoordeeld plan.in uitrol

AI

Wat AI doet

  • Claude (van Anthropic) doet een eerste controle van een document en laat zien wat er nog mist. Een projectleider beslist altijd; dat wordt per document vastgelegd.
  • Documenten worden niet gebruikt om AI-modellen te trainen.
  • De AI-verwerking gaat via Amazon Bedrock (AWS), met de EU-variant van de modellen: alleen in AWS-regio's binnen de EU. Bedrock slaat verzoeken niet op en deelt ze niet met Anthropic.
  • Wat er naar het model gaat, hoe fouten worden opgevangen en meer: zie het AI-beleid.

Privacy (AVG)

Rollen en afspraken

  • De organisatie die Aanvraagwijzer gebruikt (bijvoorbeeld een gemeente) is verwerkingsverantwoordelijke; wij verwerken de gegevens in haar opdracht.
  • Een verwerkersovereenkomst is op aanvraag beschikbaar.

Welke gegevens

  • Van gebruikers: naam, e-mailadres, en als ze die invullen telefoonnummer en bedrijf.
  • Van projecten: het intakeformulier, de aangeleverde documenten, controles, besluiten en berichten.
  • Alleen cookies die nodig zijn om in te loggen en de taal te onthouden. Geen advertentie- of volgcookies, geen bezoekersstatistieken van derden.

Waar de gegevens zijn

  • Opslag en back-ups: AWS in Frankfurt en Ierland (EU).
  • E-mail wordt verstuurd via Amazon SES in Frankfurt, ondertekend met DKIM en gecontroleerd met SPF en DMARC. Foutmeldingen, zonder persoonsgegevens, via Sentry (EU-regio).
  • De AI-controle: Amazon Bedrock, in AWS-regio's binnen de EU (zie AI).
  • Het zoeken van een adres gaat vanuit de browser naar de PDOK Locatieserver van de Nederlandse overheid.

Bewaartermijnen

  • Projecten: standaard 730 dagen na het afronden van de intake (of na het aanmaken als de intake nooit is afgerond), daarna automatisch gewist met alle bestanden. Per organisatie instelbaar.
  • Projecten in de prullenbak: na 30 dagen definitief gewist.
  • Netwerkadressen bij inloggen, in het logboek van het portaal: 90 dagen. Verzonden e-mails in ons e-maillogboek: 30 dagen. Serverlogs en AWS-logs: 1 jaar.
  • Wissen in het portaal haalt gegevens niet meteen uit de back-ups; die verlopen vanzelf, na hooguit 35 dagen. Een gewiste versie van een bestand is na 30 dagen weg.

Exit: aan het einde van het contract

  • Een beheerder exporteert zelf alle gegevens van de organisatie in één zip: alle projecten machine-leesbaar (JSON), elk dossier leesbaar (HTML), en elke versie van elk bestand ongewijzigd, met SHA-256 als bewijs.
  • Op de einddatum stopt de toegang. 30 dagen later wissen we alle gegevens, tenzij anders afgesproken, en sturen we een schriftelijke bevestiging.

Wat we nog doen

Eerlijk over wat nog niet af is:

Nu in uitrol

  • AWS CloudFront en AWS WAF voor de site.
  • Alle wijzigingen aan de infrastructuur via Terraform, met review.

In voorbereiding

  • Inloggen met Microsoft wordt per organisatie ingericht.
  • Beheertoegang tot AWS via IAM Identity Center met verplichte MFA, zodat er geen vaste toegangssleutels meer nodig zijn.
  • Een vaste procedure (script) voor het wissen van een hele organisatie bij vertrek; nu voert een ontwikkelaar dit uit en legt vast wie het deed en wanneer.
  • Kleinere aanscherpingen uit onze eigen controle, zoals nauwere rechten voor de server en bescherming tegen het per ongeluk verwijderen van de server.

Niet gedaan

  • Aanvraagwijzer heeft geen ISO 27001-certificaat.
  • Er is nog geen onafhankelijke penetratietest uitgevoerd.

Contact

Vragen

  • Over beveiliging, privacy of de verwerkersovereenkomst: info@intakeportaal.nl.
  • Vragen over uw eigen project stelt u aan uw projectleider.

Kwetsbaarheid gevonden?

  • Mail het naar info@intakeportaal.nl, met wat u deed en wat u zag. We reageren binnen 5 werkdagen.
  • Bekijk of wijzig geen gegevens van anderen, verstoor de dienst niet, en maak de kwetsbaarheid niet openbaar voordat we die hebben kunnen oplossen.
  • Ook te vinden in /.well-known/security.txt.