È utile cancellare la password prima di inviarla al server per l'autenticazione? [duplicare]

-2

Nella progettazione di un database di back-end, supponiamo che il campo della password sia sottoposto a hash con bcrypt.

Ci sono due approcci

  • solo backend: password = bcrypt (plain_passsword)
  • frontend + backend = password = bcrypt (sha1 (plain_password)), dove sha1 (plain_password) viene calcolata dal lato client, ad es. JavaScript

Il vantaggio del secondo approccio è che non è stata inviata alcuna password semplice sul cavo, quindi anche l'HTTPS è rotto, non c'è alcun rischio immediato per la sicurezza dei nostri utenti che hanno perso la loro password semplice.

Modifica: la mia domanda è diversa dalle domande esistenti perché enfatizzano il frontend vs backend, ma la mia domanda è backend vs frontend + backend

    
posta Ryan 16.08.2017 - 05:31
fonte

3 risposte

1

Non ci sono molte differenze tra le tue due soluzioni, ma in pratica stai solo inviando la password in chiaro sul filo della strega che tu abbia mai visto. La seconda soluzione proteggerà solo altri account per cui gli utenti hanno utilizzato la stessa password ma non avranno alcun effetto sul tuo sito.

    
risposta data 16.08.2017 - 09:25
fonte
1

Ci sono due problemi nel mescolare le tue domande:

  • perdita di password utente
  • Essere in grado di autenticarsi contro un'applicazione del proprio sistema

Fondamentalmente l'SHA-1 (o meglio SHA-2, ma comunque) nasconderà la password di testo chiaro da chiunque. Così bene non perderà la password dell'utente che risolve il mio primo proiettile anche se è più l'obiettivo di HTTPS farlo.

Tuttavia, per il secondo punto, non aggiunge nulla, perché un utente malintenzionato dovrà solo inviare la password hash SHA-1 contro le tue applicazioni per poter autenticare, perché un hacker non ha bisogno di specificare chiaramente password di testo, ha bisogno di ciò che il server accetterà .

    
risposta data 16.08.2017 - 09:36
fonte
0

Ho avuto la tua idea, l'hashing due volte per provare ad ottenere entrambi i benefici. Ma se si invia l'hash SHA1 al server per l'autenticazione, ora è la password in chiaro per la propria applicazione .

Quindi, per quanto riguarda la sicurezza, non ci sono vantaggi se non proteggere gli altri account per i quali l'utente potrebbe aver riutilizzato la sua password. Non aggiunge nulla alla sicurezza della tua applicazione.

    
risposta data 16.08.2017 - 12:39
fonte

Leggi altre domande sui tag