Autor Zpráva
argonisius
Profil *
Dobrý den, chtěl bych se zeptat, jaké pravidla (délka, možné znaky) musí (nebo by mělo) splňovat heslo. To bude poté zahashovano pomocí sha1. Díky.
ninja
Profil
Alespoň jeden znak. Pokud se ptáte na "dobré" heslo, zálež na aplikaci, respektive citlivosti dat. Často se vyžaduje /většinou zbytečně) zhruba 6-8 alfanumerických znaků.
argonisius
Profil *
Dobře, jinak délka není omezená? Neměl bych zamezit zapsáním českých znaků?
Michal Kolesa
Profil
České znaky bych raději zakázal. Může se stát, že se uživatel bude přihlašovat třeba ze zahraničí, kde není česká klávesnice (např. z dovolené).
Délka 8 znaků je dostatečná, pokud obsahuje velká malá písmena a číslice
Amunak
Profil
Pokud se heslo převádí do sha1, tak by neměly české znaky vadit. Podle mě je ale nejlepší povolit jen a-z A-Z 0-9 případně základní spec. znaky jako je hlavně podtržítko (_) a pomlčka (-). No a dobré heslo... Záleží na preferencích uživatele, ale pokud bude např. omezen počet pokusů o přihlášení na např. 15, může mít heslo klidně 4 znaky. Optimální je ale alespoň 6 a-z znaků, a maximální délka může být neomezená.
Shulík
Profil
Michal Kolesa:
České znaky bych raději zakázal. Může se stát, že se uživatel bude přihlašovat třeba ze zahraničí, kde není česká klávesnice (např. z dovolené).
A není to problém uživatele, jaké znaky zvolí?
Já osobně v heslu povoluji jakékoliv znaky, nevidím žádný problém.
Michal Kolesa
Profil
Já bych myslel i na BFU. Třeba moje máma neví, že v zahraničí není česká klávesnice.
Joker
Profil
Shulík:
A není to problém uživatele, jaké znaky zvolí?
Přesně, vždycky mě naštve, když si pro nějakou službu vymyslím zapamatovatelné heslo... a pak zjistím, že ho nemůžu použít, protože je do hesla například možné zadat jen písmena bez diakritiky a čísla.
Shulík
Profil
Michal Kolesa:
Já bych myslel i na BFU. Třeba moje máma neví, že v zahraničí není česká klávesnice.
OK, tak vždycky nad formulář pro zvolení hesla napište "POZOR!! V ZAHRANIČÍ NEMUSÍ BÝT DOSTUPNÉ ČESKÉ ZNAKY!!". Ale proč kvůli BFU omezovat lidi, kteří tomu rozumějí a chtějí mít co nejneprolomitelnější heslo (a myslím si, že například takové 'ů' v mnoha jiných jazycích není. A tudíž bude mnohem složitější heslo uhodnout/prolomit programem)?

Kromě toho mě už jen z principu irituje, že se mi někdo snaží diktovat, jaké mám mít heslo. Obzvláště ICQ, kde je rozmezí tuším 5-7 písmen nebo tak nějak.
Chápu nějaké základní bezpečnostní požadavky u finančních a jinak citlivých služeb, ale u ostatních stránek bych nechal heslo na uživateli.
argonisius
Profil *
Takž z toho vychází, že v mém případě není nutné heslo kontrolovat vůbec?
panther
Profil
Michal Kolesa:
Třeba moje máma neví, že v zahraničí není česká klávesnice.
bude se tvoje máma přihlašovat ze zahraničí? Já myslím, že ne - bez mailu týden vydrží.
Amunak
Profil
Shulík:
Kromě toho mě už jen z principu irituje, že se mi někdo snaží diktovat, jaké mám mít heslo. Obzvláště ICQ, kde je rozmezí tuším 5-7 písmen nebo tak nějak. Chápu nějaké základní bezpečnostní požadavky u finančních a jinak citlivých služeb, ale u ostatních stránek bych nechal heslo na uživateli.

