password cracking: tempo contro costo

4

Capita spesso che le persone si riferiscano a argomenti come: Una password (con hash) verrà incrinata in 1.000 anni se si utilizza un normale computer desktop, ma se si usano 100.000 computer (botnet) verrà crackato in meno di 4 giorni. La password "1.000 anni" sembra buona, ma i 4 giorni no. Penso che il modello del "tempo" sia fuorviante.

Non dovremmo trovare un modello migliore per quanto sono forti le password? Potremmo stimare il costo in dollari?

Qual è una buona metrica per la sicurezza della password?

    
posta honze 14.03.2016 - 15:39
fonte

3 risposte

4

La definizione tecnica della forza della password esiste già in termini di bit di entropia . Essenzialmente, è il numero di tentativi necessari per arrivare a una determinata password. Una password di 4 cifre ha 10.000 possibili valori, quindi per indovinarlo occorrerebbero solo 10.000 tentativi o meno. Questi sono espressi in poteri di 2; 10.000 è approssimativamente 2 ^ 14, quindi diremmo che ha 14 bit di entropia.

14 bit di entropia non sono molti; una password così breve può essere bruta forzata in javascript in un browser in pochi istanti. È generalmente vero che gli attacchi fino a 2 ^ 48 sono facilmente ottenibili da un moderno computer desktop; altro se l'utente malintenzionato ha hardware personalizzato. Nel 2012 qualcuno ha alloggiato 25 schede grafiche in un PC ed è stato in grado di sostenere 348 miliardi di calcoli hash al secondo. Per sicurezza, dobbiamo supporre che gli attaccanti migliorino nel tempo man mano che il loro hardware migliora.

Ma il calcolo degli hash non è l'intera storia. Oltre a ciò, ci sono modi in cui i proprietari dei sistemi migliorano la sicurezza usando un algoritmo di hashing migliore, un protocollo migliore come PBDKF2 o bcrypt, applicando salt, ipotesi di limitazione, hardware personalizzato, ecc. La limitazione della velocità è molto efficace se si controlla l'hardware: un iPhone il passcode ha solo 2 ^ 14 bit di forza, ma il chip personalizzato incorporato all'interno della macchina distruggerà le sue chiavi di crittografia segrete incorporate se il codice di accesso errato viene inserito 10 volte.

