End-to-end encryptie in Unity VR met ECDH en AES-GCM

End-to-end encryptie in Unity VR met ECDH en AES-GCM

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.

Meest recente items

Ook een project zoals dit?

Neem vrijblijvend contact met ons op!