vorige Präsentation: A1 - Zugriffskontrolle | zurück zum Buch-Kapitel [esc] | Nächste Präsentation A3 - Injection + XSS
Auf Platz 2 der OWASP Top 10 2021: Cryptographic Failures.
Fehler bei der Verschlüsselung oder fehlende Verschlüsselung kann dazu führen dass sensible Daten zugänglich werden.
Was passiert, wenn ich das nicht tue, sondern einen veralteten Algorithmus verwende?
Auch wenn man noch nichts über Kryptographie weis, kann man mit dem Befehl
password_hash
in PHP garantiert einen guten Algorithmus verwenden.
Ein Beispiel aus einem Projekt: hier wurde der Algorithmus sha1
verwendet um das Passwort zu verschleiern. Wenn sich jemand
versucht einzuloggen wird das so geprüft:
$passwordhashed = sha1($password); $stmt = $db->prepare('SELECT * FROM `users` WHERE username = ? AND password = ?'); $stmt->execute(array($username, $passwordhashed));
In der Datenbank sehen die Daten so aus:
INSERT INTO `users` (`id`, `username`, `password`) VALUES (1, 'student', '08df1a7479ca768d03481fb6534ebe844cc2a2d5'), (2, 'admin', 'dd94709528bb1c83d08f3088d4043f4742891f4f');
Das sieht ja erst mal gut aus: falls diese Datenbank in falsche Hände gerät sind die Passwörter nicht direkt lesbar.
Nimmt man den gehashten Passwort String des admin-users, und googelt danach, so findet man direkt diese Seite:
Mehr zum Speichern von Passwörtern im OWASP Password Storage Cheat Sheet
Um die HTTP Verbindung zu verschlüsseln brauchen wir das Protokoll TLS und ein Zertifikat.
Wenn man den Webserver installiert und konfiguriert muss man das wissen und richtig machen.
vorige Präsentation: A1 - Zugriffskontrolle | zurück zum Buch-Kapitel [esc] | Nächste Präsentation A3 - Injection + XSS
/
#