Taky mě štve, když mi někdo diktuje, jaké mám mít heslo, ale podle mě je dobré držet se nějakého takového standardu a povolit jen výše jmenované skupiny znaků, kde se navíc nemůže stát, že by s tím jakýkoliv skript měl problém. Stejně tak by se měla rozumně omezovat i minimální délka hesla, protože např. dvě nebo tři písmena nejsou zrovna optimální. Aplikace by měla být chráněná jak před BFU, kterým je třeba nadiktovat, že heslo musí mít alespoň pět nejen číselných znaků, tak by měla být neomezující pro uživatele, co tomu rozumí... To, co jsem navrhoval, je, myslím si, přijatelný kompromis.
Shulík
Profil
Amunak:
kde se navíc nemůže stát, že by s tím jakýkoliv skript měl problém.
Kódování znaků úplně nerozumím, ale nepředpokládám, že by měl mít PHP script problém s jakýmikoliv znaky, pakliže je pouze předává jako parametr sha1(). Pokud se přesto chce člověk zbavit těchto problémů, můžeš javascriptem před odesláním data na serverem heslo zakódovat, aby se problémy s PHP vyloučily úplně (tady je ovšem problém s nefunkčností stránky bez javascriptu).

Co se minimální délky hesla týče, tak to máš pravdu, souhlasím.

To, co jsem navrhoval, je, myslím si, přijatelný kompromis.
Tak to si já osobně nemyslím, znaky jako ".:!?*'" atd jsou v heslech celkem využívané.
Michal Kolesa
Profil
No každý má jiný názor.
DJ Miky
Profil
Shulík:
?Kromě toho mě už jen z principu irituje, že se mi někdo snaží diktovat, jaké mám mít heslo. Obzvláště ICQ, kde je rozmezí tuším 5-7 písmen nebo tak nějak.?

Minimální délka coby požadavek pro heslo mi připadá v pořádku, uživatelé pak nemají hesla typu 123, abc apod. (i když takhle mají místo toho 123456 nebo abcdef, což není zase o tolik lepší, ale aspoň něco). Prasárna je maximální délka hesla (což je u zmíněného ICQ 8 znaků)...
AM_
Profil
Amunak:
pokud bude např. omezen počet pokusů o přihlášení na např. 15, může mít heslo klidně 4 znaky
Počítejte s krajní situací, kdy hacker napadne server a stáhne databázi. Pak si můžete limit ve skriptu strčit někam, proti brutalforce přímo proti sha1 otisku bude čtyřznakové heslo slabé, desetiznakové už má šanci nebýt hned tak prolomeno.

Co se týče celkově hesla:
Záleží samozřejmě na povaze aplikace, někdy je důležité uživatele "nutit" k bezpečnému heslu - řekněme třeba když si IT nepříliš znalá paní úřednice z banky nastaví třímístné heslo, není to jen "její věc", ale hrozící malér pro mnohé klienty banky.
České znaky a další problémovosti bych možná řešil pomocí varování (též je v hesle dobré se vyhýbat Z a Y, ono je těžko poznat, jestli *** je zzz nebo yyy, když zrovna nevíte, jestli jste na qwerty nebo qwertz, ale taky je hloupé Z a Y zakázat úplně).
Délku hesla obvykle doporučuji minimálně 6 až 8 znaků, ale ono mnohem důležitější, než délka, je náhodnost hesla, aby se nedalo prolomit slovníkem; to se těžko strojově detekuje, ale alespoň uživatele nutit použít různé znaky (velká i malá písmena, číslice a speciální znak) - tím se dostaneme cca na 80^n kombinací, přičemž n je počet míst; dnešní výkonné počítače testují i miliardu kombinací za sekundu, tak si můžete již sami spočítat, jak dlouho se bude jaké heslo dešifrovat (samozřejmě, toto je krajní případ, kdy někdo ukradne databázi hashů; tam je také ten průšvih, že spousta lidí používá jedno heslo na všechno, takže hacker obdrží hesla některých lidí ke všemu, pokud je prolomí).
Michal Kolesa
Profil
Trochu OT:

Šlo by nějakým skriptem (např. genercí posloupností znaků a následným porovnáním se vstupem uživatele) zjistit, zda je jeslo" primitivní jako 123, abc a následně toto zakázat ?

Podle mě by bylo jednodušší napsat minislovník, nejčastějších hesel.

Jinak máte pravdu, že asi pro přihlášení na forum je toto zbytečnost, ale třeba pro vstup do e-bankingu by to stálo za zvážení.
DJ Miky
Profil
Michal Kolesa:
?Šlo by nějakým skriptem (např. genercí posloupností znaků a následným porovnáním se vstupem uživatele) zjistit, zda je jeslo" primitivní jako 123, abc a následně toto zakázat ??

Šlo, některé portály to používají (nedávno to začal používat i Seznam.cz). Buď je možné napsat slovník, ale lepší je napsat pravidla např. na písmena + čísla + speciální znaky, potom třeba na přítomnost posloupnosti čísel (123456) nebo písmen (abcdef) a jejich kombinací (abc123)...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: