Attualmente sto lavorando in un'azienda in cui abbiamo la necessità di progettare un sistema di autenticazione basato su token. Saremo proprietari e controllori di due server, uno dei quali è il server di autenticazione e l'altro il server delle applicazioni.
Sono abbastanza esperto su concetti di sicurezza informatica, minacce, vulnerabilità comuni e contromisure, ma una domanda a cui non ho trovato risposta è se hai bisogno di più cicli di hash quando usi HMAC-SHA256 per firmare un token JWT.
Poiché per qualcosa come hashing una password usando SHA256 la regola generale che intendo è eseguire 2 ^ (anno 2000) (dare o prendere in base alle esigenze di prestazioni) cicli di hashing, faccio fatica a credere a un singolo round di HMAC -SHA256 è abbastanza buono, eppure non ho mai visto nessuno fare questa domanda quando ho cercato l'argomento.
Pertanto, data una chiave segreta e un'intestazione e un payload del token JWT, quale delle seguenti è considerata la migliore procedura per la firma del token:
- Una singola iterazione di HMAC-SHA256 è considerata sicura per una firma di token JWT.
- Si consiglia di eseguire HMAC-SHA256 più e più volte riutilizzando la stessa chiave segreta.
- Esegui HMAC-SHA256 una volta quindi esegui iterazioni di hashing SHA256 sul prodotto dal calcolo di HMAC. (Questo è ciò che suppongo sia una buona pratica)
- Ho torto totalmente ed è qualcosa di diverso.
Grazie mille per qualsiasi aiuto. Voglio solo assicurarti che il sistema sia progettato nel miglior modo possibile.