Přejít k učivu
SBCZ.COM
Lekce 2 z 6 · 7 min čteníZdroj k tématu ↗

1 · Zabezpečení dat

Zabezpečení dat

  • Tohle je úvod do kyberbezpečnosti CS50.
  • Minulý týden jsme se zaměřili na účty.

Hesla

  • Zaměřili jsme se na naši odpovědnost za bezpečnost vlastních dat.
  • Do ukládání našich dat se ale vždy zapojuje také třetí strana.
  • Představ si, že systém ukládá uživatelská jména a hesla do textového souboru.
  • A představ si, že k takovému souboru získá přístup útočník.
  • Můžeme snížit riziko ukládání hesel v otevřeném, nešifrovaném textu?

Hashování

  • Hashování je metoda, která převádí otevřený text na hůře čitelnou hashovou hodnotu.
  • Hashovací funkce tedy vytváří hash. Zadáme jí heslo a výsledkem je jeho hashová hodnota.
  • Původní poznámky uvádějí, že bez přístupu ke konkrétní hashovací funkci nemůže útočník získat správné heslo.
  • Obecně chceme, aby výstup hashovací funkce působil velmi nesrozumitelně a neměl zjevný vzor. Útočníci tak nemohou jednoduše odhadnout, co algoritmus dělá.
  • Pokud server ukládá uživatelská jména a hashové hodnoty, nemůže se útočník k účtům na serveru dostat tak snadno.
  • Když uživatel zadá heslo při přihlášení, systém je znovu předá hashovacímu algoritmu a vytvořený hash porovná s uloženým.
  • Zvyšujeme tím náklady, čas a prostředky potřebné k získání přístupu k chráněným datům.
  • Slovníkový útok ale může postupně předávat hashovací funkci jednu hodnotu ze slovníku za druhou a snažit se ochranu prolomit.
  • Útok hrubou silou může zase zkoušet všechny kombinace znaků a hledat správné heslo.
  • Další hypotetickou hrozbou jsou rainbow tables: tabulky předem vypočítaných hashových hodnot. Úplné uložení všech potenciálních hodnot by však vyžadovalo terabajty, nebo dokonce petabajty kapacity.
  • Problém nastává také tehdy, když více uživatelů používá stejné heslo a jeho hash je naprosto stejný. Jak to vyřešit?

Přidávání soli (salting)

  • Salting je postup, při němž k vstupu hashovací funkce přidáme další hodnotu, „sůl“, a změníme tím výsledný hash.
  • Použití různé soli téměř zaručuje, že uživatelé dostanou různé hashe i v případě, že mají stejné heslo.
  • Náklady útočníků na prolomení hesel se tím znovu zvyšují.
  • NIST doporučuje zapamatovávané tajné údaje hashovat a přidávat k nim sůl.

Jednosměrné hashovací funkce

  • Jednosměrné hashovací funkce jsou programy, které přijmou řetězec libovolné délky a vrátí hash pevné délky.
  • Držitel samotného hashe a hashovací funkce z nich nemůže přímo obráceným výpočtem získat původní heslo.
  • V některých systémech používajících jednosměrné hashování mohou různá hesla vést ke stejné hashové hodnotě.

Kódy

  • Kryptografie se zabývá bezpečným přenosem dat mezi stranami.
  • Jedním ze způsobů zabezpečení dat jsou kódy.
  • Kódy převádějí slova, která chceme sdělit, na méně srozumitelnou posloupnost slov.
  • Kódování převádí otevřený text na kódovaný text.
  • Dekódování je opačný postup: převádí kódovaný text zpět na otevřený.

Šifry

  • Šifrování převádí otevřený text na šifrový text.
  • Tento postup se označuje jako encryption, tedy zašifrování. Opačný postup je decryption, dešifrování.

Klíče

  • Klíče jsou velmi dlouhé řetězce používané při šifrování a dešifrování.
  • Kryptografie s tajným klíčem předává šifrovacímu algoritmu klíč a otevřený text. Výstupem je šifrový text.
  • Odesílatel a příjemce v tomto případě sdílejí tajemství: oba mají potřebný klíč i přístup k šifrovacímu a dešifrovacímu algoritmu.

Kryptoanalýza

  • Kryptoanalýza je oblast výzkumu a praxe zaměřená na zkoumání šifrování a dešifrování dat, zejména možností, jak jejich ochranu analyzovat.
  • Už tím, že studuješ tento kurz, možná projevuješ vlastní zájem o kryptoanalýzu.

Kryptografie s veřejným klíčem

  • Představ si, že se odesílatel a příjemce zabezpečených dat nikdy osobně nesetkali. Jak mezi takovými stranami vytvořit sdílené tajemství?
  • Tento problém řeší šifrování s veřejným klíčem, nazývané také asymetrické šifrování.
  • Odesílatel nejprve předá algoritmu veřejný klíč a otevřený text. Výsledkem je šifrový text.
  • Příjemce potom předá algoritmu svůj tajný klíč a šifrový text. Výsledkem je dešifrovaný text.
  • RSA je příkladem šifrovacího standardu, který tento postup popisuje.

