Quanto tempo può essere una passphrase pkcs # 8?

1

Un programma sta usando una chiave privata per leggere i messaggi. Per migliorare la sicurezza, oltre alla casualità, sto cercando di creare la passphrase più lunga che abbia senso.

Quanto dovrebbe essere lungo? Dopo quale quantità di caratteri (casuale ascii) smette di dare senso aggiungendo altro alla passphrase?

    
posta Andras Gyomrey 20.10.2014 - 01:22
fonte

1 risposta

3

PKCS # 8 è uno standard flessibile; è una sintassi per la codifica di chiavi private con crittografia opzionale basata su password. Il livello di sicurezza che può essere raggiunto dipende dall'algoritmo utilizzato per convertire la password in una chiave e dall'algoritmo crittografico che funziona con questa chiave. PKCS # 5 definisce un numero di combinazioni di derivazione di chiavi basata su password e algoritmo di crittografia.

Ad esempio, si supponga di utilizzare PBKDF2 con HMAC / SHA-1 per la derivazione delle chiavi e 3DES per la crittografia. 3DES accetta una chiave a 192 bit; tuttavia, solo 168 di questi bit sono realmente utilizzati. L'uscita SHA-1 ha dimensione 160 bit e questo impone un limite rigido di 160 bit alla sicurezza di PBKDF2 con HMAC / SHA-1. Pertanto, con questa combinazione, ha poco senso utilizzare una password con più di 160 bit di entropia.

Entropia non viene automaticamente derivato dalla password lunghezza , ma se si usano caratteri casuali (caratteri casualmente omogenei, scelti indipendentemente l'uno dall'altro - cioè non a tutto il tipo di password che un utente umano potrebbe inventare), quindi la relazione tra lunghezza ed entropia è semplice. Ci sono 95 caratteri ASCII stampabili (non incluso lo spazio) in modo che ogni carattere casuale generi circa 6,57 bit di entropia (poiché 2 6,57 è approssimativamente uguale a 95). Pertanto, 160 bit di entropia vengono raggiunti con 25 caratteri. Con questi algoritmi, non avrebbe alcun senso usare più di 25 caratteri, a patto che questi personaggi siano scelti in modo casuale, uniforme e indipendente l'uno dall'altro.

In effetti, le funzioni di derivazione delle chiavi basate su password come PBKDF2 includono migliaia di iterazioni in modo tale da rallentare qualsiasi tentativo di ricerca esauriente; questo è equivalente ad alcuni bit extra di entropia ( in quel contesto ). Se esistono, ad esempio, 1000000 iterazioni, allora contano come 20 bit (perché 2 20 è approssimativamente uguale a 1000000 e ciascuna iterazione PBKDF2 implica la stessa quantità di lavoro di un blocco di crittografia 3DES elementare) . Dalla figura sopra, prendi in considerazione questi 20 bit rimuovendo 3 caratteri, fino a 22. Ovviamente ciò dipende dal conteggio dell'iterazione che stai effettivamente utilizzando.

Probabilmente, andare oltre i 128 bit di entropia è già una grande perdita di tempo.

Per ottenere ulteriori informazioni su questi argomenti, leggi le risposte seguenti:

risposta data 20.10.2014 - 02:32
fonte

Leggi altre domande sui tag