La modifica del numero predefinito di iterazioni in KeePass (o altre applicazioni di crittografia) aumenta la sicurezza?

2

Ispirato da questa domanda sulla difficoltà di crackare un database KeePass , mi chiedo se la modifica del numero predefinito di iterazioni in un'applicazione di crittografia (ad es. KeePass) aumenti la sicurezza. Spero che la domanda sia applicabile a una varietà di applicazioni; se no, immagino che oggi sia curioso di KeePass.

Il mio ragionamento è che un utente malintenzionato non conosce il numero di iterazioni prima del tempo e quindi ha due opzioni:

  1. Supponiamo che l'utente dell'applicazione di crittografia non si sia preoccupato di modificare il numero predefinito di iterazioni o
  2. Verifica la validità della password per un intervallo di migliaia di possibili scelte di iterazione (il valore predefinito è 6.000, quindi forse da 5.000 a 20.000 o più)

Poiché # 2 è molto più lavoro, è una scommessa più sicura per l'utente modificare l'impostazione predefinita. La mia teoria sarebbe che l'utilizzo di un numero come 6.001 aumenti sostanzialmente la sicurezza poiché l'attaccante concentrerà gli sforzi sul valore predefinito di 6.000.

Ho letto alcune domande correlate, che discutono in generale quante iterazioni scegliere. Ciò che non mi è chiaro è se utilizzare un'applicazione come KeePass, dove il numero predefinito è noto all'attaccante , rende importante modificare l'impostazione predefinita. Se la mia impressione è sbagliata, mi dirai che l'utilizzo di 6.001 iterazioni in KeePass è altrettanto sicuro di 6.000.

posta Logical Fallacy 16.03.2015 - 16:55
fonte

2 risposte

4

Prima di iniziare, penso sia importante sottolineare che il conteggio del round è archiviato nell'intestazione del file del dizionario KeePass, in modo che KeePass stesso possa aprire i tuoi file di password a prescindere dell'impostazione nelle sue preferenze . Altrimenti non saresti in grado di aprire un file KeePass su un'altra macchina se avesse un diverso numero di iterazioni, senza prima riconfigurare KeePass sullo stesso valore di iterazione (che potresti anche non ricordare).

Cercare di mantenere il numero di iterazioni segreto è in gran parte inutile, ed è in diretta contraddizione con il principio di Kerckhoffs - solo la password deve essere considerata segreta; l'algoritmo e i suoi parametri generali dovrebbero essere considerati noti.

La cosa più importante da tenere a mente è che PBKDF2 è progettato per essere sicuro sia contro gli attacchi di precomputazione (ad esempio le tabelle arcobaleno) che gli attacchi a forza bruta in cui l'attaccante ha accesso immediato all'hash o a un oracolo equivalente. Aumentare il numero di iterazioni rende l'attaccante più difficile da indovinare per ogni password, al costo di impiegare più tempo per aprire legittimamente il vault.

Essenzialmente, il sistema di sicurezza si basa sul fatto che devi eseguire una quantità di lavoro (chiamiamola W ) quando inserisci la password conosciuta, ma l'utente malintenzionato deve provare centinaia di migliaia di password (100000 * W), e quindi deve fare centinaia di migliaia di volte più lavoro di te. Se il tuo KDF è particolarmente veloce, allora W potrebbe richiedere solo un millesimo di secondo di computazione, il che significa che 100000 * W è solo un minuto o così. Tuttavia, se riesci a tollerare un ritardo di un secondo, puoi aumentare il fattore di lavoro W in modo che il lavoro dell'attaccante richieda giorni o anni, non minuti.

    
risposta data 16.03.2015 - 17:34
fonte
0

Stai assumendo in modo errato: il numero di iterazione fa parte delle intestazioni "pubbliche" del formato di file keepass.

È necessario altrimenti Keepass stesso non saprebbe quanti iterazioni eseguire (dovrebbe eseguire il tutto). Puoi verificarlo controllando il codice sorgente keeppan .

Ciò non significa che aumentare la quantità di iterazione usata da keepass per la derivazione delle chiavi non sia utile, significa semplicemente che aumentarlo di uno non sta facendo molto per la sicurezza (più o meno lo aumenta di un fattore di 1/6000)

    
risposta data 16.03.2015 - 17:34
fonte

Leggi altre domande sui tag