Sto utilizzando le funzioni sodium_crypto_secretbox
e sodium_crypto_secretbox_open
in PHP (attualmente PHP 5.6, utilizzando paragonie/sodium_compat
).
Se un utente ha testo cifrato, nonce e decrittografato, può determinare la chiave utilizzata per crittografare le informazioni?
Il contesto: sto crittografando il token di accesso dell'utente (un cookie, memorizzato sulla macchina) e lo utilizzo come token CSRF. Il token CSRF include necessariamente il nonce per la decrittografia quando inviato. Il token CSRF viene decrittografato e verificato su invio di moduli POST per la protezione dagli attacchi CSRF.
La mia preoccupazione non è tanto per gli attaccanti di CSRF che non avranno accesso ai cookie, ma per la chiave stessa. Per semplicità, sarebbe utile utilizzare la stessa chiave per altre funzioni di crittografia nel software, ma non posso se può essere facilmente esposto tramite queste informazioni. Un utente legittimo può vedere token e cookie CSRF: potrebbero scoprire la chiave?