Block 07 · IT-Sicherheit & Datenschutz – Lösungen

Lösungssatz zu 07_IT-Sicherheit.html · zu den Code-Aufgaben SEC-04.2 und SEC-06.3 lauffähige Java-Dateien im Ordner java\07_IT-Sicherheit\
Hinweise zur Bewertung Wie in den IHK-Lösungshinweisen gilt: Es sind auch andere sach- und fachgerechte Lösungen sowie gleichwertige Formulierungen mit der vorgesehenen Punktzahl zu bewerten. Bei „nennen“ genügt das Stichwort, bei „erläutern“/„begründen“ wird ein vollständiger, auf das Szenario bezogener Satz erwartet. Die Java-Ausgaben stammen aus einem echten Programmlauf (JDK 21).

Lösungen

SEC-01 · Verschlüsselungsverfahren

Aufgabe SEC-01.1 · 6 Punkte

a) Zuordnung (4 P)

Aussagesymm.asym.hybrid
1. derselbe geheime Schlüssel✘
2. öffentlicher Schlüssel des Empfängers✘
3. schnell, große Datenmengen✘
4. Sitzungsschlüssel asymmetrisch, Nutzdaten symmetrisch✘
5. RSA✘
6. AES✘
7. 20 Personen → 190 Schlüssel✘
8. HTTPS, kombiniert die Vorteile✘

Zu 7: 20·19/2 = 190 ist die Formel für die paarweisen Schlüssel der symmetrischen Verschlüsselung.

Bewertung: je zwei richtige Kreuze 1 P (8 richtige Kreuze = 4 P). Ein falsch gesetztes Kreuz in einer Zeile = Zeile falsch.

b) Problem des eingebauten Schlüssels (2 P)

Alle installierten Apps hätten denselben Schlüssel. Ein Angreifer könnte ihn einmal aus der App auslesen (z. B. durch Analyse des Programmcodes) und damit den gesamten Datenverkehr aller Mitglieder entschlüsseln bzw. gefälschte Daten verschlüsseln. Außerdem lässt sich der Schlüssel praktisch nicht mehr austauschen, ohne alle Apps zu aktualisieren.

Bewertung: Erkennen, dass derselbe Schlüssel überall steckt und auslesbar ist, 1 P; Folge (ganzer Verkehr betroffen / nicht austauschbar) 1 P.
Aufgabe SEC-01.2 · 10 Punkte

a) Ablauf der hybriden Verschlüsselung (6 P)

  1. Die App baut die Verbindung auf; der API-Server sendet sein Zertifikat mit seinem öffentlichen Schlüssel.
  2. Die App prüft das Zertifikat (CA-Signatur, Gültigkeit, Hostname).
  3. Es wird ein zufälliger symmetrischer Sitzungsschlüssel erzeugt bzw. zwischen App und Server vereinbart. In der klassischen Darstellung erzeugt die App ihn und verschlüsselt ihn mit dem öffentlichen Schlüssel des API-Servers.
  4. Der API-Server entschlüsselt den Sitzungsschlüssel mit seinem privaten Schlüssel. Nun kennen beide denselben Sitzungsschlüssel.
  5. IBAN, Gesundheitsangaben und alle weiteren Nutzdaten werden mit dem Sitzungsschlüssel symmetrisch (z. B. AES) ver- und entschlüsselt.
Mitglieder-App API-Server ① Zertifikat mit öffentlichem Schlüssel des Servers ② Zertifikat prüfen ③ Sitzungsschlüssel, mit öffentl. Schlüssel verschlüsselt ④ mit privatem Schlüssel entschlüsseln ⑤ Nutzdaten symmetrisch mit Sitzungsschlüssel (AES)
Lösung SEC-01.2a: hybride Verschlüsselung beim HTTPS-Aufbau
Bewertung: Sitzungsschlüssel ist symmetrisch 1 P; Sitzungsschlüssel wird mit dem öffentlichen Schlüssel des Servers verschlüsselt übertragen 2 P; Entschlüsselung mit dem privaten Schlüssel des Servers 1 P; Nutzdaten werden symmetrisch mit dem Sitzungsschlüssel verschlüsselt 2 P. Die TLS-1.3-Variante (Schlüssel per Diffie-Hellman vereinbart, Zertifikat zur Authentifizierung) ist gleichwertig.

b) Vorteile des hybriden Verfahrens (4 P)

Bewertung: je Vorteil mit Begründung 2 P. Nur „schneller“ bzw. nur „sicherer“ ohne den Vergleich: je 1 P.
Aufgabe SEC-01.3 · 18 Punkte

a) Was ist RSA? (3 P)

RSA ist ein asymmetrisches Verschlüsselungsverfahren mit einem öffentlichen und einem privaten Schlüssel (Schlüsselpaar). Seine Sicherheit beruht darauf, dass sich das Produkt zweier sehr großer Primzahlen praktisch nicht wieder in diese Faktoren zerlegen lässt. Es wird zum Verschlüsseln kleiner Datenmengen (z. B. eines Sitzungsschlüssels) und zum Erstellen digitaler Signaturen eingesetzt und arbeitet mit langen Schlüsseln (2048 Bit und mehr).

Bewertung: asymmetrisch/Schlüsselpaar 1 P; Sicherheit durch Faktorisierungsproblem großer Zahlen 1 P; Einsatzzweck oder lange Schlüssel/rechenaufwendig 1 P.

b) RSA für die Sensoren sinnvoll? (4 P)

