Informatiebeveiliging

Hoe wij uw bedrijfsdata beveiligen — in begrijpelijke taal voor besluitvormers en met technisch detail voor uw IT- en compliance- functionarissen.

Versie
1.0
Datum
26 april 2026
Leverancier
EigenSoftware
Beveiligingsvragen
info@eigensoftware.nl

1. Samenvatting voor besluitvormers

EigenSoftware is een multi-tenant SaaS-platform voor kennismanagement en AI-ondersteunde processen. Onze klanten delen één installatie, maar elke klant heeft een volledig geïsoleerde database. We hebben in het voorjaar van 2026 een complete beveiligings-cyclus doorlopen waarin de twaalf belangrijkste maatregelen — van wachtwoordbeleid tot veld-encryptie en multi-factor authenticatie — zijn ontworpen, geïmplementeerd, gedocumenteerd en getest. Onze codebase bevat 109+ regressietests die deze maatregelen permanent borgen.

Wat u krijgt

Snel verifiëren: u mag onze GitHub-repository, de openbare HTTPS-configuratie en onze audit-log op basis van een NDA inzien. Vraag dit op via info@eigensoftware.nl.

2. Uw vragen — onze antwoorden

Uw vraagOns antwoord
Waar staat onze data fysiek? Op een server in een Nederlands datacenter (TransIP). Geen data verlaat Nederland of de EU, behoudens uitgaande verzoeken naar AI-providers (zie 'Wie heeft toegang tot onze AI-data?').
Wie kan bij onze data? Alleen ingelogde gebruikers van uw eigen organisatie, plus de verantwoordelijke beheerder bij EigenSoftware (één persoon). Toegang is gelogd, MFA-beveiligd en controleerbaar via de audit-log.
Wat als een medewerker uit dienst gaat? U deactiveert het account in de admin-omgeving — alle sessies en refresh-tokens worden direct ingetrokken. De gebruiker kan met geen enkele bestaande inlogcombinatie meer naar binnen.
Wat als een medewerker zijn telefoon kwijt is? We leveren backup-codes mee bij MFA-inschakeling. Lukt dat ook niet, dan kan een collega-beheerder MFA voor het account uitschakelen, waarna de gebruiker een wachtwoord-reset doet en MFA opnieuw inschakelt.
Wie heeft toegang tot onze AI-data? Alleen u en wij. Wanneer u een AI-functie aanroept gaat de input éénmalig naar de AI-provider (OpenAI / Anthropic / Mistral) waarbij hun data-verwerkingsovereenkomsten gelden. Wij gebruiken de Enterprise/API-tier die input niet voor modeltraining gebruikt.
Is het systeem AVG-conform? Ja. Wij hebben opslagbeperking, dataminimalisatie, recht op inzage / verwijdering, audit-logging, datalek-procedure en MFA voor admins geïmplementeerd. Een verwerkersovereenkomst (DPA) sluiten wij standaard met u af voor we starten.
Hoe weet ik dat jullie zorgvuldig blijven? Onze codebase bevat 109+ geautomatiseerde tests die elke deploy controleren of de beveiligings-maatregelen nog werken. Dependabot scant wekelijks alle externe libraries. Onze audit-log is altijd inzichtelijk.
Wat doen jullie bij een datalek? Binnen 4 uur na ontdekking informeren wij u; binnen 72 uur volgt een AVG-melding aan de Autoriteit Persoonsgegevens namens u (mits dat door u gewenst is). Zie hoofdstuk 8 voor het volledige protocol.

3. AVG / GDPR-naleving

Per AVG-verplichting beschrijven we welke maatregel wij hebben getroffen en hoe u dit zelf kunt verifiëren.

