Quanto sono sicuri questi schemi di password?

5

On Un solo liner per creare password in linux? , Vedo un consiglio in generale della forma head -c16 /dev/urandom | md5sum . Sono tutte combinazioni casuali di comandi di manipolazione del testo, sha1 , base64 e md5sum e per me sembra un approccio a fucile da caccia. Ma quanto sono sicure queste tecniche davvero? Riesci a ottenere una password sicura solo da una serie di comandi messi insieme male?

    
posta user107127 11.04.2016 - 08:50
fonte

2 risposte

5

Prima di tutto: questi comandi non vengono messi insieme. Sono cuciti insieme in modo tale che facciano il loro lavoro.

E sì, certo che fanno il loro lavoro. L'hashing di 16 byte di entropia, espandendolo a una stringa più lunga (ma stampabile), dovrebbe andare bene dal punto di vista della sicurezza.

La definizione di sicuro potrebbe essere diversa per te, comunque. Di solito, le password sicure sono

  • abbastanza lungo da non consentire
    • forza bruta e
    • attacchi con tavolo arcobaleno,
  • abbastanza complesso da non essere facilmente indovinato,
  • contengono più entropia possibile e
  • sono intrattabili con un attacco dizionario.

Tutto questo è il caso degli one liners. Tieni inoltre presente che il famoso XKCD su questo che potrebbe interessarti oltre a far luce sulla

It can be actually remembered by humans

parte della sicurezza della password.

    
risposta data 11.04.2016 - 09:06
fonte
-3

Sembra una buona idea. Io uso un codice come questo:

head -c 2048 /dev/urandom |sha512sum |grep -oP '\d{1,2}' |tr -d "\n" |md5sum |awk '{print substr($0,0,8)}'

Spiegazione:

  • head -c 2048 - stampa 2048 byte di dati;
  • /dev/urandom - bit pseudo-casuali generati da pseudo-dispositivo;
  • sha512sum - crea una checksum sha256;
  • grep -oP '\d{1,2}' - prendi 1-2 lunghe cifre char dall'output di checksum sha256;
  • tr -d "\n" - cancella newline char;
  • md5aum - crea md5 checks sum da "digit";
  • awk '{print substr($0,0,8)}' - stampa i primi 8 caratteri.

Esempio:

$ /dev/urandom >./GSCH

$ head -c 2048 ./GSCH |sha512sum
1d9272f18d0af714b8dfd0933956b2ca104a8ead0c02aa9b8f01349d2be45660307bdac4ee8036100a0d960a4ad4e8df11255457e39d7ffc12c6c85c8212144f

$ head -c 2048 ./GSCH |sha512sum |grep -oP '\d{1,2}'
1 92 72 18 0 71 4 8 09 33 95 6 2 10 4 8 0 02 9 8 01 34 9 2 45 66 03 07 4 80 36 10 0 0 96 0 4 4 8 11 25 54 57 39 7 12 6 85 82 12 14 4

$ head -c 2048 ./GSCH |sha512sum |grep -oP '\d{1,2}' |tr -d "\n"
192721807148093395621048002980134924566030748036100096044811255457397126858212144

$ head -c 2048 ./GSCH |sha512sum |grep -oP '\d{1,2}' |tr -d "\n" |md5sum
10c4616d3bc184b4a1dce47670e29890

$ head -c 2048 ./GSCH |sha512sum |grep -oP '\d{1,2}' |tr -d "\n" |md5sum |awk '{print substr($0,0,8)}'
10c4616d
    
risposta data 11.04.2016 - 13:39
fonte

Leggi altre domande sui tag