co jsou cookies

Co jsou cookies, k čemu slouží a máme se jich bát?

V tomto blogu vám chceme popsat principy cookies ve webových prohlížečích a jak cookies souvisejí s IT bezpečností. Pokud je vám problematika cookies alespoň trochu známá, doporučujeme přejít přímo na kapitolu “Cookies z pohledu IT bezpečnosti”.

Co jsou to cookies?

Cookies si lze představit jako malé soubory, které se uloží na váš počítač nebo mobilní zařízení v případě, že tak určí webová stránka, kterou navštívíte. Tyto soubory obsahují informace o tom, ze které webové stránky pocházejí, jak dlouho mají být uloženy na vašem zařízení a také uchovávají nějakou hodnotu, například zvolený jazyk stránky. Moderní webové prohlížeče mají cookies implementovány ve formě SQLite databáze, přičemž jeden záznam v této databázi představuje jednu cookie.

Proč jsem najednou odhlášen na všech portálech po tom, co jsem si smazal cookies?

Internetové stránky většinou používají cookies k identifikaci uživatele. Když navštívíte stránku poprvé, vytvoří se cookie s hodnotou X, která je unikátní právě pro vaše zařízení (samozřejmě v praxi se používá hodnota s více znaky, aby ji nebylo možné uhodnout). Tato cookie se nazývá relační. Pokud tuto stránku navštívíte znovu, váš prohlížeč odešle relační cookie s hodnotou X a server s danou stránkou bude vědět, že jste to právě vy, protože pouze vaše relační cookie má hodnotu X.

Často najdete na stránkách s přihlašovacím formulářem možnost “zůstat přihlášen”. Pokud potvrdíte tuto možnost, tak stačí, že se při příští návštěvě této stránky prokážete vaší relační cookie a server vás přihlásí automaticky bez nutnosti opětovného zadání přihlašovacího jména a hesla. Pokud si ale smažete cookies pro tuto stránku, tak při nejbližší návštěvě se už váš prohlížeč nedokáže prokázat relační cookie a tak vás server nepřihlásí automaticky. Musíte tedy znovu zadat vaše přihlašovací jméno a heslo.

Co když nechci používat cookies?

V případě, že nechcete používat cookies, můžete si je jednoduše vypnout v nastavení vašeho oblíbeného webového prohlížeče. V takovém případě vám ale několik internetových stránek nepůjde, protože podporu cookies vyžadují. Pokud nechcete, aby nějaká stránka ukládala na vašem zařízení cookies, doporučujeme ji navštívit v tzv. “Inkognito módu” vašeho prohlížeče. Prohlížeč v tomto módu sice podporuje cookies, ale jakmile ho zavřete, tak se všechny vytvořené cookies smažou.

Cookies z pohledu IT bezpečnosti

Jak jsme již zmínili, díky cookies se můžeme identifikovat vůči nějaké webové stránce. Pokud by tedy útočník dokázal získat vaši relační cookie, jednoduše si ji dokáže importovat do svého prohlížeče, navštíví stránku, pro kterou je tato cookie určena a tím získá přístup do vašeho účtu na stránce. Samozřejmě to platí pouze za předpokladu, že jste na této stránce zůstali přihlášeni. V opačném případě útočník musí počkat, dokud se na stránku přihlásíte a musí doufat, že vaše relační cookie se po přihlášení nezměnila.

Naštěstí cookies, které určují naši identitu na webových stránkách, jsou dostatečně dlouhé a mají dostatečnou entropii. Útočník je jen tak lehce neuhodne. Rovněž jsou chráněny webovými principy bezpečnosti, jakým je například “Same Origin Policy”. Tento princip říká, že stránka A dokáže číst a nastavovat cookies pro stránku B, pouze pokud jsou tyto stránky na stejné doméně, přistupujeme k nim na stejném portu a se stejným protokolem.

V praxi to znamená, že pokud máte na vaší stránce iframe z domény facebook.com (například “like button”), tak tento iframe nedokáže číst cookies, které byly nastaveny vaší stránkou (samozřejmě, pokud vaše stránka sídlí na doméně facebook.com, tak to není úplně pravda).

Co u cookies znamenají příznaky Secure a HttpOnly?

Přestože bezpečnostní model cookies je navržen zcela rozumně, existují útoky, pomocí kterých lze cookies ukrást. V případě útoku MITM (Man in the middle) dokáže útočník odchytávat komunikaci mezi klientem a serverem, čímž dokáže ukrást i cookies. V případě, že je tato komunikace šifrovaná pomocí protokolu HTTPS, útočník neumí získat hodnotu ukradených cookies.

Problémem je, když server sice podporuje komunikaci přes HTTPS, ale uživatel použije HTTP protokol. Navštíví tedy stránku http://stranka.sk a spolu s požadavkem na server jeho prohlížeč odešle i cookies, které útočník dokáže odchytit a získat jejich obsah. Příznak Secure u cookie slouží k tomu, aby prohlížeč spolu s požadavkem na server poslal i danou cookie pouze v případě, že komunikace je šifrována pomocí protokolu HTTPS.

Cookies lze ukrást i pomocí útoku XSS (Cross Site Scripting). Tento útok spočívá v tom, že oběť nevědomě provede podstrčený JavaScriptový kód. Tento kód může například poslat útočníkovi získané cookies, jelikož z JavaScriptu k nim umíme jednoduše přistupovat. Tento scénář však lze jednoduše vyřešit tím, že relačním a jiným důležitým cookies nastavíme příznak “HttpOnly”. Tento příznak určuje, že danou cookie je možné číst pouze na straně serveru.

O autorovi

Tomáš Melicher
Etický hacker
Pár let jsem pracoval jako web developer na rozsáhlých projektech pro veřejnou správu a finanční sektor. Na vyvíjený software jsem se vždy snažil dívat s jakýmsi nadhledem ve smyslu “co kdyby to chtěl někdo zkazit”. Tento přístup mě postupně přivedl do Citadela, kde děláme plno zajímavých věcí. Když zrovna nehackuju nějakou banku, tak mě můžete najít u pingpongového stolu nebo cvičit na nějaké prolézačce.
Zobrazit více od autora

Podobné blogy

Hackeři radí, jak ukrýt svoji identitu v online prostředí

blog |
Potřeba ochrany svého soukromí ve společnosti existuje od nepaměti, ale s příchodem moderních komunikačních prostředků nabrala nový rozměr.
Zobrazit

Citadelo na novém a ještě bezpečnějším webu

Blog | | Michaela Gallee
Náš požadavek na bezpečný web se může někomu zdát přehnaný, nejsme přece světová banka. To však nic nemění na tom, že naší vizí je bezpečný internet, a proto naše priorita byla kladena na bezpečnost.
Zobrazit

Jak si objednat pentest - kompletní návod

Blog | | Martin Hanic
Přestože lidem z IT bezpečnostní branže může tato otázka připadat stejně triviální jako "Jak si objednat nabíječku na telefon", pro mnohé však sepsání objednávky na pentest představuje podobnou roli jako navržení jaderné elektrárny.
Zobrazit

Torrenty a bezpečnost jejich používání

Blog |
Přestože ve své podstatě torrenty nejsou nelegální, v drtivé většině případů slouží k získání a sdílení ilegálního obsahu – seriálů, filmů, programů a her, které jsou chráněné autorskými právy. Jsou však takto stahované soubory bezpečné?
Zobrazit