Domanda su un semplice sistema di gestione password strong

3

Sto progettando un sistema che richiede il controllo dell'accesso tramite una password complessa e a tale scopo utilizzerà un algoritmo di generazione della password A che produce una password complessa di lunghezza L > = 32. Il sistema controllerebbe la password e, se la password non è corretta in diversi tentativi consecutivi, blocca l'utente da ulteriori accessi per un certo periodo di tempo.

Inoltre, il sistema dovrebbe:

  • genera una password lunga e complessa
  • la password deve essere unica al mondo,
  • consente una facile modifica della password,
  • non richiede autenticazione (ad esempio, gli utenti forniscono solo password, ma nessun nome utente),
  • essere semplici nell'implementazione e in uso.

Poiché non ho esperienza diretta in materia di sicurezza, sarei molto grato se i guru della sicurezza potessero criticare il seguente semplice e, forse, ingenuo progetto:

  1. Invoca lo stesso algoritmo noto A (ad esempio, una buona funzione di hash unidirezionale, un algoritmo di generazione UUID, ecc.) T volte, dove T è un numero molto grande, almeno un miliardo.
  2. Registra tutte le password generate da T in un file, una password per riga.
  3. L'utente deve scegliere un numero N (forse generato casualmente) tra 1 e T e ricordare quel numero nella sua testa.
  4. Quando viene richiesta una password, l'utente cerca nel file in posizione N, copia la password in quella posizione e la incolla nel programma che richiede una password.

Commenti:

A. Sembra che una persona possa ricordare un numero compreso tra uno e un miliardo senza troppi problemi, in quanto ha meno cifre rispetto a un numero di telefono USA a lunga distanza.

B. Finché il file non viene perso (può essere replicato), l'utente avrà sempre la password corretta.

C. La password può essere cambiata facilmente in qualsiasi momento rigenerando l'intero file e selezionando una nuova password nella stessa posizione N. L'utente non avrà bisogno di ricordare la nuova password - utilizzando lo stesso numero N si otterrebbe una nuova password.

D. Se un utente malintenzionato riceve una sospensione sul file con un miliardo di password e tenta ripetutamente di effettuare il login per trovare la password corretta, molto probabilmente ci vorrebbe un tempo molto lungo (anni o potrebbe essere secoli) perché il sistema continuerebbe a bloccare il utente dopo pochi tentativi falliti.

E. A causa di D, il file delle password può essere tenuto in chiaro, non è necessaria alcuna crittografia.

Domanda:

Cosa c'è di sbagliato in questo tipo di sistema?

    
posta Simple 03.11.2014 - 09:16
fonte

3 risposte

7

Se si presume che l'utente malintenzionato abbia il file, in realtà si sta facendo affidamento sul numero N come password. Hai affermato che si tratta di un numero selezionato dall'utente ed è probabile che gli utenti scelgano (ad esempio) 111 .... 111, 123 ..., 000 ... 000 o qualcosa di simile.

Questo potrebbe essere neutralizzato dicendo all'utente quale valore di N usare in "tempo di generazione", tuttavia è probabile che l'utente lo scriva o lo sia. Gli umani non ricordano più i numeri di telefono a lunga distanza, diamine, non ricordo più nessun numero di telefono!

Hai anche affermato che il numero N può essere di circa un miliardo, o all'incirca 10 ^ 9. In questo modo il tuo schema di password è abbastanza basso nell'entropia.

    
risposta data 03.11.2014 - 09:40
fonte
2

Considera inoltre che l'utilizzo di una password isolata significa che se un utente malintenzionato ha accesso al file della password non avrà bisogno di trovare una password per un utente specifico, dovrà solo trovare una password che sia stata selezionata da qualsiasi utente autorizzato Ovviamente, man mano che aumenta la popolazione di utenti, aumenta la probabilità che un utente malintenzionato scelga una password "attiva".

Da una prospettiva pratica come bloccheresti gli utenti? Senza identificatore dovrai usare qualcos'altro, assumerò l'indirizzo IP, che è OK se sai che tutti gli utenti avranno indirizzi IP univoci, ma se esiste la possibilità di indirizzi IP condivisi (per esempio via Internet gateway) esiste una possibilità molto reale di negazione involontaria del servizio, o anche di accessi riusciti che reimpostano il conteggio degli accessi fallito e consentono un aumento del tasso di attacco.

    
risposta data 03.11.2014 - 11:04
fonte
0

Hai progettato un gestore di password con meno protezione e usabilità rispetto a tutti gli altri prodotti maturi disponibili.

  1. Il file deve viaggiare con l'utente.
  2. La password per accedere allo pseudo-password manager è una password di 9 caratteri comprendente solo cifre.
  3. Il file manager pseudo-password funziona solo per un singolo percorso di accesso.
  4. Il file non è protetto in alcun modo.
  5. Se lo schema della password è noto a un utente malintenzionato, la possibilità di forzare la brute forzatura degli hash delle password sul sistema diventa molto più semplice.

Perché non utilizzare un gestore di password effettivo? LastPass, Keepass, 1Password, ecc.? Migliorano il tuo sistema sin dall'inizio.

O MFA? Un utente può avere una password a bassa entropia e avere comunque protezione.

    
risposta data 03.11.2014 - 18:13
fonte

Leggi altre domande sui tag