Il generatore di password casuale keepass è completamente sicuro e affidabile?

12

Sono sicuro usando keepass per generare password? Ad esempio i miei account, sono sicuro utilizzando una password generata da keepass? Il mio futuro potrebbe trattenere le chiavi principali in modo sicuro in modo sicuro? Quale metodo è usato? Keepass 2.30 per Windows e Linux.

Grazie,

Irrazionalmente Paranoide Keepass User.

    
posta keepass_fan 13.12.2015 - 03:08
fonte

1 risposta

18

tl; dr: Sì, è ragionevolmente sicuro.

Quando un utente malintenzionato sa che usi KeePass, potrebbe anche presumere che tu usi le impostazioni standard per il generatore di password. Questo indica loro la lunghezza e il set di caratteri [a-zA-Z0-9]. Questo rende leggermente più facile da decifrare che se la lunghezza non fosse nota e se si aspetterebbe che tu usi anche caratteri speciali. Ma anche con quella conoscenza, le password generate sono ancora lontane, lontano troppo forti per la forza bruta.

Ma in che modo vengono generate esattamente le password? Se fosse un generatore di numeri pseudocasici prevedibile, potrebbe trattarsi di un punto di attacco.

Esamina il codice sorgente di KeePass 2.30 , il generatore di password sembra essere implementato in KeePassLib\Cryptography\PasswordGenerator\PwGenerator.cs . Utilizza la classe CryptoRandomStream da KeePassLib\Cryptography\CryptoRandomStream.cs con il codice di flusso Salsa20 utilizzato come generatore di numeri casuali.

Il generatore di password funziona così:

  1. Viene generato un numero casuale ( PwGenerator.cs riga 65). Utilizza lo standard RNGCryptoServiceProvider dal framework .NET. ( CryptoRandom.cs ).
  2. Il numero casuale generato viene combinato con un'ulteriore entropia, se disponibile. Non mi sono preso la briga di scoprire da dove viene questa entropia (il comportamento degli utenti di solito imprevedibile come il movimento del mouse oi tasti premuti sono usati per questo), ma a quanto pare non è scontato che l'entropia sia sempre disponibile.
  3. Un hash SHA256 viene generato dal valore casuale con entropia ( CryptoRandomStream.cs riga 114-118).
  4. Questo hash viene utilizzato come chiave di crittografia per un flusso di Salsa20 cypher ( CryptoRandomStream.cs riga 119).
  5. Il codice di flusso viene utilizzato come generatore di numeri casuali alimentando ripetutamente l'output come input ( Salsa20Cipher.cs riga 176-196).

Per prevedere una password, è necessario craccare il generatore di numeri casuali crittografici Microsoft e prevedere l'entropia (se utilizzata).

In alternativa, se qualcuno rompesse il codice di Salsa20, si potrebbe prevedere una password dalla password precedente. Secondo Wikipedia "A partire dal 2015, non ci sono attacchi pubblicati su Salsa20" .

Cordiali saluti, Irrationally Diligent Software Developer.

    
risposta data 13.12.2015 - 04:20
fonte

Leggi altre domande sui tag