Známe Vaše heslo!

MyEgo.cz

home foto blogy mywindows.cz kontakt

Známe Vaše heslo!

PHP 06.03.06

Mám hrůzu ze služeb a programátorů, kteří ukládají hesla klientů jako plain-text. Tedy v lidsky čitelné podobě. Když jsem včera žádal o obnovu hesla na Cybex.cz, kde jsem se kdysi dávno registroval, přišlo mi toto:

Známe tvoje heslo

Jinak řečeno, jakýkoliv administrátor podobného webu či hacker získající přístup do databáze zná Vaše skutečné heslo. A to není moc příjemné. Místo například sha1 hashe hesla v podobě 59af7f2e fa5fb2d7 c2081a87 04e0a003 43e5ff6e je uloženo přímo heslo samotné, tedy znamevaseheslo. Nyní si představte, že stejný účet a heslo používáte do dalších deseti obchodů. Začínáte se děsit?

Pokud klient zapomene heslo, existuje jediná relativně bezpečná cesta, jak mu sdělit jeho heslo, a to vygenerovat heslo zcela nové, jeho sha1 či md5 hash uložit do databáze, a nové heslo poslat na jeho registrační email.

Nicméně, protože nemůžete nikdy vědět jak „prasácky“ je naprogramovaná ta která webová aplikace, tak nezbývá než pro každou Vaši registraci používat jiné heslo a minimalizovat tím jeho potencionální zneužití.


