Reset Hesla / Zapomenuté heslo

Security Checklist

zpět

Black Box Testování:

Nejsou po odeslání žádosti zobrazeny důvěrné informace (např. na který e-mail byly údaje zaslány)?
Reaguje funkcionalita pro reset hesla shodně po zadání platného i neplatného loginu (e-mailu)?
Je při resetu hesla povoleno vkládat libovolně dlouhá hesla?
Je při resetu hesla povoleno použít libovolné znaky?
Jsou vynucovány stejné požadavky pro sílu hesla, jako při registraci?
Pokud je funkcionalita zapomenutého hesla tvořena několika obrazovkami, není možné některé z nich přeskočit?
Není možné tuto funkcionalitu zneužít pro zahlcení e-mailu nebo telefonního čísla?
Chová se skript při použití bezchybně, pokud jsme během žádosti přihlášeni?
Odesílá se informace na základě loginu / nicku / emailu? Co když je e-mail u více účtů?
Není možné zneužít zranitelnost SQL Truncation pro získání přístupu?
Je uživatel po resetu hesla informován e-mailem, nebo SMS a má možnost změnu hesla odvolat?
Nezasílá aplikace na žádost původní heslo v plaintextu?
Je při zadávání nového hesla toto skryto pod hvězdičkami?
Jsou všechny kontroly vstupů uplatňovány na straně serveru?

Pokud aplikace zasílá po zapomenutí hesla náhradní vygenerované heslo:
Má vygenerované heslo dostatečnou entropii?
Je keyspace vygenerovaného hesla minimálně stejně tak velký, jako keyspace uživatelsky volených hesel?
Je platné pouze poslední vygenerované heslo?
Zůstává v platnosti také původní heslo?

Pokud je reset hesla řešen přístupem přes kontrolní otázku:
Jsou kontrolní otázky dostatečně důvěrné?
Nejsou otázky koncipovány tak, že je odpovědí číslo nebo datum?
Nejsou otázky koncipovány tak, že se všechny možné odpovědi nachází v omezené množině?
Je vyžadována minimální délka odpovědi na kontrolní otázku?
Je odpovídání na kontrolní otázku chráněno proti brute-force útokům?
Pokud mají uživatelé možnost vložit si vlastní otázku, jsou upozorněni, ať neuvádí své heslo?

Pokud je reset hesla řešen zasláním jedinečného kódu nebo odkazu pro reset hesla:
Má zaslaný kód nebo ticket v odkazu dostatečnou entropii?
Je keyspace kódu (ticketu) minimálně stejně tak velký, jako keyspace pro vyžadovaná hesla?
Je použití kódu chráněno před brute-force útoky?
Je implementováno zpomalování reakcí na requesty?
Je platný pouze poslední zaslaný kód?
Je platnost kódu časově omezená?

Pokud je reset hesla řešen telefonátem, nebo emailem na podporu:
Jsou zaměstnanci podpory imunní vůči sociotechnikým útokům?
Gray Box Testování:

Jsou důkladně logovány všechny pokusy o reset hesla?