Come dimostrare una teoria che indovina la password dal libro di Matt Bishop "Introduzione alla sicurezza informatica"

4

In primo luogo, questo non è un problema di compiti a casa. Questo è un problema dal libro di Matt Bishop "Introduzione alla sicurezza informatica" che è stato usato come uno dei libri di testo per una classe di Computer Security che ho preso l'anno scorso. Questa domanda non è mai venuta fuori durante il corso. Con il senno di poi avrei dovuto chiedere al professore del corso di spiegare la dimostrazione, ma di nuovo questo libro di testo non era il testo principale del corso.

Il teorema afferma:

Let the expected time required to guess a password be T. Then T is a maximum when the selection of any of a set of passwords is equiprobable.

La domanda è: come provi questo teorema?

Capisco che se ci sono n password possibili, in media puoi indovinare la password in n / 2 tentativi di usare la forza bruta. Inoltre, se ogni password è equiprobabile, la probabilità di ciascuna password è 1 / n .

Qui è dove rimango bloccato, se la probabilità di ciascuna password non è uguale allora ovviamente c'è un set più piccolo di password da controllare e quindi una quantità di tempo più breve richiesta per eseguire un attacco di forza bruta.

Tuttavia, se non so qual è la probabilità di ciascuna password, ho bisogno di eseguire un attacco di forza bruta su tutte le password possibili e torniamo a n / 2 tentativi.

O è quella la prova. Se la probabilità di ogni password non è uguale e si testano le password con le probabilità più elevate, si ha a che fare con un sottoinsieme più piccolo e quindi un periodo di tempo più breve rispetto a testare tutte le password possibili.

C'è un modo più formale per affermarlo?

Inoltre, cosa succede se la password fa parte del sottoinsieme di password con probabilità inferiori, cercando solo le password di probabilità più alte non riuscirai a trovare la password desiderata. O richiedere più tempo rispetto a quando hai appena provato tutti.

Grazie per la tua considerazione a questa domanda.

    
posta HeatfanJohn 22.08.2012 - 19:58
fonte

2 risposte

4

Con la matematica:

Supponiamo che ci siano n password possibili. Il numero di password i ha probabilità p i di essere selezionato. Si presume che l'attaccante conosca i valori esatti di p i e li provi nell'ordine dovuto. Senza perdita di generalità, suppongo che p 1 sia la password più probabile, e così via (cioè p i > = p j ogni volta i < j ).

Sia q j la somma di tutti p i per i che vanno da 1 a j . q j è la probabilità che la password faccia parte delle j password più probabili (necessariamente, q n = 1 : la password fa parte dello spazio di possibili password). Quanto segue è vero:

For all j, qj >= j/n

Perché se q j < j / n (per alcuni valori j ), allora deve esserci un valore i inferiore a j tale che p i < 1 / n . La condizione su p i (valori non crescenti) implica quindi che tutti p k per k > sono inferiori a 1 / n , e questo implica che q n < 1 , che non è possibile.

q j è la probabilità che l'hacker esegua al più tentativi di j . Valori più alti implicano un successo più veloce, cioè se ci sono due probabilità di distribuzione P e P ' tali che q' j > = q j per tutti j , quindi l'attacco per P ' riesce almeno altrettanto velocemente dell'attacco per P . Nota che due date probabilità di distribuzione non possono necessariamente essere confrontate come questa (potrebbero esserci alcuni , ma non tutti valori j tali che q ' j > = q j ), ma, se può essere confrontato, la conclusione è la seguente.

La distribuzione uniforme ( p i = 1 / n per tutti i ) implica q j = j / n per tutti j , che, come spiegato sopra, confronta favorevolmente (per il difensore) con tutte le altre distribuzioni. Pertanto, questa è la distribuzione che rende l'attacco più lento.

Con fisica:

La velocità di successo dell'attacco è maggiore quando l'entropia della password è inferiore. La distribuzione uniforme massimizza l'entropia.

    
risposta data 22.08.2012 - 20:46
fonte
2

Facciamo alcune definizioni:

  1. Equiprobable significa che per un insieme di password W , ogni elemento in W ha un'uguale probabilità di occorrenza, cioè P ( W a ) = P ( W b ) per qualsiasi a e b .
  2. Si presume che il set W contenga effettivamente la password che stiamo cercando. Come tale, possiamo supporre che Σ P ( W n ) = 1.
  3. La probabilità che un sottoinsieme n di W contenga la password che stiamo cercando è n * P ( W x ) per qualsiasi x , o essenzialmente n diviso per il numero di password in W .
  4. Se tutte le password non sono equiprobabili, ma la definizione # 2 è ancora valida, la nostra migliore stima (senza conoscere le probabilità di sottoinsiemi specifici) è che una selezione casuale di W sarà comunque conforme alla definizione # 3 .

Il tempo previsto è definito come la quantità di lavoro necessaria per trovare la password di destinazione con una probabilità del 50%. In quanto tale, ingenuamente crackare una password contro il set W risulterà sempre in un tempo previsto di n / 2, dove n è il numero di voci in W .

Tuttavia, se conosci la probabilità di ciascuna password, puoi organizzarle in bucket equiprobabili. Come tale, tutte le password in W sono suddivise in n sottoinsiemi W 0 , W 1 , W 2 , ... W n , ognuno dei quali contiene un numero di password equiprobabili. L'avvertenza è che la password non è più garantita per essere in un singolo sottoinsieme - abbiamo solo una probabilità che la password sia in un particolare sottoinsieme. Tuttavia, la definizione n. 2 continua a valere quando si considerano tutti i sottoinsiemi nel loro insieme, cioè Σ P ( W n ) = 1.

Supponiamo di avere cinque sottoinsiemi:

Subset | Prob. (Password) | Count | Prob. (Subset)
-------+------------------+-------+---------------
W0     | 0.005            | 20    | 0.1
W1     | 0.002            | 60    | 0.12
W2     | 0.0004           | 540   | 0.216
W3     | 0.00007          | 6000  | 0.42
W4     | ~0.0000426       | 3380  | 0.144

In questo caso dobbiamo calcolare il numero di password che controlliamo prima che la probabilità totale di raggiungere la password raggiunga 0,5. Quindi, per il primo sottoinsieme ( W 0 ) raggiungiamo 0.1, per il secondo ( W 1 ) noi raggiungere 0,22, per il terzo ( W 2 ) raggiungiamo 0.436. Quando guardiamo al quarto bucket ( W 3 ) ci accorgiamo che stiamo superando lo 0.5. Quindi, calcoliamo il numero di password nel bucket W 3 che ci porterà da una probabilità di 0.436 a 0.5. Questo è semplice: sottrarre, quindi dividere: 0,5 - 0,436 = 0,064, 0,064 / 0,00007 = 914. Quindi, il nostro lavoro previsto è 20 + 60 + 540 + 914 = 1534 hash.

    
risposta data 22.08.2012 - 21:07
fonte

Leggi altre domande sui tag