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

Nová technologie čipu v občanském průkazu přinese nové hrozby

blog | | Adam Nastulczyk
Nový typ OP přinese nejpodstatnější změnu v tom, že už nebude možné vydat variantu bez elektronického čipu. Bude se jednat o kontaktní čip, pro jehož používání bude nezbytné zasunutí občanského průkazu do čtečky připojené k PC.
Zobrazit

Citadelo Security Evening - jaro 2018

blog | | Michaela Gallee
Bizarní úniky firemních dat, jak uchovat svou virtuální peněženku plnou nebo jak se uchránit před fenoménem "Black Swan". To jsou témata přednášek, která zazněla na Citadelo Security Evening (CSE), který se konal ve čtvrtek 26.4.2018, u nás v Citadelo.
Zobrazit

Počítačová kriminalita - jsme často oběťmi hackerských útoků?

blog |
Už dávno neplatí, že v ohrožení jsou pouze mezinárodní společnosti nebo ty, které disponují hodnotným majetkem. Zločinci si při útoku přes internet málokdy vybírají jednotlivce – jejich terčem jsou masy.
Zobrazit

Bezpečnost na internetu – umíte se chovat v online prostředí bezpečně?

blog |
Průměrný člověk stráví na internetu každý den 3 hodiny a 20 minut. Kromě užitečných informací a zábavy ale na nás čeká v online světě i velké množství hrozeb.
Zobrazit