KWALIFIKACJA INF3 - TEST WIEDZY NR 4

PYTANIE NR 4.
SELECT * FROM Users WHERE Username = 'admin' AND Password = '123456'
Załóżmy, że powyższy kod jest częścią logiki autentykacji na stronie internetowej, która nie zaszyfrowuje haseł użytkowników. Jakie zagrożenie dla sfery poznawczej może wiązać się z taką sytuacją?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Brak szyfrowania/haszowania haseł oznacza, że po wycieku bazy dane uwierzytelniające mogą zostać odczytane wprost. "Zagrożenie dla sfery poznawczej" w tym ujęciu dotyczy niskiej świadomości użytkowników: mogą nie rozumieć ryzyka niewłaściwego przechowywania haseł i skutków przejęcia kont.

Pełne wyjaśnienie:

W logice uwierzytelniania podano zapytanie SQL porównujące hasło z wartością wprost (tekst jawny). Jeśli system nie haszuje ani nie szyfruje haseł, to w razie incydentu (np. wyciek bazy danych, nieuprawniony dostęp administratora, kopie zapasowe w niepowołanych rękach) hasła mogą zostać natychmiast odczytane. To zwiększa ryzyko przejęcia kont w tej usłudze oraz – przez powtarzanie haseł – także w innych serwisach.

Poprawna odpowiedź wskazuje na aspekt "poznawczy" rozumiany jako świadomość i rozumienie zagrożeń: użytkownicy mogą nie zdawać sobie sprawy, że nieprawidłowe przechowywanie haseł (bez haszowania i soli) naraża ich na realne konsekwencje. Taka niewiedza sprzyja m.in. stosowaniu prostych haseł i ponownemu używaniu tych samych danych w wielu miejscach.

Pozostałe odpowiedzi mówią o "korzyściach płynących z mediów społecznościowych", "forów dyskusyjnych" lub "przeglądania stron". To nie jest powiązane z przedstawionym problemem technicznym. Nie dotykają one ani ryzyka wycieku danych uwierzytelniających, ani konsekwencji przechowywania haseł w postaci jawnej, więc nie opisują adekwatnego zagrożenia w tym scenariuszu.

W praktyce administracji i eksploatacji systemów (obszar kwalifikacji INF.2) kluczowe jest rozumienie, że poprawna ochrona haseł obejmuje m.in. haszowanie (nie odwracalne) i użycie soli, a także unikanie rozwiązań, w których hasło jest porównywane jako zwykły tekst w bazie. Niezależnie od tego, poprawne jest także stosowanie zapytań parametryzowanych, ale w tym pytaniu główny nacisk położono na przechowywanie haseł.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
To sytuacja, gdy hasło jest zapisane dokładnie tak, jak wpisuje je użytkownik. Po wycieku bazy napastnik może je odczytać bez łamania kryptografii. Bezpieczniej przechowywać hash hasła z solą, a nie sam tekst hasła.
Haszowanie jest zasadniczo jednokierunkowe: z hasza nie da się "odwrócić" hasła wprost. Szyfrowanie da się odszyfrować kluczem, więc wyciek klucza oznacza ujawnienie wszystkich haseł. Dlatego standardem jest haszowanie z solą i właściwym algorytmem.
Ryzyko jest natychmiastowe: przejęcie kont w danej usłudze, a często także w innych serwisach (gdy użytkownik powtarza hasło). Dochodzą też ataki ukierunkowane, np. podszywanie się pod użytkownika. To jeden z najpoważniejszych skutków złego przechowywania haseł.
Typową wskazówką jest porównanie w zapytaniu SQL wartości pola hasła z wartością wpisaną przez użytkownika (np. Password = '...'). W bezpiecznym podejściu do bazy trafia hash, a porównanie odbywa się na hashach, nie na tekście jawnym.
Nie zawsze, ale jest to częsty sygnał ostrzegawczy. Jeśli dane są sklejane w jeden string, rośnie ryzyko wstrzyknięcia SQL. Niezależnie od tego, nawet przy parametryzacji, przechowywanie haseł w postaci jawnej nadal jest błędem bezpieczeństwa.
Często mylą dwa problemy: brak haszowania haseł oraz brak parametryzacji zapytań. Inny błąd to ocenianie po słowach-kluczach, bez powiązania z ryzykiem (np. wybór odpowiedzi o "korzyściach" zamiast o realnych konsekwencjach wycieku).
Praktyka minimum to: haszowanie hasła silnym algorytmem przeznaczonym do haseł, użycie unikalnej soli dla każdego użytkownika, kontrola prób logowania oraz bezpieczna obsługa resetu hasła. Dodatkowo ważne są uprawnienia do bazy i ochrona kopii zapasowych.
Sól to losowa wartość dodawana do hasła przed haszowaniem. Dzięki temu dwa identyczne hasła mają różne hasze, co utrudnia ataki słownikowe i użycie gotowych tabel tęczowych. Sól powinna być unikalna dla każdego użytkownika i przechowywana razem z haszem.
Proste hasła da się szybko odgadnąć, a przy zapisie jawnym nie trzeba ich nawet zgadywać. Jeśli hasła są haszowane, słabe hasło nadal jest ryzykiem (łatwiejsze łamanie), ale dobrze dobrany algorytm i sól znacząco podnoszą koszt ataku.
Najpierw rozpoznaj, czy pytanie dotyczy: (1) przechowywania haseł (hash + sól), (2) sposobu zapytań do bazy (parametryzacja), czy (3) polityki kont (blokady, reset). Potem wybieraj odpowiedź, która opisuje realne ryzyko lub właściwą praktykę, a nie luźne skojarzenia.
info

Około 55% zdających odpowiada poprawnie na to pytanie. średnie

W praktyce zawodowej kluczowe jest to, że brak szyfrowania/haszowania haseł oznacza, że po wycieku bazy dane uwierzytelniające mogą zostać odczytane wprost.

Źródła:

  • OWASP Cheat Sheet Series: Password Storage Cheat Sheet, https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html (dostęp: 2026-03-01)
  • OWASP Cheat Sheet Series: SQL Injection Prevention Cheat Sheet, https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html (dostęp: 2026-03-01)
  • NIST Special Publication 800-63B: Digital Identity Guidelines – Authentication and Lifecycle Management, https://pages.nist.gov/800-63-3/sp800-63b.html (dostęp: 2026-03-01)

Materiały:

  • OWASP Password Storage Cheat Sheet (praktyki haszowania i przechowywania haseł)
  • OWASP SQL Injection (ogólne ryzyka związane z błędami w zapytaniach SQL)
  • NIST SP 800-63B (wytyczne dot. uwierzytelniania i haseł)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego