Posts with tag Sítě

Jak na "remember me" funkci u přihlašování

Feb|20 2011

Pojďme se dnes podívat, jakým způsobem implementovat uživateli oblíbenou funkci "zapamatuj si mé přihlášení", anglicky většinou "remember me".

Nemusím asi zdůrazňovat, že chybná implementace takové funkčnosti může mít nedozírné následky. A protože nechceme znovu vymýšlet kolo, podíváme se na osvědčený způsob, který při správné implementaci nesníží bezpečnost autentizace, která je jedním z kritických faktorů bezpečnosti systému.

Základem bude pochopitelně cookie v prohlížeči, který se bude poprvé generovat při úspěšném přihlášení klasickou metodou (zadání uživatelského jména a hesla). Bude obsahovat pouze uživatelské jméno a token (náhodný hash o dostatečné délce, což je dnes 128bitů - tedy sha1 na velmi náhodné číslo by mělo stačit).

Aplikace si na druhé straně tuto tabulku dvojic uživatelské jméno-hash uchovává. Při příchodu neautentizovaného uživatele jeho prohlížeč zašle místo přihlašovacích údajů uloženou cookie užitelské jméno-hash. Pokud je zaslána cookie, která se v tabulce nachází, autentizace proběhla v pořádku a je obratem vygenerována nová dvojice, přičemž předchozí je invalidována. Tím se zamezí opětovnému použití dvojice útočníkem pomocí útoku typu reply. Dvojice jsou navíc invalidovány i po uplynutí rozumného času, například 8mi týdnů.

Dále si musíme uvědomit, co se stane, když se k takové databázi dostane útočník. Teoreticky by měl přístup ke všem účtům, u kterých uživatel kdykoliv v minulosti použil funkci "remember me", což samozřejmě nesmíme připustit. Stejně jako hesla musíme proto tokeny prohnat ještě jednou hashovací funkcí, potom zneužití údajů nehrozí ani při získání celé databáze.

Zdroje:

http://stackoverflow.com/questions/244882/what-is-the-best-way-to-implement-remember-me-for-a-website

http://jaspan.com/improved_persistent_login_cookie_best_practice

http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice/

Tags: Programování | Prohlížeče | Sítě | Bezpečnost | Vývoj



Apel pro důvěřivé spamery

Mar|25 2010

Jak se nenechat napálit na stále se opakující poplašné e-maily.

Známe to všichni - e-maily, které se vytrvale šíří populací a upozorňují na nějaké telefonní číslo, službu, firmu, škodlivost pangasiusů atd. Na konci je většinou žádost o další rozeslání mezi své přátele, což mnoho důvěřivých človíčků rádo udělá. Účel těchto zpráv nechávám stranou, mohou někoho poškodit, mohou jen vystrašit nebo přinést autorovi radost z toho, jak se jeho výtvor šíří mezi lidmi.

HOAX - Telefonat od cisla +420 477 100 111Na co chci poukázat, je to, že mnoho lidí se neobtěžuje zjišťováním, zda se nejedná o falšnou/poplašnou zprávu, tzv. Hoax. Chovají se nezodpovědně a své přátele svým jednáním obtěžují. Na druhou stranu to dělají v nevinné víře, že jim tímto pomáhají, takže zlobit se za ně nemůžeme.

Pro ty, kteří již nechtějí být taháni za nos, je ideální stránka Ho@x.cz, kde jsou nahromaděny všechny známější poplašné zprávy. U každé je většinou vysvětlení, proč jde o falešnou zprávu, takže přijatý e-mail můžeme s klidným srdcem smazat, případně do oběhu, počínaje odesílatelem, vypustit zprávu dementující předchozí e-mail.

Nebuďme naivní ovečky ze stáda a nenechme se stále tahat za nos.

Tags: Osobní | Sítě | Bezpečnost



Webů je v Česku napadeno překvapivě mnoho

Mar|18 2010

Jak se dostane vir do vašich webových stránek a kolik je u nás napadených webů? Udělal jsem si takový malý, soukromý průzkum.

Jak to začalo. Při indexaci některých českých stránek (proč jsem to dělal vám říkat nebudu), kterých bylo řádově tisíce, jsem si všiml zajímavého jevu. Můj antivir AVG 9 mi každou chvíli hlásil napadenou stránku. Před pár lety věc velmi neobvyklá, nicméně dneska stále častější způsob šíření malwaru.

