Hoe je enterprise-grade security toevoegt zonder performance te verliezen
(Dit is het volgende deel van het project voor VRMADA, klik hier om het vorige deel te lezen!)
Met een werkende relay-architectuur kwam de volgende eis op tafel:
echte cryptografische beveiliging, geschikt voor zakelijke VR-toepassingen.
Niet “goed genoeg”, maar correct.
Van simpele encryptie naar echte security
Na de packet-fix konden we probleemloos encrypten.
Maar onze eerste AES-GCM implementatie gebruikte:
- Een statische sleutel
- Handmatig gegenereerd
- Niet sessie-gebonden
Prima voor testen.
Onacceptabel voor productie.
Elke sessie moest:
- Zijn eigen sleutel hebben
- Zonder dat die sleutel ooit “over de lijn” gaat
De oplossing: ECDH key exchange
Daarom hebben we gekozen voor Elliptic Curve Diffie-Hellman (ECDH).
- Client en server genereren elk een eigen keypair
- Ze wisselen alleen hun public keys uit
- Beide berekenen onafhankelijk dezelfde geheime sleutel
Zelfs als iemand meekijkt, is de uiteindelijke sleutel niet te reconstrueren.
Hoe dit technisch werkt in ons systeem
1. Room creatie
- Unity client genereert een asymmetrisch keypair
- Relay server doet hetzelfde
- Public keys worden via een REST call uitgewisseld
- Beide kanten berekenen:
- Shared secret
- Gehasht via SHA-256
- Geschikt voor AES-GCM
Deze sleutel wordt gekoppeld aan de room-sessie.
2. Eerste connectie (host)
- De host heeft nog geen sessie op IP-niveau
- Er wordt tijdelijk teruggevallen op de room-key
- Eerste encrypted message slaagt
- Sessiestructuur wordt vastgelegd
Vanaf dat moment is de verbinding volledig beveiligd.
3. Nieuwe clients
- Elke nieuwe client herhaalt het ECDH-proces
- Krijgt een unieke sessiesleutel
- Wordt gekoppeld aan dezelfde room, maar met eigen encryptiecontext
Zo blijft alles:
- Veilig
- Gescheiden
- Schaalbaar
Waarom dit belangrijk is voor VR-bedrijven
Deze aanpak betekent:
- Geen zware dedicated servers
- Geen single point of failure
- Volledige end-to-end encryptie
- Geschikt voor enterprise en compliance-gevoelige omgevingen
En misschien nog belangrijker:
Het systeem schaalt mee met het gebruik, niet met de serverkosten.
Wat dit zegt over mijn manier van werken
Dit project was niet “even bouwen”.
Het vroeg:
- Protocolanalyse
- Netwerk-debugging op byte-niveau
- Cryptografie
- Unity transport kennis
- Server-architectuur
En vooral: doorzetten waar standaardoplossingen stoppen.
Denk je nu: “dit hebben wij ook nodig”?
Dan is dat geen toeval als jouw project:
- VR, multiplayer of realtime data gebruikt
- Veilig moet zijn
- Niet afhankelijk mag zijn van zware servers
- En toekomstbestendig moet blijven
Dan denk ik graag mee — van architectuur tot implementatie.
👉 Neem contact op en laten we kijken hoe dit voor jouw product kan werken.

