it-swarm-eu.dev

Jak dlouho by měla být maximální délka hesla?

Doporučená minimální délka hesla je asi 8 znaků, takže existuje nějaká standardní/doporučená maximální délka hesla?

60
Mohamed

Bruce Schneier obsahuje několik zajímavých článků o zásadách týkajících se hesel.

Reálná světová hesla - pokrývá délku hesla, složitost a běžná hesla.

Poradenství s heslem - někteří dělají a nedělí, včetně:

  • Používejte správce hesel
  • DO často mění hesla. Důl měním každých šest měsíců ...
  • Nepoužívejte znovu stará hesla.
  • NEPOUŽÍVEJTE hesla složená ze slovníků, narozenin, rodinných a domácích jmén, adres nebo jakýchkoli jiných osobních údajů.
  • NENECHTE přístup k účtům chráněným heslem prostřednictvím otevřených sítí Wi-Fi - nebo jiných sítí, kterým nedůvěřujete - pokud web není zabezpečen pomocí protokolu https.

a mnoho dalších

Změna hesel - podrobná diskuse o tom, jak často byste se měli měnit v závislosti na prostředí použití a ohrožení.

15
Alexandru Luchian

Odpověď na tuto otázku, stejně jako mnoho otázek v Zabezpečení, je „záleží“.

Při pohledu na délku hesla je třeba zvážit několik faktorů. Nejprve nahoru jsou některé z věcí, které dlouhé heslo má chránit před, což je obecně hrubá síla útoku s heslem (online nebo offline).

Pro online hádání hesel, pokud máte relativně agresivní zásady blokování (např. 3 nesprávné pokusy a poté neurčité blokování), pak útoky proti jednomu účtu pravděpodobně nebudou úspěšné, pokud útočník nebude mít dobrou představu o tom, jaké heslo je Bude.

Pokud se díváte proti útokům na velkou populaci uživatelů se stejnou zásadou blokování, kde útočník dokáže zjistit uživatelská jména (např. Webová fóra), pak nejdůležitějším prvkem je pravděpodobně to, že použitá hesla nejsou žádná z opravdu běžné.

Kromě toho, jedna věc, kterou je třeba sledovat na straně blokování účtu, je to, že agresivní politiky zde pro on-line aplikace mohou útok Denial of service docela snadno bez dalších protiopatření.

Pokud existuje riziko offline brutální síly, stává se síla hesla důležitější. problém je v tom, že díky vylepšené výpočetní síle a metodám útoku je tento pohyblivý cíl z hlediska síly. Realisticky bych řekl, že byste se měli dívat na více než 10 znaků a důrazně prosazovat, že hesla nejsou na běžných seznamech slovníků (například @andy říká, že přístupová fráze jsou dobrou volbou).

Dalším faktorem, který je třeba zvážit zde, je vaše uživatelská základna a způsob použití aplikace. V některých případech bych řekl, že velmi přísné požadavky na heslo mohou ve skutečnosti vést k méně bezpečné aplikaci. Pokud máte aplikaci, kde jsou uživatelé na stejném místě (např. Mnoho firemních aplikací) a nastavíte politiku hesla jako „silnou“ (jak z hlediska délky hesla, tak požadavků na střídání), je pravděpodobné, že se uživatelé začnou zapisovat svá hesla, což pravděpodobně překonává jeden z cílů zabezpečení této aplikace.

Dobrým zdrojem mnohem více informací o této knize je kniha s názvem Ověřování: Od hesel po veřejné klíče

20
Rory McCune

Dosud dobré odpovědi, ale rád bych navrhl další možnost: projít věty . Protože StackOverflow vlastní Jeff Atwood naznačuje, že pokud nejste zakázáni technickými omezeními, měli byste zvážit povolení a navrhnutí hesel. Můžete je vynutit, ale pravděpodobně by to odradilo některé uživatele na většině webů. Vzhledem k jejich délce mohou být mnohem těžší na crack, a také si je snadněji zapamatovat než heslo jako „A1lUrB @ se!“. nebo podobné věci.

