Quando si implementa un server HTTP Digest, c'è il problema di nonces.
Server nonces (al contrario di client nonces)
- deve essere emesso dal server
- può essere riutilizzato dai client fino a quando il server lo consente
- non sa nulla su quale utente userà il nonce più tardi
Un'implementazione ingenua è quella di ricordare tutti i nonces emessi in memoria, ma questo introduce lo stato: O un client deve parlare con lo stesso server, oi server devono condividere l'elenco dei non validi validi, che diventa un problema di scalabilità.
La mia domanda è: È possibile fornire nonces protetti e senza stato ? Credo di sì, e vorrei che fosse (in) validato:
Rendi il nonce un messaggio firmato crittograficamente dal server :
- un timestamp di scadenza (ad esempio 86400 secondi nel futuro)
- un numero casuale (forse?)
- una firma crittografica (sha o hmac forse?)
Questo potrebbe essere raggruppato insieme nel nonce che è fornito nell'intestazione dell'autenticazione Www 401. Quando un server lo vede, può verificare l'integrità del messaggio (ricalcolando la firma). Quindi il timestamp può essere controllato, e se è così allora il nonce è buono.
- Questa tecnica è descritta altrove?
- Questo modo di fornire nonces sconfigge lo scopo di nonces?
- Esiste un altro modo per fornire l'autenticazione Digest HTTP stateless?