Výměna klíčů

  • Alternativní algoritmus Diffie–Hellman slouží k výměně klíčů.
  • Používá dohodnutou hodnotu g a prvočíslo p.
  • Strany A a B získají sdílenou tajnou hodnotu označovanou s.
  • Každá ze stran má také vlastní soukromý klíč.

Digitální podpisy

  • Veřejné a soukromé klíče můžeme využít také k podepisování dokumentů.
  • Dokument lze podepsat ve dvou krocích.
  • Nejprve zprávu, tedy obsah dokumentu, předáme hashovací funkci a získáme hashovou hodnotu.
  • Potom předáme soukromý klíč a hash algoritmu pro digitální podpis. Výsledkem je digitální podpis.
  • Příjemce může podpis ověřit tak, že obsah dokumentu také předá hashovací funkci. Potom použije veřejný klíč a obdržený podpis v ověřovacím postupu. V původním zjednodušeném popisu získá hash, který se má shodovat s dříve vypočítanou hodnotou.

Přístupové klíče (passkeys)

  • Passkeys a technologie WebAuthn jsou stále dostupnější.
  • Uživatelská jména a hesla se tak mají postupně používat méně často.
  • Passkey souvisí se zařízením. Když například na telefonu navštívíš web, který vyžaduje vytvoření účtu, telefon vytvoří veřejný a soukromý klíč.
  • Veřejný klíč potom pošleš webu.
  • Při dalších přihlášeních z tohoto zařízení nebo pomocí služby synchronizující passkeys mezi zařízeními využiješ soukromý klíč společně s výzvou, tzv. challenge. Algoritmus vytvoří podpis.

Šifrování při přenosu

  • Šifrování při přenosu chrání data, když putují datovými sítěmi tam a zpět.
  • Představ si dvě strany, které spolu chtějí komunikovat.
  • Chceme zabránit třetí straně, aby jejich data cestou zachytila.
  • Prostředníci, například poskytovatelé e-mailu, mohou ve skutečnosti číst tvé e-maily nebo zprávy.
  • Koncové šifrování, neboli end-to-end encryption, je způsob, jak zabránit prostředníkům v přečtení obsahu dat.

Mazání

  • Teď se podívejme na běžnou situaci: smazání souboru.
  • Po smazání mohou v počítači zůstat stopy původního souboru.
  • Operační systémy často mažou soubory tak, že pouze „zapomenou“, kde se nacházejí. Nové soubory pak mohou staré přepsat.
  • Nemáme ale záruku, že je volné místo na disku zcela zbavené stop starých souborů.
  • Bezpečné mazání v tomto příkladu znamená přepsání všech zbytků smazaných souborů nulami, jedničkami nebo jejich náhodnou posloupností.

Šifrování celého disku

  • Šifrování celého disku, příklad šifrování uložených dat neboli encryption at rest, zašifruje obsah pevného disku.
  • Když ti zařízení někdo ukradne nebo je prodáš, neměl by mít bez potřebných klíčů přístup k zašifrovaným datům.
  • Nevýhodou je, že při ztrátě hesla nebo dostatečně velké změně obličeje pro biometrické ověřování se k datům nemusíš dostat ani ty.
  • Další nevýhodou je, že stejný druh technologie mohou útočníci využít jako ransomware: zašifrují disk a drží data jako rukojmí.

Kvantové počítače

  • Kvantové počítání je rozvíjející se technologie, která by útočníkům mohla poskytnout pro některé problémy výrazně vyšší výpočetní výkon.
  • Útočníci by ji mohli využít ke zkrácení času potřebného pro hádání hesel a prolomení některých druhů šifrování.
  • Doufejme, že budeme mít k takovému výkonu přístup dříve než oni.

Co jsme probrali

V této lekci jsme se zabývali zabezpečením dat. Probrali jsme:

  • Jak weby a služby ukládají hesla.
  • Jak lze textové hodnoty hashovat pro ochranu tajných údajů.
  • Úlohu soli, jednosměrných hashovacích funkcí, klíčů, šifrování a dešifrování při bezpečném ukládání dat.
  • Veřejné a soukromé klíče.
  • Jak technologie využívají veřejné a soukromé klíče k ochraně dat.
  • Jak zabezpečit vlastní hardware.
  • Nové přínosy i hrozby spojené s kvantovými počítači.

Uvidíme se příště!

Procvičení SBCZ

Ověř si porozumění

1. Proč se k heslu před hashováním přidává unikátní sůl?

Řešení a vysvětlení

Aby stejná hesla různých uživatelů neměla stejný uložený hash. Různá sůl mění hash i u stejného hesla a ztěžuje společné využití předem vypočítaných tabulek.

2. Co může přetrvat po běžném smazání souboru?

Řešení a vysvětlení

Zbytky dat na úložišti, než se přepíšou nebo bezpečně odstraní. Běžné mazání může odstranit pouze informaci o umístění souboru. Není samo o sobě zárukou bezpečného odstranění dat.

3. Co chrání koncové šifrování zpráv?

Řešení a vysvětlení

Omezuje možnost prostředníků přečíst obsah mezi koncovými zařízeními. End-to-end šifrování chrání obsah proti prostředníkům. Neřeší samo o sobě napadený koncový počítač nebo sdílení obsahu příjemcem.