← IT

Základy kybernetické bezpečnosti, útoky, kryptografie a identity

Doplněný obsah — není z archivu podkladů, napsáno podle ŠVP. Vhodné ověřit u vyučujícího.

Kybernetický prostor a kybernetická bezpečnost

Riziko, hrozba, zranitelnost

Ochrana digitálního života a digitální stopa

Kybernetický útok – fáze a kategorie

Přehled typů útoků

Praktická ukázka: SQL injection na přihlašovacím formuláři

<?php
// login.php – ZRANITELNÁ verze, NEPOUŽÍVAT!
$jmeno = $_POST['jmeno'];
$heslo = $_POST['heslo'];

$query = "SELECT * FROM uzivatele WHERE jmeno='" . $jmeno . "' AND heslo='" . $heslo . "'";
$vysledek = mysqli_query($spojeni, $query);

if (mysqli_num_rows($vysledek) > 0) {
    echo "Přihlášení úspěšné!";
} else {
    echo "Špatné jméno nebo heslo.";
}
?>
SELECT * FROM uzivatele WHERE jmeno='' OR '1'='1' -- ' AND heslo=''
<?php
// login.php – opravená verze pomocí prepared statements
$jmeno = $_POST['jmeno'];
$heslo = $_POST['heslo'];

$stmt = mysqli_prepare($spojeni, "SELECT * FROM uzivatele WHERE jmeno = ? AND heslo = ?");
mysqli_stmt_bind_param($stmt, "ss", $jmeno, $heslo);
mysqli_stmt_execute($stmt);
$vysledek = mysqli_stmt_get_result($stmt);

if (mysqli_num_rows($vysledek) > 0) {
    echo "Přihlášení úspěšné!";
} else {
    echo "Špatné jméno nebo heslo.";
}
?>

Základy kryptografie a šifrování

Symetrické a asymetrické šifrování

Veřejná infrastruktura klíčů (PKI) a digitální certifikáty

Autentizace, autorizace, identifikace

Hashování hesel

// registrace – uložení nového hesla
$heslo = $_POST['heslo'];
$hash = password_hash($heslo, PASSWORD_DEFAULT);   // funkce si sůl vygeneruje a přidá sama
$stmt = mysqli_prepare($spojeni, "INSERT INTO uzivatele (jmeno, heslo_hash) VALUES (?, ?)");
mysqli_stmt_bind_param($stmt, "ss", $jmeno, $hash);
mysqli_stmt_execute($stmt);

// přihlášení – ověření zadaného hesla proti uloženému hashi
$zadaneHeslo = $_POST['heslo'];
$radek = mysqli_fetch_assoc(mysqli_query($spojeni, "SELECT heslo_hash FROM uzivatele WHERE jmeno = '$jmeno'"));

if (password_verify($zadaneHeslo, $radek['heslo_hash'])) {
    echo "Přihlášení úspěšné.";
} else {
    echo "Špatné heslo.";
}

Správa identit a řízení účtů

Bezpečnost koncových bodů a ochrana dat