Datenschutz und Datensicherheit
Datenschutz vs. Datensicherheit
Die Begriffe werden oft verwechselt, bezeichnen aber unterschiedliche Konzepte:
- Datenschutz: Schutz der Privatsphäre von Personen. Regelt, welche personenbezogenen Daten erhoben, verarbeitet und gespeichert werden dürfen. Rechtliche Grundlage: DSGVO.
- Datensicherheit: Schutz von Daten vor Verlust, Manipulation und unbefugtem Zugriff. Technische und organisatorische Maßnahmen (z. B. Verschlüsselung, Backups, Firewalls).
DSGVO – Grundprinzipien
Die Datenschutz-Grundverordnung (DSGVO, seit 25.05.2018 in der EU) basiert auf folgenden Grundsätzen:
- Rechtmäßigkeit: Datenverarbeitung nur mit Rechtsgrundlage (z. B. Einwilligung, Vertragserfüllung).
- Zweckbindung: Daten dürfen nur für den angegebenen Zweck verwendet werden.
- Datenminimierung: Nur die Daten erheben, die tatsächlich benötigt werden.
- Richtigkeit: Daten müssen sachlich korrekt und aktüll sein.
- Speicherbegrenzung: Daten nur so lange speichern, wie erforderlich.
- Integrität und Vertraulichkeit: Angemessene Sicherheitsmaßnahmen treffen.
Betroffenenrechte: Recht auf Auskunft, Berichtigung, Löschung („Recht auf Vergessenwerden“), Datenübertragbarkeit.
Verschlüsselung
Verschlüsselung schützt Daten vor unbefugtem Lesen:
- Symmetrische Verschlüsselung: Ein Schlüssel für Ver- und Entschlüsselung (z. B. AES). Schnell, aber Schlüsselaustausch ist problematisch.
- Asymmetrische Verschlüsselung: Zwei Schlüssel – öffentlicher Schlüssel zum Verschlüsseln, privater Schlüssel zum Entschlüsseln (z. B. RSA). Kein Schlüsselaustausch nötig, aber langsamer.
- Hybride Verschlüsselung: Kombination: Asymmetrisch für den Schlüsselaustausch, symmetrisch für die eigentlichen Daten (z. B. HTTPS/TLS).
- Hashing: Einweg-Funktion (z. B. SHA-256). Aus dem Hash kann der Klartext nicht wiederhergestellt werden. Einsatz: Passwortspeicherung.
SQL-Injection
SQL-Injection ist eine der häufigsten Angriffsmethoden auf Webanwendungen. Der Angreifer schleust bösartigen SQL-Code über Eingabefelder ein:
-- Verwundbarer Code (NIEMALS so implementieren!)
query = "SELECT * FROM User WHERE name = '" + eingabe + "'"
-- Angreifer gibt ein: ' OR '1'='1
-- Resultierende Abfrage:
SELECT * FROM User WHERE name = '' OR '1'='1'
-- Gibt ALLE User zurück!
Gegenmaßnahmen:
- Prepared Statements / Parametrisierte Abfragen: Eingaben werden als Daten, nicht als SQL-Code behandelt.
- Eingabevalidierung: Sonderzeichen filtern oder escapen.
- Principle of Least Privilege: DB-Benutzer haben nur die minimal nötigen Rechte.
-- Sicherer Code mit Prepared Statement (Java)
PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM User WHERE name = ?");
ps.setString(1, eingabe); // Eingabe wird als Daten behandelt
ResultSet rs = ps.executeQuery();
Zugriffsrechte in Datenbanken
Datenbanksysteme implementieren Zugriffsrechte mit dem SQL-Befehl GRANT und REVOKE:
-- Recht vergeben
GRANT SELECT, INSERT ON Schüler TO lehrer_rolle;
-- Recht entziehen
REVOKE INSERT ON Schüler FROM lehrer_rolle;
Das Principle of Least Privilege besagt: Jeder Benutzer erhält nur die minimal nötigen Rechte für seine Aufgabe.
Abitur-Tipp: SQL-Injection ist ein beliebtes Abiturthema. Präge dir das Angriffsbeispiel mit ' OR '1'='1 ein und erkläre, warum Prepared Statements schützen. Die DSGVO-Grundsätze (besonders Datenminimierung und Zweckbindung) werden häufig in Textaufgaben abgefragt. Unterscheide klar zwischen Datenschutz (rechtlich, Privatsphäre) und Datensicherheit (technisch, Schutz der Daten).