Protezione dei token di autenticazione di sessione

0

Sto creando un token di autenticazione di sessione e lo invio all'applicazione client. Qualsiasi dato utente ecc è associato a questo token nel database, quindi il token non contiene alcuna informazione sensibile.

È sufficiente creare un token casuale? Un tipo di attacco che mi è venuto in mente sono solo token forzanti. Come posso impedirlo? La crittografia del token sembra essere altrettanto suscettibile a un simile attacco. Forse HMAC?

    
posta John L. 02.01.2017 - 10:59
fonte

1 risposta

1

Nessuna necessità di crittografia o HMAC o qualsiasi altra cosa di simile. Alcune cose a cui devi pensare, però:

  • La protezione contro la forza bruta è entropia. Scegli un numero casuale da uno spazio abbastanza grande e un attaccante avrebbe bisogno di millenni per indovinarne uno giusto. OWASP consiglia almeno 128 bit.
  • Assicurati di utilizzare un PRNG crittograficamente protetto genera gli ID di sessione, in modo che non vi sia alcun motivo nel generato ID di sessione. Se utilizzi un PRNG errato, un utente malintenzionato può indovinare gli ID imminenti in base agli ID precedenti.
  • Poiché non è direttamente correlato alla generazione di token, non mi dilungherò su questo argomento, ma assicurati di pensare a cose come la fissazione della sessione, i flag solo HTTP e sicuri, ecc. OWASP ha una buona cheat sheet .
risposta data 02.01.2017 - 11:10
fonte

Leggi altre domande sui tag