Vier lagen, en de laatste is een weigering.
Elk daarvan is iets aparts dat kan mislukken, en elke mislukking beëindigt de sessie in plaats van haar zwakker voort te zetten. Het hele ontwerp past in die zin.
- De drager
Versleuteld op de lijn
De stroom is verzegeld met XSalsa20-Poly1305 onder een sleutel die alleen voor die sessie is afgesproken. Een relay stuurt bytes door die het niet kan lezen en houdt geen sleutel die ze opent.
XSalsa20-Poly1305 - Het bewijs
Een ondertekende identiteit
De rendezvous-server ondertekent de identiteit van elke kant met een Ed25519-sleutel. De client controleert die handtekening tegen de publieke sleutel die erin is meegecompileerd, en controleert dan of de identiteit erin het apparaat is dat je hebt gebeld.
Ed25519 - De afspraak
Een sleutel per sessie
Pas als het bewijs standhoudt spreken beide kanten de symmetrische sleutel af. Vóór dat punt gaat er geen pixel, geen toetsaanslag en geen bestand overheen.
1 sleutel · 1 sessie - De weigering
En geen tak die doorgaat
Verkeerde sleutel, verkeerde identiteit, verkeerd berichttype, geen antwoord: de client breekt af. Er is geen pad dat terugvalt op leesbare tekst — precies het pad waar een aanvaller op zou mikken.
De sessie wordt geweigerd
