Jak sítě ukládají vaše hesla a další přihlašovací údaje?

Jak sítě ukládají vaše hesla a další přihlašovací údaje?
Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

Před lety byla osmimístná náhodná hesla složená z velkých a malých písmen, symbolů a čísel opravdu těžké prolomit. V některých případech trvalo prolomení takového hesla roky.





Díky dnešní měnící se technice a půjčovatelným strojům se tato doba zkrátila na hodiny. Ale jak jsou tato hesla vůbec uložena?





VYUŽÍVÁNÍ VIDEA DNE POKRAČOVÁNÍ V OBSAHU POKRAČUJTE PŘEJÍMÁNÍM

Jak jsou hesla uložena online

Systémy neukládají uživatelská hesla přímo do souborů nebo databází, protože útočníci mohou převzít databázi, kde systémy hesla uchovávají. Místo toho systémy šifrují uživatelská hesla a útočníci narazí na zašifrovanou verzi každého hesla.





Existují některé algoritmy, které systémy používají k šifrování hesel. Jedním z těchto algoritmů je symetrický algoritmus. Symetrický algoritmus je druh šifrování kde můžete použít stejný klíč pro šifrování i dešifrování. Klíč, který použijete k šifrování dat, je stejný pro šifrování i dešifrování. Bezpečnost symetrických algoritmů s sebou nese určitá rizika, protože pro dešifrování existuje pouze jeden klíč. Z tohoto důvodu systémy obecně nepoužívají symetrické algoritmy pro šifrování hesel.

Obecně je metodou, kterou systémy používají pro šifrování, hashovací algoritmy. Hashovací algoritmy slouží k ověřování a reprezentaci integrity dat, nikoli k šifrování dat. Hashovací algoritmy převádějí data na hash pevné velikosti. Tyto hash obvykle představují jedinečný hash dat.



Díky hashovacímu algoritmu, pokud útočník převezme databázi hesel, útočník se odtud zpětně nedostane k heslu. Zde je velmi důležitá nuance, které byste měli věnovat pozornost. Teoreticky může útočník, který kompromituje systém, který používá stejný hash algoritmus pro všechny kombinace hesel, porovnat získané výsledky. Pokud útočník v důsledku těchto srovnání vytvoří stejnou hodnotu, útočník zjistil, jaká je otevřená verze hesla. Tato metoda je celá o pokusu a omylu a tato forma útoku je obecně nazývaný útok hrubou silou .

nejlepší místo pro nákup knih online

Na začátku roku 2000 mohlo trvat stovky let, než jsme vyzkoušeli všechny kombinace pro 8znaková hesla zašifrovaná populárními hashovacími algoritmy. To samozřejmě nezahrnuje velmi jednoduché kombinace jako '123456' nebo 'moje heslo' v této sadě. S rozvojem dnešních softwarových a hardwarových technologií se hodně změnil i způsob prolamování hesel.





Vliv vznikajících GPU

  dvě grafické karty rtx2080

Možnosti paralelního zpracování dat grafických procesorů (GPU) se postupem času zlepšily. GPU nejsou schopny provádět všestranné operace jako univerzální CPU. Takže i když existuje tolik jader a výkon paralelního zpracování, nedává smysl je používat pro téměř každý problém, jako je CPU.

Přesto je možné na GPU poměrně efektivně provádět některé hashovací algoritmy používané pro hesla. Vyčíslitelné hodnoty hash za sekundu, kterých můžete dosáhnout s tradičními CPU, se s novými platformami GPU ohromně rozrostly.





Chcete-li získat představu, prozkoumejte hashovací čísla za sekundu u hashovacích algoritmů, jako jsou NTLM, MD5 a SHA1 v tabulce níže. Prozatím stačí vědět, že tyto algoritmy jsou jen hashovací algoritmy. K vytvoření této tabulky jsem použil clusterový systém skládající se z 25 GPU AMD Radeon.

Algoritmus

Hashování za sekundu

NTLM

350 000 000 000

MD5

180 000 000 000

SHA1

63 000 000 000

Krypta SHA512

364 000

Bcrypt

mohu upgradovat paměť svého macbooku pro?

71 000

Skript

33 000

