it-swarm-eu.dev

È sicuro controllare la password con l'API HIBP Pwned Passwords durante la registrazione dell'account?

L'utente registra l'account su un'app Web. Le password sono salate e cancellate. Ma è sicuro controllare la password rispetto all'HIBP API Pwned Passwords , prima di salarla e cancellarla? Ovviamente l'app utilizza TLS.

Quindi, se la password viene trovata su qualsiasi violazione, non consentire la registrazione di un account. Se la password non è stata trovata in violazione, salala e archiviale in un database.

Lo stesso vale per la modifica della password.

39
Bitenieks

Sono stato investito? consente a chiunque di scaricare l'intero database per eseguire i controlli localmente.

Se questa non è un'opzione, l'utilizzo dell'API è sicuro, poiché utilizza k-anonimity che consente di eseguire il controllo senza trasmettere la password/hash completa.

60
Benoit Esnard

Se l'operatore dell'API Pwned Passwords è dannoso (o il servizio è stato violato da una persona malintenzionata o qualcuno intercetta la tua comunicazione) può mentire su determinate password (restituire solo un sottoinsieme di password che conosce per quell'hash), registra dove la richiesta proveniva, identifica il sito Web appartenente a quell'ID, identifica l'account (in base al tempo di creazione, ad esempio) e testalo con le password su cui ha mentito, per una discreta possibilità di compromissione dell'account.

Questo è uno scenario abbastanza improbabile (il proprietario dell'API è un rispettabile professionista della sicurezza, l'elenco di hash noti è pubblico e fare questo tipo di attacco senza essere rilevato sarebbe difficile), quindi dipende da quanto avverso al rischio sei . Se gestisci un forum di discussione, utilizzare l'API è sicuramente una buona idea. Se gestisci una banca elettronica, forse non così tanto.

Il download del database e l'esecuzione dei controlli a livello locale sono ovviamente più sicuri, ma non è un compito banale, date le dimensioni.

13
Tgr

Come chiesto, No.

A partire dalla pubblicazione di questa risposta, la domanda chiede se è sicuro inviare una password "prima di salarla e cancellarla", il che significa in chiaro. Non dovresti mai non inviare una password in chiaro a una terza parte (la seconda parte potrebbe essere OK se stai effettuando l'accesso). Anche l'hashing della password non è sufficiente, dato che Rainbow Table può essere usato per cercare la password. Questo è il motivo per cui ho visto qualcuno (hashing e) inviare ogni singola password in un database KeePass a HIBP , li ho immediatamente richiamati su di esso.

Come hanno sottolineato altre risposte, esiste una nuova versione di HIBP che include k-anonimato (vedi quel link e le altre risposte per maggiori informazioni). Tuttavia, questo sta ancora divulgando alcune informazioni sulle password (a HIBP e qualsiasi potenziale MITM attaccante. Divulging some information non è affatto male come perdere l'intera password, ma è comunque qualcosa di cui dovresti preoccuparti. Quello che vuoi davvero è che le tue password siano sicure, non anonime .

Alla fine, se vuoi assicurarti che nessuna informazione sulle tue password sia trapelata durante il processo di verifica, devi scaricare intera Base di dati di password elaborate, hash e controllare la tua password localmente (in questo caso, sul server perché nessuno vuole scaricare l'intero DB solo per creare un account). Basta non memorizzare la password o l'hash che si sta confrontando con il DB ovunque, archiviare solo l'hash salata nel proprio database di password.

12
NH.