Lekce 1.5

Hesla, úniky dat a správce hesel

Jak server ukládá hesla, co se stane, když jeho databáze unikne, proč je opakované heslo horší než slabé a jak pomůže správce hesel a passkey.

Cvičení 1

Síla hesla

Co si vyzkoušíte

V terminálu spočítáte hash SHA-256 několika hesel a ověříte si vlastnosti hashe, o kterých byla řeč ve výkladu. Potom hashe zkusíte dohledat ve veřejné tabulce a odhadnete, jak dlouho by jednotlivá hesla vydržela hrubou sílu. Budete potřebovat terminál, prohlížeč a kalkulačku.

Pozor

V tomto cvičení nezadávejte do terminálu ani do webových nástrojů žádné heslo, které opravdu používáte.

Hash hesla spočítá tenhle příkaz:

Windows - PowerShell
Get-FileHash -Algorithm SHA256 -InputStream ([IO.MemoryStream]::new([Text.Encoding]::UTF8.GetBytes('heslo123')))
Linux
echo -n 'heslo123' | sha256sum
Mac
echo -n 'heslo123' | shasum -a 256

Windows vypíše hash velkými písmeny, Linux a Mac malými. Hash je to pořád stejný.

Zadání

  1. Spočítejte hash hesla heslo123 a porovnejte ho s výkladem. Shoduje se?
  2. Spočítejte hash hesla heslo124. Kolik znaků zůstalo oproti prvnímu hashi na stejném místě?
  3. Spočítejte hash nějaké dlouhé věty. Jak dlouhý je výsledek ve srovnání s hashem krátkého hesla?
  4. Spočítejte hashe hesel 123456 a qwerty a vložte je do CrackStation. Najde k nim CrackStation původní heslo?
  5. Vymyslete heslovou frázi ze čtyř náhodných slov, spočítejte její hash a vložte ho do CrackStation taky. Proč tentokrát heslo nenajde, když je hash stejně dlouhý jako u 123456?
  6. Odhadněte, jak dlouho by hrubá síla zkoušela všechna hesla z deseti malých písmen a všechny heslové fráze z pěti slov, losovaných ze slovníku o 7 776 slovech. Počítejte s deseti miliardami pokusů za sekundu.

Bonus

  1. Spočítejte hash heslo123 se znakem nového řádku na konci. Na Windows nahraďte v příkazu 'heslo123' zápisem "heslo123`n", na Linuxu a Macu vynechte u echo přepínač -n. Proč vyjde úplně jiný hash, když na obrazovce vypadá vstup stejně?
  2. Zjistěte, kolik hashů za sekundu zvládne generovat program hashcat na současné grafické kartě u SHA-256 a kolik u bcryptu. Kolikrát je bcrypt pomalejší?
  3. Jaký vliv by mělo použití bcrypt na časy, které jste spočítali v kroku 6?