UPB-zadanie-3

Zadanie 3 – Správa používateľov

Cieľom zadania je rozšíriť existujúcu webovú aplikáciu z predchádzajúceho zadania. Jadrom zadania je oboznámiť sa s bezpečnou správou používateľských hesiel v databáze.

Úlohy:

1. Implementujte prihlasovanie a registráciu používateľov. V tomto bode je nutné zamerať sa na bezpečné uloženie hesla do databázy (t.j. hash + salt). Ak ste tak nespravili v predchádzajúcom zadaní, je potrebné implementovať aj databázovú infraštruktúru na reprezentáciu používateľov.
2. Implementujte časový na rozostup pri prihlasovaní (ochrana pred brute-force).
3. Implementujte kontrolu zložitosti hesla pri registrácii (t.j. aby spĺňalo určité bezpečnostné štandardy – veľké a malé písmená, dĺžka, špeciálne znaky a pod.)
4. Pri registrácii taktiež implementujte kontrolu hesla či sa nenachádza v slovníku známych a ľahko uhádnuteľných hesiel (napr. https://github.com/danielmiessler/SecLists/tree/master/Passwords/Common-Credentials)

Pozn. v dokumentácii je nutné popísať všetky bezpečnostné aspekty vášho riešenia (t.j. akým spôsobom ukladáte heslá, aké ste zvolili požiadavky na heslo a pod.)

Okrem vyššie spominaných úloh je nutné riešenie rozšíriť aj o nasledujúce funkcionality:

a) Umožniť používateľovi nahrať verejný kľúč (ktorý sa následne bude používať na šifrovanie).
b) Umožniť používateľovi nahrať privátny kľúč a dešifrovanie (pozn. dešifrovanie by malo prebiehať na strane klienta a privátny kľúč by sa nemal odosielať na server).
c) Voliteľné: umožniť používateľovi vygenerovanie asymetrického kľúčového páru (verejný sa nahrá do databazy, privátny si používateľ stiahne lokálne).

Odovzdáva sa .zip súbor (v názve číslo tímu, viď. zlučka v AIS) v ktorom sa budú nachádzať zdrojové kódy a dokumentácia v .pdf formáte).

Deadline: 6.11.2023 13:00