Nein. Die PS-200 haben laut Anlage 3 nur einen 48-MHz-Mikrocontroller mit 32 KB RAM und keine Hardwareunterstützung für RSA. RSA ist sehr rechenaufwendig und würde die Batterie stark belasten (gefordert: mindestens 5 Jahre Laufzeit). Außerdem ist ein RSA-2048-Chiffrat mindestens 256 Byte groß, die Funkstrecke erlaubt aber nur 48 Byte je Nachricht. Die Aussage von Herrn Demir ist falsch: Asymmetrische Verfahren sind nicht grundsätzlich „sicherer“; AES-128 bietet vergleichbare Sicherheit, ist aber schnell und als Hardwarebaustein vorhanden.

Bewertung: Ergebnis „nicht sinnvoll“ mit Bezug auf Rechenleistung/Energie 2 P; Bezug auf die max. Nachrichtengröße (48 Byte vs. 256 Byte) 1 P; Richtigstellung der Aussage „asymmetrisch = sicherer“ 1 P.

c) Geeignetes Verfahren + Schlüsselverteilung (4 P)

Geeignet ist die symmetrische Verschlüsselung mit AES-128, die der PS-200 als Hardwarebaustein beherrscht. Jeder Sensor erhält bei der Produktion bzw. Inbetriebnahme einen eigenen, individuellen Schlüssel, der sicher im Sensor und auf dem Server hinterlegt wird. Schwachstelle der derzeitigen Lösung: Alle Sensoren eines Studios nutzen denselben gemeinsamen Schlüssel. Wird ein einziger Sensor ausgelesen oder entwendet, ist der Schlüssel aller Sensoren dieses Studios kompromittiert.

Bewertung: AES (symmetrisch) vorgeschlagen 1 P; individueller Schlüssel je Sensor, sicher hinterlegt 2 P; Schwachstelle gemeinsamer Schlüssel benannt 1 P.

d) Transport- vs. Ende-zu-Ende-Verschlüsselung (4 P)

Bei der Transportverschlüsselung ist jede Teilstrecke für sich geschützt (Sensor → Gateway, Gateway → API-Server). Am Gateway liegen die Daten im Klartext vor, weil das Gateway sie entschlüsselt und neu verschlüsselt. Bei der Ende-zu-Ende-Verschlüsselung wären die Daten vom Sensor bis zum API-Server durchgehend verschlüsselt; das Gateway könnte sie nur weiterleiten, nicht lesen. Risiko der derzeitigen Lösung: Wer das Gateway kompromittiert oder physischen Zugang dazu hat, kann die Messwerte mitlesen oder verändern, bevor sie per TLS weitergehen.

Bewertung: Transportverschlüsselung = Teilstrecken, Klartext am Gateway 1,5 P; Ende-zu-Ende = durchgehend, Gateway kann nicht lesen 1,5 P; Risiko (Gateway als Angriffspunkt) 1 P.

e) Forward Secrecy (3 P)

Forward Secrecy (vorwärtsgerichtete Geheimhaltung) bedeutet: Selbst wenn ein Angreifer später den langfristigen privaten Schlüssel des Servers erbeutet, kann er zuvor mitgeschnittenen, verschlüsselten Datenverkehr nicht nachträglich entschlüsseln. TLS 1.3 erreicht das, indem für jede Verbindung ein temporäres (ephemeres) Schlüsselpaar per Diffie-Hellman verwendet und am Ende der Sitzung gelöscht wird. Das Sitzungsgeheimnis hängt damit nicht am dauerhaften Schlüssel des Servers.

Bewertung: Kernaussage (alter Verkehr bleibt auch nach Diebstahl des privaten Schlüssels geheim) 2 P; Ursache (temporäre, gelöschte Schlüssel je Sitzung) 1 P.

SEC-02 · Hash, digitale Signatur, Zertifikate/PKI

Aufgabe SEC-02.1 · 6 Punkte

a) Eigenschaften einer Hashfunktion (3 P)

Beliebige drei aus: Einwegfunktion (aus dem Hashwert kann man die Eingabe nicht zurückberechnen) · Kollisionsresistenz (praktisch keine zwei Eingaben mit gleichem Hashwert) · feste Ausgabelänge unabhängig von der Eingabegröße · Lawineneffekt (kleine Änderung → völlig anderer Hashwert) · deterministisch (gleiche Eingabe → gleicher Hashwert) · schnell berechenbar.

Bewertung: je korrekte Eigenschaft 1 P (max. 3).

b) IBAN nur als Hash speichern? (3 P)

Der Vorschlag ist nicht umsetzbar. Ein Hashwert ist keine Verschlüsselung: Er ist eine Einwegfunktion und lässt sich nicht „entschlüsseln“. Die IBAN wird aber für die SEPA-Lastschrift wieder im Klartext benötigt, könnte dann also nicht mehr zurückgewonnen werden. Alternative: die IBAN verschlüsselt speichern (symmetrische Verschlüsselung der Datenbankfelder bzw. Festplattenverschlüsselung), sodass sie bei Bedarf wieder entschlüsselt werden kann.

Bewertung: Hash ist Einwegfunktion / keine Verschlüsselung 1 P; IBAN wird im Klartext gebraucht → nicht wiederherstellbar 1 P; sinnvolle Alternative (Verschlüsselung) 1 P.
Aufgabe SEC-02.2 · 10 Punkte

a) Felder (1)–(6) (6 P)

FeldInhalt
(1)Hashfunktion (Hashwert der Firmware berechnen)
(2)privatem Schlüssel des Herstellers (Build-Server)
(3)öffentlichem Schlüssel des Herstellers
(4)Hashwert H2 (aus der Signatur zurückgewonnen)
(5)Vergleich: H1 = H2 ?
(6)Firmware installieren (Signatur gültig, Firmware echt und unverändert)
Bewertung: je Feld 1 P. Bei (2)/(3) muss die Richtung stimmen (signieren = privater Schlüssel, prüfen = öffentlicher Schlüssel); Verwechslung 0 P für das jeweilige Feld.

