Prohlášení o zabezpečení
Pro vaši bezpečnost se snažíme dělat maximum. Na tomto webu byly nasazeny bezpečnostní mechanismy, které do značné míry zabraňují zachycení a zneužití informací, které jsou na těchto stránkách zobrazovány, uchovávány v databázi nebo zadávány jednotlivými uživateli. Níže jsou uvedeny některé techniky, které byly v rámci zabezpečení webu implementovány.
Bezpečnost webu není vlastnost, ale pouze jeho míra. Cílem nasazení bezpečnostních opatření je pokud možno znemožnit zneužití dat, která jsou přenášena mezi vámi a webovým serverem. Ať už se jedná o zadávané přihlašovací údaje, běžnou činnost s webem nebo jen zaznamenávání stránek, které si prohlížíte. Tento web se řadí mezi rostoucí skupinu webů, které jsou zabezpečeny moderními technologiemi a splňují doporučovaná kritéria bezpečnosti.
Zde si můžete rychle ověřit, jaký je stav implementace zabezpečení na tomto webu. Pokud vás zajímají detaily jednotlivých bezpečnostních principů, v krátkosti je naleznete níže.
Zabezpečené spojení
Veškerá komunikace mezi uživatelem a serverem využívá moderní protokol pro zabezpečení Transport Layer Security (TLS 1.3). Pro výměnu klíčů (která je jedním z kroků při šifrování obsahu) je použit moderní algoritmus ECDHE, který využívá kryptografii nad eliptickými křivkami.
Zde si můžete ověřit popsané zabezpečení: https://www.ssllabs.com/ssltest/analyze.html?d=campula.cz
Certifikát
Použití digitálního certifikátu je v současné době standard moderního webu a také nutnost pro šifrování komunikace mezi prohlížečem uživatele a webovým serverem. Tento systém zajišťuje návštěvníkovi, že data nebude možné odposlechnout a návštěvník bude mít jistotu, že komunikuje s tím správným webovým serverem a ne se serverem případného útočníka. Certifikát v sobě kromě jiného obsahuje název domény (campula.cz), který je zjednodušeně řečeno porovnán s adresou v adresním řádku. Pokud je certifikát vyhodnocen jako platný, má návštěvník téměř jistotu, že nebyl podvodně přesměrován na jiný web. Pokud se tyto údaje neshodují, prohlížeč zobrazí varování o neshodě certifikátu.
Na tomto webu je použit DV certifikát (domain verification), který ověřuje doménu bez dalšího ověření vlastníka, společnosti apod. V současné době není použití jiného typu certifikátu příliš významné ani ekonomicky výhodné.
Teoreticky existuje možnost podvržení certifikátu se snahou o přesměrování na server útočníka bez vědomí uživatele, i když je velmi nepravděpodobná. Přesto se tomu snaží zabránit systém Certificate Transparency, ve kterém jsou uloženy všechny vydané certifikáty certifikačními autoritami na světě. Prohlížeč pak používá mechanismus kontroly, ve které ověřuje, zda je certifikát platný a nebyl podvržen.
Zde si můžete ověřit, jaké certifikáty byly vystaveny pro tento web a zda jsou platné:
https://crt.sh/?q=campula.cz
DNSSEC
Doména campula.cz je registrována u ověřeného registrátora, který podporuje zabezpečení DNSSEC. Cílem tohoto systému je ochrana překladu doménových jmen na IP adresy serverů. Pokud uživatel zadá do prohlížeče adresu webové stránky, nejdříve se tato adresa přeloží na IP adresu serveru, kde je web umístěn. Všechny informace, které se na stránce zobrazují, jsou načteny z tohoto serveru. Pokud by došlo k situaci, že útočník způsobí změnu v překladu IP adresy, mohl by návštěvníka přesměrovat na svůj web s podobným grafickým rozložením a zde vylákat od uživatele citlivé údaje. Technologie DNSSEC této možnosti zabraňuje použitím asymetrické kryptografie při překladu názvů domén na IP adresy. Při požadavku na zobrazení stránky campula.cz tak vždy obdržíte informace ze serveru, který je tím jediným oficiálním.
Zde si můžete ověřit popsané zabezpečení: https://viewdns.info/dnssec/?domain=campula.cz
Ošetření vstupů a výstupů
Pro formulářová pole a výpis textů na stránku se používá framework, který tyto vstupy a výstupy ošetřuje např. proti útoku SQL Injection nebo Cross-site scripting (XSS).
Ukládání hesel
Hesla uživatelů nejsou nikde uložena v původním formátu tak, jak je uživatelé zadávají. Před uložením do databáze jsou hashována moderní metodou bcrypt (Wikipedie) (pro zvídavé - s parametrem cost = 10). Algoritmus hashování je uměle zpomalen, aby případný útočník měl výrazně snížené možnosti odhadnutí hesla hrubou silou. Zpomalení spočívá v omezení možnosti zpracování na cca 10 hesel za sekundu (moderní zařízení by jinak byla schopna "naslepo" zkoušet až miliardy hesel za sekundu, dokud by heslo uživatele neodhadla). V nejhorším případě, pokud by systémovou databázi získala neoprávněná osoba, se jí stejně nepodaří hashovaná hesla rozšifrovat do původního tvaru. Pokud by uživatel používal stejné heslo pro více služeb na internetu, nebudou tak tyto další služby ohroženy.
Zasílání hesel
Hesla z tohoto systému nejsou nikdy odesílána e-mailem (možnost by se nabízela například při registraci nebo zapomenutí hesla). Pokud by systém tuto funkci obsahoval, výrazně by tím snížil ochranu svých uživatelů. E-mailovou zprávu je možné jednoduše odchytit a heslo z něho získat. Pokud by ho útočník nezískal ihned, uživatel by si ho přesto jistě ponechal ve své e-mailové schránce, kde by znamenalo hrozbu v případě napadení této e-mailové schránky. Informaci o registraci nebo zapomenutí hesla samozřejmě odesíláme, ale bezpečnou formou pomocí časově omezeného odkazu. Uživatel je dále o každé změně přihlašovacích údajů informován.
Nastavení cookies
Proměnné typu cookies (RFC, Wikipedie) obsahují například uživatelské nastavení webu nebo slouží k uložení identifikace uživatele. Právě identifikační řetězec je velmi důležité chránit, neboť pokud by ho získal útočník, mohl by se na web jednoduše přihlásit místo daného uživatele. Použité nastavení zabezpečí, že obsah těchto proměnných není možné odesílat pomocí skriptů mimo tento web třetím stranám. Obsah cookies je dále možné přenášet pouze po šifrovaném spojení.
Mixed content
Informace, že na webu je použitý tzv. mixed content (smíšený obsah) znamená, že některý obsah na webu je získán přes zabezpečené spojení, ale některý přes nezabezpečené (například obrázky apod.). To může znamenat zvýšenou zranitelnost webu proti útokům, proto se na tomto webu mixed content nevyskytuje a veškerý obsah pochází ze zabezpečeného spojení. Pokud by se vlivem chyby obsah z nezabezpečeného spojení na webu někdy v budoucnu objevil např. v důsledku aktualizace systému, internetový prohlížeč tento obsah automaticky zablokuje a nezobrazí.
Zde si můžete ověřit popsané zabezpečení: https://www.jitbit.com/sslcheck/#url=https://campula.cz
Subresource integrity
Vzhledem k optimalizaci načítání stránky se v některých případech na webu načítají skripty nebo grafické styly z jiných zdrojů. Jedná se například o servery s obecnou grafikou, obrázky nebo uživatelskými prvky. Tyto zdroje nejsou pod naší kontrolou, proto není možné zajistit bezpečnost serverů poskytujících požadovaná data. V takových případech je proto předem vypočítán hash vkládaných souborů a při každém použití se kontroluje, zda se soubor na vzdáleném serveru nezměnil. Pokud by se změnil (například vlivem útoku na tyto servery), data se sice do prohlížeče stáhnou, ale již nezobrazí. Tím je zajištěna i bezpečnost dat, která jsou uložena na jiných serverech.
Kontrola obsahu Content-Security-Policy
Celý web používá systém pro kontrolu jeho obsahu. Tento nástroj nabízí možnost detailní definice používaných zdrojů vložených skriptů, obrázků, písem apod. Tímto způsobem je značně omezena možnost podvodně vložit na web skript, obrázek a další součásti, které pocházejí z nedůvěryhodných zdrojů. Stejně tak není možné odesílat citlivá data z formulářů mimo tento web. Tato technologie omezuje využití útoku Cross-site scripting (XSS). Pokud dojde k porušení nastavených pravidel například vlivem útoku na tento web, nedůvěryhodná data se uživateli vůbec nezobrazí a událost je ihned hlášena správci systému.
Ověření certifikátu Expect-CT
Certifikát, který je na tomto webu použit a slouží k šifrování spojení, je zapsán na seznamu služby Certificate Transparency. Pokud přistupujete k webu pomocí prohlížeče Chrome, je automaticky kontrolováno, zda je certifikát na tomto seznamu zapsán a zda je platný. Pokud používáte jiný prohlížeč, obsahuje web informaci se žádostí o tuto kontrolu, ke které by měly jiné prohlížeče přihlížet a certifikát také kontrolovat. Pokud dojde k neshodě v certifikátu, je tato událost hlášena správci systému.
Informace o návštěvníkovi Referrer-Policy
Na internetu se běžně předávají základní informace mezi stránkou, na které je odkaz, a mezi stránkou, kam tento odkaz směřuje. Tento způsob umožňuje např. sledovat, odkud na váš web návštěvníci přicházejí, jaké stránky procházejí apod. Je vhodné toto chování omezit a mít pod kontrolou, jaké údaje se při každém kliknutí na odkaz odesílají. Z tohoto důvodu jsou na webu zavedena pravidla, která určují, jaké informace obdrží web, na který je odkazováno. Při přechodu na jinou stránku jsou informace o původní stránce poskytnuty, ovšem pouze pokud jde stále o zabezpečené (HTTPS) spojení. Pokud by odkaz směřoval na nezabezpečené spojení (HTTP), informace o původní stránce poskytnuty nebudou.
HTTP Strict Transport Security (HSTS) Strict-Transport-Security
Web využívá technologii HSTS (RFC, Wikipedie), která znemožňuje komunikovat mimo zabezpečené šifrované spojení (HTTPS). Pokud uživatel přímo nezadá adresu začínající na "https://" (a tím nevynutí použití zabezpečeného spojení), prohlížeč tuto akci zachytí a ještě před odesláním požadavku na zobrazení stránky přesměruje na zabezpečenou verzi webu. Redukuje se tak možnost využití útoku SSL Stripping.
Prohlížeč však před první návštěvou stránky neví, že se má používat pouze zabezpečené spojení. Tato informaci přijde ze serveru právě až po prvním načtení stránky, často přes nezabezpečené spojení. Tento fakt může představovat bezpečnostní riziko, proto je web zapsán na seznamu HSTS preload list. Tento seznam je obsažen přímo v internetových prohlížečích a zajistí, že není nutné ani tato první nezabezpečená návštěva webu. Prohlížeč má informaci o nutnosti použití zabezpečeného spojení ještě předtím, než na web uživatel poprvé vstoupí.
Zde si můžete ověřit popsané zabezpečení: https://hstspreload.org/?domain=campula.cz
Požadavky na zabezpečené zdroje Upgrade-Insecure-Requests
Jakákoliv externí součást webu byla měla být pokud možno získána prostřednictvím zabezpečeného spojení. Stejně tak odkazy na externí weby by měly být upřednostňovány s použitím protokolu HTTPS. Tento web je těmto požadavkům přizpůsoben a je nastaven tak, že i v případě vyžádání zdroje s použitím nezabezpečeného spojení bude automaticky navázáno spojení zabezpečené.
Kontrola typu obsahu X-Content-Type-Options
Na webu je vynucena kontrola mezi obsahem a jeho typovým označením. Pokud se například skript pro práci s uživatelskými daty tváří, že se nejedná o skript, ale o nevinný text nebo obrázek, pak skript není vůbec proveden. V opačném případě by mohlo nastat nebezpečí spuštění nežádoucího skriptu, u kterého neznáme jeho chování a který by mohl nebezpečně nakládat s uživatelskými daty.
Vložený obsah X-Frame-Options
Toto nastavení zakazuje vkládání částí tohoto webu do jiných webů. Tímto je zajištěna konzistence poskytovaných informací a žádný jiný web nemůže prostřednictvím vložených rámců automaticky přebírat části tohoto webu. V opačném případě by mohlo dojít k vytržení informací z kontextu a šíření mylných informací.
XSS Auditor X-XSS-Protection
Na webu je vynuceno použití XSS Auditoru. Tento nástroj způsobí, že prohlížeč kontroluje, zda není nebezpečně manipulováno se skripty v rámci požadavku a vykreslení stránky. Pokud ano, prohlížeč se tento stav nesnaží opravit (jak se dříve často chybně stávalo), ale stránku vůbec nezobrazí, neboť by opravou mohl vnést do stránky opět potenciální zranitelnost. Tímto systémem je omezena možnost útoku typu Cross-site scripting (XSS). Pokud dojde k zachycení takového stavu, je událost ihned hlášena správci systému.
Souhrn
Zde si můžete ověřit popsané zabezpečení: https://securityheaders.io/?q=https://campula.cz&followRedirects=on