19
Andy

Pokud chcete heslo hashovat, proč nastavit horní limit?

Není to jako byste se museli starat o dosažení maximálního limitu char v textových polích, na webu nebo jinak. Takže si můžete představit jen několik stovek znaků, abyste omezili některé okrajové podmínky jakéhokoli textového pole, které používáte.

Pokud samozřejmě mluvíte o generování hesla, které se pokusíte použít na více webech, pak vám to nevadí; Zdá se, že se na tom nikdo neshodl. Ještě horší je, že jsem našel weby, které mají různé maximální limity znaků v různých vstupních polích, takže se musíte přihlašovat nejprve špatně, než obdržíte jiné pole, které povolí více znaků. Samozřejmě, pokud by každý web jen nechal to být minimální očekávané schopnosti typického textového pole, aniž by se to pokusil uměle omezit, bylo by povoleno přibližně 2 000 znaků a nemuseli byste se tím vůbec obávat.

Upraveno pro přidání: něco zmíněné v předávání zde mě přinutilo pozastavit:

musíte přizpůsobit hašovací práci tomu, co je dostupné a rozumné na vašich serverech nebo zařízeních. Například jsme měli v Discourse menší popření servisní chyby, kde jsme lidem umožnili zadat do přihlašovacího formuláře až 20 000 znaků hesla

Proto by stálo za to stanovit přiměřený limit jak pro nastavení, tak pro pokus o hesla, pokud hashujete věci způsobem, který by měl být co možná nejnákladnější na výpočet. Několik stovek znaků by mohlo zabránit tomu, aby věci explodovaly příliš mnoho, a přitom jsou stále mnohem víc, než by se mohl uživatel pokusit.

16
Doug Kavendek

Neměla by existovat maximální délka hesla - pokud uživatel přijme použití velmi dlouhého hesla, měl by být doporučeno, nikoli zablokováno.

Vzhledem k tomu, že jde o software, některé systémy vynucují omezení velikosti hesla, zejména kvůli problémům s grafickým uživatelským rozhraním, špatnému programování nebo zpětné kompatibilitě s mnohem staršími systémy. Například staré systémy Unix používaly proces hashování heslem, který používal pouze prvních osm znaků, a všechny ostatní ignoroval. Obdobně měly staré systémy Windows interní limit na 14 znaků. Proto je nejlepší, když je heslo zkrácené na prvních 14 znaků stále „silné“.

Jediným limitem maximální velikosti hesla by však měla být trpělivost uživatele. Zde nemá smysl nic vymáhat.

8
Thomas Pornin

Běžným minimem dnes je 12 znaků, které jsou sotva dost velké, aby zabránily praskání hrubou silou přiměřeně dobře financovanou organizací v přiměřené době.

Pokud jde o maximální délku; Zde je několik myšlenek: heslo delší než několik stovek bytů je téměř jistě škodlivé (např. pokus o injektáž SQL). Také si uvědomte, že pokud hashujete své heslo (a pokud nejste, musíte začít znovu), pak hesla delší než váš hashový výstup nepřidávají další entropii. Všimněte si, že výrazem „delší“ mám na mysli stejný počet bitů ve vašem prostoru kláves, nikoli stejnou délku znaků. Takže zatímco povolení hesel delších než hashova délka by mělo být povoleno, je to výhodné, ale z matematického hlediska by to nemělo smysl, aby taková věc byla vyžadováno .

Požadavek na smíšený případ zdvojnásobuje velikost vaší abecedy, což vede k obrovské návratnosti a pravděpodobně by mělo být vyžadováno. Vyžadování číselných znaků přidává do vaší abecedy asi o 20% více, což není tak velké řešení, a vyžadování symbolů přidává možná navíc o 16% až 40% (v závislosti na tom, jaké symboly počítáte), a opět ne docela významný návrat, ale rozhodně by nemělo být zakázáno.

3
tylerl

