Che cosa fare per aumentare la sicurezza di un cookie di autenticazione personalizzato?

0

Sto progettando un cookie per scopi di autenticazione. In caso di successo, questo entrerà in un'applicazione.

Ecco le cose che ho incluso in questo cookie:

  • È per il web, naturalmente
  • Include alcuni dati sull'utente autenticato, a fini di rendimento (UserId è il meno dati)
  • Include un salt (dati extra) che è noto solo al server, per prevenire attacchi di contraffazione di cookie
  • Il valore dell'intero cookie è crittografato tramite AES
  • Aggiunge un token dai dati del client allo scopo di prevenire il dirottamento dei cookie (l'IP del client non è incluso a causa di ogni cambio di rete, un altro accesso diventerebbe obbligatorio). Infatti, include solo l'intestazione UserAgent
  • È HttpOnly, per impedire agli attacchi XSS di accedere ai cookie (ma ancora vulnerabili a CSRF)
  • La sua scadenza è impostata su un mese, a causa di una migliore UX (alle persone non piace accedere sempre dopo aver chiuso il browser)

Lo abbiamo fatto fino a qui, e testato e funziona perfettamente. Quali possibili attacchi sono ancora possibili attraverso questo design e come possiamo renderlo più sicuro?

    
posta Saeed Neamati 01.04.2017 - 09:45
fonte

2 risposte

1
  • Utilizza la flag SameSite per prevenire attacchi CSRF .
  • Utilizza i prefissi dei cookie per impedire il clobbering dei cookie.
  • Utilizzare un HMAC per impedire la manomissione dei cookie. Dici di averlo impedito usando un sale. Non è chiaro cosa significhi e, se non è un HMAC, probabilmente non è il modo corretto di impedire la manomissione da parte del client.
risposta data 01.05.2017 - 15:41
fonte
0

Alla fine della giornata, CSRF è il problema di sicurezza che devi gestire quando usi i cookie. Assicurati che tutti gli URL che modificano lo stato richiedano una sorta di conferma che l'utente sta intenzionalmente inviando la richiesta.

Molti framework web hanno questo incorporato per i metodi di richiesta che cambiano lo stato. Django lo fa includendo un "token CSRF" allegato al modulo pertinente.

L'importante è non avere richieste GET che alterano lo stato. Si tratta di problemi e di come CSRF sia facilmente implementato.

    
risposta data 01.04.2017 - 13:49
fonte

Leggi altre domande sui tag