Paura riguardante i token di sessione

3

Recentemente ho letto che le sessioni funzionano come segue:

  1. Le tue credenziali sono selezionate.
  2. Un token viene generato e memorizzato sul lato server, ad es. UUID, e questo token viene dato al client dove è memorizzato per la durata della sessione.
  3. Quando l'utente si disconnette, il suo token di sessione viene revocato e non più valido.

La mia preoccupazione è che con le persone che si affidano sempre più ai loro browser ricordando le proprie credenziali e avendo sessioni che non scadono mai, o scadono dopo un lungo periodo di tempo, significa che qualcuno potrebbe semplicemente copiare il token e ignorare l'autenticazione del tutto, dal momento che i nomi utente e le password non sono più necessari: solo i token.

Sto fraintendendo qualcosa, o si tratta di un problema reale e se si tratta di un problema reale, quali sono alcuni mezzi per evitare questo problema nella creazione di sistemi di autenticazione?

    
posta Dmitry 26.05.2016 - 21:40
fonte

1 risposta

4

Prima di tutto, non sono sicuro di seguire completamente questa affermazione:

My concern is that with people more and more relying on their browsers remembering their credentials and having sessions that never expire, or expire after a long period of time, this means that somebody might be able to just copy your token and bypass authentication altogether...

Il browser che ricorda le credenziali è completamente indipendente dalle sessioni del sito web che durano a lungo. In effetti, avere il tuo browser ricorda le tue credenziali è una comodità in modo che non devi fare clic sull'opzione "ricordami" su un sito Web, quindi si potrebbe sostenere che consentire ai browser di memorizzare le credenziali ti rende più probabile che tu faccia il logout e faccia la tua sessione più breve piuttosto che più lunga. Detto questo, capisco dove ti stai dirigendo con la domanda, quindi supponiamo che tu non stia memorizzando le credenziali nel browser, e invece clicchi sull'opzione "ricordami" per avere una sessione che dura a lungo tempo (forse mesi). Quanto è insicura l'opzione "ricordami"?

L'opzione ricordami non è sicura in nessuno dei seguenti scenari:

  • Sei su un computer condiviso in cui qualcun altro ha accesso a lo stesso utente che usi o qualcun altro ha accesso amministrativo al computer usate. In questo caso un altro utente del computer può guardare il tuo cookie di autenticazione e copia il tuo token come suggerito.
  • Il sito utilizza http invece di https. In questo caso, qualcuno che annusa la rete può acquisire il token di sessione in transito.

Alcune cose che puoi fare per prevenire lo snatch dei token sono:

  1. Utilizza https.
  2. Utilizza un token di autenticazione di breve durata in combinazione con un token di aggiornamento di lunga durata .

Se implementato correttamente, il token di aggiornamento realizza un paio di cose. Poiché l'aggiornamento viene passato periodicamente anziché con ogni richiesta, è meno probabile che venga compromesso in primo luogo. Quando si verifica l'aggiornamento, tutti i token di autenticazione esistenti creati con quel token di aggiornamento sono automaticamente scaduti, quindi se l'aggiornamento viene mai compromesso e due utenti cercano di utilizzarlo contemporaneamente, si verificherà un conflitto continuo sul token di autenticazione e più aggiornamenti accadrebbe prima della scadenza. Il server potrebbe facilmente rilevarlo e scadere anche il token di aggiornamento. Quindi l'utente dovrebbe effettuare nuovamente il login e solo l'utente reale sarebbe in grado di farlo. Maggiori informazioni a riguardo possono essere trovate qui .

    
risposta data 26.05.2016 - 22:16
fonte

Leggi altre domande sui tag