Beveiliging
BeID is een identiteitsprovider, dus beveiliging is het product. Hieronder staan de cryptografische keuzes en hoe je ze als integrator kunt vertrouwen en verifiëren.
Transportbeveiliging
Alle communicatie verloopt over TLS 1.3, met TLS 1.2 als absolute ondergrens. Oudere protocolversies en zwakke cipher suites zijn volledig uitgeschakeld. In productie dwingt BeID dit af met HSTS (inclusief subdomeinen), zodat browsers nooit onversleuteld verbinden.
Token-ondertekening
Tokens worden asymmetrisch ondertekend (niet versleuteld): relying parties verifiëren de echtheid met onze publieke sleutels uit de JWKS. Het algoritme is bewust uitwisselbaar:
| Algoritme | Eigenschap |
|---|---|
| EdDSA (Ed25519) | Standaard. Snel, kleine sleutels, geen parameter-valkuilen. |
| ES256 (P-256) | Compact en breed ondersteund. |
| PS256 (RSA-PSS) | Robuuste PSS-padding; voorkeur boven RS256 bij RSA. |
| RS256 (RSA ≥ 3072) | Meest interoperabel als legacy-default. |
Elke sleutel heeft een kid en wordt gepubliceerd via de JWKS, zodat sleutels kunnen roteren zonder verifiers te breken. Valideer daarom altijd via de JWKS en niet tegen een vastgezette sleutel.
Verifieer elk token
Controleer handtekening,iss, exp en aud (audience-restrictie) bij élk token dat je accepteert.Wachtwoordopslag
Wachtwoorden worden gehasht, nooit versleuteld, met Argon2id — de OWASP-aanbeveling voor nieuwe systemen (basislijn: 19 MiB geheugen, 2 iteraties, parallelisme 1). Bestaande legacy-hashes (bcrypt) worden bij de eerstvolgende login automatisch omgezet naar Argon2id. Zwakke hashes zoals MD5, SHA-1 of kale SHA-256 worden nooit gebruikt.
Gegevens in rust
Echt geheime velden (zoals TOTP-secrets) worden versleuteld met AES-256-GCM — authenticated encryption, zodat gemanipuleerde data faalt bij het ontsleutelen in plaats van stilletjes onzin terug te geven. De envelope is geversioneerd, zodat de sleutel of het algoritme later kan roteren.
Sleutelbeheer
Sleutelbeheer is belangrijker dan de algoritmekeuze: met een gestolen ondertekensleutel kan een aanvaller geldige tokens vervalsen zónder de cryptografie te breken. Daarom:
- Ondertekensleutels horen in een HSM of cloud-KMS (NIST SP 800-57).
- Regelmatige rotatie met overlappende JWKS-publicatie.
- Toegangslogging op elk gebruik van een sleutel.
- Strikte verificatie van handtekening, vervaltijd en audience bij verbruik.
Token-versleuteling (optioneel)
OIDC ID-tokens zijn doorgaans alleen ondertekend — TLS beschermt ze al onderweg. Moet je toch gevoelige claims versleutelen, gebruik dan JWE met ECDH-ES-sleuteluitwisseling en AES-256-GCM voor de inhoud.
Post-quantum (vooruitkijkend)
NIST finaliseerde in 2024 de post-quantum standaarden ML-KEM (sleutelinkapseling) en ML-DSA (handtekeningen). BeID hoeft die vandaag nog niet te gebruiken, maar het sleutelbeheer is bewust algoritme-agile opgezet zodat de migratie later een configuratiewijziging is — geen herbouw.
Een kwetsbaarheid gevonden?
Mail servicedesk@becyber.nl. Open geen publieke issue voor beveiligingsmeldingen.