0 · Zabezpečení účtů
Zabezpečení účtů
- Tohle je úvod do kyberbezpečnosti CS50.
- Dnes se zaměříme na bezpečnost tvých účtů.
- Začneme tím, co vlastně znamená bezpečnost.
Bezpečnost
- V běžném světě si můžeme bezpečnost představit jako klíč k fyzickému zámku.
- V digitálním světě se bezpečnost skládá z mnoha různých prvků.
- Autorizace je v původních poznámkách popsána jako ověření, že jsi skutečně osobou, která má mít k účtu přístup.
- Uživatelské jméno je jedním ze způsobů, jak prokazuješ, že máš mít k účtu přístup.
- Heslo je dalším způsobem, jak prokazuješ, že máš mít k účtu přístup.
- Myšlenkou je, že teoreticky bys měla umět platné uživatelské jméno i heslo poskytnout pouze ty.
- Slovníkové útoky jsou jedním ze způsobů, kterými se útočníci pokoušejí uhodnout heslo. Mohou použít také útok hrubou silou a zkoušet dlouhé seznamy možných hesel. Proto je velmi důležité bránit se těmto útokům kvalitním heslem.
- Při posuzování bezpečnosti je potřeba zvažovat kompromis mezi použitelností a bezpečností. Velmi bezpečná služba se může používat obtížněji. Při výběru bezpečnostních opatření tedy přemýšlej, co nejlépe odpovídá tvému konkrétnímu použití.
Obrana proti útokům
Zkus si představit, kolik možných číselných kombinací existuje, pokud máš telefon nebo jiný systém chráněný pouze čtyřmístným číselným heslem. Možných kombinací je 10 000. Obecně je můžeme vyjádřit takto:
10 x 10 x 10 x 10V nejhorším případě by tedy útočník musel vyzkoušet 10 000 možných hesel.
- Tento problém můžeme zkusit vyjádřit v kódu. VS Code je vývojové prostředí, ve kterém můžeme psát a spouštět kód.
Podívej se na následující zápis stejného problému v kódu:
from string import digits for i in digits: for j in digits: for k in digits: for l in digits: print(i, j, k, l)Kód napsaný v Pythonu prochází každou možnou kombinaci číslic.
- Spustíme-li
crack.pyv okně terminálu, kde můžeme zadávat příkazy počítači, uvidíme, že vytvoření všech možných hesel zabere útočníkům jen několik milisekund. - Co by se stalo, kdybychom požadovali heslo tvořené čtyřmi písmeny?
Pokud povolíme malé i velké varianty 26 písmen, můžeme počet možností matematicky vyjádřit takto:
52 x 52 x 52 x 52Možností je přes sedm milionů.
Kód můžeme upravit následovně:
from string import ascii_letters for i in ascii_letters: for j in ascii_letters: for k in ascii_letters: for l in ascii_letters: print(i, j, k, l)Používáme
ascii_letters, které zahrnuje malé i velké varianty písmen. Podobně jako předchozí program i tento prochází všechny možné kombinace.- Po spuštění kódu zjistíme, že ani teď hacker nepotřebuje příliš velké úsilí k nalezení všech možných hesel.
- A co kdyby čtyřznakové heslo mohlo obsahovat písmena, číslice i interpunkční znaky? Získali bychom přes 78 milionů možností.
Kód můžeme upravit takto:
from string import ascii_letters, digits, punctuation for i in ascii_letters + digits + punctuation: for j in ascii_letters + digits + punctuation: for k in ascii_letters + digits + punctuation: for l in ascii_letters + digits + punctuation: print(i, j, k, l)- Po spuštění uvidíme, že v nejhorším případě trvá nalezení všech možných hesel výrazně déle.
- Hlavní poznatek je, že čím vyšší časovou překážku útočníkovi nastavíme, tím méně je pravděpodobné, že bude mít čas heslo prolomit. Pro uživatele je ovšem obtížné dlouhá a složitá hesla psát i pamatovat si je. Bezpečnost a použitelnost proto vyžadují rovnováhu.
National Institute of Standards and Technology (NIST)
- NIST vydává doporučení, jak účty chránit účinněji.
- Jeho doporučení a osvědčené postupy můžeš využít ve své práci, v zaměstnání nebo ve firmě. Původní poznámky uvádějí následující zkrácená doporučení pro hesla:
- Zapamatovávané tajné údaje mají mít alespoň osm znaků.
- Systémy ověřující hesla mají umožnit všechny tisknutelné znaky ASCII a symboly Unicode a podporovat délku alespoň 64 znaků.
- Mají porovnávat nová hesla se slovníkovými výrazy, opakovanými sekvencemi, seznamy uniklých hesel a slovy souvisejícími s konkrétním kontextem.
- Neautentizovaným zájemcům o přístup nemají zpřístupňovat nápovědu k heslu.
- Nemají vyžadovat pravidelné změny hesel.
- Mají omezovat počet neúspěšných pokusů o přihlášení a blokovat potenciální útočníky.
Dvoufaktorová (2FA) a vícefaktorová autentizace (MFA)
- Vícefaktorová autentizace může využívat tři druhy faktorů:
- Znalost: něco, co víš pouze ty.
- Vlastnictví: předmět nebo zařízení, které má pouze oprávněný uživatel.
- Vlastnost osoby: něco spojeného přímo s tebou, například otisk prstu, obličej nebo jiná biometrie.
Jednorázové heslo (OTP)
- Jednorázová hesla může poskytovat speciální přívěsek nebo jiné zařízení.
- Často je získáváme ze zařízení nebo z aplikace.
- Některé metody OTP jsou bezpečnější než jiné.
- OTP zasílané textovou zprávou může útočník obejít pomocí SIM swappingu, tedy podvodného převzetí či nahrazení SIM karty a získání přístupu ke zprávám.
- Bezpečnější variantou jsou OTP z aplikace na zabezpečeném zařízení, například z autentizační aplikace v telefonu.
Zaznamenávání stisků kláves
- Útočník, který zaznamenává stisky kláves, může zachytit uživatelská jména, hesla i OTP.
- Keylogging se provádí instalací škodlivého softwaru do počítače.
- Nejlepší je zajistit, aby ses přihlašovala pouze na zařízeních, k nimž máš přístup jen ty.
Credential stuffing
- Další útok, credential stuffing, využívá seznam uživatelských jmen a hesel získaných z napadeného webu a zkouší je na jiném webu.
- Jestli stejné heslo používáš na více webech, je vhodné změnit je na unikátní hesla.
Sociální inženýrství
- Útok sociálním inženýrstvím místo technického průniku využívá sociální tlak a důvěru, aby získal přihlašovací údaje.
- Někdo se může vydávat za důvěryhodnou osobu a získat od tebe přihlašovací údaje nebo podrobnosti o tvém životě.
- Útočníci také mohou hledat údaje, jako je jméno domácího mazlíčka, a podobné osobní informace.
Phishing
- Phishing technologicky využívá sociální inženýrství: vydává se za důvěryhodný web a snaží se získat přihlašovací údaje a další informace.
- Můžeš být například přesměrována na stránku, která vypadá jako přihlášení do Googlu, ale ve skutečnosti patří útočníkovi.
- Odkazům v e-mailech nikdy slepě nevěř. Zvaž otevření prohlížeče a ruční zadání důvěryhodné adresy.
Útoky prostředníka
- Zařízení mezi tebou a zdrojem stahovaných dat, například routery a přepínače, mohou napadnout velmi zdatní útočníci.
Jednotné přihlášení (SSO)
- Různé služby vyžadují různá hesla. S ohledem na doporučení nepoužívat stejné heslo pro různé služby existuje několik způsobů, jak bezpečnost posílit.
- SSO umožňuje použít přihlášení Googlu nebo Facebooku i pro služby, které Google či Facebook neposkytují.
- Můžeš tak přistupovat k jiným službám jednodušeji, s menším množstvím překážek a větší bezpečností.
Správci hesel
- Správce hesel je software, který za tebe spravuje a ukládá složitá hesla.
- Díky tomu si heslo nemusíš pamatovat.
- Mnozí správci hesel navíc rozpoznají phishingové weby.
- Na rozdíl od dlouho dostupného ukládání hesel v prohlížeči mohou být správci hesel samostatným softwarem poskytujícím hesla pro více služeb.
- Nevýhodou je, že obrazně dáváš všechna vejce do jednoho košíku. Pro přístup ke všem ostatním heslům si musíš pamatovat jedno heslo.
Přístupové klíče (passkeys)
- Rozvíjející se technologie passkeys využívá automaticky vytvořené kryptografické přihlašovací údaje; původní poznámky je zjednodušeně označují za automaticky generovaná hesla.
- Passkeys pracují s veřejným a soukromým klíčem. Veřejný klíč má služba, například web, a soukromý klíč má tvoje zařízení.
- Umožní přihlášení bez psaní hesla.
- Abychom této technologii porozuměli podrobněji, musíme se nejdříve dozvědět více o kryptografii.
Co jsme probrali
V této lekci ses seznámila s kompromisem mezi bezpečností a pohodlím, s útoky, které mohou ohrozit tebe i ostatní, a se způsoby ochrany přihlašovacích údajů. Konkrétně jsme probrali:
- Mezi bezpečností a pohodlím existují kompromisy.
- Proti digitálním útočníkům tě obecně chrání především tvoje chování a informovanost.
- NIST poskytuje bezpečnostní doporučení.
- 2FA, MFA a OTP patří mezi způsoby, jak zvýšit bezpečnost.
- Mezi běžné útoky patří keylogging, phishing, credential stuffing a sociální inženýrství.
- Další ochranu může přinést SSO nebo správce hesel.
- Passkeys mají nabídnout ještě vyšší bezpečnost.
Uvidíme se příště!