Dato hash, salt, charset e lunghezza della password, come si ottiene la password senza brute-forzandola?

2

Ho ricevuto questa domanda durante un esercizio e non sono sicuro di cosa rispondere.

Senza la forzatura bruta convenzionale e senza una tabella arcobaleno, come potrei scoprire la password?

Un algoritmo a forza bruta migliorato è accettabile, ma come potrei migliorarlo?

    
posta yzT 07.03.2014 - 21:33
fonte

1 risposta

2

Supponendo una decente funzione di hash, l'unico modo per trovare la password in questa situazione è indovinarlo . Questo è vero per qualsiasi funzione di hash crittografica : è il significato della proprietà di resistenza preimage. Questo è vero per qualsiasi hash crittografico; le funzioni di hash della password hanno proprietà aggiuntive ( sale e lentezza ) che lo rendono più costoso per verificare ipotesi.

Rainbow tables funzionano in base al precomputing l'hash di molte password e la memorizzazione in un modo che consente di trovare rapidamente la password dall'hash se la password è nel set precompilato. In altre parole, fai molte supposizioni in anticipo.

"Forza bruta convenzionale" è un termine ambiguo. Può riferirsi a provare le password in un ordine ingenuo (ad esempio aumentando la lunghezza). Ma sei libero di fare supposizioni in qualsiasi ordine. Ad esempio, ha senso provare 123456 , password e iloveyou prima di quszoy e nyoktw . Quindi assicurati di provare le ipotesi in un intelligent ordine .

Non puoi trovare la password in altro modo con mezzi computazionali, ma potresti trovarla con mezzi esterni , come ad esempio:

  • Snooping: attendi che l'utente inserisca la sua password e tieni sotto controllo le loro battute, ...
  • Spyware: installa un keylogger (fisico o software) sul computer dell'utente e attendi fino a quando non inseriscono la loro password.
  • Perdita di dati: leggi il post-it sul loro monitor, oppure apri la cassastrong e apri la busta.
  • Man-in-the-middle: ascolta la comunicazione tra il computer dell'utente e il server protetto da password mentre stanno digitando la loro password.
  • Phishing: fingi di essere l'amministratore di sistema del server o altra figura di autorità e fai in modo che l'utente digiti la sua password sul tuo computer invece che su quella legittima.
  • Social engineering: offri all'utente un sacco di soldi o una barra di cioccolato . Se fallisce, applica chiave crittografia (o un tubo di gomma se sei un fanatico della tradizione).
risposta data 07.03.2014 - 22:07
fonte

Leggi altre domande sui tag