b) Signatur ausreichend? (4 P)

Die Signatur stellt Integrität (jede Veränderung der Firmware fällt beim Vergleich auf) und Authentizität (die Firmware stammt nachweislich von Seidel & Brandt) sicher, zusätzlich Verbindlichkeit. Nicht gesichert wird die Vertraulichkeit – die Firmware wird im Klartext übertragen. Für Firmware-Updates ist das in der Regel ausreichend: Entscheidend ist, dass nur echte, unveränderte Firmware installiert wird; der Inhalt der Firmware ist nicht geheim. Eine Verschlüsselung ist also nicht zwingend nötig (kann den Schutz des Hersteller-Know-hows aber zusätzlich erhöhen).

Bewertung: Integrität und Authentizität genannt 2 P; Vertraulichkeit wird nicht gesichert 1 P; begründete Einschätzung, dass die Signatur hier ausreicht 1 P.
Aufgabe SEC-02.3 · 18 Punkte

a) Meldung „Unbekannter Herausgeber“ (4 P)

Die ausführbare Datei von PulsarDesk ist nicht digital signiert. Windows (SmartScreen) kann deshalb den Herausgeber nicht überprüfen und auch nicht ausschließen, dass die Datei auf dem Weg verändert wurde, und warnt vorsichtshalber. Abhilfe durch Code-Signing: Seidel & Brandt beschafft ein Code-Signing-Zertifikat einer anerkannten CA und signiert die Datei auf dem Build-Server mit dem zugehörigen privaten Schlüssel. Windows prüft dann die Signatur und die Zertifikatskette und zeigt den geprüften Herausgeber an; die Warnung entfällt.

Bewertung: Ursache (Datei unsigniert, Herausgeber nicht prüfbar) 2 P; Lösung (Code-Signing-Zertifikat, Datei signieren, Prüfung durch das Betriebssystem) 2 P.

b) Prüfung der Verbindung zum Web-Portal (5 P)

Der Server sendet beim Verbindungsaufbau sein TLS-Zertifikat. Der Browser prüft:

  1. Stimmt der Name im Zertifikat (portal.pulsar-fitness.example) mit der aufgerufenen Adresse überein?
  2. Ist das Zertifikat zeitlich gültig und nicht gesperrt (Sperrliste/OCSP)?
  3. Ist die Signatur des Zertifikats korrekt? Sie wird mit dem öffentlichen Schlüssel der ausstellenden Zwischen-CA geprüft, deren Zertifikat wiederum mit dem der Root-CA – bis zu einem Root-Zertifikat, das im Vertrauensspeicher des Geräts liegt (Vertrauenskette).
  4. Schließlich weist der Server über den Schlüsselaustausch nach, dass er den zum Zertifikat gehörenden privaten Schlüssel besitzt.

Erst wenn alle Prüfungen aufgehen, gilt die Gegenstelle als das echte Web-Portal (Schloss-Symbol); sonst erscheint eine Zertifikatswarnung.

Bewertung: Namensabgleich 1 P; Gültigkeit/Sperrung 1 P; Signaturprüfung über die Kette bis zur vertrauten Root-CA 2 P; Nachweis des Schlüsselbesitzes 1 P (max. 5).

c) „AES verhindert auch Veränderung“? (3 P)

Die Aussage ist falsch. AES (Verschlüsselung) sichert nur die Vertraulichkeit. Ein Angreifer kann das Chiffrat verändern, ohne den Schlüssel zu kennen; der Empfänger entschlüsselt dann veränderte oder unsinnige Daten, ohne es zu bemerken. Für den Schutz vor Veränderung braucht es zusätzlich einen MAC bzw. einen AEAD-Modus (z. B. AES-GCM) oder eine Signatur.

Bewertung: Aussage als falsch erkannt, Verschlüsselung = nur Vertraulichkeit 2 P; richtige Maßnahme für Integrität (MAC/AEAD/Signatur) 1 P.

d) Manipulationserkennung ohne Signatur (4 P)

Geeignet ist ein MAC bzw. HMAC: Sensor und API-Server teilen einen geheimen (symmetrischen) Schlüssel. Der Sensor berechnet über die Messwerte mit diesem Schlüssel einen MAC und schickt ihn mit. Der Server berechnet den MAC über die empfangenen Werte mit demselben Schlüssel neu und vergleicht. Stimmen beide nicht überein, wurden die Daten verändert und werden verworfen. Ein MAC ist leichtgewichtig und daher für die rechenschwachen Sensoren geeignet (AES-basiert, z. B. AES-CMAC/GCM). Gleichwertig: AEAD-Modus, der Verschlüsselung und MAC kombiniert.

Bewertung: MAC/HMAC genannt 1 P; gemeinsamer geheimer Schlüssel 1 P; MAC neu berechnen und vergleichen 1 P; für Sensoren geeignet, weil leichtgewichtig 1 P.

e) Warum keine Verbindlichkeit? (2 P)

Beim MAC kennen beide Seiten denselben geheimen Schlüssel. Der API-Server könnte einen gültigen MAC also selbst erzeugen und kann einem Dritten nicht beweisen, dass eine Nachricht wirklich vom Sensor stammt. Nur eine digitale Signatur mit einem privaten Schlüssel, den nur der Absender besitzt, ermöglicht diesen Nachweis.

