Anonym autentifikation
Behöver sätt att verifiera att användare X äger rätt att ändra data.
Beslut
Använd PermaNonce
för att garantera säker men fortfarande anonym modifikation av användares data.
Användare genererar en nonce. Använd window.Crypto.getRandomValue(), vilket ska var säkert. (undersök hur så)
När klient kopplar up via websocket (wss://) sker en autentifikation där noncen verifieras. När klienten initialt skapade sin närvaro på servern så installerade den också sin PermaNonce på servern. Servern mottar klientens påstådda GID och nonce och jämför den nonce servern själv känner till för det GID. Om godkänd så kan klienten agera på sin data på servern.
Resonemang
Nonce och PermaNonce
En nonce är ett unikt nummer eller en unik kod som skapas och används en enda gång, vanligtvis inom säkerhet och datorsystem.
Jag introducerar termen "PermaNonce" för mitt ändamål.
Till skillnad från en vanlig nonce, som används bara en gång och sedan försvinner, så finns PermaNonce kvar permanent för att säkerställa dataändringar.
Vi behöver inte verifiera varje transaktion, utan det räcker när klienten etablerar en uppkoppling. Här är fördel med websockets över "stateless" kommunikation som traditionell web teknologi är. I stateless behöver vi skicka med och verifiera identifiering vid varje interaktion, eftersom varje interaktion etablerar en ny egen uppkoppling för spannet av den interaktionen. Websockets behåller å andra sidan en och samma förbindelse kontinuerligt.
Vi behöver inte oroa oss att websocket kopplingen blir hackad då den är krypterad (TSL)