Invio della password dall'app client al server con Java

6

Sto sviluppando un'applicazione che richiede l'accesso da parte di un utente. Dal lato server sto utilizzando l'algoritmo PBKDF2 per le password hash, ma attualmente sto inviando password al server come una stringa di testo semplice. Ora è incline ad annusare, ma non so come cambiarlo. Cosa dovrei fare per renderlo più sicuro?

    
posta ofca1234 06.04.2018 - 11:22
fonte

1 risposta

35

Utilizza TLS per la connessione al server.

Lo scopo dell'hashing sicuro di una password è rendere più difficile l'attacco se il database viene mai rubato. Non è progettato per evitare di annusare la password in chiaro. Per comunicare in modo sicuro con il server su un supporto ostile, dovresti utilizzare TLS. Ciò impedirà l'intercettazione sul cavo, mentre il PBKDF2 lato server impedirà che la password venga recuperata banalmente dal contenuto di un database rubato.

Potresti essere tentato di aggiungere un hash al lato client. Sfortunatamente, ciò non impedisce a un utente malintenzionato di registrare l'hash inviato dal client e di utilizzarlo per accedere in seguito. TLS fornisce protezione per un numero elevato di modelli di minacce e prende esplicitamente in considerazione questo problema. Impedirà a un utente malintenzionato di riprodurre semplicemente le credenziali che si stanno utilizzando. L'unico scenario in cui l'hashing sul lato client sarebbe vantaggioso è se il server è ostile ma il server non ha alcun controllo sul codice che esegue il client, o se il server è troppo basso per eseguire un KDF lento corretto e alcune elaborazioni pesanti deve essere scaricato sul client. Ad ogni modo, dovresti usare TLS.

    
risposta data 06.04.2018 - 11:25
fonte

Leggi altre domande sui tag