Il mio back-end REST utilizza Mozilla Persona per autenticare gli utenti. Normalmente useresti semplicemente i cookie per autenticare qualsiasi ulteriore richiesta, ma voglio usare l'autenticazione basata su token (per motivi di avversione personale per i cookie e come esercizio accademico).
Ho 2 problemi di sicurezza principali:
- Qualcuno che accede a chi non è stato autenticato (risolto richiedendo un token valido)
- Qualcuno che ha accesso a un'identità diversa da quella in cui è stato autenticato (quindi [email protected] non può pubblicare dati sotto l'alias [email protected])
Ho 2 requisiti di sistema principali:
- Stateless sul lato server: non dovrebbe avere alcuna informazione riguardante un utente all'interno della memoria del server tra due richieste
- Voglio un'autenticazione veloce (implementazione Java < 100ms) di qualsiasi ulteriore richiesta dopo la prima, questo rende impossibile verificare semplicemente l'asserzione Persona un'altra volta o decrittografare un token basato su RSA o procedure simili
Ai miei occhi questo sembra essere impossibile (in pratica voglio la sicurezza dei certificati digitali senza i detrimenti prestazionali correlati a loro). Ma sono aperto a suggerimenti.
Non ho bisogno di proteggere alcun dato importante ed è per questo che sto usando Persona in primo luogo. Il mio caso di attacco principale sono i miei amici che cercano di dick in giro con il sistema. Voglio almeno che spenda alcuni minuti di lavoro per farlo.