Bewertung: gemeinsamer Schlüssel → Empfänger könnte MAC selbst erzeugen 1 P; daher kein Beweis gegenüber Dritten / Signatur nötig 1 P.

SEC-03 · Schutzziele & Schutzbedarf

Aufgabe SEC-03.1 · 6 Punkte
VorfallSchutzzielBegründung
V1VerfügbarkeitDas Portal war durch die Anfrageflut (DDoS) nicht erreichbar.
V2VertraulichkeitGesundheitsdaten gelangten an eine unbefugte Person.
V4IntegritätDer Tarif wurde unbefugt/unbemerkt verändert; Daten sind nicht mehr korrekt.
V7VerfügbarkeitGateway und Schlösser fielen aus; Mitglieder kamen nicht an ihre Sachen.
V9AuthentizitätGefälschte Absenderangabe („im Namen von Frau Petersen“); CEO-Fraud.
V12VerbindlichkeitDie Kündigung lässt sich dem Mitglied nicht nachweisen; es kann sie abstreiten.
Bewertung: je Vorfall 1 P für das richtige Schutzziel mit passender Begründung. Bei V2 wird auch Datenschutz akzeptiert; bei V9 ist neben Authentizität der Hinweis auf Vertraulichkeit/Integrität als Angriffsziel möglich.
Aufgabe SEC-03.2 · 10 Punkte

a) Sicherheitsanforderungen aus A1–A3 (6 P)

AussageSchutzzielSicherheitstechnische Anforderung (Beispiel)
A1VerfügbarkeitDie Kursbuchung muss auch bei der Lastspitze am Sonntagabend verfügbar bleiben, z. B. durch Lastverteilung und automatische Skalierung auf ausreichend viele gleichzeitige Zugriffe.
A2VertraulichkeitKörper- und Gesundheitsdaten dürfen nur vom Mitglied selbst und der zuständigen Trainerin/dem Trainer eingesehen werden (Rollen- und Rechtekonzept); der Empfang hat keinen Zugriff.
A3Verbindlichkeit / IntegritätJede Kündigung und jeder Tarifwechsel über die App wird mit Mitglied, Zeitpunkt und Aktion manipulationssicher protokolliert (idealerweise mit zweitem Faktor bestätigt), sodass die Handlung nachweisbar zugeordnet werden kann.
Bewertung: je Zeile 2 P (1 P Schutzziel, 1 P konkrete, überprüfbare Anforderung). „Muss sicher sein“ o. Ä. ohne konkreten Inhalt: 0 P für die Anforderung.

b) Risiken veralteter Empfangs-PCs (4 P)

Bewertung: je Risiko mit Bezug zu einem Schutzziel 2 P. Gleichwertig: fehlende Patches als Einfallstor, Kompatibilitätsprobleme, höhere Ausfallwahrscheinlichkeit.
Aufgabe SEC-03.3 · 16 Punkte

a) Schutzbedarfskategorien des BSI (3 P)

Bewertung: je Kategorie mit sinngemäßer Beschreibung 1 P.

b) Schutzbedarf D1, D2, D3, D5 (8 P)

ObjektVIABegründung der höchsten Einstufung
D1 Kursplannormalnormalnormalöffentliche Daten; ein kurzer Ausfall oder Fehler ist ärgerlich, aber folgenlos.
D2 Mitgliederstammdatenhochnormalnormalpersonenbezogene Daten inkl. IBAN: Offenlegung bedeutet Datenschutzverstoß, Missbrauchsgefahr und Imageschaden (V).
D3 Gesundheits- und Körperdatensehr hochhochnormalbesondere Kategorie personenbezogener Daten (Gesundheit); eine Offenlegung kann für die Betroffenen gravierende Folgen haben (V).
D5 ZutrittssystemnormalhochhochFällt es aus, kommen Mitglieder nicht hinein/heraus; bei Manipulation erhalten Unbefugte Zutritt (A und I).
Bewertung: je Objekt 2 P (1 P für die plausible höchste Einstufung, 1 P für die Begründung). Abweichende, gut begründete Einstufungen (z. B. D2-Integrität „hoch“ wegen der IBAN) werden akzeptiert.

c) Schutzbedarf des Datenbank-Servers (2 P)

Hinsichtlich der Vertraulichkeit sehr hoch, da auf ihm auch die Gesundheits- und Körperdaten (D3) liegen. Dabei gilt das Maximumprinzip: Ein System erbt den höchsten Schutzbedarf der auf ihm verarbeiteten Daten bzw. Anwendungen.

Bewertung: „sehr hoch“ 1 P; Maximumprinzip benannt 1 P.

d) Stellungnahme zu A4 (Backup) (3 P)

Die Aussage ist falsch. Ein Backup bleibt auch in der Cloud nötig. Die Redundanz des Anbieters (mehrere Festplatten, z. B. RAID) schützt nur vor Hardwaredefekten, nicht vor versehentlichem oder böswilligem Löschen, fehlerhaften Änderungen oder Ransomware – diese wirken sich auf alle Kopien gleichzeitig aus (vgl. V13). Es braucht regelmäßige, möglichst offline/unveränderbar gespeicherte Backups (3-2-1-Regel) und getestete Wiederherstellung; außerdem ist der Kunde datenschutzrechtlich selbst verantwortlich.

Bewertung: Aussage als falsch erkannt 1 P; Redundanz ≠ Backup (schützt nicht vor Löschen/Ransomware) 1 P; sinnvolle Backup-Maßnahme genannt 1 P.

SEC-04 · Authentifizierung

Aufgabe SEC-04.1 · 6 Punkte

