Password elaborate sul lato server? [duplicare]

0

Così mentre stavo lavorando al mio progetto personale qualcosa mi ha colpito.

Quando qualcuno crea un account su qualsiasi servizio Web / social media fornisce il nome utente e la password desiderati, questo viene quindi elaborato dal server, il nome utente viene memorizzato in un BD e la password viene sottoposta a hash e quindi archiviata, ma ciò significa che la password riceva la password in testo normale e quindi applica un algoritmo prima di memorizzarlo.

La stessa cosa accade quando qualcuno si collega direttamente? Ovviamente questo può essere inviato tramite SSL / HTTPS ma il server viene comunque presentato con il testo in chiaro che rappresenta la password, lo blocca e lo confronta con la password con hash memorizzata.

Perché questo processo non viene eseguito sul lato client? Sarebbe abbastanza semplice che il client abbia hash la sua password nel browser usando JS Sono sicuro che ci deve essere qualche libreria dedicata all'hashing con algoritmi popolari come SHA-256.

Forse sto ignorando qualcosa di veramente ovvio o forse sono qualcosa di incomprensibile, quindi sono aperto alla correzione.

    
posta EChan42 25.04.2016 - 10:16
fonte

1 risposta

2

Se esegui l'hashing sul lato server, il server (e un utente malintenzionato con accesso ad esso) potrebbe leggere la tua password in chiaro, correggere.

Tuttavia, l'hashing della password sul client non è di grande aiuto se qualcuno è riuscito ad accedere al server, perché l'autore dell'attacco potrebbe facilmente alterare il codice sorgente javascript per ottenere la password in chiaro o avviare il bruteforcing del database.

Se il server è affidabile, non ci sono problemi se elabora le password - e se il server non è affidabile, l'hashing del lato client non aggiungerà molto alla sicurezza.

L'utilizzo di password diverse per ciascun servizio sarebbe una soluzione migliore e più sicura per questo problema.

    
risposta data 25.04.2016 - 10:54
fonte

Leggi altre domande sui tag