Osobně bych použil generátor hesel (jako lastpass.com nebo 1password) ke generování a používání hesel minimálně 8 znaků a maximálně 32 znaků (protože ne všechny weby podporují délku hesla více než 10 nebo 15) a použijí jedno hlavní heslo (Toto opět závisí na vaší důvěře na webech, jako je lastpass.com) nebo na straně klienta šifrovaný nástroj 1password pro Mac a Windows).

Není vhodné používat sadu hesel pro všechny weby. Zejména fóra mi zasílají hesla prostým textem. Některé weby mají funkci pro zasílání jednoduchého hesla v případě, že používáte funkci „Zapomenuté heslo“.

Omezení jsou obvykle nastavena na serveru (pro webové stránky). Musíme obviňovat servery, které používáme, abychom nestanovili omezení hesel uživatelů.

Stručně řečeno, pokaždé použijte různá hesla. V případě, že si pamatujete více než 10-15 hesel, je čas začít používat „zabezpečeného“ správce hesel. (Pro záznam není správce hesel firefox vůbec bezpečný)

2
Sairam

16 znaků.

To vám dá 96 bitů podle Wikipedia , což je daleko za čímkoli, co lze podle tohoto článku prolomit.

Osobně používám program hesla pro svůj mobilní telefon v kombinaci s funkcí hlavního hesla Firefoxu. Moje hlavní heslo má více než 25 znaků a je založeno na kostkách, což usnadňuje zapamatování. Téměř všechna hesla jsou náhodně generována, protože si je Firefox stejně pamatuje.

2

Byl jsem u klienta, kde byl blázen bezpečnostní důstojník. Chtěl použít všechny možné zásady složitosti hesla. (Novell eDirectory má spoustu problémů se složitostí hesla a chtěl přidat další plugin pro přidání dalších!)

Do té míry by nebylo možné nikdy vygenerovat heslo, které si bude pamatovat. Čekal jsem, že ho nemyté masy najdou, a po jeho implementaci ho dehtu a peří.

Jinými slovy, můžete to vzít příliš daleko.

1
geoffc

Rada

V roce 2019 je náhodnost vyžadovaná pro bezpečné heslo/přístupové heslo:

  • 12 náhodně generovaných znaků s malými, velkými a číslicemi; nebo
  • 6 náhodně generovaných slov. (Do ne vybírejte slova sami! To vytváří vzory.)

Je nemožné si vzpomenout na dvacet z nich, takže si zapamatujte pouze několik důležitých, které pravidelně používáte. Můžete si například zapamatovat ten pro váš e-mailový účet a ten pro správce hesel. Pro všechno ostatní ukládejte hesla ve správci hesel.

Relevantní: Potřebuje průměrný uživatel skutečně správce hesel?
Nejhlasovanější odpověď je jasné „ano“.

Relevantní: Jak bezpečné jsou správci hesel?
Z nejvyšší odpovědi paj28 (důraz důl):

pro většinu lidí jsou tato rizika přijatelná a já bych navrhl, že přístup pomocí správce hesel [pro] většinu vašich hesel je lepší než používání stejného hesla všude - což se zdá být hlavní alternativou. Ale tam bych neukládal každé heslo; snažit se zapamatovat si ty nejdůležitější, jako je online bankovnictví.

Běžně zmíněnými správci hesel jsou KeePass (X), 1Password a LastPass. Ten v prohlížeči závisí: pokud používáte Firefox s hlavním heslem, je to téměř stejně dobré jako použití vyhrazeného hesla. Pokud váš prohlížeč před přístupem k heslům nevyžaduje heslo, není příliš bezpečný (ale podrobnosti závisí na přesné implementaci, což je celé téma samo o sobě).

Vývojáři

Při vytváření aplikace uvádíme několik užitečných úvah:

Jak bezpečně hashovat hesla?
Shrnutí: použijte Scrypt nebo Argon2, tak pomalu, jak jen můžete. Pokud nejsou dostupné, jsou Bcrypt nebo PBKDF2 přijatelné alternativy. Přidejte obě sůl a pepř .

