Bezpečnost dat našich klientů bereme vážně. Sledujeme moderní trendy ve správném přístupu k ukládání dat a přístupu k nim. Snažíme se také eliminovat lidské pochybení tím, že nastavujeme jednoduchá bezpečnostní pravidla, díky kterým problémům předcházíme.

HTTPS

Internetový protokol HTTP funguje v textové podobě. Můžete poslouchat komunikaci na síti a číst, jaké adresy uživatelé navštěvují, jaká zadávají hesla a další údaje do formulářů. Dokonce můžete zobrazovaná data uživateli i změnit. Děje se tak např. na některých veřejných Wi-Fi sítích, kdy poskytovatelé připojení do stránky vkládají své reklamy.

Protokol HTTPS naproti tomu komunikaci mezi prohlížečem uživatele a webovým serverem šifruje a můžete přečíst nanejvýš doménu, na kterou se uživatel připojuje. URL adresy a vyplněná data z formulářů se už nikdo jiný nedozví. Stejně jako při ukládání hesel se i při zabezpečení komunikace používají šifrovací a hashovací funkce, které mohou trpět zranitelnostmi. Používejte aktuální doporučená nastavení, která nemají žádné známé problémy.

Na našich serverech se potkáte s celkem striktně a moderně nastaveným bezpečnostním nastavením, které ovšem dnešní a podporované prohlížeče hravě zvládají. Servery mají aktuálně nastavené HTTP/2 s podporou ALPN, TLS 1.2 s AES256+EECDH. Jestli jsou tyto zkratky pro vás cizí, doporučujeme čtivý článek od předního českého odborníka na webovou bezpečnost Michala Špačka, kde jednotlivé zkratky rozebírá. Výhodou moderních nastavení je mimo jiné také rychlejší komunikace mezi serverem a prohlížečem i přes nutnost šifrovat veškerá data. O správnosti nastavení svědčí také pozitivní výsledky testů na webovou bezpečnost, např. SSL Server Test od SSL Labs.

Naše projekty naleznete vždy na HTTPS s aktivním přesměrováním z HTTP, často také se zapnutým HSTS, které znemožňuje používání HTTP protokolu na dané doméně. Přestože nemáme na testovacích serverech citlivé uživatelské údaje, máme i na nich nastavené HTTPS připojení kvůli zadávání hesel a dalších uživatelských údajů během testování.  

 

SSL Server Test

SSL Server Test - Na základě nastavení HTTPS na vašem serveru dostanete hodnocení včetně vysvětlení, kde máte slabiny

 

Ukládání hesel

Únik databáze uživatelských údajů je nebezpečný i kvůli tomu, že útočník může použít cizí přihlašovací údaje a přihlásit se pomocí nich na službě, ze které data odcizil. Kromě toho může zkusit stejné údaje použít i na dalších službách, kde může mít uživatel stejné přihlašovací údaje. Uživatelská hesla se tedy obecně ukládají ve formátu, kdy heslo není uložené v čitelné podobě, ale jen v takzvaném otisku (hashi), ze kterého není možné získat heslo v čitelné podobě. Při přihlášení uživatele se ze zadaného hesla vypočte opět jen otisk a porovnají se dva otisky vůči sobě.

Pokud by dva uživatelé měli stejné heslo, měli by i stejný otisk, a to je opět forma prozrazení důvěrné informace. Proto má každý uživatel ve svém uživatelském účtu unikátní údaj, tzv. sůl, se kterou se spojí heslo a z této kombinace se teprve vytváří samotný otisk. Takto se nemůže stát, že by v databázi byly dva stejné otisky hesel.

Aby platilo, že nikdy není možné z otisku získat zpět heslo v čitelné podobě, využívají se funkce s matematickými algoritmy. U takových funkcí je dokázané, že není možné použít inverzní funkci, případně najít heslo hrubou silou. Funkce je tak pomalá, že by trvalo moc dlouho takovou metodu zkoušet.

Stává se, že časem u funkcí najdete nějakou slabinu, která znemožní její použití. Proto sledujeme trendy v oblasti bezpečnosti a používáme vždy aktuálně doporučované hashovací funkce. Při zjištění přechodu na bezpečnější formu ukládání dat se dosavadní otisky hesel uloží novou funkcí. Z pohledu uživatele tak používáme vždy nejbezpečnější způsob uložení hesel, i bez jeho přihlášení.

Nyní jsou všechna naše hesla uložená pomocí funkce bcrypt, která je společně s funkcí Argon2 doporučovaná pro ukládání otisků hesel a nemá žádnou známou chybu.

