SHA-3 è utilizzato in un creatore di password come questo sicuro da usare?

3

Attualmente utilizzo gli algoritmi hash SHA-3 per creare password attraverso un determinato set di caratteri. Il flusso utente:

  • L'utente immette la sua Masterpassword (M), Sitename (S), Password length (PL) e sceglie i caratteri che la password deve avere (C).
  • sha (sha3 (M + S + C) + PL)
  • il risultato binario verrà quindi mappato sui Personaggi scelti.
    • se si usano i caratteri da 'a' fino a 'z' un 0000 0000 Byte sarà un 'a', un 0000 1111 Byte sarebbe una 'p' e uno 0001 1010 Byte sarà un 'a'

Questo utilizzo di SHA-3 è sicuro da usare o creerò un Loophole che può essere usato per "indovinare" le password o molto peggio: ottieni la Masterpassword.

Qui un link al Sourcecode

    
posta Serverfrog 24.02.2017 - 15:55
fonte

2 risposte

2

Dal punto di vista della sicurezza delle informazioni, dovresti considerare il tuo schema pubblico, come per principio di Kerchkoff , ancora di più da quando hai rivelato il tuo codice sorgente. In questo modo la sicurezza della password generata viene ridotta alla sicurezza del loro input. L'algoritmo scelto è irrilevante in quanto un utente malintenzionato sceglie l'input e utilizza l'algoritmo per generare la password.

Quindi valutiamo la sicurezza dei tuoi input:

  • Password principale: se viene rilevata da un utente malintenzionato, tutte le password vengono compromesse. Non riutilizzare le tue password.
  • Nome del sito: è di dominio pubblico, non aumenta la sicurezza.
  • Lunghezza della password: contiene pochissima entropia. È quasi inutile.
  • Caratteri disponibili: suppongo che tu usi sempre gli stessi o usi tutti i caratteri consentiti dal sito, poiché altrimenti sarebbe molto scomodo. Quindi è equivalente a una seconda piccola password principale.

Quindi, fondamentalmente il tuo schema ha hash informazioni pubbliche con una password principale. Un utente malintenzionato deve solo forzare bruscamente una delle password generate per recuperare la password principale e quindi trovare facilmente le altre password generate.

Una soluzione migliore sarebbe generare casualmente le tue password. In questo modo, non possono perdere informazioni sugli altri. Potresti quindi salvarli in un file o database crittografato. Dovresti solo ricordare la password principale del database crittografato, senza dover ricordare la lunghezza della password o come è stato chiamato il sito Web prima che cambiassero nome. I gestori di password ti consentono di fare proprio questo.

    
risposta data 25.02.2017 - 16:26
fonte
-2

La tua proposta non è sicura. Secondo il cheatheet di archiviazione password OWASP la tua funzione non ha le seguenti difese:

  • Fattore di lavoro. Ci deve essere un costo associato alla funzione di hashing per mitigare gli attacchi di forza bruta.
  • Salt. Questo per evitare che due o più persone con la stessa password sullo stesso sito abbiano lo stesso valore di hash. Salt aggiunge anche entropia aggiuntiva senza fare affidamento sulla complessità della password principale.

C'è una ragione per cui non stai usando tecniche di espansione della chiave di password come PBKDF2?

    
risposta data 25.02.2017 - 02:42
fonte

Leggi altre domande sui tag