Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:web_sca:authentifizierung [2024-02-19 12:52] – [Online (Website)] sca | gf_informatik:web_sca:authentifizierung [2024-03-11 10:22] (aktuell) – [Authentifizierung] sca | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Authentifizierung ====== | ====== Authentifizierung ====== | ||
| - | <nodisp 2> | ||
| - | ++++Plan| | ||
| - | |||
| - | * Lektion 1: Märchenstunde, | ||
| - | * Lektion 2: Brute Force | ||
| - | * Lektion 3: Brute Force II, Laufzeitanalyse | ||
| - | * Lektion 4: Mehrfaktorauth. | ||
| - | * Lektion 5: eigene Sicherheit verbessern | ||
| - | |||
| - | ++++ | ||
| - | |||
| - | </ | ||
| ++++Lernziele| | ++++Lernziele| | ||
| Zeile 25: | Zeile 13: | ||
| * Welche Massnahmen kann man im Bezug auf Passwörter treffen, um möglichst sicher zu sein? | * Welche Massnahmen kann man im Bezug auf Passwörter treffen, um möglichst sicher zu sein? | ||
| * Wie kann man herausfinden, | * Wie kann man herausfinden, | ||
| - | | + | |
| - | * Programmiere eine solche mit Python. | + | |
| * Was sind die Stärken und Schwächen einer solchen Attacke? | * Was sind die Stärken und Schwächen einer solchen Attacke? | ||
| * Was ist eine **Drei-Faktor-Authentifizierung**? | * Was ist eine **Drei-Faktor-Authentifizierung**? | ||
| Zeile 34: | Zeile 21: | ||
| * Was kann man selbst unternehmen, | * Was kann man selbst unternehmen, | ||
| * Analysiere eine Situation (Bsp. Geschichte mit sieben Geisslein) und gebe Tipps, wie man die Sicherheit erhöhen könnte. | * Analysiere eine Situation (Bsp. Geschichte mit sieben Geisslein) und gebe Tipps, wie man die Sicherheit erhöhen könnte. | ||
| + | * **Programmieren: | ||
| + | * Brute-Force Attacke und ähnliche Codes **Programmieren** können. | ||
| + | * Wissen, wie File eingelesen wird. | ||
| + | |||
| ++++ | ++++ | ||
| Zeile 227: | Zeile 218: | ||
| 1. Lade das passende Template oben herunter / kopiere es in ein Python oder Jupyter-Notebook File und führe es aus. | 1. Lade das passende Template oben herunter / kopiere es in ein Python oder Jupyter-Notebook File und führe es aus. | ||
| 1. Finde das erste Passwort durch *ausprobieren* heraus: **Passwort 1**: ein einziger Grossbuchstabe | 1. Finde das erste Passwort durch *ausprobieren* heraus: **Passwort 1**: ein einziger Grossbuchstabe | ||
| - | 1. Schreibe nun den Code, der das zweite Passwort hackt: **Passwort 2**: drei zufällige Grossbuchstaben | + | 1. Schreibe nun den Code, der das zweite Passwort hackt: **Passwort 2**: drei zufällige Grossbuchstaben. Schreibe deinen eigenen Code, verwende keine Module wie itertools. |
| ==== Aufgabe 2: Deutsches Wort ==== | ==== Aufgabe 2: Deutsches Wort ==== | ||
| Zeile 249: | Zeile 240: | ||
| * Versuche, einen (oder beide) der **Codes**, die für diese Aufgaben zur Verfügung gestellt werden, zu **verstehen**. | * Versuche, einen (oder beide) der **Codes**, die für diese Aufgaben zur Verfügung gestellt werden, zu **verstehen**. | ||
| + | ===== - Multifaktor-Authentifizierung | ||
| + | |||
| + | Angenommen, du hast einen Gegenstand (z.B ein Tagebuch, ein Foto oder ein Superkräfte verleihender Trank), der **auf keinen Fall** in die Hände von jemand anderem gelangen darf. Du verschliesst den Gegenstand in einem bombensicheren Safe. Um den Safe zu öffnen, braucht es einen Pin Code. | ||
| + | Was aber, wenn irgendjemand den Code herausfindet? | ||
| + | Was aber, wenn jemand heimlich eine Kopie deines Schlüssel anfertigt? Du erhöhst die Sicherheit nochmal: Ein weiteres Schloss mit Fingerabdruck-Scanner öffnet sich nur, wenn du deinen Daumen hinhältst. | ||
| + | |||
| + | Dein Safe verfügt nun über eine Drei-Faktor-Authentifizierung. Zwar ist es auch möglich, eine Fingerabdruck-Überprüfung zu täuschen, aber es ist für jemanden ausser dir äusserst schwierig, alle drei Schlösser zu öffnen! Dieser jemand müsste etwas besonderes <color # | ||
| + | |||
| + | Das ist die Idee hinter einer Authentifizierung mit mehreren Faktoren: Es sollen Einzelheiten aus // | ||
| + | |||
| + | * <color # | ||
| + | * <color # | ||
| + | * <color # | ||
| + | |||
| + | Bei einer // | ||
| + | |||
| + | Ein **entscheidender Vorteil der Mehrfaktor-Authentifzierung** im Internet besteht darin, dass //mehrere Anfgriffsvektoren// | ||
| + | * Es ist wohl einfach, ein einzelnes Token oder Mobiltelefon zu stehlen, aber schwierig, gleich 1000 oder mehr davon zu stehlen. Diese Art des Angriffs lässt sich also nicht leicht skalieren. | ||
| + | * Dagegen ist es sehr einfach, ein Virus oder Keylogger auf tausenden von Geräten zu verbreiten oder eine Phishing-Mail an tausende von Benutzer: | ||
| + | * Für die meisten Betrüger: | ||
| + | |||
| + | |||
| + | === Aufgabe 1 – Prüfe und verbessere deine IT-Sicherheit === | ||
| + | |||
| + | 1. **Analyse: | ||
| + | 1. Erstelle eine Liste aller Webseiten, die du (seltener oder öfter) besuchst und die eine Authentifizierung erfordern. | ||
| + | 1. Überlege, bei wie vielen du die gleiche E-Mail-Adresse und das gleiche Passwort nutzt. | ||
| + | 1. Du nutzt wohl auch Apps, die eine Authentifizierung verlangen, jedoch nur einmalig, bei jedem erneuten Öffnen ist keine neue Authentifizierung nötig. Was ist die Überlegung dahinter? Was wird vorausgesetzt? | ||
| + | 1. **Schwachstellen schliessen: | ||
| + | 1. Überlegen, welche Lösung dir am sinnvollsten erscheint: Passwortmanager im Browser? Andere Passwortmanager? | ||
| + | 1. Nötige Änderungen vornehmen: Zweifaktor-Authentifzierung aktivieren, evtl. PW-Manager installieren, | ||
| + | 1. Mindestens folgende Sicherheitsmassnahmen sollten umgesetzt werden: | ||
| + | 1. Besonderes Passwort und 2FA beim E-Mail-Konto (Achtung: wahrscheinlich muss ein Key ausgedruckt werden, der unbedingt aufbewahrt werden muss). | ||
| + | 1. Laptop und Smartphone mit Passwort/ | ||
| + | |||
| + | |||
| + | ===== Lösungen ===== | ||
| + | |||
| + | <nodisp 1> | ||
| + | |||
| + | ++++Brute-Force| | ||
| + | |||
| + | <code python> | ||
| + | ### requires: `pip install selenium` | ||
| + | |||
| + | ### DON'T CHANGE CODE FROM HERE ... | ||
| + | from selenium import webdriver | ||
| + | from selenium.webdriver.common.by import By | ||
| + | |||
| + | # url to website | ||
| + | url_website = " | ||
| + | |||
| + | # Open the webpage | ||
| + | driver = webdriver.Chrome() | ||
| + | driver.get(url_website) | ||
| + | |||
| + | # Enter text and click button -> not relevant for our hack | ||
| + | input_field = driver.find_element(By.ID," | ||
| + | input_field.send_keys(" | ||
| + | button = driver.find_element(By.ID," | ||
| + | button.click() # ... and click it | ||
| + | |||
| + | ### ... UNTIL HERE | ||
| + | ### WRITE YOUR CODE BETWEEN HERE ... | ||
| + | |||
| + | alphabet = " | ||
| + | |||
| + | ## PASSWORD 1 | ||
| + | print(" | ||
| + | for pw in alphabet: | ||
| + | code, | ||
| + | if code == 201: | ||
| + | print(pw) | ||
| + | print(message) | ||
| + | |||
| + | ## PASSWORD 2 | ||
| + | print(" | ||
| + | for x in alphabet: | ||
| + | for y in alphabet: | ||
| + | for z in alphabet: | ||
| + | pw = x + y + z | ||
| + | code, | ||
| + | if code == 201: | ||
| + | print(pw) | ||
| + | print(message) | ||
| + | |||
| + | ## PASSWORD 3 | ||
| + | print(" | ||
| + | |||
| + | with open(" | ||
| + | for line in file: | ||
| + | pw = line.strip() # strip entfernt Leerschläge und Zeilenumbrüche am Anfang und Ende | ||
| + | code, | ||
| + | if code == 201: | ||
| + | print(pw) | ||
| + | print(message) | ||
| + | |||
| + | ### ... AND HERE. DON'T CHANGE LAST LINE: | ||
| + | driver.quit() # Close the browser | ||
| + | </ | ||
| + | |||
| + | ++++ | ||
| + | |||
| + | |||
| + | </ | ||