Challenge Response Login Autenticazione con Password Salt

3

Desidero implementare un'autenticazione di accesso challenge-response per la mia applicazione web.

La mia comprensione è che il server deve restituire la password salt per l'utente in modo che l'utente possa calcolare l'hash della password sul lato client e quindi inviarlo di nuovo al server per confrontare e verificare se l'utente è autenticato o no.

So che questo tipo di autenticazione è vulnerabile agli attacchi del dizionario perché l'utente malintenzionato può vedere la password salt in testo normale e forza bruta attaccare il server con quella password salt.

Come sempre, i livelli di sicurezza sono migliori quindi aggiungerei SSL all'equazione in modo che l'utente malintenzionato debba interrompere SSL e forzare la password con il sale.

Ci sono dei modi in cui posso migliorare, ho dato un'occhiata a SRP (Secure Remote Password) ma sembra davvero complesso, mentre la challenge-response può fornire altrettanto benefici.

    
posta Chrisgozd 23.04.2014 - 06:11
fonte

2 risposte

6

Se stai usando SSL perché vuoi inviare un salino? Tutto ciò che serve è consentire all'utente di inviare nome utente e password e calcolare il lato server H (messaggio + sale). Non ha senso inviare il sale all'utente. Assicurati di utilizzare un algoritmo di hashing corretto come PBKDF2, bcrypt o scrypt.

Inoltre, se hai rotto il protocollo SSL, non importa se invii la password o l'hash poichè potresti semplicemente intercettare l'hash ed eseguire un attacco di ripetizione. A meno che la sfida non cambierà con ogni singola richiesta di autenticazione che richiederebbe di memorizzare la password in formato decifrabile o di testo normale. Quale potrebbe essere un rischio per la sicurezza da solo, inoltre sarebbe suscettibile di un uomo della brigata benna nell'attacco centrale.

Aderisci a buoni schemi di sicurezza, username + password su SSL è sicuro, non provare a far girare il tuo.

    
risposta data 23.04.2014 - 06:34
fonte
0

Se stavo progettando un sistema di sfida e risposta, utilizzerei un sistema intelligente piuttosto che i sistemi computabili standard suggeriti.

Considererei la sfida come un metodo per passare informazioni al risponditore che è probabile che solo il rispondente apprezzerà e interpreterà correttamente. La risposta alla sfida indicherebbe che il rispondente ha interpretato correttamente le informazioni, quindi prenderemo in considerazione un'ulteriore risposta da parte dello sfidante, indipendentemente dal fatto che l'interpretazione fosse stata corretta e un ulteriore test del rispondente che ha effettuato nuovamente un giudizio sulla seconda sfida facendo un'ulteriore risposta.

Lo scambio di informazioni può essere estremamente vario facendo in modo che una risposta richieda o neghi il / i carattere / i in una posizione (e) specifica (e) in quella che sembra essere una sfida di serie di caratteri generata casualmente. La sfida cambierebbe ogni volta e richiederebbe al rispondente di rispondere con un personaggio da un set predefinito in una posizione particolare nella sua risposta a caratteri casuali. La sfida e la risposta potrebbero essere di qualsiasi lunghezza, sensibilmente entro parametri ragionevoli e le posizioni richieste potrebbero essere modali per rendere l'identificazione ancora più difficile. Se automatizzato e i caratteri definiti ei requisiti posizionali sono stati impostati in una tabella semplice, la complessità potrebbe essere aumentata incorporando diverse condizioni di accettazione e rifiuto più le modifiche condizionali a seconda dei gruppi di caratteri / lunghezza della stringa, ecc. Ogni set di condizioni e risposte potrebbe essere impostato essere unico per ogni risponditore che dovrebbe avere accesso allo sfidante. Questi potrebbero essere trasmessi separatamente nello stesso modo in cui le password possono essere scambiate.

    
risposta data 11.07.2016 - 13:54
fonte

Leggi altre domande sui tag