Questo schema di autenticazione utilizza JWT sicuro?

0

Mi chiedevo se potessi esaminare questo schema di autenticazione per l'applicazione web.

=== Pagina di accesso ===
Verifica delle credenziali = > Problemi del server JWT = > Memorizzato in un cookie

JWT contiene:
exp: timestamp
uid: UserID
HMAC-SHA512 Firma

Punti vendita Redis: Chiave: UserID
Valore: SecretKey (inserito solo se non esiste)

=== Autenticazione delle richieste ===
JWT decodificato
$ uid = UserID

Redis gets:
Valore: SecretKey da
Chiave: $ uid

Verifica HMAC JWT utilizzando SecretKey
se verificato
se exp non scaduta

ALL OK

Quindi perché usare JWT quando questo è effettivamente uno schema di stato e non apolidi?

  • La verifica esegue solo una singola query su Redis, non è necessario eseguirne un'altra per ottenere l'ID utente

  • Non è necessario memorizzare SessionID per ogni sessione, Redis memorizza solo un record per sessioni illimitate di un determinato utente.

  • Non è necessario mantenere le sessioni scadute in Redis ed eliminarle.

  • Tutti i token di un singolo utente possono essere revocati in qualsiasi momento cambiando SecretKey

Per favore dimmi se è stupido o ci sono dei difetti di sicurezza quindi non attuare la merda.

    
posta Peter Bielak 30.01.2017 - 16:18
fonte

1 risposta

-1

In generale sembra buono. Tuttavia, alcuni problemi da considerare

  • L'ID utente non è crittografato. Se la richiesta non supera TLS, sta trasmettendo tali informazioni al MITM. Potresti voler crittografarlo.
  • Una volta che l'utente si è disconnesso, cosa impedisce al JWT di essere ancora utilizzato, supponendo che non sia scaduto?
risposta data 30.01.2017 - 19:06
fonte

Leggi altre domande sui tag