V praxi něco takového znamená že buďto Microsoft v Hotmailu ukládal původní plná hesla, nebo už od samého počátku vytvářel hash pouze z maximálně prvních 16 znaků. Jakákoliv z těchto možnosti je mimochodem stejně problematická.
Z bezpečnostního hlediska jsou obě možnosti zásadně odlišné - hash z prvních 16 znaků může být bezpečný, uložení plaintextu ne.
Každá webová služba, která chce vypadat důvěryhodně, by měla publikovat prohlášení, jak nakládá s hesly, tj. zda je ukládá v plaintextu nebo jako jednosměrný otisk, zda přitom používá salt, jaká činí opatření proti zcizení uživatelských dat atd.
Tak jako to dělají certifikační autority ve svých politikách (CPS).
Ale patrně se jen snažej otevřeně vyhovět svejm totalitním amíckejm kamarádům:
http://www.securitynewsdaily.com/2165-fbi-surveillance-backdoor-hackers.html
který si už nad svou mocí a fašistickejma praktikama onanujou už hodně dlouho:
http://www.wired.com/threatlevel/2011/11/reasons-to-wear-tinfoil-hats/
Je to zajimave reseni problemu s 16 znaky, viz:
http://answers.microsoft.com/en-us/windows/forum/windows_cp-security/cant-login-with-a-long-password-16-characters/0779b19a-2869-457a-bb22-346240fb5190
Při nastavení hesla spočítá klientský JavaScript hash MD5(login:realm:heslo). Výsledek (říkejme mu otisk) spolu s loginem pošle na server, server si tuto dvojici uloží. Při přihlášení pak tento otisk používá klient i server jako jeden z parametrů hashovací funkce, dalšími parametry jsou výzva, HTTP metoda a URI, tedy údaje, které zná klient i server. Kde se server dozvěděl heslo v otevřeném tvaru, aby jej mohl uložit? Co na použitých postupech je pro vás tak překvapivého, že to považujete za průlom v kryptografii?
Když jsem trval na tom, že HTTP digest nepotřebuje na serveru hesla v otevřeném tvaru, měl jsem za to, že dávat nějaký odkaz by bylo urážkou diskutujících. Každý přece umí do Googlu napsat "HTTP digest" před tím, než se začne ztrapňovat v diskusi. Hm, mýlil jsem se. Tak pro jistotu: RFC 2617.
MD5(login:realm:heslo) je osolený hash hesla, po kterém všichni tolik touží. Není ekvivalentem otevřeného hesla, je jeho ekvivalentem jen pro stejný realm. To je dost podstatný rozdíl. Jeho prozrazení vede ke kompromitaci účtu jen pro stejný realm, tedy typicky jen u jedné služby (u té, odkud onen hash unikl). Což je podstatně příznivější varianta, než když takto získáte přihlašovací údaje ke spoustě dalších služeb, kde uživatel používá stejné jméno a heslo.
Větičky o teoretickém zázemí sedí od někoho, kdo před chvílí tvrdil, že HTTP Digest vyžaduje znalost hesla v otevřeném tvaru na serveru.
V tom případě nevím, proč přispíváte do této diskuse, když píšete úplně o něčem jiném, než všichni ostatní. My ostatní tady řešíme přihlašování k webu a zabezpečení pro případ, kdy uživatelé používají stejná hesla na více místech a jedno z nich je kompromitováno. To je totiž přesně ten problém, který se snaží řešit ukládání osolených hashů.
Sice OT, ale uz ste videl rozhrani zuno? To je presne totez - jak udelat z neceho, co funguje (rozhrani byvale e-banky) neco, co je naprosto nepouzitelny. Desim se okamziku, kdy to zacne raifka prekopavat i na default webu ...
Cekal bych, ze kdyz mam neco, co funguje, tak to budu maximalne jen doladovat, a taky bych cekal, ze si firma vybere lepsi variantu (tedy delsi heslo v tomto pripade) ...
Jestli "je to v pohodě", nebo ne to nevím... ale...
Na MS Answer, týkající se Windows 8 Preview (bavíme se o jaře tohoto roku), se řešilo že přihlašovací údaje k účtu byly stejné, nebo nějak provázány (podrobnosti neznám) se službou Live (Passport, nebo jak se to teď jmenuje). Lidé kteří vyhověli a heslo pro přihlášení na web zkrátily se následně měly problém přihlásit do svých profilů v počítači/ích.
Dále lidé nebyly nijak informováni, že délka hesla nesmí překročit 16 znaků, jinak heslo nebude přijato. Prostě se jednoho dne nemohli přihlásit s tím že heslo neodpovídá.
P.S.
Používám mnohem starší verzi Windows a nikdy jsem ještě délku hesla neřešil. Zpravidla řeším stáří hesla a nesmyslné požadavky na "nelidské heslo" (změť znaků latinky a čísel). Schválně jsem si teď přepočítal počet znaků a ve třech různých účtech které nejčastěji používám mám u dvou délku mnohem delší než 16 znaků. Kdyby došlo, ve Windows, ke změnám databáze účtů nebo rozhraní pro komunikaci s ní, nebo přihlašovací dialogy jsem totálně v prdeli.
K čemu by takové prohlášení bylo? Prohlásit může kdokoli cokoli. Pokud někdo chce vypadat důvěryhodně, použije takový způsob registrace a přihlášení, při kterém se heslo nikdy nikam neposílá. Na webu je to trochu problém, pro přihlášení jedině popelku HTTP Digest, pro registraci pak jedině nějaké javascriptové udělátko, které ten hash spočítá na klientovi.