Mám mít maximální délku hesla?
Shrnutí: pouze proti útokům DoS, tedy pár kilobajtů.

Implementujte hashování hesla na straně klienta
Úplné zveřejnění: Odkazuji na svou vlastní odpověď, protože si myslím, že je to nejúplnější. Nezapomeňte si také přečíst názory ostatních lidí.

Podrobnosti

Možná by vás zajímalo, proč je můj PIN kód pouze 4 číslice? To je dost, aby byl můj bankovní účet v bezpečí!) Existuje otázka na to určená , ale shrnutí jsou dvě věci: pro přístup potřebujete bankovní kartu (druhý faktor autentizace) a čip vás po 3 pokusech zamkne.

Webové stránky jsou mnohem mírnější, takže útočník může provádět více pokusů. Kromě toho se očekává, že webové stránky budou hacknuty dříve nebo později, a poté může útočník účinně crackovat vaše hashovací heslo.

Většina webových stránek ukládá vaše heslo pomocí jakéhokoli jednosměrného šifrování, které se nazývá hashování. Neexistuje žádný dešifrovací klíč. Opětovným použitím stejného algoritmu hashování může systém porovnat heslo (které jste právě zadali) s uloženým heslem (z databáze) a vědět, zda jsou stejné. Ale pouze s databází nemůžete znát původní heslo.

V minulosti byly běžné metody rychlého hašování. To také znamená, že útočník, který získal hash, může nechat svůj počítač udělat miliardy pokusů za sekundu na průměrném herním počítači. Předpokládáme-li deset miliard pokusů za sekundu, náhodné heslo s 11 znaky trvá přibližně 165 let. A to je jen jeden hráč, představte si, že máte přístup k firemním údajům, o které mají někteří zahraniční konkurenti zájem: s určitou výpočetní silou se těch 165 let najednou změní na několik měsíců praskání. A příští rok budou nové procesory, které jsou rychlejší za stejnou cenu, což opět snižuje sílu. To je důvod, proč je dvanáct znaků minimem pro silné heslo: tento další znak přidává doslova deset tisíc let k praskání (165 let oproti 10 230 rokům) a je bezpečný v dohledné budoucnosti.

Mimochodem, výpočet síly hesla je snadný: variations^length / guesses_per_time. Varianta je kolik jedinečných prvků existuje a délka je počet prvků, které používáte. Pokud tedy používáte pouze číslice, existuje deset variací (0 až 9). Pokud používáte slova ze slovníku, je mnoho slov ve slovníku. Poté je guesses_per_time přesně taková, jak rychle předpokládáte, že útočník dokáže bezva. Přiměřená hodnota je desítky miliard za sekundu.
Příklad: 10^14/10e9/3600 ukazuje, kolik hodin by bylo potřeba crackovat kód s 14 číslicemi, když předpokládáte 10e9 pokusů za sekundu (je 3600 sekund za hodinu, 60 * 60).

Některé webové stránky jsou inteligentní a používají pomalý hashovací algoritmus. Nemůžeme říct, jaké jsou, protože server provádí hašování, takže je nelze vidět zvnějšku. V takovém případě bude výpočet trvat jen jeden odhad (pro server, ale také pro útočníka). V rozumném případě může dobře financovaný útočník udělat jen padesát tisíc odhadů za sekundu, v takovém případě by stačilo 9místné heslo. Ale 9 náhodných znaků je již velmi obtížné zapamatovat si pro mnoho různých účtů, zejména pokud je všechny nepoužíváte pravidelně. Správce hesel je proto vyžadován, aby skutečně měl jakoukoli bezpečnost v heslech.

Je však skutečně nutné mít jedinečná hesla? Proč nepoužívat silná hesla na několika různých webech? Protože webové stránky jsou často ohroženy. Nejedná se o každodenní událost, ale zkuste zadat svou e-mailovou adresu do haveibeenpwned.com : rozhodně se to hodně stane. Takto jsou účty nejčastěji hackovány: opakované použití hesla. Kompromisy správců hesel jsou mnohem méně běžné.

0
Luc