Liceum Klasa I 45 minut PP: V.3 | s. 347

Lekcja 27: Bezpieczenstwo w sieci - hasla, dane, szyfrowanie

Ochrona hasel, uwierzytelnianie dwuskladnikowe, szyfrowanie, phishing i bezpieczne korzystanie z internetu

📋 Podstawa programowa: V.3
Internetatakbezpieczenstwohaslaszyfrowanie
00:00
Wprowadzenie
5 min
00:05
Teoria
15 min
00:20
Cwiczenia
15 min
00:35
Podsumowanie
10 min
📚

Teoria

Dlaczego bezpieczenstwo w sieci jest wazne?

Kazdy z nas ma w internecie ogromna ilosc cennych danych: konta bankowe, media spolecznosciowe, e-maile, zdjecia, dokumenty. Cyberprzestepcy stale szukaja sposobow, aby uzyskac dostep do tych danych. Zrozumienie zasad cyberbezpieczenstwa jest kluczowe.

Statystyka: Przecietna osoba ma ponad 100 kont online. Jesli uzywasz tego samego hasla na wielu stronach - wystarczy jeden wyciek, aby stracic dostep do wszystkich!

Bezpieczenstwo hasel

Jak wyglada silne haslo?

  • Minimum 12 znakow - im dluzsze, tym lepiej (16+ znakow to idealna dlugosc)
  • Mieszanka znakow - duze litery, male litery, cyfry, znaki specjalne (!@#$%)
  • Brak oczywistych wzorcow - nie uzywaj: imienia, daty urodzenia, "123456", "qwerty", nazwy zwierzaka
  • Unikalne dla kazdego konta - NIGDY nie uzywaj tego samego hasla na roznych stronach

Metoda fraz (passphrase)

Najlepsza metoda tworzenia silnych hasel to frazy - zapamietywalne zdania z modyfikacjami:

Slabe hasla:
  ania123         (za krotkie, przewidywalne)
  password        (najczesciej lamane haslo na swiecie)
  Qwerty123!      (popularny wzorzec)

Silne hasla (metoda fraz):
  MojPies!Lubi2Spacery@Parku
  Programowanie#W_Python3!Jest$Super
  4Koty+3Psy=7Zwierzat!

Menedzer hasel

Poniewaz nie da sie zapamietac setek unikalnych hasel, warto uzywac menedzera hasel:

  • Bitwarden - darmowy, open source, polecany przez ekspertow
  • KeePass - darmowy, offline, baza danych hasel na Twoim dysku
  • 1Password - platny, ale bardzo wygodny
  • Menedzer zapamietuje wszystkie hasla, Ty pamietasz tylko jedno haslo glowne

Uwierzytelnianie dwuskladnikowe (2FA)

2FA (Two-Factor Authentication) to dodatkowa warstwa ochrony konta. Nawet jesli ktos pozna Twoje haslo, nie dostanie sie na konto bez drugiego skladnika.

Trzy czynniki uwierzytelniania:

  1. Cos, co wiesz - haslo, PIN
  2. Cos, co masz - telefon (kod SMS), klucz fizyczny (YubiKey), aplikacja uwierzytelniajaca
  3. Cos, czym jestes - odcisk palca, rozpoznawanie twarzy, skan teczowki

Metody 2FA (od najsilniejszej):

  • Klucz fizyczny (FIDO2/U2F) - np. YubiKey - najsilniejsza metoda, odporna na phishing
  • Aplikacja TOTP - Google Authenticator, Authy, Microsoft Authenticator - generuje kody co 30 sekund
  • Kod SMS - wygodny, ale podatny na ataki SIM swap
  • E-mail - najslabsza metoda 2FA, ale lepsza niz nic

Szyfrowanie danych

Szyfrowanie to proces zamiany danych na forme nieczytelna bez odpowiedniego klucza. Chroni nasze dane przed nieautoryzowanym dostepem.

Rodzaje szyfrowania:

  • Szyfrowanie symetryczne - ten sam klucz do szyfrowania i deszyfrowania (np. AES). Szybkie, ale wymaga bezpiecznego przekazania klucza.
  • Szyfrowanie asymetryczne - dwa klucze: publiczny (do szyfrowania) i prywatny (do deszyfrowania). Wolniejsze, ale bezpieczniejsze (np. RSA).
  • HTTPS - szyfrowana komunikacja ze stronami www (zamek w pasku adresu)
  • End-to-end encryption (E2EE) - szyfrowanie od nadawcy do odbiorcy, np. Signal, WhatsApp

Phishing - jak sie bronic?

Phishing to metoda oszustwa polegajaca na podszywaniu sie pod zaufane instytucje (bank, poczta, firma) w celu wyludzenia danych (hasel, numerow kart).

Jak rozpoznac phishing?

  • Podejrzany nadawca - bledny adres e-mail (np. bank-pkoo@mail.ru zamiast @pkobp.pl)
  • Pilnosc - "Twoje konto zostanie zablokowane za 24h!" - presja czasowa
  • Bledy jezykowe - bledna ortografia, dziwna gramatyka
  • Podejrzane linki - najedz myszka na link (bez klikania!) i sprawdz prawdziwy adres URL
  • Prosba o dane - bank NIGDY nie prosi o haslo e-mailem!
  • Zbyt dobre, by bylo prawdziwe - "Wygrales iPhone'a!" - to zawsze oszustwo

Rodzaje zloslliwego oprogramowania (malware)

  • Wirus - dolacza sie do plikow, rozprzestrzenia sie przy ich uruchamianiu
  • Trojan - udaje uzyteczny program, ale w tle wykonuje szkodliwe dzialania
  • Ransomware - szyfruje dane i zada okupu za ich odszyfrowanie
  • Spyware - szpieguje uzytkownika, kradnie dane
  • Keylogger - rejestruje kazde nacisniecie klawisza (w tym hasla)
  • Adware - wyswietla niechciane reklamy
Zlota zasada bezpieczenstwa: Nie klikaj w podejrzane linki, nie otwieraj zalacznikow od nieznajomych, nie pobieraj oprogramowania z niepewnych zrodel, zawsze aktualizuj system i programy!
✏️

Zadania

Latwe

Zadanie 1: Ocena sily hasel

Ocen sile ponizszych hasel (slabe/srednie/silne) i uzasadnij dlaczego. Dla slabych zaproponuj lepsza alternatywe:

  1. password123
  2. MojKot!Filemom2024
  3. Qwerty1!
  4. K@w@!Lubi3$Mleko+I*Ryby
  5. ala_ma_kota
  6. xK9#mP2$vL5@nQ8
Pokaz rozwiazanie
1. "password123" -> SLABE
   Powod: Jedno z najczesciej uzywanych hasel,
   brak znakow specjalnych, przewidywalne.
   Lepsza alternatywa: "P@ssw0rd!NieJest#Bezpieczny2025"

2. "MojKot!Filemom2024" -> SILNE
   Powod: 19 znakow, duze/male litery, cyfry,
   znak specjalny, fraza latwa do zapamietania.

3. "Qwerty1!" -> SLABE
   Powod: Popularny wzorzec klawiatury, za krotkie (8 znakow),
   latwe do odgadniecia przez ataki slownikowe.
   Lepsza alternatywa: "Klawiatura!Ma#Wiele3Klawiszy"

4. "K@w@!Lubi3$Mleko+I*Ryby" -> BARDZO SILNE
   Powod: 24 znaki, duze/male litery, cyfry,
   wiele znakow specjalnych, fraza.

5. "ala_ma_kota" -> SLABE
   Powod: Brak duzych liter, cyfr, znakow specjalnych,
   popularne wyrazenie, ataki slownikowe.
   Lepsza alternatywa: "Ala!M@*3*Koty&2#Psy"

6. "xK9#mP2$vL5@nQ8" -> SILNE (ale trudne do zapamietnaia)
   Powod: Losowe znaki, mieszanka typow.
   Idealne do menedzera hasel.
Srednie

Zadanie 2: Rozpoznaj phishing

Przeanalizuj ponizsze wiadomosci e-mail i okresl, ktore sa phishingiem. Wsaz elementy, ktore Cie ostrzegaja:

Wiadomosc A: "Od: noreply@pkobp-logowanie.com | Szanowny kliencie! Twoje konto zostanie zablokowane w ciagu 12 godzin. Kliknij tutaj, aby potwierdzic tozsamosc: http://pko-weryfikacja.ru/login"

Wiadomosc B: "Od: support@github.com | Hi! We noticed a new sign-in to your account from Poland. If this was you, no action needed. If not, please review your security settings at https://github.com/settings/security"

Wiadomosc C: "Od: loteria-wygrana@gmail.com | GRATULACJE!!! Wygrales 1.000.000 PLN w Loterii Narodowej! Wyslij swoj PESEL i numer konta bankowego na ten adres, aby odebrac nagrode!!!!"

Pokaz rozwiazanie
Wiadomosc A: PHISHING!
Czerwone flagi:
- Domena: pkobp-logowanie.com (fałszywa, prawdziwa to pkobp.pl)
- Presja czasowa: "12 godzin"
- Link prowadzi do domeny .ru (Rosja!)
- Bank nigdy nie prosi o klikanie w linki e-mailem

Wiadomosc B: PRAWDOPODOBNIE PRAWDZIWA
- Domena: support@github.com (poprawna)
- Brak presji czasowej
- Link prowadzi do prawdziwej strony github.com
- Nie prosi o podanie hasla, tylko o przejrzenie ustawien
- Uwaga: zawsze warto sprawdzic naglowki e-maila

Wiadomosc C: PHISHING / SCAM!
Czerwone flagi:
- Adres: gmail.com (loteria nie uzywa gmaila!)
- Wiele wykrzyknikow, CAPS LOCK
- "Wygrales" - w zadnej loterii nie bierzesz udzialu
- Prosi o PESEL i numer konta - NIGDY nie wysylaj!
- Klasyczny scam "nigeryjski"
Srednie

Zadanie 3: Generator silnych hasel (Python)

Napisz program w Pythonie, ktory generuje silne, losowe hasla o zadanej dlugosci. Haslo powinno zawierac male litery, duze litery, cyfry i znaki specjalne.

Pokaz rozwiazanie
import random
import string

def generuj_haslo(dlugosc=16):
    if dlugosc < 8:
        print("Haslo musi miec minimum 8 znakow!")
        return None

    # Definiujemy pule znakow
    male = string.ascii_lowercase      # a-z
    duze = string.ascii_uppercase      # A-Z
    cyfry = string.digits              # 0-9
    specjalne = "!@#$%^&*()-_=+[]{}|;:,.<>?"

    # Gwarantujemy minimum po jednym znaku kazdego typu
    haslo = [
        random.choice(male),
        random.choice(duze),
        random.choice(cyfry),
        random.choice(specjalne)
    ]

    # Reszta znakow losowa z calej puli
    wszystkie = male + duze + cyfry + specjalne
    for i in range(dlugosc - 4):
        haslo.append(random.choice(wszystkie))

    # Mieszamy kolejnosc znakow
    random.shuffle(haslo)

    return "".join(haslo)

# Generuj 5 hasel
print("=== GENERATOR SILNYCH HASEL ===\n")
for i in range(5):
    haslo = generuj_haslo(16)
    print(f"Haslo {i+1}: {haslo}")

# Wersja z wyborem dlugosci
dlugosc = int(input("\nPodaj dlugosc hasla (min. 8): "))
print(f"\nTwoje haslo: {generuj_haslo(dlugosc)}")
Trudne

Zadanie 4: Sprawdzacz sily hasla (Python)

Napisz program, ktory ocenia sile hasla podanego przez uzytkownika. Kryteria: dlugosc (min. 8, idealnie 12+), obecnosc duzych liter, malych liter, cyfr, znakow specjalnych, brak popularnych slow. Wyswietl ocene: slabe/srednie/silne/bardzo silne.

Pokaz rozwiazanie
def ocen_haslo(haslo):
    punkty = 0
    uwagi = []

    # 1. Dlugosc
    if len(haslo) >= 16:
        punkty += 3
    elif len(haslo) >= 12:
        punkty += 2
    elif len(haslo) >= 8:
        punkty += 1
    else:
        uwagi.append("Za krotkie! Minimum 8 znakow.")

    # 2. Male litery
    if any(c.islower() for c in haslo):
        punkty += 1
    else:
        uwagi.append("Brak malych liter.")

    # 3. Duze litery
    if any(c.isupper() for c in haslo):
        punkty += 1
    else:
        uwagi.append("Brak duzych liter.")

    # 4. Cyfry
    if any(c.isdigit() for c in haslo):
        punkty += 1
    else:
        uwagi.append("Brak cyfr.")

    # 5. Znaki specjalne
    specjalne = "!@#$%^&*()-_=+[]{}|;:,.<>?/"
    if any(c in specjalne for c in haslo):
        punkty += 2
    else:
        uwagi.append("Brak znakow specjalnych.")

    # 6. Sprawdz popularne hasla
    popularne = ["password", "123456", "qwerty", "admin",
                 "haslo", "zaq1", "polska", "abc123"]
    if haslo.lower() in popularne:
        punkty = 0
        uwagi.append("To jedno z najpopularniejszych hasel!")

    # 7. Powtarzajace sie znaki
    if len(set(haslo)) < len(haslo) / 2:
        punkty -= 1
        uwagi.append("Za duzo powtarzajacych sie znakow.")

    # Ocena
    if punkty >= 7:
        ocena = "BARDZO SILNE"
        pasek = "[##########] 10/10"
    elif punkty >= 5:
        ocena = "SILNE"
        pasek = "[########--]  8/10"
    elif punkty >= 3:
        ocena = "SREDNIE"
        pasek = "[#####-----]  5/10"
    else:
        ocena = "SLABE"
        pasek = "[##--------]  2/10"

    return ocena, pasek, punkty, uwagi

# Program glowny
haslo = input("Podaj haslo do oceny: ")
ocena, pasek, pkt, uwagi = ocen_haslo(haslo)

print(f"\n{'='*40}")
print(f"Haslo: {'*' * len(haslo)} ({len(haslo)} znakow)")
print(f"Ocena: {ocena}")
print(f"Sila:  {pasek}")
print(f"{'='*40}")

if uwagi:
    print("\nUwagi:")
    for u in uwagi:
        print(f"  - {u}")
else:
    print("\nSwietne haslo! Brak uwag.")
🎥

Materialy wideo

Twój telefon nie jest bezpieczny: ujawniono włamanie do sieci SS7
Cybersecurity Learning
Bezpieczeństwo w sieci – jak chronić hasła przed hakerami?
Aktualności 360
🎧

Podcasty

✔️

Quiz - sprawdz sie!

📜

Podstawa programowa

← Lekcja 26: Prawo autorskie Lekcja 28: Piractwo komputerowe →