Ze zhruba 4600 stránek bylo napadeno 62, tedy nějakých 1.3% a to není málo. Z toho jednou se jednalo o exploit Fragus, jednou o exploit typu script injection, dvakrát o exploit MDAC ActiveX čtyřikrát o Liberty exploit, desetkrát o nebezpečný Javascript a v ostatních případech byl na stránce exploitovaný odkaz na známé, nebezpečné stránky.

Webové exploityNastíním ve zkratce motivaci útočníka. Ten má většinou za cíl dostat svůj škodlivý software (malware) na co nejvíce počítačů a z nich udělat botnety, tedy počítače ovládané na dálku a páchající nějakou nekalost, aniž by si to uživatel uvědomil.

Pokud svůj exploit dostane na nějaké hojně navštěvované stránky (například ty vaše), jsou potenciálně napadeni všichni vaši návštěvníci. Dost z nich má sice firewall, ale ten je jim k ničemu, neboť komunikace probíhá stejně jako klasické načítání stránek. Zabránit napadení může jen aktualizovaný prohlížeč (zejména IE) a antivir, antispyware nebo jiný program, speciálně k tomu účelu navžený (samozřejmě také aktualizovaný).

Ne všem ale vlastní bezpečnost dělá vrásky a tak je nemalá část návštěvníků napadena. Takže suma sumárum, útočníkovi se napadení webových stránek sakra vyplatí.

Teď jak na to? Existuje samozřejmě více cest, například využít nějakou známou zranitelnost konkrétní webové aplikace, zkusit uhodnout slabá hesla na FTP nebo nějakým způsobem heslo k FTP ukrást (opět pomůže nějaký exploit, vir, atd.)

Jaké jsou tedy rady?

  • používejte aktualizace (ať již jde o antivir, prohlížeč, operační systém)
  • firewall taky není k zahození
  • hesla používejte generovaná (kvůli slovníkovým útokům)
  • hesla mějte dostatečně dlouhá (8 znaků je naprosté minimum)
  • v počítači si hesla ukládejte šifrovaně (výborná aplikace pro tento účel je KeyPass)
  • nenechávejte hesla jen tak ležet na nespolehlivých místech (například ukládání v Total Commanderu je dost nebezpečné)
  • zálohujte
  • zkrátka budťe opatrní :)
Tags: Internet | Prohlížeče | Sítě | Počítače | Bezpečnost



Facebook Dashboard: už žádné otravné notifikace

Mar| 1 2010
Tags: Internet | Sítě | Facebook | Programování



Jak je na tom reCAPTCHA v praxi

Mar| 1 2010

V článku Jak přechytračit CAPTCHA Resolver jsem nedávno psal, jak jsou internetoví roboti šikovní v rozpoznávání různých obrázkových textů, které je mají právě odhalit. Na konci jsem zmínil projekt reCAPCHA, který nabízí snadnou integraci kompletního testu do vašich formulářů.

Nevedly se mi úpravy vlastního CAPTCHA testu, kde ani při použití překrývajícího se jednobarevného textu neměli roboti žádný problém vložit mi do diskusního fóra nesmyslné údaje. Nakonec jsem zkusil právě zmíněný reCAPTCHA a mile mě překvapilo hned několik věcí:

Recaptcha je bezbariérová

Jako první mě překvapila snadná integrace. Vygenerovaný JavaScriptový kód sice vypadá složitě, nicméně pro vložení CAPTCHA testu na stránky stačí registrace na stránkách recaptcha.net a řízení se jasnými pokyny.

Potom mě překvapila rychlost, jakou jsou data z externího serveru recaptcha.net stahovány. Na to, kolik tento server musí vyřizovat požadavků a že požadavky generují netriviální grafický výstup, je to paráda.

A nakonec mě překvapily výsledky. Od nasazení ReCaptchy (dnes přes jeden týden) žádný robot neuspěl. Je možné, že je jen otázkou času, kdy i reCaptcha bude přechytračena, nicméně pro dnešek musím říct, reCaptcha nemá chybu.

Nakonec ještě zmíním, že kromě obrázku lze text i přehrát, tedy stránky budou přístupné i slabozrakým či jinak zrakově postiženým.

