Prevenzione degli attacchi di riproduzione con JWT

4

Attualmente sto costruendo un'API RESTful che verrà utilizzata per un'applicazione web e mobile. L'autenticazione all'API verrà effettuata utilizzando Token Web JSON .

Quando utilizzi JWT, possiamo utilizzare il reclamo exp per scadere il token dopo un tempo specifico. Questo, combinato con il reclamo jti è utile per prevenire attacchi di replay e qualcosa che sarà integrato nella nostra app. Tuttavia, per comodità dell'utente, non vogliamo continuare a chiedere loro di accedere con ogni richiesta o dopo brevi intervalli di dire, 30 minuti.

Quindi, sto pensando alla seguente situazione:

  • L'utente accede utilizzando il suo indirizzo email e la password
  • Il server restituisce una JWT con una scadenza in 1 ora
  • Il client effettua un'altra richiesta all'API, passando il JWT nell'intestazione
  • Se il JWT è valido, l'API restituisce i dati richiesti e un altro JWT, che scade di nuovo in 1 ora

Se il client non inoltra ulteriori richieste entro 1 ora di scadenza assegnata, una richiesta successiva chiederà loro di accedere nuovamente.

La mia domanda: è questa la soluzione migliore per compensare l'usabilità e impedire attacchi di riproduzione?

    
posta BenM 27.11.2017 - 17:14
fonte

1 risposta

2

Penso che tu debba separare le tue preoccupazioni. La protezione del JWT sul lato client è il lavoro dell'applicazione che utilizza JWT, non l'API. Se questa linea è sfocata potrebbe essere necessario riprogettare l'applicazione in quanto è probabilmente più monolitica, piuttosto che guidata dal servizio.

JTI, EXP e IAT sono progettati di più per darti gli strumenti per mitigare un attacco se è stato compromesso. TLS viene utilizzato per impedire lo snooping del JWT mentre è in transito. Accorciando la finestra per l'EXP si limiterà l'esposizione del singolo token, ma alla fine se avranno il token tramite l'applicazione, l'EXP sarà muto, prenderanno semplicemente il token successivo.

    
risposta data 27.11.2017 - 18:21
fonte

Leggi altre domande sui tag