Come implementano cookie e sessioni per impedire il riutilizzo altrove

0

Ho alcuni scenari:

  • Un cookie viene generato su Chrome e verrà utilizzato su Firefox nello stesso computer.
  • Un cookie viene generato su Chrome e verrà utilizzato in Chrome su un altro computer.
  • Un cookie viene generato su Chrome e verrà utilizzato in Firefox su un altro computer.

Negli scenari di cui sopra, è possibile riutilizzare i cookie? In caso contrario, come implementare una sessione / cookie per impedire il riutilizzo in quegli scenari?

Secondo me, penso che un cookie di sessione sia implementato da:

    Il server
  1. ha memorizzato una coppia chiave-valore, quindi: chiave per l'identità dell'utente. e valore per i dati utente del negozio, tempo di sessione scaduto ...
  2. Il client
  3. memorizzerà i cookie, in quanto il cookie contiene la chiave sul server.

Così sopra gli attacchi possono essere prevenuti dagli oggetti di valore memorizza qualcosa come "tipo di browser", "nome della macchina" (ottenendo in qualche modo il valore di ssh). Ogni volta che l'utente richiede qualcosa, il server otterrà il tipo di browser, il nome della macchina, i cookie e controllerà tutti i dati per la validità.

Ma qual è il problema se l'attaccante può falsificare il tipo di browser, il nome del computer? Ad esempio, utilizzando Firefox ma inviando i dettagli di Chrome come agente browser invece.

    
posta hqt 03.07.2016 - 20:04
fonte

4 risposte

4

Dovresti pensare ai modelli di minacce invece di trovare soluzioni a problemi falsi.

Qual è il modello di minaccia qui? Che copio il mio cookie di sessione su un altro computer? Non una vera minaccia.

Preoccupati per i cookie di furto di javascript? Utilizza i cookie httponly

Sei preoccupato per il malware che ruba i tuoi cookie? Utilizzare un computer dedicato per comunicazioni di rete sensibili. Puoi ottenere un Raspberry Pi Zero Wireless per $ 10

    
risposta data 03.07.2016 - 20:53
fonte
3

Non puoi convalidare il browser e il nome della macchina usati (non sai come ottenerlo), perché tutto ciò viene inviato dal client, quindi un utente malintenzionato può inviare ciò che desidera.

La sicurezza si basa solo sull'ID di sessione, un ID lungo, casuale e univoco generato sul server e memorizzato nel cookie.

Dovresti fornire tutti i diversi computer in cui l'utente accede a un nuovo ID di sessione e non riutilizzarne uno esistente, perché se l'utente si disconnette su un computer, si elimina solo quell'ID di sessione sul server e l'utente non viene registrato su tutte le altre macchine.

L'unico modo per un utente malintenzionato è quello di sgrossare l'ID di sessione memorizzato sul computer dell'utente, ma ciò richiede un grosso buco di sicurezza sulla macchina.

    
risposta data 03.07.2016 - 20:57
fonte
1

Non capisco davvero i tuoi attacchi. Sono dichiarati molto vagamente. A rischio di sembrare pedante, ti suggerisco caldamente di evitare l'uso della voce passiva quando descrivi il comportamento in un contesto tecnico.

Fammi provare a riscrivere per te:

A cookie is generated on Chrome and will be used in Firefox in the same machine.

Se intendi

"Un utente legittimo utilizza Chrome per accedere al mio sito, che emette un cookie di sessione.Un utente malintenzionato copia il cookie di sessione nell'archivio dei cookie per Firefox e accede al sito da lì, impersonando in tal modo l'utente legittimo."

La mia risposta a questo: non esiste alcuna mitigazione al mondo che ti protegga da un utente malintenzionato con accesso alla macchina dell'utente legittimo.

Se intendi

"Un utente malintenzionato utilizza Chrome per accedere al mio sito, che emette un cookie di sessione. L'utente malintenzionato copia il cookie di sessione nell'archivio dei cookie per Firefox e accede al sito da lì."

La mia risposta a questo: che cosa importa se l'utente malintenzionato utilizza Chrome o Firefox?

Ad ogni modo, si prega di essere specifici sulla minaccia che si sta valutando.

Inoltre, tieni presente che tutti i browser gestiscono archivi di cookie indipendenti, quindi è necessario che ci sia un'attività mirata per far sì che i cookie di sessione perdano tra loro.

    
risposta data 10.03.2017 - 23:30
fonte
0

Pensavo che ogni browser memorizzasse i propri cookie. Ho testato la persistenza del mio laboratorio usando i cookie con i server dietro un sistema di bilanciamento del carico, quindi non affronto gli scenari che stai affrontando. Ottenere un bilanciamento del carico per fronteggiare i tuoi server sembra una scelta saggia, puoi prendere in considerazione.

Ho provato a utilizzare diversi browser sullo stesso computer client per accedere allo stesso sito e sono stato bilanciato su server Web diversi utilizzando la persistenza dei cookie. A meno che non abbia usato la persistenza basata sull'IP di origine, ogni browser andrà allo stesso server web.

    
risposta data 08.07.2016 - 06:44
fonte

Leggi altre domande sui tag