Dall'altra parte della scala, 2 ^ 80 bit di entropia si avvicinano ai limiti degli attacchi immaginabili. Oggi sembra improbabile che qualcuno possa usare la forza bruta per creare una password a 80 bit a casa; sembra quasi impensabile che qualsiasi entità abbia mai potuto forzare la forza bruta per forzare una chiave a 128 bit. L'iPhone studiato dall'FBI utilizza chiavi di crittografia che hanno 256 bit di entropia e, a questo punto, non conosciamo alcun modo di forzare la forza. Tuttavia, i progressi nella ricerca matematica e crittografica e i progressi nell'hardware (come l'informatica quantistica) hanno dimostrato più volte che nulla dovrebbe essere dichiarato non incrinabile.

E la difesa è solo metà dell'immagine. Ci sono modi in cui gli attaccanti possono migliorare i loro attacchi oltre alla parallela personalizzata sopra menzionata: possono usare elenchi di parole e strumenti come John the Ripper per dare la priorità alle indovine delle password in base alla lingua dell'utente, le tabelle arcobaleno possono essere facilmente scaricate, collisioni, malware, ricerche sul bersaglio, zombi in una botnet prigioniera e altre tecniche possono ridurre lo spazio di ricerca. Tutto dipende dalle capacità e dalla dedizione del tuo avversario immaginato.

Dato che sia l'attacco che la difesa non sono definiti staticamente, ciascuna combinazione di implementazione e modello di minaccia è specifica e non è realmente paragonabile a qualsiasi altra installazione. Ciò rende difficile assegnare una stima fissa del costo o del tempo su una base paragonabile tra diverse implementazioni di password. Le cose più precise che possiamo dire sono "questo algoritmo ha x bit di forza", "questa implementazione moltiplica lo sforzo dell'attaccante di 60.000", ecc.

    
risposta data 14.03.2016 - 22:11
fonte
3

Tempo e dollari sono entrambi molto variabili in base alle prestazioni del computer. Nel 1995, l'acquisto di un computer in grado di eseguire tutti i calcoli di hash MD5 come un computer medio del 2016 sarebbe costato migliaia. Anche l'acquisto di un dispositivo con la stessa potenza di un Raspberry Pi 3 sarebbe costato migliaia. Anche al giorno d'oggi, puoi scegliere come spendere soldi per ottenere il miglior ritorno per il tuo investimento - alcuni hash si incrinerebbero più velocemente se costruisci un cracking rig dedicato basato su GPU, mentre altri funzioneranno meglio se scalerai su più macchine a bassa velocità. / p>

Allo stesso modo, è facile affittare tempo ad AWS o ad altri fornitori di servizi cloud, che possono fornire grandi quantità di potenza di calcolo, ma non hanno costi fissi. Se paghi in anticipo per un carico di tempo del server, pagherai molto meno se accumuli crediti per un mese e poi li paghi. Quale metodo dovrebbe utilizzare un calcolo?

Per i calcoli su larga scala, a volte è meglio dimenticare l'implementazione del mondo reale e lavorare su un'astrazione. Uno che sembra funzionare abbastanza bene presuppone che ogni processo di hash abbia un tempo prefissato (es. 1 per microsecondo dà 1 milione di hash provati in ogni secondo, 1 per nanosecondo dà 1 miliardo di hash al secondo), quindi calcolando il tempo necessario prendi l'intero spazio delle chiavi dell'hash - per SHA-256, che è più volte l'età dell'universo (non importa quale sia la definizione usata - è un grande spazio per le chiavi!). Non dimenticare che il tempo medio sarà inferiore - questo è lo scenario peggiore. In tal modo si evita il collegamento al computer e si ridimensiona come previsto, pur rimanendo indipendente dai prezzi variabili o dai cambiamenti di velocità.

    
risposta data 14.03.2016 - 16:15
fonte
2

Penso che il tuo suggerimento sia eccellente, e in effetti è già stato applicato da ricercatori della sicurezza del mondo reale. Il recente attacco DROWN ha calcolato che sarebbe bastato un tempo di Amazon EC2 di $ 440 per eseguire gli analsismi matematici.

Mathew fa una domanda interessante. Come calcoliamo i costi, dal momento che sono variabili? Per fortuna questo ha una risposta facile, qualunque sia il più economico.

I costi generalmente scendono con questo tipo di attacchi. Questo è anche rilevante per la situazione e dovrebbe essere preso in considerazione. 20 anni fa l'attacco DROWN sarebbe stato molto più costoso. Una stima approssimativa usando la legge di Moore suggerirebbe 20 anni / 18 mesi = 13 raddoppiamenti, o 8.192 * 440 = 3,6 milioni di dollari. (Al momento ben all'interno delle capacità dell'NSA, ma al di fuori delle capacità della maggior parte degli altri ma ultra-ricchi).

Si noti inoltre che non sono richieste cifre esatte. Anche un fattore 2 dà l'idea generale dei costi. Se l'attacco di cui sopra costasse $ 880 di tempo EC2, sarebbe davvero importante? Il valore errato è relativo e le stime devono essere sufficientemente precise per trasmettere l'ambito.

La maggior parte degli uomini d'affari ha già familiarità con il pensiero in denaro, e si presta naturalmente ai responsabili delle decisioni. Se dici che qualcuno può violare la sicurezza per $ 440, ascolterà.

    
risposta data 14.03.2016 - 20:58
fonte

Leggi altre domande sui tag