Komentáře

  1. 1 Jakub Vrána 06.03.06, 10:03:14
    FB

    K přečtení doporučuji také článek Ukládání hesel. Vygenerování nového hesla není jediná cesta pro sdělení hesla, má i své nevýhody - útočník může lidi, kterých zná login, prudit neustálou změnou hesla.

  2. 2 Martin V 06.03.06, 10:03:43
    FB

    To že Vám pošlou v mailu Vaše heslo jako plain text považuji za menší chybu než to, že máte pro deset obchodů stejné uživatelské jméno a heslo.

  3. 3 Libb 06.03.06, 10:03:52
    FB

    problém anstane v okamžiku, kdy zákazník (obchod - z pohledu programátora) si usmyslí, že jeho klienti chtějí, aby jim přišlo staré heslo. Takže i my musíme programovat takhle prasácky, protože to zákazník chce :-(

  4. 4 brozkeff 06.03.06, 11:03:50
    FB

    tak tak, pěkně si udělat soubor "seznam hesel.txt" v truecryptovaném svazku a tam si dělat seznam:-)

  5. 5 Odin 06.03.06, 12:03:05
    FB

    Pokud vím tak md5 už je taky rozlousknutý nějakým Čechem, ale postup není veřejný (nemáme se čeho bát :)). Jinak máš samozřejmě pravdu podobně uložená hesla si říkají o zneužití.

  6. 6 SQi 06.03.06, 12:03:06
    FB

    Jojo, tohle je fakt krutý. Já sám používám několik variací jednoho hesla, někdy ale i tak můžete mít problém.

  7. 7 Mechanus 06.03.06, 12:03:08
    FB

    Smutné. Není na to co říct. Snad jen používejte všude jiné heslo (ale kdo si to má pamatovat, že?). Já sám používám v současné době 12 různých hesel (o PIN apod. nemluvě), ale pro někoho se slabší pamětí to může být problém.

  8. 8 Littlemaple 06.03.06, 12:03:43
    FB

    Tak s tímto naprosto souhlasím. Je to věc, kterou na webových aplikacích nenávidím a proto si vždy dávám pozor, kde jaké heslo použiji.

  9. 9 Josef Petrák 06.03.06, 12:03:56
    FB

    Hlavně, že vychází stovky článků a desítky knížek obsahující ty správné praktiky pro programování webových aplikací - myslím, že právě zahashování hesla uloženého v databázi se zmiňuje pokaždé, tak proč na to milí vývojáři kašlo?!? Na VŠE Praha přednáší Jiří Kosek v rámci jednoho předmětu o tvorbě webových stránek a aplikací - bezpečnosti věnuje celou jednu přednášku (doporučuji k pročtení)!

  10. 10 Pika 06.03.06, 01:03:08
    FB

    Poznám server kde sa po kliknuti "zabudnute heslo" server opýta na mail a tam posle nove heslo. Lenže to heslo nieje generované !

    Teda na vstup do druhého konta stači ak ja viem že niekto registrovaný má mail taky@ataky.sk a viem že systém posiela všetkym zábudlivcom rovnaké heslo..

    :0

  11. 11 error414 06.03.06, 01:03:19
    FB

    [5]
    Musíte si uvědomit co je to rozlousknutí. Je to zpětná konverze z md5 na heslo?To je nemožné. Teoreticky se dá zjistit jen heslo se stejným md5 otiskem.

    Jak upozornůjete na rozlousknutí čechem tak to není uplná pravda. Prvne se tak stalo v Číne nebo v Japonsku (pamět neslouží). A to rozlouskniti se jen nalezeni dvou jednoho razitka md5 pro dva rozdílné soubory nebo textové retězce.

    V praxi to znamená že dotyčný utočník vytvoří dva pdf soubory se stejným otiskem ale rozdílným obsahem.

    Problematika md5 nebo sha1 je poněkud složitější než se zdá.

  12. 12 octopuss 06.03.06, 01:03:21
    FB

    [5] md5 hashe sa opakujú, čiže stačí skúšat menej kombinácií aby si dostal rovnaký výsledný hash = > viac kľúčov k jednej miešačke ;)

  13. 13 Michal Hantl 06.03.06, 01:03:32
    FB

    Malá připomínka. Kdyby tenhle e-mail poslali předtím, než to zaheslujou a uloží v databázi tak je vše v pořádku.

  14. 14 Radek Hulán 06.03.06, 01:03:40
    FB

    [13] tak to samozřejmě není, posílají X roků staré heslo..

  15. 15 HejTi 06.03.06, 01:03:53
    FB

    [1] Dobře to mají vyřešené v rámci sítě internet infa - tam se při zapomenutí hesla vygeneruje sice nové, ale staré je pořád funkční (teda jestli jsem to dobře pochopil). Což se mi zdá jako pěkné řešení. Nebo ještě se mi zdá pěkné řešení poslat na mail odkaz a heslo se změní až po kliknutí na tento odkaz.

  16. 16 Libb 06.03.06, 01:03:59
    FB

    [1] viděl jsem to dobře vyřešené. Nové heslo bylo třeba potvrdit odkazem, který byl v platnosti asi 20 minut a pokud se nepotvrdilo, zůstalo nastavené staré. Kdo si o nové heslo řekl, měl ho (ono se tuším smazalo staré a zadalo se na té adrese nové) a pokud by to bylo cizí pruzení, stačilo to ignorovat. Pokud stránka pošle přímo nové heslo, může to být problém.

  17. 17 Libb 06.03.06, 02:03:02
    FB

    [7] [7] heh, já jsem kolikrát rád, když si pamatuju loginy :-) Někde chtějí mail, někde vygenerují login sami, někde mají omezení na minimální délku loginu, prostě ve výsledku mám asi 10 různých loginů, o heslech nemluvě, takže nakonec využívám toho, že v mobilu mám program na ukládání hesel.

  18. 18 Meda Beda z Rachorce 06.03.06, 04:03:26
    FB

    [7] To je prece jednoduse resitelne - viz napr. Password Gorilla (http://www.fpx.de/fp/Software/...) nebo jiny podobny program.

  19. 19 František Zajac 06.03.06, 04:03:55
    FB

    Na správu hesel, a že jich mám tuny (cca kolem stovky) :-) používám skvělý software KeePass Password Safe. Je tam i dobrý generátor. Používám ho pár let a neměl jsem problém. Ovšem zapomenout master password tak si jdu omotat smyčku kolem krku :-) Recenze na todle je i někde na živě a fakt doporučuju.

    Při ukládání údajů do databáze používá KeePass Password Safe Advanced Encryption Standard (AES) a algoritmus Twofish. Hesla jsou navíc chráněna 256-bitovým systémem SHA-256, který podle oficiálních informací ještě nikdy nebyl prolomen. Úroveň zabezpečení vystihuje přinejmenším zajímavá pasáž z domácích stránek autora: I kdybyste využili kvanta počítačů, než by se vám podařilo algoritmus prolomit, ze Slunce už by byla nova.

  20. 20 fluke 06.03.06, 05:03:21
    FB

    [11] Nevím přesně kdo prvně našel kolizi, každopádně pár číňanů přišlo na způsob jak ji nalézt během pár hodin. Dotyčný čech pak dále metodu rozvinul a kolizi našel pomocí notebooku, takže na běžně dostupném hardwaru. Nevím, jak je to se zveřejněním prací, ale myslím, že to je běžně dostupné. Pro další studium viz třeba http://cryptography.hyperlink.cz/md5/MD5_collisions.pdf. Jinak jak zmínil příspěvek výše nebezpečí těchto kolizí spočívá spíše v oblasti digitálních podpisů a certifikátů, než prolamování hesel jako takových.

  21. 21 Philip pips Seyfi 06.03.06, 06:03:02
    FB

    Já osobně vždy používám md5 hashe... Je to velmi bezpešné a skvěle se s tím pracuje ať už programuji flash nebo html stránku...

  22. 22 Vašek Šír 06.03.06, 06:03:13
    FB

    [16] Problém to také může být, pokud systém dovolí stokrát za minutu žádat o nové heslo. To myslím Jakub naznačoval.

    Ale úplně stejné možnosti poskytuje znalost mailové adresy a obyčejný SMTP server (třeba proces sendmail u mě pod stolem). Takže já žádné extra riziko také nevidím.

    Zajímal by mě názor na poslání hesla při registraci - prostě před tím, než se uloží hash. Sám jsem to (z pohledu spotřebitele) už párkrát shledal užitečným (ve spojení s hledáním v Gmailu).

  23. 23 buBba 06.03.06, 06:03:27
    FB

    Já používám na hesla Secure Password Manager... ma to i generator hesel. Bohatě mi stačí.
    Neví někdo o nějakym peknym správci hesel pro nokie?

  24. 24 Dušan 06.03.06, 09:03:00
    FB

    no svedčí to o kvalite obchodu...osobne inak využívam asi 20 hesiel, takže pohoda;)

  25. 25 Asthmatic 06.03.06, 09:03:00
    FB

    Já zase dělám u jedné firmy kde sice interní, ale přece jen choulostivé aplikace mají například přímo v lokálním INI souboru celý ODBC connection string i s admin heslem, na personálním SQL Serveru 2000 je ponechán uživatel "sa" s prázdným heslem atp. Když jsem měl navazovat svými aplikacemi na tento shit, tak byla ohrožena i bezpečnost mých "dětí". Upozorňování na tyto nedostatky mi udělalo pověst nepříjemného buzeranta a vyřešilo se PRD, ale alespoň mám alibi a můžu si zjistit plat každého ve firmě... ;)

  26. 26 Libb 07.03.06, 05:03:59
    FB

    [22] Nejsem proti. Že se mail pošle, neznamená, že se heslo někam uložilo v čitelné formě. Horší je, že pošta není šifrovaná. Osobně bych upřednostnil, kdyby si zákazník mohl vybrat, jestli chce logovací údaje poslat. Já bych to asi využíval, také jsem to už nejednou ocenil :-)

  27. 27 Martin 08.03.06, 06:03:28
    FB

    Proto vždycky apeluju na všechny kamarády, začánající programátory, aby to zahešovali. Ono není nic jednodušího, než když se vám na systému někdo zaregistruje, jít zkusit tohle heslo k zalogování do emailu, který zadal. Často to bude fungovat.

  28. 28 Korin 08.03.06, 01:03:15
    FB

    SHA-1 uz bych radsi nedoporucoval, stejne jako MD5. SHA-256 by mela byt lepsi volba s vyhledem do budoucnosti.

  29. 29 lukas 08.03.06, 08:03:00
    FB

    Do Firefoxu existuje plugin, díky kterému je možné všude používat stejné heslo, protože on obstará, že na cílovou stránku se odešle hash z textu domena_toho_webu + heslo (obstará to i při registraci na tom serveru, takže vše funguje). Hesla jsou pak všude jiná, řešení je to velmi elegantní. Vlastně teď myslím, že je to spíš bookmarklet, možná to funguje i v MSIE a Opeře.

    Fuka o tom psal článek na Lupě, dávno.

  30. 30 rezna 09.03.06, 12:03:37
    FB

    [20] Mno je vidět že se místní čtenáři v problematice příliš neorientují ;) Jako první přišla s možností v relativně dosažitelném čase určit kolize jedna profesorka z Číny. Její metoda byla představena na jedné z konferencí jako zcela bezvýznamná 5 minutová přednáška, která ovšem šokovala celý svět. Nicméně lidé začali bádat a bádat a zjistilit že její postup nefunguje. Což byl ale omyl, ona totiž místo little-endian použila big-endian pro zápis inicializačního kódu a tím ukázala, že je její metoda na něm nezávislá. Tehdy se složitost pohybovala kolem 2^62 což už je dnes možné spočítat. Postupným teoretickým vylepšováním metod, do něhož přispěl i ten "Váš" čech AKA Vlastimil Klíma, přední český kryptolog (viz http://www.crypto-world.info ) se došlo k tak drastickému snižení složitosti, že už to dneska jde provozovat opravdu na kdejaké šunce.

    Navíc bych měl připomenou že je rozdíl mezi tím co dokozála ona čínská profesorka - což bylo nalezení dvou nahodných kolidujících řetězců a tím co potřebují hackeři, tedy nalezení kolize k danému řetezci aneb narozeninový paradox (v místnosti kde je aspoň 30 lidí je pravděpodobnost asi 80 procent, že se najdou dva, kteří mají stejné datum narození, ale je témeř mizivá pravděpodobnost, že se najde druhý člověk, který má narozeniny ve stejný den jako tamhle Franta co sedí vzadu v rohu).

    Mno a co se týče bezpečného ukládání hesel do hashů tam je třeba se vyhnout ne jenom MD5 ale i SHA1, kde se složitost hledání kolizí také drasticky snižuje. Takže na řadu přichází např. SHA-256.

    Pokud uživatelé vyžadují to abyste jim mohli poslat heslo staré tak potom snad jedině kryptovat pomocí RSA nebo 3DES a klíče mít bezpečně uložené. (na M$ je např. k dispozici Isolated Storage, na UN*X-ech třeba kryptovaný filesystem).