Posso usare tranquillamente un parametro URL criptato per l'ID di sessione?

3

Sto pianificando di inviare l'ID di sessione di un utente come parametro URL che verrà crittografato con AES. Non penso che la mia app abbia problemi di condivisione dei link. Questa idea è fattibile? È sicuro?

    
posta Roshan 10.05.2013 - 19:59
fonte

3 risposte

3

Se il tuo ID di sessione è veramente casuale, non c'è alcuna sicurezza aggiuntiva in AES, che lo crittografa. Se, tuttavia, non è casuale, mi raccomanderei strongmente di non farlo, per ragioni simili al motivo per cui nessuno di tutti i modi utilizza i token ID di sessione prevedibili.

Inoltre, se non stai usando SSL, il tuo traffico può essere annusato. Ciò significa che, indipendentemente da quanto si cripta il token ... è ancora chiaramente visibile. (Bene, il tuo traffico può essere sniffato con SSL attivo, ma è un po 'più complicato)

    
risposta data 10.05.2013 - 20:12
fonte
3

È una cattiva idea.

La crittografia dell'identificativo di sessione non ha alcun impatto reale sulla sicurezza della tua applicazione. Se il traffico viene inviato in testo normale (senza SSL ) chiunque è in grado di leggere quell'ID di sessione crittografato e quindi utilizzarlo per impersonare l'utente legittimo.

Diciamo che il mio ID di sessione è 12345 . Ogni volta che voglio andare a casa tua mi chiedi del mio ID di sessione, lo urlò da dietro la porta e qualcuno potrebbe sentirlo. Per risolvere il problema, crittografiamo l'ID di sessione, quindi diventa OF&HN7907fynNYH . Ciò non cambia nulla, qualcuno lo sentirà ancora ed è in grado di ripeterlo.

Per quanto riguarda l'altra parte della tua domanda, circa l'inserimento dell'ID di sessione nell'URL. La ragione per cui penso sia una cattiva idea, perché l'URL può essere usato e memorizzato in così tanti altri posti; nei registri proxy, può essere inserito nei segnalibri o archiviato nei rapporti di errore. Questo argomento è stato discusso prima qui .

    
risposta data 10.05.2013 - 20:53
fonte
2

È fattibile? Sì. È un modello standard per la sessione senza cookie ed è stato un modello di rigore per la gestione delle sessioni nell'app JSP per un certo numero di anni.

È una buona idea? No, per un paio di motivi.

  1. Una delle principali vulnerabilità per un sito che ha un concetto di gestione delle sessioni è il dirottamento delle sessioni, in cui l'ID della sessione viene annusato e rubato, come menzionato da Sébastien. L'URL è la posizione vulnerabile più che potrebbe essere scelta per questo identificatore. È visibile nel browser, sul filo (se non si utilizza SSL) può essere aggiunto ai segnalibri e facilmente condiviso.

  2. Può impedire l'usabilità. Questo non è un problema di sicurezza, ma se il parametro è incorporato nell'URL, come spesso lo sono gli ID JSP, può impedire la condivisione e il bookmarking legittimi e portare alla frustrazione degli utenti quando cercano di tornare a una pagina segnalibro una volta scaduta una sessione , solo per fare in modo che l'applicazione dica loro che l'URL non è valido e non hanno idea di come tornare alla pagina.

risposta data 10.05.2013 - 20:54
fonte

Leggi altre domande sui tag