Esiste un modo per verificare se l'applicazione salva la password in chiaro o in formato hash? [duplicare]

3

Ho quattro tipi di password e li uso in base all'importanza dell'applicazione web. Quindi, se vedo un'applicazione che non utilizza SSL e devo creare un account, userò una password di base che viene utilizzata per tutte le applicazioni non sensibili.
Ora, anche se un'applicazione utilizza HTTPS, sono scettico su cosa succederebbe se le password fossero archiviate in un testo semplice nel database e qualcuno potesse trovarle in una tabella. Dì, in qualche modo, il database è stato violato e l'utente malintenzionato ha tutte le password.
Poiché le mie altre tre password sono in qualche modo un po 'correlate, voglio assicurarmi che le mie password importanti non siano condivise con un'applicazione che salva le password in testo semplice.

Quindi c'è un modo per trovare il meccanismo di memorizzazione della password di un'applicazione?

    
posta one 21.11.2016 - 19:52
fonte

2 risposte

5

No, non esiste se l'applicazione non è open source.

L'unico modo sicuro per proteggersi è usare una password diversa per ogni sito web che usi. Puoi utilizzare vari gestori di password per questo.

Se sei interessato a scoprire se un sito memorizza le password in chiaro, prova a chiamare il supporto e implorandoti a darti la tua password, che hai opportunamente dimenticato. Se te lo danno, lo sai.

Supponendo che memorizzino password con hash, non è ancora garantito che la tua password sia sufficientemente protetta. Un sacco di siti sembrano usare hash non salati di qualità discutibile (md5, per esempio). Gli hash MD5 non salati possono essere forzati brutalmente con una buona percentuale di recupero per password più semplici, sebbene le password lunghe, non comuni / casuali dovrebbero essere comunque al sicuro.

    
risposta data 21.11.2016 - 20:00
fonte
2

Potresti usare un attacco a tempo * per determinare queste informazioni.

Potresti riuscire a distinguere un hash di password (lento / strong) da un hash (veloce) debole o testo semplice misurando il tempo di elaborazione del modulo di accesso, (che è probabile che sia uno script molto magra) prima non inviare alcuna password e vedere quanto tempo supplementare è necessario quando la password è inclusa. Lo script richiede:

  1. un po 'di tempo di ricerca minuscolo per trovare l'utente e il suo sale
  2. un po 'di tempo in più per cancellare la password per il confronto

In i miei consigli per l'hashing della password , Suggerisco che l'hash della password (lento / sicuro) dovrebbe richiedere circa 100ms (con protezione DoS) sulla piattaforma di destinazione (sapendo che l'hardware più veloce sarebbe utilizzato per la forza bruta), ma potrebbe arrivare a 10ms o 1ms (molto più difficile da misurare) e comunque essere considerato ragionevolmente sicuro. (da altri esperti di sicurezza)

Nel test ci saranno diverse considerazioni:

  • Quanto è coerente il tempo di risposta in ogni tentativo.
  • Uno sviluppatore di applicazioni ben protetto difenderà dagli attacchi temporali di enumerazione degli utenti elaborando l'hash con sale falso nel caso in cui il nome utente sia errato, quindi osservare la differenza nel tempo di elaborazione sarebbe difficile.

    (Non mi aspetto ritardi falsi quando Username e Password sono completamente vuoti, ma potrebbe essere difficile distinguere la differenza di ritardo tra il # 1 e il # 2 sopra)

  • Molte applicazioni impiegano molto meno di 100ms per l'hash, per vari motivi, e questo rende più difficile il test del tempo.

* La ricerca di vulnerabilità nel software di altre persone senza permesso è illegale in molte giurisdizioni. Anche se in realtà, non penso che saresti incriminated catturato per testare il tempo di risposta di pochi tentativi di accesso.

    
risposta data 21.11.2016 - 20:01
fonte

Leggi altre domande sui tag