Prevenire la fissazione della sessione: MAC o Hash?

0

Questo post del blog descrive un metodo per prevenire attacchi di fissazione della sessione (in ASP.Net in particolare). L'idea è che l'id della sessione dovrebbe essere legato all'identità dell'utente in modo verificabile, il che significa che un dato ID di sessione non può essere valido sia per l'attaccante che per la vittima. La loro costruzione utilizza:

select random nonce
session_id = nonce || MAC(nonce || username).

Per un'applicazione che gira su un cluster, la distribuzione o la modifica della chiave MAC può essere scomoda. Cosa si perde se il MAC viene sostituito da un hash non cifrato?

select random nonce
session_id = nonce || Hash(nonce || username).

Significa che un utente malintenzionato può generare id di sessione validi per una determinata identità, ma è comunque vero che un ID di sessione non sarà accettato sia per l'attaccante che per la vittima. C'è un punto debole in questo approccio?

    
posta bmm6o 03.02.2015 - 18:58
fonte

1 risposta

1

Q1 - Prevenzione della fissazione della sessione - MAC o hash?

Q2 - Cosa viene perso se il MAC viene sostituito da hash non cifrato?

Q3 - C'è un punto debole in questo approccio (di sostituire il MAC con un hash)?

Hai identificato lo svantaggio della gestione delle chiavi con l'utilizzo di MAC su più server mentre con l'hash senza chiave l'unico svantaggio è rappresentato dal maggiore rischio di contraffazione della sessione a causa della natura pubblica di una funzione hash. Quindi, in termini di opzione più sicura, l'opzione MAC è migliore per prevenire sessioni forgiate. Tuttavia, in entrambi i casi, come indicato, la fissazione della sessione può ancora verificarsi. Altri approcci che ho visto per rafforzare l'ID della sessione è quello di regolare la scadenza della sessione e includere l'agente utente come input per la funzione MAC. Penso che Q1, Q2 e Q3 stiano asserendo parzialmente o presumendo che l'utilizzo di MAC nella creazione dell'ID di sessione sia la "soluzione" per prevenire la fissazione della sessione. Penso che sia importante essere consapevoli di una serie completa di strategie per prevenire la fissazione della sessione. Tuttavia, un problema molto importante nell'ambiente ASP.Net è non riutilizzare vecchi ID di sessione dopo un utente che è una vulnerabilità enorme per gli exploit di fissazione della sessione.

Vedi link

    
risposta data 23.07.2016 - 19:21
fonte

Leggi altre domande sui tag