AVG-onderwerpOnze invulling
Art. 5 — Rechtmatigheid en transparantieVerwerkingen zijn gedocumenteerd in onze verwerkersovereenkomst (DPA). Logs worden alleen gebruikt voor audit en troubleshooting.
Art. 5 — DoelbindingKlant-data wordt nooit gebruikt voor andere doeleinden dan uw eigen platformgebruik. AI-providers krijgen alleen gegevens als u expliciet een AI-actie uitvoert.
Art. 5 — DataminimalisatieWe slaan alleen op wat nodig is voor de functionaliteit. Logbestanden bevatten gepseudonimiseerde e-mailadressen en nooit wachtwoorden.
Art. 5 — OpslagbeperkingLogbestanden worden na 30 dagen automatisch verwijderd. Klant-data blijft tot u opzegt of verwijdering verzoekt.
Art. 5 — Integriteit en vertrouwelijkheidTLS 1.2/1.3 in transit, AES-256-GCM op gevoelige velden in rust, isolatie per klant op database-niveau, MFA voor admins.
Art. 6 — Rechtmatige grondslagVerwerking is gebaseerd op de overeenkomst met u (art. 6 lid 1 sub b). Voor optionele features (HIBP-check) geldt gerechtvaardigd belang.
Art. 13/14 — InformatieplichtOnze privacyverklaring beschrijft welke gegevens we verzamelen, waarvoor en hoe lang.
Art. 15-22 — Rechten betrokkenenInzage, rectificatie, verwijdering en bezwaar honoreren wij binnen 1 maand. Stuur een verzoek naar info@eigensoftware.nl.
Art. 25 — Privacy by designBeveiligingsmaatregelen zitten in elk laagje: input-validatie, tenant-isolatie, encryptie standaard aan in productie.
Art. 28 — Verwerkers en sub-verwerkersSub-verwerkers: TransIP (hosting), TransIP "Zorgeloos Mailen" (e-mail), OpenAI/Anthropic/Mistral (AI-functies). Lijst is up-to-date in de DPA.
Art. 30 — VerwerkingsregisterVerwerkingen zijn gedocumenteerd; we leveren een uittreksel aan u op verzoek.
Art. 32 — Beveiliging van de verwerkingVolledige technische maatregelen: zie hoofdstuk 5.
Art. 33-34 — DatalekmeldingProcedure: zie hoofdstuk 8. Tijdslijnen: 4u intern, 72u extern.

4. Architectuur op één pagina

Een vereenvoudigde weergave van onze opzet, zodat u en uw IT-team kunnen zien hoe data door het systeem stroomt.

Datapad

Vertrouwensgrenzen

5. Technische beveiligingsmaatregelen

Per maatregel: wat het is, waarom we het hebben en hoe het bijdraagt aan uw beveiligings-positie.

MaatregelBeschrijving
5.1 — GeheimenbeheerGeen secrets in code of git-repository. Productie-secrets zijn opgeslagen in een afgeschermd .env-bestand op de server. JWT-secret en admin-token zijn 64 hex-karakters (256-bit entropie) en zijn op 25 april 2026 voor het eerst geroteerd.
5.2 — JWT-authenticatie en sessiesJSON Web Tokens met SHA-256 ondertekening. Access-token 1 uur geldig, refresh-token 30 dagen met rotatie en theft-detection: een gestolen refresh-token wordt gedetecteerd zodra hij dubbel wordt gebruikt, en alle sessies van die gebruiker worden direct geblokkeerd.
5.3 — ToegangscontroleDrie rollen: 'user' (eigen data), 'admin' (eigen tenant beheren) en 'superuser' (cross-tenant ondersteuning). Elke admin/superuser-actie loopt door een role-guard én staat in de audit-log.
5.4 — Veld-encryptie (AES-256-GCM)Gevoelige velden in de database (zoals AI-provider API-keys, MFA-secrets) zijn versleuteld met een per-tenant sleutel. De per-tenant sleutels zelf zijn versleuteld met een master-encryption-key. In productie weigert de applicatie te starten als de master-key ontbreekt.
5.5 — Rate-limitingStandaard 200 requests/minuut per tenant, login 10/min, wachtwoord-reset 3/uur, contact-formulier 3/uur. Ingebouwde bypass-detectie.
5.6 — Wachtwoordbeleid en MFAMinimaal 12 tekens (NIST 2024-richtlijn). Have-I-Been-Pwned-check: wachtwoorden uit bekende lekken worden geweigerd. Multi-factor authenticatie via TOTP met 10 backup-codes.
5.7 — Token-hashing in DBWachtwoord-reset- en uitnodigingstokens worden vóór opslag gehashed met SHA-256. Een database-leak geeft daarmee geen werkende reset-links.
5.8 — Cross-tenant isolatieTwee lagen: (1) elke klant in een eigen MongoDB-database, (2) een wrapper die per query de tenantId afdwingt. Cross-tenant search is met 4 regressietests geverifieerd.
5.9 — Input-validatie (Zod)Alle API-bodies worden gevalideerd met strict-mode schemas. Onbekende velden worden geweigerd (bescherming tegen mass-assignment).
5.10 — Logging en pseudonymiseringE-mailadressen, IP-adressen en user-IDs worden in logs gepseudonimiseerd (SHA-256 prefix). Logs ouder dan 30 dagen worden automatisch verwijderd.
5.11 — TLS-configuratieMozilla Intermediate-cipher-suite (TLS 1.2 + 1.3 alleen). HSTS actief, OCSP-stapling, X-Frame-Options DENY.
5.12 — Dependency-scanningDependabot scant elke dependency wekelijks op bekende CVE's. GitHub Actions security-audit blokkeert merges met openstaande high/critical issues.

