[WikiDyd] [TitleIndex] [WordIndex

Cel zajęć

Celem zajęć jest napisanie prostej aplikacji internetowej spełniającej wysokie standardy bezpieczeństwa.

Wprowadzenie

Tworząc oprogramowanie programiści najczęściej skupiają się na funkcjonalności i wydajności systemu. Jednak tym razem pełna uwaga powinna być skupiona na kwestiach bezpieczeństwa. Dlatego realizując zadanie nie ma większego znaczenia wygląda aplikacji, ani jej możliwości - liczy się to w jaki sposób sprawdza ona poprawność danych, czy ma restrykcyjne ustawienia początkowe, czy poprawnie wykorzystuje algorytmy kryptograficzne.

Dobrym materiałem do tego rodzaju ćwiczeń jest moduł uwierzytelniania. Jest on kluczowym elementem ochrony systemu, dlatego powinien być napisany wyjątkowo starannie. Na poprzednich zajęciach uczyliśmy się wielu technik, które powinny być wykorzystane przy tej okazji:

Za modułem uwierzytelniania napiszmy prostą funkcjonalność opublikowanie notatki, albo zmianę statusu użytkownika. Umożliwiając użytkownikowi zmianę hasła, warto sprawdzić jakiej jakości jest podawane przez niego hasło.

Potrzebna wiedza

Dodatkowe informacje

Hasła dla Google: authentication, WWW security

Przykładowe zadania

  1. Napisz aplikację WWW realizującą uwierzytelnianie w oparciu o tajne hasło. Zwróć uwagę na:
    • restrykcyjna weryfikacje danych pochodzących z formularza login-hasło,
    • przechowywanie hasła chronione funkcją hash,
    • przechowywanie hasła chronione solą,
    • wielokrotne wykorzystanie funkcji hash, żeby wydłużyć ataki brute-force na hash,
    • weryfikacja ilości nieudanych prób,
    • dodanie opóźnienia przy weryfikacji hasła w celu wydłużenia ataków zdalnych,
    • sprawdzanie jakości hasła (jego entropii)
  2. Rozszerz aplikacje w ten sposób, żeby po zalogowaniu użytkownik miał możliwość opublikowania prostej notatki o swoim statusie (jak Facebook). Dokładnie sprawdź poprawność podanych w formularzu danych.
  3. Dodaj użytkownikowi możliwość zmiany hasła.

2015-09-23 06:44