Přeskočit na hlavní obsah

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é?

Komentáře

  1. Co nějaké rozumné ošetření možnosti přihlásit více uživatelů na jednom počítači?

  2. 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.

  3. [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.