Creazione di password sicure [duplicate]

-1

Mi è stato assegnato il compito di scrivere un generatore di password casuali da utilizzare su una serie di account da buttare via.

In questo scenario, gli account devono essere molto sicuri e verranno eliminati dopo un solo giorno e sostituiti con un'altra combinazione di nome utente / password.

Ho una matrice principale di 70 caratteri. Quando viene creata una nuova password, vengono selezionati 17 caratteri casuali dall'array, visualizzati sullo schermo all'utente e mai salvati / registrati ovunque.

Partendo dal presupposto che la password viene mostrata all'utente una volta sola, non viene memorizzata / scritta al di là degli utenti per l'accesso singolo e funziona partendo dal presupposto che tutto il resto sia sicuro (non lo è, ma voglio ottenere questo bit giusto e quindi spostarsi su altre aree) - è una password di questa complessità sicura contro le forme comuni di attacco?

A meno che non mi sbagli, 17 caratteri mettono la password fuori dai regni di un tavolo arcobaleno (massimo 16 caratteri che ho letto .. Sono felice di essere corretto).

A quanto ho capito, il numero di combinazioni possibili supera i 29 nonillion, superando i limiti ragionevoli per una forza bruta in meno di 24 ore.

L'account ha anche un blocco di 5 tentativi ad esso applicato con uno sblocco di 30 minuti.

So che c'è la possibilità che la password venga indovinata casualmente la prima volta (tutto è possibile) - ma c'è qualcosa di assolutamente ovvio che ho perso qui?

    
posta Fazer87 24.03.2016 - 17:05
fonte

2 risposte

3

Il problema più piccolo che vedo è che hai detto "casuale" senza definirlo. Se stai usando un generatore di numeri pseudo casuali crittograficamente sicuro, stai bene. Se stai usando random (), non stai bene perché l'output di random () è prevedibile. random () è utile solo per analisi statistiche, non per applicazioni di sicurezza.

Ciò che sarà molto più importante per il successo del tuo sistema è l'usabilità. Se ti aspetti che i tuoi utenti digitino 17 caratteri casuali, probabilmente faranno esplodere la tua regola di 5 tentativi nel primo minuto, strizzando gli occhi a un carattere strano, cercando di differenziare O da 0, 1 da 1, 1 da |, & trattino; da & trattino ;, e altri caratteri con glifi simili. Ballando sul tasto Maiusc mentre si digita si introducono anche degli inconvenienti. Come qualcuno che deve soffrire di questi orribili generatori di password in cui il "taglia e incolla" è stato crudelmente impedito dagli "esperti di sicurezza", posso dire dalla tua descrizione che soffre già di questo difetto fatale e che i tuoi utenti lo disprezzeranno . Invece di un set di 70 caratteri, prendi in considerazione la possibilità di limitarlo. Disegna da solo i caratteri alfabetici maiuscoli o disegna dall'insieme di [0-9] e [a-f]. Un'altra opzione menzionata era diceware, che ti consentiva di generare tipi di password multipla "corretto per la batteria di cavalli". Questi sono non ambigui e facili da digitare, anche se molto più a lungo.

Puoi facilmente eseguire i calcoli matematici per determinare "l'indovinabilità" delle liste di parole ristrette o degli approcci limitati ai set di caratteri. E puoi regolarlo in modo che la quantità di incertezza superi le tue esigenze. Hai detto che una probabilità di 1 su 29 non è un rischio che sei disposto ad accettare, ma ti accontenterai di una possibilità di un millesimo, o di una possibilità unica? Riduci la lunghezza per abbinare la tua tolleranza al rischio e avrai meno problemi ai tuoi utenti.

    
risposta data 24.03.2016 - 19:47
fonte
1

Da quello che raccolgo, stai uccidendo una mosca con un martello.

Poiché blocchi l'account dopo 5 tentativi e lo sblocchi dopo 30 minuti, e cancelli l'account dopo 24 ore, quindi, nel peggiore dei casi, un utente malintenzionato può tentare 10 tentativi all'ora o 240 password totali prima del l'account è andato. Quindi la tua password deve essere abbastanza difficile da essere improbabile in 240 tentativi. Con uno spazio di 70 caratteri, una password di lunghezza 4 dovrebbe essere abbastanza sicura (24 milioni di possibilità). Se sei paranoico, crea 5 caratteri e fallo.

Ma forse ti starai chiedendo:

"What if an attacker compromises my server? If the passwords are short they may be able to brute force my password hashes and get access to everyone's password!"

Ma la mia risposta sarebbe:

"And do what with them?"

    
risposta data 24.03.2016 - 19:20
fonte

Leggi altre domande sui tag