a) Authentifizierung vs. Autorisierung (2 P)

Authentifizierung ist der Nachweis der Identität: Die Trainerin meldet sich mit Benutzername und Passwort (und zweitem Faktor) an, das System prüft, wer sie ist. Autorisierung legt fest, was sie danach darf: Aufgrund ihrer Rolle darf sie die Körperdaten ihrer eigenen Mitglieder sehen, aber z. B. keine Tarife ändern.

Bewertung: Authentifizierung = Identität nachweisen 1 P; Autorisierung = Rechte/Was darf man 1 P.

b) Drei Faktorkategorien (3 P)

KategorieBeispiel für PulsarConnect
WissenPasswort bzw. PIN für das Web-Portal
BesitzEinmalcode aus der Authenticator-App auf dem Smartphone der Trainerin (TOTP)
Biometrie (Inhärenz)Fingerabdruck oder Gesichtserkennung zum Entsperren der App
Bewertung: je Kategorie mit passendem Beispiel 1 P.

c) Passwort + Sicherheitsfrage (1 P)

Beides gehört zur Kategorie Wissen. Zwei Faktoren aus derselben Kategorie sind keine Zwei-Faktor-Authentifizierung; die Faktoren müssen aus verschiedenen Kategorien stammen.

Bewertung: beide Faktoren sind „Wissen“, daher keine 2FA 1 P.
Aufgabe SEC-04.2 · 12 Punkte

a) Schwachstellen der Passwortspeicherung (4 P)

Bewertung: MD5 schnell/unsicher und kein Salt 2 P; gleiche Hashes = gleiche Passwörter erkennbar 2 P.

b) Speicherung in PulsarConnect (nach Anlage 10) (4 P)

Passwörter werden nie im Klartext gespeichert, sondern als Hashwert einer absichtlich langsamen Funktion (Argon2id, scrypt, bcrypt oder PBKDF2 mit vielen Iterationen). Vor dem Hashen wird jedes Passwort mit einem Salt kombiniert – einem mindestens 16 Byte langen Zufallswert, der für jeden Benutzer neu erzeugt und zusammen mit dem Hash gespeichert wird (nicht geheim); dadurch ergeben gleiche Passwörter verschiedene Hashes und Rainbow Tables werden nutzlos. Zusätzlich kann ein Pepper verwendet werden: ein geheimer, für alle Benutzer gleicher Wert, der nicht in der Datenbank steht (z. B. im Hardware-Sicherheitsmodul). Wird nur die Datenbank gestohlen, kann der Angreifer ohne den Pepper keine Passwörter durchprobieren.

Bewertung: langsame/dedizierte Hashfunktion 1 P; Salt (zufällig, je Benutzer, mit Hash gespeichert) 2 P; Pepper (geheim, nicht in der DB) 1 P.

c) Pseudocode pruefePasswort (4 P)

funktion pruefePasswort(eingabe : string, salt : string,
                        gespeicherterHash : string) : boolean
  h : string := sha256(PEPPER + salt + eingabe)      // 1. Durchlauf
  zähle i von 2 bis 10000                              // weitere 9 999 Durchläufe
    h := sha256(h + salt)
  Ende zähle
  wenn h = gespeicherterHash dann
    rückgabe true
  sonst
    rückgabe false
  Ende wenn
Ende funktion

Lauffähig als Java: java\07_IT-Sicherheit\Aufgabe_SEC_04_2.java (Methode pruefePasswort; enthält auch den Wörterbuchangriff aus a und die PBKDF2-Variante aus b).

Java · Aufgabe_SEC_04_2.java (Auszug)

static boolean pruefePasswort(String eingabe, String salt, String gespeicherterHash) {
    String h = sha256(PEPPER + salt + eingabe);          // 1. Durchlauf
    for (int i = 2; i <= 10000; i++) {                   // Durchläufe 2 bis 10 000
        h = sha256(h + salt);
    }
    return h.equals(gespeicherterHash);
}

Ausgabe (gekürzt)

m.berger  salt=3f9a1c0b...  hash=aecaf827...40e8dfc5
k.hansen  salt=c84e2b71...  hash=916d1c81...1419734c
Gleiches Passwort, verschiedene Hashwerte: true
pruefePasswort("hallo123", saltBerger, hashBerger) = true
pruefePasswort("Hallo123", saltBerger, hashBerger) = false
pruefePasswort("hallo123", saltHansen, hashBerger) = false  (falsches Salt)
Bewertung: ersten Hash korrekt mit PEPPER + salt + eingabe 1 P; Schleife mit genau 9 999 weiteren Durchläufen und h + salt 2 P; Vergleich und boolesche Rückgabe 1 P. Gleichwertig: Zählschleife von 1 bis 9 999, return h = gespeicherterHash direkt.
Aufgabe SEC-04.3 · 18 Punkte

a) Rollen und Inhalte (6 P)

RolleBegriff
(R1)Resource Owner
(R2)Client
(R3)Authorization Server
(R4)Resource Server
InhaltBegriff
(A)Authorization Code
(B)Access Token
(C)Access Token
(D)Protected Resource

Das mehrfach benötigte Element ist das Access Token: Es wird in Schritt ⑥ ausgestellt (B) und in Schritt ⑦ bei der Anfrage an die API mitgeschickt (C).

Bewertung: je richtiger Eintrag 0,75 P (8 Einträge = 6 P). R1/R2 nicht vertauschen; (A) = Authorization Code, (D) = Protected Resource.

b) Vorteile von OAuth2 gegenüber Passwortweitergabe (4 P)