6. Multi-tenant isolatie in detail

Omdat klanten zich vaak afvragen "kan een andere klant bij mijn data", leggen we deze laag uitgebreider uit.

Database-isolatie

Iedere klant krijgt bij aanmaak een eigen MongoDB-database (tenant_uw-id). Deze database is fysiek gescheiden van die van andere klanten. Een query op de database van klant A kan technisch niet bij data van klant B — er is geen filter dat omzeild kan worden, want het is een aparte database.

Master-template

Daarnaast bestaat er een tenant_platform-database met alleen default-templates (system-prompts, voorbeeld-workflows). Deze bevat geen klantdata en is alleen toegankelijk voor onze beheerders. Wanneer u een nieuwe tenant aanmaakt worden deze templates eenmalig naar uw eigen database gekopieerd — vanaf dan staat alles bij u.

Code-niveau borging

Bovenop de database-isolatie hebben we een wrapper-laag (TenantCollection) die op elke query automatisch de tenantId afdwingt. Zelfs in legacy single-DB modus is cross-tenant toegang technisch onmogelijk. Dit wordt geverifieerd door 4 specifieke regressietests in de codebase.

Superuser-toegang

Onze beheerders kunnen via een "inloggen-als-tenant"-mechanisme tijdelijk in een klant-omgeving werken voor support — elke keer expliciet geactiveerd, gelogd, en alleen na uw uitdrukkelijke toestemming.

7. Audit-log en monitoring

Wat er in onze logs staat, hoe lang, en wie ze inziet.

CategorieWat wordt gelogd
Authenticatie-gebeurtenissenLogin (gelukt/geweigerd), logout, wachtwoord-wijziging, MFA-inschakeling, sessie-revocation.
GegevenstoegangToegang tot kennisbank-items, ontologie-zoekopdrachten, AI-aanroepen (prompt + provider + model + uitkomst-status).
BeheerhandelingenTenant-creatie/-verwijdering, gebruiker-uitnodigingen, role-wijzigingen, module-activeringen, template-resync.
BeveiligingsincidentenRate-limit-overschrijdingen, JWT-validatie-fouten, theft-detection-events, mislukte MFA-pogingen.

Inzage en retentie

8. Datalek-procedure