Správné ukládání hesel na webu zjistíte několika způsoby. Jedním je, že při zapomenutém heslu vám vaše staré heslo nepřijde e-mailem. Správně vám přijde jen URL adresa, kde si heslo můžete po nějakou časově omezenou dobu změnit. Dalším způsobem je, že se web touto funkcí pochlubí na svých stránkách. V takovém případě může být zveřejněn v databázi odhalující, jak který web nakládá s hesly. 

 

Password storage disclosuers

Password storage disclosuers - Zveřejněním způsobu ukládání hesel obdržíte hodnocení A-F

 

Aby e-maily nekončily ve spamu

Problematika e-mailů je ještě složitější, než problematika zabezpečení HTTP. Kromě kontroly, zda nebyl e-mail cestou podvržen je potřeba ověřit, zda e-mail byl odeslán oprávněně.

Naštěstí je dnes možné nastavit několik způsobů, které zajistí větší důvěryhodnost doručovaných e-mailů. Někteří klienti (např. Gmail nebo Seznam.cz) nedostatečně nastavené e-maily vyhodnocují jako spam.

Jedním ze základních nastavení je digitální podpis DKIM. Na odesílacích serverech a v DNS jsou uloženy digitální klíče, jejichž pomocí je u příjemce zvalidováno, že odesílací server má právo posílat e-maily s uvedenou doménou.

Dalším nastavením je SPF, kdy se v DNS záznamech povolují IP adresy, ze kterých je možné odesílat e-maily pro uvedenou doménu. Společně s našimi klienty nastavujeme tento záznam, aby naše servery byly mezi povolenými příjemci.

Kontrolu dalších správných nastavení odesílaných e-mailů můžete sami vyzkoušet pomocí nástroje Mail Tester. Vygeneruje vám unikátní e-mailovou adresu, na kterou si necháte zaslat z vašeho e-shopu nebo webu e-mailovou zprávu. Nástroj vám následně vyhodnotí různá kritéria, ve kterých můžete dostat až 10 bodů. V tom případě máte většinu nastavení správně a máte tak jistotu, že vaše e-maily nebudou končit ve spamu.

 

Spam Test Result

Spam Test Result - Nástroj automaticky zkontroluje, s jakou pravděpodobností skončí vaše e-maily ve spamu

 

Anonymizace a GDPR

Přístup k uživatelským datům podléhá nařízení GDPR. Proto jsou data uložená pouze na produkčních serverech, které nikdy neopustí. Pro potřeby interního testování na reálných datech máme vyvinutý vlastní nástroj, který uživatelská data ještě na produkčních serverech anonymizuje a pro naše interní potřeby zpřístupní kompletní databázi bez osobních údajů. Nástroj pro stahování anonymizovaných databází máme veřejně umístěný na našem GitHubu. Inspirujte se nástrojem, případně ho použijte pro své potřeby. Přístup na servery je navíc umožněn jen priviligovanému uživateli pomocí bezpečného SSH připojení.

Klíčenka místo hlavy

Naši zaměstnanci mají k dispozici klíčenku 1Password, proto aby si nemuseli pamatovat hesla a abychom co nejvíce eliminovali lidskou chybu. Sdílená hesla máme uložená v jednotlivých trezorech s přiřazenými uživateli podle toho, kdo k nim musí mít přístup.

Dvoufaktorová autentizace

Jak na GitHub, tak na G Suite máme vynucené ověřování přihlašování pomocí dvoufaktorové autentizace. Zaměstnanci tak kromě hesel musí potvrdit svou totožnost ještě ověřením pomocí SMS zprávy, nebo lépe jednorázovým kódem z aplikace v mobilu.

FTP a přístup na ostré servery

Stejně, jako HTTP, je FTP nezabezpečený způsob přenosu dat. Dnes již nemá své opodstatnění a všichni zaměstnanci používají pro přístup na testovací i produkční servery bezpečné SSH připojení s privátním klíčem. FTP je nahrazeno SFTP přístupem, který využívá právě SSH připojení.

Šifrování disků, lokální Wi-Fi a VPN

Na počítačích zaměstnanců máme zapnuté šifrování disků pomocí FileVault. Získání data z odcizeného zařízení by tak neměla být možná.

Přístup do vnitřní Wi-Fi sítě mají pouze ověřená zařízení pomocí MAC adres. Pro klienty mám připravenou klientskou Wi-Fi síť fungující na jiné VLAN a s jinou veřejnou IP adresou bez povoleného přístupu na lokální rozsah IP adres.

Pro vzdálený přístup k našim službám máme nainstalovanou VPN pomocí L2TP a interní potřebné služby máme omezené pouze na firemní IP adresu, např. SSH přístupy na produkční servery apod.
 

Diskuze