Bewertung: je Vorteil mit Begründung 2 P (Passwort bleibt beim Anbieter; eingeschränkter, widerrufbarer, ablaufender Zugriff).

c) Single Sign-On – Vor- und Nachteil (4 P)

Vorteil: Die Mitarbeitenden müssen sich nur einmal anmelden und nur ein starkes Passwort (plus zentrale 2FA) merken; die Benutzerverwaltung ist zentral, beim Austritt wird ein Konto an einer Stelle gesperrt. Nachteil: Der Identitätsdienst ist ein Single Point of Failure – fällt er aus, ist keine Anmeldung mehr möglich; außerdem öffnet ein kompromittiertes Konto gleich alle angebundenen Systeme (daher 2FA zwingend).

Bewertung: plausibler Vorteil 2 P; plausibler Nachteil 2 P.

d) Sicherer Passwort-Reset (4 P)

Schwachstelle: Der Reset hängt allein am E-Mail-Konto. Wer Zugriff auf das Postfach des Mitglieds hat (gehacktes oder mitgelesenes Konto, abgefangene Mail), kann über den Link sofort ein neues Passwort setzen und das Pulsar-Konto übernehmen. Sicherer: Es wird ein zufälliges, nur einmal verwendbares Token mit kurzer Gültigkeit (z. B. 30 Minuten) verschickt und zusätzlich ein zweiter Faktor über einen anderen Kanal verlangt (z. B. Code per SMS oder aus der Authenticator-App). Nach dem Reset werden alle Sitzungen beendet und das Mitglied benachrichtigt; es wird immer dieselbe neutrale Meldung angezeigt, egal ob die Adresse existiert.

Bewertung: Schwachstelle (Reset nur so sicher wie das E-Mail-Konto) 2 P; sichereres Verfahren mit zweitem Kanal/Faktor 2 P. Gleichwertig: zeitlich begrenztes Einmal-Token mit Bestätigung über einen zweiten Kanal.

SEC-05 · Datenschutz / DSGVO

Aufgabe SEC-05.1 · 5 Punkte

a) Datenschutz vs. Datensicherheit (2 P)

Datenschutz schützt die Person und ihr Recht auf informationelle Selbstbestimmung: Er regelt, ob und wofür personenbezogene Daten verarbeitet werden dürfen (DSGVO). Datensicherheit schützt die Daten und Systeme selbst – alle Daten, nicht nur personenbezogene – vor Verlust, Manipulation und unbefugtem Zugriff (z. B. durch Verschlüsselung und Backups).

Bewertung: Datenschutz = Schutz der Person/personenbezogener Daten 1 P; Datensicherheit = Schutz der Daten/Systeme (technisch) 1 P.

b) Personenbezogene Daten? (3 P)

Datenjanein
1. Mitgliedsnummer 10231✘
2. Durchschnitt 412 Mitglieder/Tag✘
3. IP-Adresse eines Mitglieds✘
4. CO₂-Wert in Kursraum 2✘
5. Foto einer Trainerin✘
6. Körperfettanteil mit Mitgliedsnummer✘

1 und 6: über die Mitgliedsnummer ist die Person identifizierbar. 2: aggregiert/anonym. 4: kein Personenbezug. 3: die IP-Adresse gilt nach EuGH als personenbezogen.

Bewertung: je zwei richtige Zeilen 1 P (6 richtige = 3 P).
Aufgabe SEC-05.2 · 10 Punkte

a) Datenschutzmängel des Entwurfs (8 P)

Nr.MangelVerbesserung
1Die beiden Häkchen sind vorangekreuzt. Eine vorangekreuzte Checkbox ist keine wirksame Einwilligung (aktive Handlung nötig).Checkboxen leer vorbelegen; der Nutzer kreuzt selbst an.
2Die Einwilligung in Werbung/Weitergabe ist mit der AGB-Zustimmung gekoppelt und als Pflichtfeld (*) ausgelegt (Kopplungsverbot).Werbe-/Weitergabe-Einwilligung von den AGB trennen und freiwillig machen (keine Pflicht für die Mitgliedschaft).
3Zwei verschiedene Zwecke (Werbung und Weitergabe an Partner) sind in einer Checkbox zusammengefasst.Für jeden Zweck eine eigene, getrennte Einwilligung.
4Datenminimierung verletzt: Familienstand und Arbeitgeber sind für Vertrag und Training nicht erforderlich (Pflichtfelder).Nur erforderliche Felder als Pflicht; überflüssige Felder streichen oder optional machen.
(5)Gesundheitsdaten (Vorerkrankungen/Medikamente) sind Pflichtfeld und benötigen eine ausdrückliche, gesonderte Einwilligung.Angabe freiwillig machen und mit ausdrücklicher Einwilligung für diese besondere Datenkategorie versehen.
(6)„Mit der Registrierung erkennen Sie die Datenschutzbestimmungen an“ – die Datenschutzerklärung ist eine Information, keine Zustimmung.Formulierung in einen Hinweis mit Link zur Datenschutzerklärung ändern („Informationen zur Verarbeitung finden Sie …“).

Vier dieser Mängel genügen für die volle Punktzahl.

Bewertung: je Mangel mit passender Verbesserung 2 P (max. 8). 1 P, wenn nur der Mangel ohne Verbesserung genannt wird.

b) Inhalte der Datenschutzerklärung (2 P)

Zwei beliebige aus: Verantwortlicher (Kontaktdaten) · Zwecke und Rechtsgrundlagen der Verarbeitung · Empfänger/Weitergabe der Daten · Speicherdauer · Betroffenenrechte und Widerrufsrecht · Beschwerderecht bei der Aufsichtsbehörde.