Indien onverhoopt een datalek of beveiligingsincident optreedt, volgen wij dit protocol — gebaseerd op de AVG-meldplicht (artikel 33-34).

  1. 0 uur — Detectie Een afwijking wordt waargenomen door monitoring, een gebruiker, of een onafhankelijke onderzoeker. Het incident-team wordt geactiveerd.
  2. Binnen 1 uur — Containment Toegang tot de getroffen omgeving wordt afgesneden, JWT-keys/secrets geroteerd, kwetsbare endpoints offline gehaald.
  3. Binnen 4 uur — Klant-notificatie U als klant wordt geïnformeerd: aard van het incident, betrokken gegevens (zoveel als bekend op dat moment), en welke acties wij nemen.
  4. Binnen 24 uur — Forensisch onderzoek Audit-logs worden veiliggesteld en geanalyseerd om reikwijdte en oorzaak vast te stellen. Bewijs wordt bewaard voor de 72-uurs-melding.
  5. Binnen 72 uur — AVG-melding Bij een melding-plichtig datalek (waarschijnlijk hoog risico voor betrokkenen) doen wij namens u een melding bij de Autoriteit Persoonsgegevens, mits u dat wenst.
  6. Binnen 1 week — Post-mortem Volledig rapport: wat gebeurde er, welke maatregelen treffen we om herhaling te voorkomen, status van de getroffen data.
Direct contact bij een vermoeden: stuur per direct een mail naar info@eigensoftware.nl met onderwerp [INCIDENT]. Buiten kantoortijden bellen via het nummer in uw verwerkersovereenkomst.

9. Hosting en sub-verwerkers

Met welke leveranciers werken wij, in welke landen staan zij, en wat betekent dat voor uw data.

Sub-verwerkerDoelLocatieVoorwaarden
TransIP B.V.Hosting (VPS) en mailrelayNederlandVolledige DPA op aanvraag; ISO 27001 / ISO 9001 gecertificeerd.
OpenAIAI-functionaliteit (GPT-modellen)VS / EU-routeEnterprise-tier: input wordt niet gebruikt voor model-training.
AnthropicAI-functionaliteit (Claude-modellen)VS / EUAPI-tier: input wordt niet gebruikt voor model-training.
Mistral AIAI-functionaliteit (Mistral-modellen)FrankrijkEU-leverancier; input wordt niet gebruikt voor training.
Have-I-Been-PwnedWachtwoord-breach-check (5-tekens SHA-1 prefix)Wereldwijdk-anonymity: wachtwoord verlaat onze server nooit. Optioneel uit te schakelen.
Standaard verwerkersovereenkomst: voor we starten ondertekenen we met u een verwerkersovereenkomst (DPA) die deze sub-verwerkers expliciet noemt. Wijzigingen melden wij vooraf, u kunt bezwaar maken voordat ze effect krijgen.

10. Continuïteit en backups

Backup-frequentie en retentie

Beschikbaarheid en uptime

Disaster recovery

Bij volledige uitval van de productieserver kunnen we binnen 24 uur een nieuwe omgeving optuigen vanuit onze GitHub-repository (codebase) en de meest recente backup (data). RTO (Recovery Time Objective): 24 uur. RPO (Recovery Point Objective): 7 dagen tot wekelijkse backup actief is, daarna 1 dag.

11. Wat wij van u nodig hebben

Goede beveiliging is samenwerking. Een paar punten waar wij op u rekenen:

12. Roadmap (transparantie)

Wij staan niet stil — hier ziet u welke verbeteringen er nog op de planning staan.

OnderwerpStatus
WebAuthn / PasskeysPhishing-resistente MFA naast TOTP. Gepland Q4 2026.
Hardware Security Module (HSM)Master-encryption-key in HSM in plaats van .env. Gepland 2027 of bij klant-eis.
Wekelijkse offsite-backupsAutomatische backup naar versleutelde storage buiten TransIP. Gepland Q3 2026.
ISO 27001 voorbereidingStappenplan richting certificering, in scope voor groei-fase.
Externe pen-testOnafhankelijke security-audit door derde partij, eens per twee jaar.

13. Contact en vragen

Wij doen ons werk met de aanname dat uw data het belangrijkste is wat u ons toevertrouwt.

EigenSoftware — informatiebeveiliging is geen feature, het is een fundament.

Vragen over een specifieke maatregel?

Wij beantwoorden uw security-vragen graag in een persoonlijk gesprek en bezorgen u de verwerkersovereenkomst voordat u een beslissing neemt.