È meglio scegliere una password casuale meno vulnerabile?

3

Ho creato una funzione di generatore di password casuali (che può essere trovata qui se qualcuno vuole dare un'occhiata), che sfornare le password con un mix casuale di lettere, numeri e altri caratteri. Questa domanda e la sua risposta suggerisce che dovrei selezionare la prima password scelta perché altrimenti le mie password diventano più prevedibili in base a ciò che mi piace. Ma teoricamente, se uno uscisse con solo lettere o solo lettere / numeri o solo un carattere speciale. Dovrei quindi generare un'altra password o sto perdendo entropia? Mi sento come se la prima password fosse vulnerabile alle liste di parole, ma non usarla tecnicamente rende le mie password più prevedibili. C'è un buon posto dove tracciare la linea?

P.S. A differenza di questa domanda, non mi interessa quanto siano difficili da ricordare queste password.

    
posta carloabelli 21.06.2016 - 16:18
fonte

2 risposte

8

In generale

Dipende dalle informazioni che stai ricevendo che l'autore dell'attacco ha.

Per prima cosa, supponiamo che l'attaccante sia cieco, e forse provi a craccare una grande discarica di account violati, senza sapere che hai usato quell'algoritmo specifico. Allora verrai protetto meglio se scartati 123456 se si presenta, o in modo più realistico, password che sono solo minuscole, parole di dizionario, ecc. Questo è per la semplice ragione che qualsiasi attaccante è obbligato a provare quelle prime poiché in generale sono più comuni.

D'altra parte, se l'utente malintenzionato sa che è stato utilizzato il tuo algoritmo, scartare le password renderà più semplice il suo lavoro. Se scarichi il 10% delle password, ovvero il 10% non deve tentare, risparmiando il suo 10% di tempo in media.

Quindi quale di questi due scenari è più probabile? Direi il primo nella maggior parte dei casi, ma solo tu puoi determinare quale sia il tuo modello di minaccia.

Un esempio matematico

Facciamo un po 'di matematica per vedere quante password verrebbero effettivamente rilasciate. Diciamo che i caratteri sono presi da tre gruppi (lettere maiuscole, minuscole, numeri + caratteri speciali) e diciamo che c'è un numero uguale di personaggi in ogni gruppo. Inoltre, supponiamo che tu abbia bisogno di password per avere almeno un carattere per ogni gruppo. Quale frazione di password faresti cadere?

Se ottengo i miei calcoli corretti, è 3*(2/3)^L dove L è la lunghezza della password. Per L=10 ottieni il 5%. Per L=20 ottieni lo 0,1%.

A meno che tu non sia completamente sicuro che l'unica minaccia sia un utente malintenzionato che sa come è stata generata la password (trovo difficile immaginare come potresti essere quello), direi che la riduzione dello spazio di ricerca dello 0,1% ne vale la pena .

    
risposta data 21.06.2016 - 16:27
fonte
1

Mentre la risposta di @Anders è accurata, voglio estendere il suo caso per far cadere le password di "bassa entropia" e non ho potuto inserirle in un commento.

In primo luogo, volevo introdurre un parallelo. Molti codici (ad es. DES) contengono chiavi deboli , che rendono la crittografia un comportamento subottimale. Ciò implica che non esiste uno "spazio tasti piatto" (uno in cui tutti i tasti hanno la stessa "forza"). Se ci sono abbastanza chiavi deboli conosciute, queste vengono spesso aggiunte a una lista rifiutate e scartate. L'unica volta che ciò non viene fatto è se il numero di tasti deboli è infinitesimale. Sono d'accordo sul fatto che c'è una grande differenza nelle password v / s delle chiavi di crittografia, ma il principio di scartare le chiavi / password deboli dovrebbe ancora essere applicato.

In secondo luogo, prendiamo ulteriori calcoli. Basato sulla matematica di Anders (perfettamente valida per IMHO), il 2% di 12 password per caratteri lunghi può essere definito come "debole". Questo non è un numero banale. Supponiamo che gli utenti con una password debole abbiano il 5% di possibilità di essere forzati brute, mentre una password sicura ha una probabilità dello 0,1% di essere forzata.

Originariamente, lo 0,2% degli account per i quali vengono generate le password verrà interrotto:

0.02 * 0.05 + 0.98 * 0.001 = 0.00198 == > 0.2%

Ma la metà di questi account rotti ha password deboli. Se scarti questi 2% dall'output del tuo generatore, il numero di attacchi riusciti sarà solo dello 0.1%

1.00 * 0.001 = 0.001 == > 0.1%

Pertanto, rimuovendo il 2% delle password, il numero di attacchi riusciti diminuirà del 50%.

    
risposta data 22.06.2016 - 06:41
fonte

Leggi altre domande sui tag