Co všechno souvisí s autentizací
Co vlastně očekáváme od knihoven týkajících se jak autentizace, tak i dalších úzce souvisejících věcí? Nadále budeme nejčastěji předpokládat klasický případ přihlášení pomocí uživatelského jména a hesla, uchovávání uživatelských dat v databázi, využití formulářové autentizace a vázání přihlášení na session. K jiným variantám se dostaneme později.
Registrace, přihášení a odhlášení:
- registrace nového uživatele, změna registračních údajů, zrušení registrace;
- kontrola validity zadaných údajů, síly hesla apod.;
- přihlášení a odhlášení uživatele;
- možnost trvalého přihlášení na daném počítači;
- obnovení přístupu při zapomenutém hesle.
Technické aspekty:
- vhodné a bezpečné uložení údajů v databázi a paměti serveru;
- průběžná kontrola autentizace při každém dalším dotazu uživatele;
- zajištění timeoutu, ošetření proti ztrátě odeslaných dat při timeoutu;
- ošetření paralelního přihlášení z více počítačů;
Ochrana před základními útoky:
- ukradení session – session hijacking a session fixation;
- odposlouchávání či narušení komunikace – replay attack, man in the middle attack, reflection attack;
- slovníkový útok, útok hrubou silou;
- útoky na bázi sociálního inženýrství.
Zprostředkovaně pak i záležitosti týkající se obecně správy uživatelů:
- různé možnosti administrace všech uživatelů;
- různá pravidla a nastavení pro účty (expirace hesel, blokování přihlášení);
- logování všech důležitých akcí souvisejících s autentizací;
- varovné a detekční mechanizmy neobvyklého chování;
- konzistentní metodika, směrnice, strategie pro administraci uživatelů.
Napadají vás ještě nějaké další obvyklé funkce či vlastnosti, které jsou z pohledu autentizace běžně potřeba či často využívané?
Co nějaké rozumné ošetření možnosti přihlásit více uživatelů na jednom počítači?
A ještě by se mohlo hodit: blokování účtu po několika nezdařených pokusech o přihlášení nebo blokování IP po zadání určitého počtu neexistujících identit.
[2]To už snad není takový problém ne? Při každém špatně zadaném jméně (neexistující identita) se do DB uloží IP (i když to není úplně optimální) a k ní to jméno + navýší se hodnota mylných pokusů, jakmile dosáhneme určitého limitu, necháme danou IP blokovat. :)
Nástin bodů potřebných pro kvalitní autentizaci je supr. Díky :) zavítám sem častěji.