Vlákno názorů k článku Nový standard pro přihlašování: nenuťte uživatele měnit hesla od Filip Jirsák - Sláva, třikrát hurá. Teď ještě aby se tím...

  • Článek je starý, nové názory již nelze přidávat.
  • 15. 5. 2017 9:10

    Filip Jirsák
    Stříbrný podporovatel

    Sláva, třikrát hurá. Teď ještě aby se tím inspiroval třeba český NKCB. Jejich doporučení už naštěstí na webu není, to je první dobrý krok :-)

  • 15. 5. 2017 13:36

    Petr M (neregistrovaný)

    Třeba

    S ohledem na vyžadovanou složitost, délku a dobu platnosti. Zamezte opakovanému použití stejných hesel a používání slovníkových výrazů.

    Důvod? Viz výše.

  • 15. 5. 2017 13:38

    Filip Jirsák
    Stříbrný podporovatel

    Je tam v politice hesel (úplně na konci dokumentu) uvedená doba platnosti hesla, tedy právě to, co je vypíchnuté už v nadpisu článku. A i ostatní části politiky hesel evidentně směřují přesně k tomu, před čím varuje ten americký dokument (že uživatele zavalíte spoustou pravidel, která stejně nezajistí bezpečná hesla, ale v důsledku efektivně zabrání tomu, aby si uživatel zvolil skutečně bezpečné heslo).

  • 15. 5. 2017 15:15

    asdf (neregistrovaný)

    Jako sem uváděl výše, ten dokument NIST je potřeba číst celý a nestačí si z něj vzít jednu věc - že nemá smysl expirovat hesla. A poprosil bych link na studii, že bez expirace by uživatelé používali bezpečnější hesla.

  • 15. 5. 2017 15:39

    Filip Jirsák
    Stříbrný podporovatel

    Už jsem to psal v komentářích k tomu českému doporučení. Je potřeba si uvědomit, že uživatelé nejsou stroje, které přesně vyplní nějakou instrukci. Zadávání hesel je pro uživatele otravné – ale chápou, že je to nutné z hlediska bezpečnosti, tak to překousnou. Ale pokud uživatel chce používat bezpečné heslo, ale někdo mu háže klacky pod nohy tím, že nastaví nesmyslná pravidla, samozřejmě že se na to uživatel vykašle a nastaví nějaké nebezpečné heslo, které ale splní všechna ta nesmyslná pravidla. A ten dokument konečně říká přesně tohle – při stanovování bezpečnostních politik nemůžeme ignorovat chování uživatelů. Bezpečnost nezávisí na tom, jak nastavíme politiky, ale jak se budou ve výsledku chovat uživatelé. Takže je potřeba přestat vytvářet „bezpečné“ politiky a začít vytvářet politiky, které povedou k bezpečnému chování uživatelů. Nesmyslné vynucování změny hesla je jenom jeden z příkladů, pozitivním příkladem je například to, aby se uživatel nemusel bát zadat do hesla libovolný znak (třeba mezeru nebo emoji).

    Akademickou studii na téma nebezpečnosti omezené platnosti hesel neznám. Mám akorát vlastní zkušenost – neznám nikoho, kdo by při nucené změně hesla používal generátor náhodných hesel a pokaždé nastavoval nové náhodné heslo. Ve všech případech všichni uživatelé, u kterých vím něco o jejich heslu, používají nějaký vzor pro tvorbu hesel – pokud to jde, zvyšují jednu číslici na konci, pokud jsou pravidla přísnější, používají abecedu apod. Dokonce jsem slyšel o případech, kdy byla hesla v kanceláři synchronizovaná – když někdo zapomněl, jaká číslice na konci aktuálně platí, stačilo se zeptat kteréhokoli z kolegů.

    To, že s povinným vynucováním změny hesla uživatelé používají spíš slabší hesla, plyne tak nějak ze selského rozumu. Ale pokud to chcete vyvracet, jistě máte odkaz na studii, která ukazuje, že povinná pravidelná změna hesla vede naopak k silnějším heslům.

  • 16. 5. 2017 9:41

    Pavel (neregistrovaný)

    Jen jste mi připomněl.

    Před několika lety jsem dělal na předplacených kartách pro mobilní opreátory. Někteří operátoři si stanovili pravidla, jak má vypadat bezpečný PIN (nesmí to být posloupnost cifer, nesmí se opakovat cifra, nesmi to být datum narození, ...) Někteří operátoři to přehnali až tak, že ty "bezpečné" PINy šlo spočítat na prstech jedné ruky.

  • 16. 5. 2017 15:07

    asdf (neregistrovaný)

    Souhlasím, že nastavená pravidla je třeba posuzovat dle toho, jak se ve skutečnosti projeví na chování uživatelů.

    Taktéž souhlasím s tím, že pokud je to možné, nemá smysl omezovat maximální délku hesla či dokonce zakazovat určité znaky, ale má stále smysl hlídat složitost hesla (a to třeba minimální délkou, slovníkem, mírou entropie atd.)

    Ale rozhodně nesouhlasím s tím, že nemá smysl pravidelná změna hesla v prostředí, kde není použita 2FA (a to už z jakéhokoliv důvodu). Taktéž na to nemám studie, ale nedokážu si představit situaci, kdy po zjištění že heslo se musí měnit si jej nastavím jednodušší. I používání hesla + patternu bezpečnost zvýšší a to při mnoha reálných situací.

    Samozřejmě pokud budeme blokovat účty, mít zavednou 2FA a silné hashování, pravidelná změna ztrácí na významu.

  • 16. 5. 2017 15:54

    Filip Jirsák
    Stříbrný podporovatel

    má stále smysl hlídat složitost hesla
    Souhlasím, ale to vůbec není jednoduché. Odhalit algoritmicky všechna jednoduchá hesla je dokonce nemožné – když zkombinuju jméno psa a rok narození manželky, vznikne z toho algoritmicky zdánlivě ne úplně jednoduché heslo, které ale kde kdo z mého okolí může uhodnout.

    Ale rozhodně nesouhlasím s tím, že nemá smysl pravidelná změna hesla v prostředí, kde není použita 2FA
    Jaký smysl vůbec má pravidelná změna hesla? Změna hesla se dělá v případě podezření na jeho kompromitaci. Pokud je v nějakém systému podezření na kompromitaci hesla každé 2 měsíce, měla by se řešit příčina (jak dochází ke kompromitaci), a ne pořád jen měnit hesla.

    Taktéž na to nemám studie, ale nedokážu si představit situaci, kdy po zjištění že heslo se musí měnit si jej nastavím jednodušší.
    Situace je jednoduchá – heslo má používat člověk a ne robot. Používání hesel od člověka vyžaduje nějakou námahu – musí si ho pamatovat, nebo musí používat správce hesel. Ochota k vynaložení té námahy je přímo úměrná důležitosti, jakou dotyčný heslu přisuzuje. Pro daný kontext (systém) můžeme tedy tu ochotu k nějaké námaze považovat za konstantu. A teď si můžeme vybrat – spotřebuje tu námahu, kterou je dotyčný ochoten vynaložit, na to, aby si zapamatoval a používal složité heslo? A nebo ji vyplýtvá na neustálé zbytečné změny hesla a zapamatovávání si nového hesla?

    I používání hesla + patternu bezpečnost zvýšší a to při mnoha reálných situací.
    A při mnoha reálných situacích tu bezpečnost zase snižuje. Přičemž se to zvláštním způsobem kříží, že ty případy, kdy to bezpečnost zvýší, jsou ty samé případy, kdy nic neřeší změna hesla – a naopak případy, kdy by pravidelná změna hesla něčemu pomohla, jsou zabité tím, že uživatel používá kvůli nucené změně jednoduché heslo s odpozorovatelným vzorem.

    Samozřejmě pokud budeme blokovat účty, mít zavednou 2FA a silné hashování, pravidelná změna ztrácí na významu.
    2FA s tím nijak nesouvisí – dvoufaktorová autentizace je lepší v tom, že jsou tam dva nezávislé faktory. Pokud necháme první faktor slabý, protože máme přece ještě druhý, je ten první k ničemu a je to jen jednofaktorová autentizace tím druhým faktorem. A pokud je silné heslo bez nutnosti jeho pravidelné změny dostatečně silným faktorem pro 2FA, není přece důvod vynucovat jeho změnu i u 1FA.
    Hashování s tím nesouvisí už vůbec nijak, to je jen ochrana serveru proti některým druhům možných úniků hesel v případě, kdy se server dozvídá heslo v otevřeném tvaru. Což je velký problém sám o sobě – a pokud heslo opouští klientské zařízení v otevřeném tvaru, musí s tím uživatel počítat a nesmí stejné heslo používat nikde jinde.
    Blokování účtů s tím souvisí tak na půl, pokud by útočník byl motivován zkoušet heslo hrubou silou a nevadilo by mu čekat na výsledek několik měsíců, pravděpodobně zvolí raději jinou metodu útoku. Navíc to vytváření hesla podle vzoru může výhodu pravidelné změny úplně eliminovat – pokud útočník zjistí vzor pro vytváření té proměnné části, bude hrubou silou prostě hádat jenom ten zbytek, ke kterému vždy připojí aktuální proměnnou část.

  • 16. 5. 2017 16:05

    asdf (neregistrovaný)

    zkombinuju jméno psa a rok narození manželky, vznikne z toho algoritmicky zdánlivě ne úplně jednoduché heslo, které ale kde kdo z mého okolí může uhodnout.

    Souhlas, není to všespásné, ale řeší to aspoň něco.

    Změna hesla se dělá v případě podezření na jeho kompromitaci.

    Ano, mimojiné. Jenže ne vždy je možné kompromitaci detektovat. Pravidelná změna hesla pak útočníkovi zkrátí dobu přístupu k systému. Navíc pokud třeba kolega zjistil náhodou moje heslo a zapamtuje si jej, může jej využít při vhodné příležitosti proti mě (třeba až ho navštvu nebo bude z práce vyhozen).

    Ochota k vynaložení té námahy je přímo úměrná důležitosti, jakou dotyčný heslu přisuzuje. Pro daný kontext (systém) můžeme tedy tu ochotu k nějaké námaze považovat za konstantu. A teď si můžeme vybrat – spotřebuje tu námahu, kterou je dotyčný ochoten vynaložit, na to, aby si zapamatoval a používal složité heslo? A nebo ji vyplýtvá na neustálé zbytečné změny hesla a zapamatovávání si nového hesla?

    Tak předpoklám, že se tu celou dobu nebavíme o účtu na nějaké sociální síti (vzhledem k tomu, že se jedná o doporučení NIST).

    uživatel používá kvůli nucené změně jednoduché heslo s odpozorovatelným vzorem.

    To je vaše doměnka, že bude používat jednoduché heslo. Já spíše předpokládám, že si zvolí složité heslo a pak jej přinejhorším doplní patternem - jenže aby útočník zjistil pattern, musí zjistit více předchozích hesel.

  • 16. 5. 2017 16:53

    Filip Jirsák
    Stříbrný podporovatel

    Pravidelná změna hesla pak útočníkovi zkrátí dobu přístupu k systému.
    Nezkrátí. Tohle je na tom celém právě to nejnebezpečnější – vzbuzuje to falešný pocit bezpečí. Pokud se útočník nějak dostal do systému, já nevím jak a ani o tom nevím, změna hesla neřeší vůbec nic – protože útočník s největší pravděpodobností získá přístup do systému úplně stejně, jako ho získal poprvé.

    Navíc pokud třeba kolega zjistil náhodou moje heslo a zapamtuje si jej, může jej využít při vhodné příležitosti proti mě (třeba až ho navštvu nebo bude z práce vyhozen).
    Když se řeší bezpečnost, řeší se vždy celá třída problémů. Nemá smysl tahat náhodné situace jak králíky z klobouku „a proti tomuhle případu to také pomůže“. Pokud kolega náhodou zjistí moje heslo, možná si odvodí i vzor, který používám, a při vhodné příležitosti ho zneužije, i když si heslo mezitím změním. Nebo ho zneužije dřív, než to heslo stihnu změnit. A možná kdybych si nemusel heslo pravidelně měnit, měl bych komplexnější heslo, které by kolega náhodou nezjistil.

    Tak předpoklám, že se tu celou dobu nebavíme o účtu na nějaké sociální síti
    To, co jsem napsal, platí obecně. A zrovna účty k sociálním sítím jsou ty nejcennější počítačové účty, které člověk má. A pokud někdo nepracuje s nějakými tajnými údaji (třeba osobními), jsou takové účty důležitější i než třeba účet do pracovního počítače.

    To je vaše doměnka, že bude používat jednoduché heslo. Já spíše předpokládám, že si zvolí složité heslo
    To platí možná pro roboty, ale určitě ne pro lidi. Jak už jsem psal, člověk je ochotný namáhat se s heslem jen do určité míry, a když mu zkomplikujete situaci pravidelným měněním hesla, on si ji zase zjednoduší jednodušším heslem.

    jenže aby útočník zjistil pattern, musí zjistit více předchozích hesel
    To často vůbec není potřeba, protože jediná změna je rostoucí posloupnost číslic, aktuální rok nebo měsíc – to se dá často uhodnout rovnou a po příští změně hesla si to jen ověříte.

  • 17. 5. 2017 8:08

    Petr M (neregistrovaný)

    "Ano, mimojiné. Jenže ne vždy je možné kompromitaci detektovat. Pravidelná změna hesla pak útočníkovi zkrátí dobu přístupu k systému."

    To je odvážná hypotéza. Trochu si ji rozvedeme:

    Útočník hledá heslo. Tzn. 1 z N kombinací, která ho pustí do systému. Má dvě možnosti, jak to udělat:
    a) Nabořit ten systém, stáhnout tabulku uživatelů a louskat u sebe (to je omezeno na prodej hesel, protože když už takhle naboří databázi, není problém dělat tam cokoliv jako kdokoliv i bez hesla).
    - Pokud je heslo dobře posoleno a použitá silná hash funkce, tak musí použít pro každý heslo z tabulky brute force a to je námaha, která se mu nevyplatí. Pokud v mezičase nezměním heslo, tak co? Dostane se k němu za trilión let, kdy už bude irelevantní?
    - Pokud jsou v db hesla v plaintextu, tak omezení doby platnosti udělá jenom to, že aktuální heslo omezí časově. Ale útočník vidí délku, ví, že se heslo mění po třech měsících a dostane se k db hodí diff a vyskočí na něj přímo systém, jakým uživatelé mění hesla. Když mění čísla na konci o jedničku, může hodit k prodávaným heslům poznámky (udělá to klidně skriptem) a i tyhle hesla jsou pak dobře prodejný.
    Takže jak psal Jirsák, řešit slabinu, ne obtěžovat uživatele.
    b) Zkouší se náhodně přihlásit. Tam je v moci služby, aby hlídala možnost útoku (např. porovnáním poměry úspěšných/neús­pěšných zadání hesla) a pokud se poměr dostane nad nějaký daný číslo, není přece problém hodit uživatelský účet do "attack módu", kdy vezme login jenom z posledních třeba tří IP adres, odkud se uživatel přihlásil naposledy a pošle mu info v mailu, že na něj někdo útočí a že z toho důvodu je tam to a to omezení. Furt to není důvod měnit heslo.

    A k tomu hledání kombinace 1 z N:

    Představ si, že hledáš PIN (čtyři čísla) a z nějakýho důvodu jich může uživatel vyzkoušet jenom 100 měsíčně, postupuje tak, že hodnotu 0000 inkrementuje. Uživatel musí změnit PIN 1x za měsíc.

    Leden: PIN je 0157, útočník projde rozsah 0000 - 0099, neuspěl
    Únor: PIN je 5421, útočník projde rozsah 0100 - 0199, změna odrazila útok
    Březen: PIN je 3773, útočník projde rozsah 0200-0299, změna nepomohla, ani neublížila (takhle to bude ve většině případů)
    Duben: PIN je 0358, útočník projde rozsah 0300 - 0358, uspěl, změna mu pomohla

    S heslem to funguje stejně. Nevíme ale, jak útočník generuje hesla ke zkoušení, nevíme, jaký je jeho progres. Většinou by beze změny neuhodl, změna ho může odrazit, nebo nahrát na smeč, a dopředu to nejde určit. Takže jako prevence je to mimo.

  • 17. 5. 2017 19:16

    JardaA (neregistrovaný)

    K bodu b), resp. k tomu hledání kombinace 1 z N - to je přece jinak. Uživatel a útočník konají nezávisle (-é pokusy). Při Vámi stanovených omezeních je úplně jedno, jaký PIN si zvolí uživatele a jaké kombinace vyzkouší útočník. Pravděpodobnost uhodnutí bude každý měsíc stejná, ať si útočník zvolí kombinace jaké chce, klidně může zkoušet tytéž pořád dokola (viz kombinatorika, střední škola).

  • 18. 5. 2017 7:41

    Petr M (neregistrovaný)

    Ano, šance se nemění. Pořád se snaží trefit 1 z N možností a vyzkouší nějakou obecnou podmnožinu M možností. V ní heslo je, nebo není.

    Ale protože neznáme M, můžeme jenom říct, že obecně je šance N/M. S tím, že změna hesla může hledaný heslo jak dostat z množiny M (argument, který používají zastánci pravidelné změny hesla), tak je naopak dostat do M (argument, který odmítají slyšet zastánci pravidelné změny hesla).

    A protože pravděpodobnost výskytu hesla v M před a po změně hesla je stejná, není důvod pro preventivní změnu.

  • 16. 5. 2017 16:50

    asdf (neregistrovaný)

    2FA s tím samozřejmě souvisí – účinně brání vzdáleným útokům na hesla, stejně jako blokování hesel nebo silný algoritmus v případě úniků hashů.

  • 16. 5. 2017 17:49

    Filip Jirsák
    Stříbrný podporovatel

    účinně brání vzdáleným útokům na hesla
    To je možné. Pak je ale ještě potřeba najít souvislost mezi vzdálenými útoky na hesla a pravidelnou změnou hesla.

  • 16. 5. 2017 22:08

    asdf (neregistrovaný)

    To je možné. Pak je ale ještě potřeba najít souvislost mezi vzdálenými útoky na hesla a pravidelnou změnou hesla.

    Tak to jsem myslel že je snad jasné: pomalé slovníkové nebo bruteforce útoky.

  • 17. 5. 2017 7:18

    Filip Jirsák
    Stříbrný podporovatel

    Tak to jsem myslel že je snad jasné: pomalé slovníkové nebo bruteforce útoky.
    Pokud má někdo takovou motivaci, že by mu překazila plány změna hesla po několika měsících pokusů o jeho získání, použije úplně jiné metody. A pokud je detekce útoků tak špatná, že neodhalí několik měsíců trvající pokus uhodnout heslo, nějaká vynucená změna hesla to nezachrání.

  • 16. 5. 2017 17:37

    j (neregistrovaný)

    Jirsak, zase davas najevo svoji blbost?

    On totiz heslo musi leckdo leckde leckam zadavat za pritomnosti jinyho osob, ne kazdej ma kancl sam pro sebe ... takze jednoduse s casem roste pravdepodobnost, ze to jeho heslo nekdo odkouka.

    Dalsi aspekt je ten, ze se casem meni algoritmy sifrovani, ale kdyz zustava stale stejny heslo, tak potencielnimu utocnikovi staci, kdyz jednou jedinkrat heslo nekde odposlechne a vymena algoritmu neresi pak vubec nic.

    Samozrejme ze je lepsi misto hesel pouzivat klice (s heslem), protoze pak se vymenujou ty klice.