Forza bruta - Quanto è difficile?

0

Sto facendo un progetto di ricerca e ho una domanda su quanto sarebbe difficile fare qualcosa di forza bruta.

  • Dire che c'è una parte di testo - "Mi chiamo James"
  • La rimozione degli spazi bianchi produce "MynameisJames"

Se modifichi casualmente ogni carattere di quella stringa con un carattere diverso, nell'intervallo di caratteri alfanumerici e simboli misti, quanto sarebbe difficile applicare la forza bruta e ottenere la stringa originale?

La stringa crittografata sembrerebbe "3r # u8N! PRfeq1".

    
posta CBaker 15.07.2018 - 20:31
fonte

3 risposte

5

Il forzante bruto consiste nel generare ripetutamente nuovi input e quindi controllare se l'ipotesi è corretta o meno. La difficoltà della forzatura bruta dipende quindi dal numero medio di tentativi necessari (cioè quanti input diversi ci sono) e dalla velocità con cui si verifica la correttezza di un'ipotesi.

Nulla nella tua domanda fornisce queste due informazioni e quindi la tua domanda non può essere risolta per il tuo esempio specifico.

Ma in generale la quantità di tempo necessaria è metà dello spazio di ricerca (cioè il numero di ingressi) moltiplicato per il tempo necessario per creare l'ipotesi e quindi verificare se l'ipotesi è corretta. Ad esempio con una stringa di 8 caratteri (AZ, cioè 26 caratteri) il numero di input possibili è 26 8 e metà di questi (26 8 / 2) sono necessari per indovina in media correttamente. Se 10.000 ipotesi al secondo sono possibili, la forzatura bruta richiederebbe in media circa 120 giorni per indovinare l'input corretto.

    
risposta data 16.07.2018 - 06:50
fonte
1

Il forzamento bruto è diminuito del numero di possibilità ^ della lunghezza della stringa. per esempio. 'Mynameisjames' è lungo 13 caratteri e ci sono 26 lettere nell'alfabeto, quindi 26 13 . Che equivale a un numero enorme: 2.4811529e+18

Tuttavia, esiste una tecnica nota come attacco di compleanno, che deriva dal teorema del compleanno secondo cui hai bisogno di 23 persone in una stanza per avere due compleanni di persone che si verificano nello stesso giorno. Quindi, essenzialmente, una collisione. Maggiori informazioni possono essere trovate qui: link

Quindi, un attacco di forza bruta impiegherà molto tempo, tuttavia un attacco di compleanno sarebbe sostanzialmente più veloce. in pratica 26 13/2 .

L'aspetto del tempo si riduce alla velocità dei computer che hai a portata di mano per tentare di decifrare la password. I valori che ho dato ti daranno il numero di tentativi necessari per infrangere la password, quindi questi possono essere aggiunti a quanti controlli una macchina può eseguire al secondo per darti la tua risposta finale.

    
risposta data 16.07.2018 - 12:01
fonte
1

Molte delle risposte fornite elencano 26 caratteri come set di caratteri, ma non è corretto. Dovrebbe essere almeno 52 per caratteri maiuscoli e minuscoli. Se tu fossi forzato brutale, non potevi sapere se erano solo lettere senza numeri o segni di punteggiatura. Quindi il numero standard di caratteri è 94, 26 A-Z, 26 a-z, 10 per 0-9 e 32 "caratteri speciali" per la punteggiatura.

Ora, per forzare completamente la forza, devi conoscere la lunghezza della "password" (chiamiamo solo MynameisJames una password), quindi 13 caratteri. Di solito non conosci queste informazioni, quindi ciò che accade è iniziare forzando brutalmente tutto per 4 caratteri, poi tutto per 5, e continua ad aumentare finché non lo trovi.

Questo può essere molto noioso. Anche con un impianto di cracking che aveva una scheda grafica i7 e 2 1080, la forzatura bruta di una password con hash MD5 a 10 caratteri poteva richiedere una settimana, e presumendo che sapessi che erano 10 caratteri. Certo, c'è più coinvolgimento in questo perché è in realtà il crack "hash", quindi il computer deve generare un hash per ciascuna voce testata e richiede più tempo.

"Quanto difficile sarebbe" è una domanda difficile a cui rispondere poiché non è particolarmente misurabile. Detto questo, una settimana con un computer crittografico probabilmente lo indovinerebbe correttamente se fosse in un formato hash obsoleto (MD5). Nel senso che questo è solo testo in chiaro, probabilmente sarebbe più come cercare di inserire una password, piuttosto che spezzare un hash, che richiede molto più tempo perché devi aspettare una risposta da questo. Se si trattasse di una sceneggiatura per indovinare solo un carattere 13 in chiaro in chiaro immesso, potrebbero essere necessari alcuni giorni se ottimizzato (ho scritto uno script come questo per testare il successo degli elenchi di password, quindi posso dire che di prima mano eseguirà 4 milioni tentativi in poche ore).

La password di 13 caratteri con una forza bruta di 94 caratteri è di 44 x 10 ^ 24 tentativi. Il metodo diviso per 2 ti dà solo il 50% di possibilità e la mia esperienza è che la password sembra essere sempre nella seconda metà di quel 50, solo la legge di Murphy "in pratica" contro "in teoria".

Questo articolo potrebbe anche essere utile link

    
risposta data 16.07.2018 - 19:27
fonte

Leggi altre domande sui tag