Jak vidíte, s takovým systémem můžete generovat NTLM hashe 350 miliardkrát za sekundu. To znamená, že můžete vyzkoušet všechny kombinace 8znakového hesla za méně než 6 hodin. Navíc hardware v tomto příkladu patří před lety. Představte si dnešní sílu prolomení hesel.

Co by měli vývojáři softwaru dělat?

  Vývojář píšící kód

Cesta, kterou by se programátoři měli ubírat, je poměrně jednoduchá: měli by upřednostňovat algoritmy, kterým při šifrování hesel trvá výpočet hash hodnot déle. Vývojáři se musí dozvědět nejen o výkonu algoritmu, který používají na CPU, ale také o tom, jak odolný je vůči světu GPU.

Pokud vývojáři pracují se softwarovým rámcem, který také řeší procesy šifrování hesel, jako je Django, Ruby on Rails a Spring Security, měli by zkontrolovat, zda byla v rámci rámce přijata správná rozhodnutí z hlediska bezpečnosti.

Například, Vymyslet , jedna z nejpoužívanějších knihoven pro uživatelské operace v Ruby on Rails, používá Bcrypt jako výchozí hashovací algoritmus. Umožňuje také použít jinou metodu jako hashovací algoritmus. Algoritmus Bcrypt je spolehlivý, protože stále trvá velmi dlouho, než se GPU zlomí.

Stručně řečeno, čím déle výpočet hash hodnoty trvá, tím jste bezpečnější.

Kolik znaků by mělo mít vaše heslo?

Každý další znak, který použijete, geometricky zvýší počet pokusů a omylů potřebných k prolomení vašeho hesla a vaše heslo bude bezpečnější.

Zvažme tuto situaci prostřednictvím dvou různých scénářů. Zvažte hodnoty v tabulce výše pro hashovací algoritmus NTLM a představte si, že se pokusíte prolomit heslo. Představte si, že cílíte na hesla s osmi nebo více znaky.

Počet znaků

Velká/malá písmena a čísla

Velká/malá písmena, čísla a speciální symboly

8

méně než 1 minuta

2 minuty

9

2 minuty

která aplikace na rozvoz jídla platí nejvíce

2 hodiny

10

2 hodiny

1 týden

jedenáct

6 dní

2 roky

12

1 rok

200 let

13

více než 100 let

více než 1000 let

Když si prohlédnete tabulku, uvidíte, že použití minimálně 12místného hesla je bezpečné, když použijete všechny kombinace velkých/malých písmen, číslic a speciálních symbolů. Pokud nepoužíváte speciální symboly, ukázalo se, že jako bezpečnou délku hesla musíte použít 13 znaků. Pokud byste v tomto systému místo NTLM hash použili metodu Bcrypt hash, stačilo by 8 znaků. Nemáte však možnost vědět, jakou hashovací metodou systém, do kterého zadáte přes web, uchovává vaše heslo. Proto byste měli zvážit všechny možnosti.

Hlavním problémem pro vývojáře softwaru je, že je téměř nemožné přesvědčit uživatele, aby měli heslo o minimální délce 12 znaků. Dnes je možné říci, že míra používání hesla této délky je nízká. Podle scénáře použití vyvíjeného systému bude proto nutné najít střední cestu, která bude přijata uživateli zlepšit zabezpečení svých hesel .

posledním návrhem pro vývojáře je zkontrolovat nejen minimální délku, ale také maximální délku vstupů přicházejících přes formuláře, které jste uživateli předložili. Zejména když povolíte použití pomalu vypočítatelného hashovacího algoritmu, jako je Bcrypt pro bezpečnostní účely, můžete narazit na určitá rizika, pokud nezkontrolujete maximální délku hesla zadaného uživatelem. Útočníci mohou například provádět útoky tak, že zkoušejí desítky hesel o délce 100 tisíc znaků současně s některými speciálně připravenými požadavky. V takovém případě je vysoce pravděpodobné, že váš systém přestane reagovat na ostatní uživatele.

Rady pro koncové uživatele

Nastavte délku hesla na minimálně 12 znaků a ujistěte se, že obsahuje kombinace velkých a malých písmen, čísla a symboly. Nikdy nezapomeňte, že systémy, které uchovávají vaše heslo, mohou být hacknuty a vaše informace mohou být zneužity. Nemůžete vědět, které algoritmy systém používá k šifrování vašeho hesla, takže je zcela na vás, abyste přijali opatření a vytvořili silná hesla.