Beveiliging
Laatst bijgewerkt: 4 mei 2026
1. Onze security-aanpak
Fynqo verwerkt gevoelige cliënt-, financiële en zorg-data. We bouwen volgens drie principes:
- Zo min mogelijk data verzamelen — wat niet bestaat, kan niet lekken.
- Encryptie als default — at-rest, in-transit, field-level voor PII.
- Auditeerbaar — elke wijziging op gevoelige data is herleidbaar.
Voor de complete compliance-status (AVG, NEN 7510, ISO 27001) zie /vertrouwen. Deze pagina beschrijft de technische security-controls.
2. Versleuteling
In transit
- TLS 1.3 voor alle publieke endpoints (HTTPS-only, geen HTTP-fallback).
- HSTS-header met preload-list inclusion.
- Certificate pinning op interne service-to-service calls.
- API-tokens verlopen na 24u idle, refresh via roterende refresh-tokens.
At rest
- AES-256-GCM op database-niveau (Supabase managed encryption).
- Field-level encryption voor PII (BSN, bankgegevens, zorgnotities) — sleutel in AWS KMS-equivalent met key-rotation per 90 dagen.
- Object storage (documenten, uploads) versleuteld met aparte sleutel-set.
- Backups: AES-256 versleuteld, off-site replicatie EU-only, 35 dagen retentie.
3. Toegangscontrole
Authenticatie
- Bcrypt password-hashing (cost factor 12+).
- 2FA verplicht voor alle B2B-rollen (TOTP via authenticator-app).
- SSO-support (SAML 2.0 / OIDC) voor enterprise-klanten op aanvraag.
- Sessie-cookies: HttpOnly, Secure, SameSite=Lax, gehasht in audit log.
- Brute-force protection: rate-limit + CAPTCHA na 5 mislukte logins, account-lock na 10.
Autorisatie (RBAC)
- Per-portal en per-rol toegangsregels (consument, coach, bewindvoerder, gemeente, GGZ, admin).
- Row-level security op database-niveau — cross-tenant access is fysiek onmogelijk, niet alleen configurerbaar.
- Cliëntdata-toegang vereist actieve consent-record, gecheckt op elke read.
- Privilege-escalation routes (admin acties) loggen tweede signature waar relevant.
4. Audit log
- Append-only event-store. Geen UPDATE, geen DELETE op audit-records.
- SHA-256 hash chain — elke entry bevat hash van vorige entry. Tampering detecteerbaar.
- Wat wordt gelogd: login/logout, data-reads op gevoelige velden, alle data-writes, consent-wijzigingen, betalingen (initiation + approval), config-wijzigingen.
- Retentie minimaal 365 dagen live (NEN 7510-floor); voor bewindvoering 7 jaar tier configureerbaar.
- Exporteerbaar als JSON of PDF voor jaar-accountant of klacht-onderzoek.
- Wat niet in audit log: bankrekening-pincodes, wachtwoorden, volledige transactie-omschrijvingen met derde-partij-PII (geanonimiseerd).
5. Bank-tokens en PSD2
- PSD2-tokens (Open Banking) blijven bij onze AISP-provider Enable Banking — Fynqo houdt enkel een ondoorzichtige connector-id in eigen database.
- Tokens komen nooit in frontend-code, browser-localStorage of frontend-logs.
- Sessie-tokens (JWT) komen nooit in URL's of localStorage van de browser — uitsluitend HttpOnly cookies.
- Volledige Open Banking-policy op /legal/open-banking.
6. Secret management
- Secrets in environment variables, beheerd via Vercel + Supabase secret-stores. Geen secrets in git.
- Pre-commit hooks scannen op accidentele secret-leaks (gitleaks-equivalent).
- API-keys met scoped permissions — geen god-keys, één key per integratie.
- Roterende DB-credentials: per-90-dagen rotation voor service-accounts.
- SSO-tokens en OAuth-state: server-side validatie, encrypted storage.
7. AI / LLM-runtime
- Primaire provider: Anthropic Claude in EU-region.
- Zero-data-retention: Anthropic gebruikt onze prompts niet voor model-training (per contract).
- Geen US-AI-providers (geen OpenAI, geen Google) voor cliëntdata.
- Cliëntdata in prompts: alleen na expliciete cliënt-consent voor die specifieke functie.
- Optionele fallback via self-hosted RunPod EU (open-source models) voor klanten die geen externe AI willen.
- Alle AI-prompts en -responses zijn audit-logged in geanonimiseerde vorm voor traceability.
8. Netwerk en infrastructuur
- Hosting: Vercel EU (compute), Supabase EU + NL (database), Equinix Amsterdam (zorg-tier).
- Geen US sub-processors voor cliëntdata. Geen US-cloud (AWS/GCP/Azure) voor zorg-tier.
- WAF (Cloudflare/Vercel-edge) tegen OWASP top 10 — automatic rate-limiting, bot-detection.
- DDoS-mitigation via edge-CDN.
- Network isolation: production database alleen bereikbaar vanuit production-compute via VPC peering.
9. Development en deployment
- Code review verplicht (geen direct-to-main pushes, alle changes via PR).
- Geautomatiseerde tests (unit + integration + e2e) als merge-blocker.
- SAST scanning (Bandit/ESLint security) in CI.
- Dependency-audit (Dependabot, npm audit, pip-audit) wekelijks.
- Secrets-scanning op elke PR.
- Staging-omgeving met identieke security-config — geen "test-only" backdoors.
- Database-migrations met dry-run vóór productie.
10. Incident response
- 24/7 on-call rotation voor critical incidents.
- Statuspagina status.fynqo.app voor real-time updates.
- Incident-response runbook beschikbaar voor B2B-klanten op aanvraag.
- Bij datalek: notificatie binnen 72u aan AP en getroffen partijen (AVG art. 33).
- Post-mortem publicatie binnen 14 dagen voor incidenten met klant-impact.
11. Responsible disclosure
Vond je een security-issue? We waarderen verantwoordelijke meldingen.
- Mail: security@fynqo.app
- PGP-key: gepubliceerd op /.well-known/security.txt
- Response-tijd: bevestiging binnen 24u, eerste assessment binnen 5 werkdagen.
- Geen bug-bounty programma op dit moment — wel publiekelijke acknowledgement voor verantwoorde disclosures.
- Out of scope: DoS-aanvallen, social engineering richting medewerkers, fysieke beveiliging.
- In scope: alle
fynqo.appenfynqo.nlsubdomeinen, mobile apps, openbare API's.
12. Externe audits
- Pen-test: jaarlijks via externe security-firm (rapport beschikbaar onder NDA).
- NEN 7510-audit traject Q3 2026 gestart.
- ISO 27001 op roadmap voor 2027.
- SOC 2-equivalent controls beschikbaar via DPIA-proces voor klanten die formeel auditrapport nodig hebben.
13. Meer informatie
- Vertrouwen & compliance hub
- Privacyverklaring
- Open Banking-policy (PSD2)
- Sub-verwerkers
- security.txt (RFC 9116)
Laatst bijgewerkt: 4 mei 2026