Bewertung: je korrekter Inhalt 1 P (max. 2).
Aufgabe SEC-05.3 · 15 Punkte

a) Herzfrequenzdaten (3 P)

Herzfrequenz- und Gesundheitsdaten sind eine besondere Kategorie personenbezogener Daten (Art. 9 DSGVO). Ihre Verarbeitung ist grundsätzlich verboten und bedarf daher besonders strenger Voraussetzungen und eines hohen Schutzniveaus. Pulsar kann sie auf die ausdrückliche Einwilligung des Mitglieds stützen (Art. 9 Abs. 2 a).

Bewertung: besondere Kategorie/Gesundheitsdaten 1 P; grundsätzlich strengerer Schutz 1 P; Rechtsgrundlage ausdrückliche Einwilligung 1 P.

b) Auskunft und Löschung (4 P)

Auskunftsrecht (Art. 15): Das Mitglied darf erfahren, welche Daten über es gespeichert sind, zu welchen Zwecken, an welche Empfänger und wie lange; es kann eine Kopie verlangen. Recht auf Löschung (Art. 17): Daten sind zu löschen, wenn der Zweck entfallen ist bzw. die Einwilligung widerrufen wurde. Aber: Die Rechnungsdaten unterliegen gesetzlichen Aufbewahrungspflichten (Handels-/Steuerrecht, mehrere Jahre). Solange diese laufen, dürfen bzw. müssen sie aufbewahrt werden; sie werden für andere Zwecke gesperrt statt gelöscht.

Bewertung: Auskunftsrecht beschrieben 1 P; Löschrecht beschrieben 1 P; Aufbewahrungspflicht als Grund gegen sofortiges Löschen 2 P.

c) Cloud-Betrieb (3 P)

Der Cloud-Anbieter ist Auftragsverarbeiter. Pulsar muss mit ihm einen Vertrag zur Auftragsverarbeitung (AV-Vertrag) schließen, in dem Weisungsbindung und technisch-organisatorische Maßnahmen geregelt sind, und sich von dessen Sicherheitsmaßnahmen überzeugen. Da das Rechenzentrum in Frankfurt (EU) steht, ist das Datenschutzniveau gegeben; bei Servern außerhalb der EU wären zusätzliche Garantien (z. B. Standardvertragsklauseln) nötig.

Bewertung: Auftragsverarbeitung erkannt 1 P; AV-Vertrag/Weisungsbindung 1 P; TOM prüfen bzw. EU-Standort/Drittlandproblematik 1 P.

d) Echte Daten in ein Online-Tool? (3 P)

Unzulässig. Mit dem Upload würden echte Namen und IBANs an einen Dritten übermittelt – ohne Rechtsgrundlage, ohne AV-Vertrag, ohne Kontrolle über Speicherort und -dauer (ggf. außerhalb der EU). Das verletzt den Datenschutz und die Vertraulichkeit (Objekt D2). Alternative: mit synthetischen Testdaten (erfundene, aber formal gültige IBANs) testen oder ein Prüfwerkzeug lokal im eigenen Netz einsetzen.

Bewertung: unzulässig mit Begründung (Übermittlung echter personenbezogener Daten an Dritte) 2 P; sinnvolle Alternative (Testdaten/lokal) 1 P.

e) Privacy by Default (2 P)

Die datenschutzfreundlichste Einstellung ist die Voreinstellung. Beispiel: In der Mitglieder-App ist die Freigabe der Trainingsdaten an die VitaKasse standardmäßig deaktiviert und die Standortfreigabe aus; das Mitglied muss sie bewusst selbst einschalten.

Bewertung: Prinzip (datenschutzfreundliche Voreinstellung) 1 P; passendes Beispiel aus der App 1 P.

SEC-06 · Angriffe & Gegenmaßnahmen

Aufgabe SEC-06.1 · 6 Punkte

a) Risiko (V3) (2 P)

Das Dokument enthält ein Makro. Wird „Inhalt aktivieren“ geklickt, führt es Programmcode aus und kann Schadsoftware nachladen und installieren (z. B. Ransomware, Spionageprogramm). Dokumente aus unbekannten externen Quellen sind deshalb besonders gefährlich.

Bewertung: Makro führt Code aus / lädt Schadsoftware 1 P; Gefahr für den PC bzw. das Netz 1 P.

b) Gegenmaßnahmen (2 P)

Zwei beliebige aus: Makros aus Internet-/Mail-Dokumenten per Richtlinie blockieren bzw. nur signierte Makros zulassen · Anhänge serverseitig filtern bzw. in einer Sandbox prüfen · aktuellen Virenschutz einsetzen · eingeschränkte Benutzerrechte · Mitarbeitende schulen.

Bewertung: je sinnvolle Maßnahme 1 P (max. 2).

c) Sicherere Alternative für eigene Rechnungen (2 P)

Rechnungen ohne aktive Inhalte versenden, z. B. als PDF, oder im Portal/in der App zum Abruf bereitstellen (Rückfragen über ein Formular dort). Begründung: Ein PDF bzw. die Anzeige im Browser/in der App enthält keine ausführbaren Makros; so gewöhnt Pulsar seine Mitglieder nicht daran, Makros zu aktivieren, und ein gefälschter Makro-Anhang fällt eher auf.

