Základní pojmy

Pojem Otázka Význam
Identifikace "Kdo jsi?" Uživatel říká, kdo je (zadá jméno, e-mail)
Autentizace (authentication) "Opravdu jsi to ty?" Ověření identity (heslo, otisk, token)
Autorizace (authorization) "Co smíš dělat?" Kontrola oprávnění (role, scope)

Pořadí: identifikace → autentizace → autorizace.

Klasický chyták u maturity: autentizace a autorizace se zaměňují, protože oboje začíná na "auto-". Mnemotechnika: autentizace = identita, autorizace = pravomoc.

Hashování vs šifrování (často matoucí)

Hashování Šifrování
Směr Jednosměrné (nelze vrátit) Obousměrné (lze dešifrovat)
Délka výstupu Pevná (např. 256 bitů) Závisí na vstupu
Použití Hesla, integrita souborů Data v přenosu, citlivá data v DB
Algoritmy bcrypt, Argon2, SHA-256 AES, RSA, ChaCha20

Heslo se hashuje, jméno uživatele se nehashuje. Číslo kreditky se šifruje v DB, ale ne hashuje (musíš ho přečíst pro platbu).

Faktory autentizace

Autentizace probíhá pomocí jednoho nebo více faktorů, typicky rozdělených do kategorií:

Kategorie Příklady
Něco co víš (knowledge) Heslo, PIN, bezpečnostní otázka
Něco co máš (possession) Telefon, hardwarový klíč (YubiKey), čipová karta
Něco co jsi (inherence) Otisk prstu, Face ID, rozpoznávání hlasu
Něco co děláš Vzor podpisu, vzorec klepání na klávesnici
Kde jsi Geolokace, IP adresa, důvěryhodná síť

1FA, 2FA, MFA

Popis Bezpečnost
1FA Jediný faktor (typicky heslo) Slabá, závisí na síle hesla
2FA Dva různé faktory Výrazně lepší
MFA Dva a více faktorů Nejlepší, často s biometrií

Důležité: "Dva nezávislé faktory" znamená z různých kategorií. Heslo + PIN je pořád 1FA (oboje "něco co víš"). Heslo + SMS kód je 2FA (něco co víš + něco co máš).

Praktické 2FA/MFA metody

Metoda Popis Bezpečnost
SMS kód Kód přijde na telefon Nejslabší (SIM swap útok, SS7)
E-mailový odkaz Klik na link v mailu Slabé (úniky e-mailových účtů)
TOTP (Time-based OTP) Aplikace (Google Auth, Authy, 1Password) generuje 6 číslic, mění se každých 30 sekund Dobré, doporučené
Push notifikace Klepnutí na "ANO" v appce (Microsoft Authenticator, Duo) Dobré, ale citlivé na MFA fatigue
Biometrie Otisk prstu, Face ID Skvělé, ale jen pokud lokální (ne posláno na server)
Hardwarový klíč YubiKey, Titan Key přes USB/NFC Nejlepší, odolné i proti phishingu
Passkey Kryptografický klíč v zařízení (WebAuthn/FIDO2) Nejlepší, budoucnost

MFA fatigue (útok)

Pokud appka posílá push "ANO/NE" notifikace, útočník může spammovat přihlášení desítkami requestů. Unavený uživatel nakonec klepne "ANO" a útočník je uvnitř. Stalo se Uberu (2022). Řeší se přidáním number matching (uživatel musí zadat číslo, které vidí na webu).

Hesla

Bezpečné ukládání hesel: hashování + salt

Hesla se nikdy neukládají v čistém textu. Místo toho se ukládá jejich hash.