Tags: Osobní | Internet | Programování | Sítě | Bezpečnost



Facebook aplikace - jak uspět

Mar| 1 2010

Marketing za pomoci sociálních sítí, to je trend současnosti i blízké budoucnosti. Ukážeme si pár pravidel, které je dobré dodržovat při propagaci Vašich Facebook aplikací. Článek vychází z jednoho příspěvku na diskusním fóru vývojářů Facebook aplikací.

Základní scénář

Základní scénář každého uživatele Facebook aplikace je následující:

  1. Uživatel je pozván přítelem
  2. Uživatel akceptuje pozvánku
  3. Uživatel autorizuje aplikaci
  4. Uživatel provede nějaké akce v aplikaci
  5. Uživatel posílá pozvánku přátelům
  6. Uživatel přestává používat aplikaci
  7. Uživatel odebírá aplikaci ze svého seznamu

Cílem každého provozovatele aplikace je dostat uživatele přes kroky 1,2 a 3 do stavu, kdy cyklí mezi 4 a 5. Jakmile se dostane do stavu 6 a 7, je zle.

Je dobré si uvědomit, že i přesto, že nejvíce zisku nám uživatel přinese mezi kroky 4 a 5, musíme se při vývoji postupně zaměřit na všechny kroky. Co s nimi budeme dělat? Analyzovat.

Neautorizujte bezhlavě

Za prvé potřebujeme odstranit všechny překážky, které stojí před uživatelem. Například striktní příkaz require_login, který zobrazí okno s přihlášením nebo autorizační okno pro nepříhlášené, resp. neautorizované uživatele, není nutné volat vždy. Naopak je dobré uživateli nabídnout část obsahu aplikace i bez nutnosti mít aplikaci povolenu. Stejně, jako zákazníci rádi chodí po obchodě, aniž by museli předem souhlasit s koupí, brouzdají uživatelé Facebooku po stránkách a aplikacích a jistě nemají potřebu autorizovat každou hloupost jen proto, aby zjistili, oč se jedná.

Dobrý způsob, jak nalákat uživatele k samotné autorizaci, je znefunkčnit některé zajímavé odkazy nebo tlačítka, jejichž popis ale návštěvníkovi napoví, co se pod nimi skrývá.

Distribuční kanály

Pro propagaci své aplikace je nutné využívat ne jeden, ale všechny nabízené distribuční kanály, neboť aplikace se nebude rozmnožovat sama. Ať je to registrace do adresáře aplikací, možnost zasílání pozvánek přátelům, placená Facebook reklama, nebo využití tlačítka sdílet. Každý z těchto způsobů naláká jinou sortu uživatelů, takže nezapomeňme na žádný.

Neusněte na vavřínech

Jakmile dosáhne počet vašich příznivců dostatečného množství, neusněte na vavřínech. S vašimi uživateli/fanoušky je nutné neustále komunikovat a aplikaci různými způsoby dále podporovat (např. obměňovat text na pozvánkách a zkoumat, který má nejlepší úspěch), jinak by časem všichni odešli, a to stejně tak rychle, jako přišli. Naopak je potřeba motivovat uživatele vrátit se zpět a pozvat nové kamarády.

Konkurence skýtá dobrou inspiraci

Inspirujte se u konkurence. Jak to, že některé hry mají tak mnoho uživatelů? Jednoduše motivují současné uživatele, aby lákali své kamarády, neboť za to mají nějaké výhody ve hře. Taková propagace je potom daleko cennější, než jakákoliv jiná reklama. A navíc je zdarma.

Závěrem

Nakonec několik myšlenek, které byste měli mít vždy na paměti.

  • Pokud budete mít opravdu zajímavou aplikaci, uživatelé se vrátí sami a rádi
  • Vyvíjíte v sociální síti, tedy i vaše aplikace musí být sociální (interakce s přáteli, s provozovatelem, ...)
  • Registrace v adresáři aplikací udělá své
  • Využívejte dostupné zdroje komunikace
  • Placené reklamy na Facebooku nejsou úplně od věci
  • Zasílejte fanouškům aktualizace a novinky

Zdroje:
http://forum.developers.facebook.com/viewtopic.php?pid=167262
http://forum.developers.facebook.com/viewtopic.php?pid=120077

Tags: Internet | Programování | Sítě | Facebook