Bewertung: Alternative ohne Makros (PDF/Portal) 1 P; Begründung 1 P.
Aufgabe SEC-06.2 · 12 Punkte
VorfallAngriffsartGegenmaßnahme
V5Social Engineering (Pretexting, Vortäuschen des IT-Supports)Schulung/Sensibilisierung; Regel „IT fragt nie nach Passwörtern“; Rückruf über eine bekannte Nummer.
V6Credential Stuffing (Ausprobieren geleakter Zugangsdaten), Brute ForceFehlversuchssperre/Rate Limiting; 2FA; Abgleich mit geleakten Passwörtern; Benachrichtigung bei neuem Gerät.
V8Cross-Site Scripting (XSS) über ein KommentarfeldAusgaben kontextgerecht kodieren (Output-Encoding); Content-Security-Policy; Cookies mit HttpOnly.
V10Man-in-the-Middle über gefälschten WLAN-Hotspot (Evil Twin)Zertifikatswarnungen ernst nehmen/TLS mit Prüfung; VPN; gesichertes offizielles WLAN; Nutzer warnen.
V11Cross-Site Request Forgery (CSRF)CSRF-Token in Formularen; Cookies mit SameSite; erneute Bestätigung bei kritischen Änderungen (z. B. E-Mail ändern).
V13RansomwareOffline-/unveränderbare Backups mit getesteter Wiederherstellung; Patches; eingeschränkte Rechte; E-Mail-/Makroschutz.
Bewertung: je Vorfall 1 P richtige Angriffsart + 1 P passende Gegenmaßnahme (6 × 2 = 12). Bei V6 wird Brute Force/Credential Stuffing akzeptiert; bei V11 auch „Phishing-Link, der eine Aktion auslöst“ mit CSRF-Bezug.
Aufgabe SEC-06.3 · 18 Punkte

a) Sicherheitslücke in login (3 P)

SQL-Injection. Die Eingaben aus dem Feld „E-Mail“ werden in den Zeilen 13/14 per String-Verkettung direkt in den SQL-Text eingebaut. Enthält die Eingabe SQL-Sonderzeichen (z. B. ein Hochkomma), ändert sich dadurch die Bedeutung der Abfrage – ein Angreifer kann die Passwortprüfung umgehen oder weitere Daten auslesen.

Bewertung: SQL-Injection benannt 1 P; Ursache (ungeprüfte Eingabe per Verkettung in den SQL-Text) 2 P.

b) SQL-Anweisung und Gefahr (4 P)

Für die gültige Adresse o'neil@mail.example und das Passwort Lauf2026 baut Zeile 13/14 folgende Anweisung:

SELECT mitglied_nr FROM mitglied
WHERE email = 'o'neil@mail.example' AND passwort_md5 = 'ac03ebddb7750a7c60020f0281650bd5'

Das zweite Hochkomma (in o'neil) beendet die Zeichenkette vorzeitig; der Teil neil@mail.example'… wird als SQL-Code gelesen und ergibt einen Syntaxfehler. Daran zeigt sich: Vom Benutzer gelieferter Text wird als SQL ausgeführt. Dieselbe Lücke lässt sich gezielt ausnutzen, um die Bedingung der WHERE-Klausel auszuhebeln und sich ohne gültiges Passwort anzumelden oder Daten auszulesen.

Bewertung: SQL-Anweisung korrekt angegeben 2 P; Ursache des Fehlers (Hochkomma beendet die Zeichenkette) 1 P; abgeleitete Gefahr (Eingabe wird als SQL ausgeführt → Anmeldung umgehbar) 1 P.

c) login mit PreparedStatement (5 P)

public boolean login(String email, String passwort) throws Exception {
    String sql = "SELECT mitglied_nr FROM mitglied WHERE email = ? AND passwort_md5 = ?";
    try (Connection con = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
         PreparedStatement ps = con.prepareStatement(sql)) {
        ps.setString(1, email);                 // Eingaben werden nur als Daten übergeben
        ps.setString(2, md5(passwort));
        try (ResultSet rs = ps.executeQuery()) {
            return rs.next();
        }
    }
}

Lauffähig als Java: java\07_IT-Sicherheit\Aufgabe_SEC_06_3.java (Methoden loginNeu/loginSicher; mit optionalem H2-Treiber wird der Angriff gegen eine Testdatenbank gezeigt).

Ausgabe (Test gegen H2, Adresse mit Apostroph)

Fall                     loginUnsicher   loginSicher
richtiges Passwort       true            true
falsches Passwort        false           false
Adresse mit Apostroph    SQL-Fehler      true

Beim PreparedStatement wird die Abfrage mit Platzhaltern ? vorab an die Datenbank gegeben; die Werte werden anschließend getrennt als reine Daten übergeben und nie als SQL interpretiert. Die Adresse mit Apostroph wird dann korrekt verarbeitet.

Bewertung: PreparedStatement mit Platzhaltern 2 P; beide Werte per setString gesetzt 2 P; funktional korrekte Abfrage/Rückgabe 1 P. Gleichwertig: Nutzung einer sicheren DAO-/ORM-Methode mit Parameterbindung.

d) Zwei weitere Mängel (4 P)

Bewertung: je Mangel mit Abhilfe 2 P (max. 4). Nicht gewertet: die Lücke aus a) und die Verwendung von MD5.

e) Warum Client-Prüfung nicht reicht (2 P)

Prüfungen in App und Browser lassen sich umgehen: Ein Angreifer schickt seine Anfrage einfach direkt an den Server (z. B. mit einem eigenen Programm oder Werkzeug), ohne die App zu benutzen. Sicherheitsrelevante Prüfungen müssen daher immer auf dem Server erfolgen; das Prepared Statement wirkt dort unabhängig von der Eingabeprüfung.

Bewertung: Client-Prüfung umgehbar / Anfrage direkt an den Server 1 P; Prüfung muss serverseitig erfolgen 1 P.