Domanda

Quando si crea un meccanismo di "password dimenticata", potremmo voler creare una password temporanei per l'utente che è memorizzato utilizzando SHA1 (sentitevi liberi di suggerire altre C # meccanismo Cryptography).

Per quanto tempo dovremmo fare la password tempory? Troppo breve, potrebbe essere costretto bruta. Troppo a lungo e la lunghezza inutile è ridondante in quanto la stringa viene assegnata in ogni caso? (Da un 20 caratteri e 50 caratteri stringa costituisce un hash della stessa lunghezza comunque)

Aggiorna
Scusate se questo era fuorviante. Certo possiamo scegliere un numero fuori l'aria, ma mi chiedevo se ci fosse una buona ragione matematica per raccogliere 13 invece di 12.

È stato utile?

Soluzione

Credo che questo sia un buon consiglio per quanto riguarda le password temporanee:

La guida definitiva per formare l'autenticazione basata su sito web

Si parla di evitarli generazione a favore di arrivare alla vera e propria azione che l'utente desidera.

Altri suggerimenti

Io di solito vado con 10 caratteri. Nessun motivo particolare per questo, solo qualcosa che direi è al di sopra della media per la lunghezza di una password scelta da un utente.

Proprio per il fatto che è generato in modo casuale, probabilmente sarà più sicuro e più difficile da forza bruta di ogni altra cosa scelti dagli utenti. Le persone scelgono password stupide, come myspace1, stackoverflow1, 12341234 etc.

Se la password è in caratteri alfanumerici si hanno solo circa 6 bit di dati utilizzabili per carattere e quindi ti sbagli che non ha senso fare una password più lunga di 20 caratteri.

Sembra che siete preoccupati per rendere la password temporanea più forte che la password dell'utente ... quando in realtà, qualcosa come un 10-carattere di base-64 (o simili - punteggiatura ecc) che sta per essere molto difficile da rompere e molto più forte di quanto la password l'utente genererà ....

Lo rendono una dimensione variabile così (diciamo 8-12 caratteri) che renderà più difficile la forza bruta ... se l'attaccante sa ritorni una password di carattere X tutto quello che devono fare è provare tutte le password con N. .. assumendo n è grande sarà impraticabile, ma variando la dimensione di N sarà almeno rendere molto più difficile per loro.

Steve Gibson ha creato un " Ultra High Security Password Generator ".
In quella pagina che genera 3 password diversa per ogni visualizzazione della pagina:

  • 64 caratteri esadecimali casuali (0-9 e A-F)
  • 63 casuali caratteri ASCII stampabili
  • 63 casuali caratteri alfanumerici (a-z, A-Z, 0-9)

Si spiega anche le ragioni di questo. E 'una bella lettura. Spero che questo aiuti.

Andare per qualsiasi lunghezza tuo sito specifica come raccomandato per gli utenti. Quando si genera una stringa casuale di caratteri base64, vorrei dormire tranquillamente la notte con la password di 8-char. Ma naturalmente mi piacerebbe limito tentativi di accesso a una volta ogni X secondi, e disattivare temporaneamente conto dopo Y fallito tentativi.

E ricordate di aggiungere un sale per utente prima di hashing, per contrastare gli attacchi di database-based.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top