fix: Restore missing DSFA catalog data files from stash

These 5 data files were untracked and only saved in git stash.
They are required by catalog-registry.ts for the Katalogverwaltung.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-02-10 13:19:03 +01:00
parent 8ef30e2a76
commit 34f3dbdfc3
5 changed files with 2233 additions and 0 deletions

View File

@@ -0,0 +1,417 @@
/**
* DSFA KI-Massnahmenbibliothek - Vordefinierte KI-spezifische Massnahmen
*
* ~25 Massnahmen gegliedert nach:
* - Bias-Praevention & Fairness
* - Erklaerbarkeit & Transparenz
* - Datenqualitaet & Governance
* - Sicherheit & Robustheit
* - Automatisierte Entscheidungen (Human Oversight)
* - Monitoring & Qualitaetssicherung
* - Privatsphaere & Datenschutz
*
* Quellen: Art. 9-15 AI Act, Art. 22/25/32 DSGVO, EDPB Guidelines,
* BSI-TR-03161, SDM V2.0
*/
import type { CatalogMitigation } from './mitigation-library'
// =============================================================================
// KI-MASSNAHMENBIBLIOTHEK
// =============================================================================
export const AI_MITIGATION_LIBRARY: CatalogMitigation[] = [
// =========================================================================
// BIAS-PRAEVENTION & FAIRNESS
// =========================================================================
{
id: 'M-AI-BIAS-01',
type: 'technical',
sdmGoals: ['nichtverkettung', 'intervenierbarkeit'],
title: 'Bias-Audit und Fairness-Testing',
description: 'Regelmaessige Durchfuehrung von Bias-Audits mit standardisierten Fairness-Metriken (z.B. Demographic Parity, Equalized Odds, Calibration). Automatisierte Tests vor jedem Modell-Update.',
legalBasis: 'Art. 10 AI Act, Art. 22 Abs. 3 DSGVO',
evidenceTypes: ['Bias-Audit-Report', 'Fairness-Metriken-Dashboard', 'Test-Protokoll'],
addressesRiskIds: ['R-AI-BIAS-01', 'R-AI-BIAS-03', 'R-AI-PRIV-04'],
effectiveness: 'high',
},
{
id: 'M-AI-BIAS-02',
type: 'technical',
sdmGoals: ['nichtverkettung', 'integritaet'],
title: 'Trainingsdaten-Debiasing und Rebalancing',
description: 'Systematische Analyse der Trainingsdaten auf Unterrepraesentation und Verzerrungen. Anwendung von Resampling, Reweighting oder synthetischer Datenerweiterung zur Herstellung von Balance.',
legalBasis: 'Art. 10 Abs. 2-3 AI Act',
evidenceTypes: ['Datenanalyse-Report', 'Rebalancing-Protokoll', 'Datenverteilungs-Bericht'],
addressesRiskIds: ['R-AI-BIAS-01', 'R-AI-BIAS-02'],
effectiveness: 'medium',
},
{
id: 'M-AI-BIAS-03',
type: 'organizational',
sdmGoals: ['nichtverkettung', 'transparenz'],
title: 'Diversitaet in KI-Entwicklungsteams',
description: 'Sicherstellung von Diversitaet in den Teams, die KI-Systeme entwickeln und bewerten. Einbeziehung von Betroffenengruppen in den Evaluierungsprozess.',
legalBasis: 'Art. 9 Abs. 9 AI Act',
evidenceTypes: ['Team-Diversity-Report', 'Stakeholder-Einbeziehungs-Protokoll'],
addressesRiskIds: ['R-AI-BIAS-03'],
effectiveness: 'medium',
},
// =========================================================================
// ERKLAERBARKEIT & TRANSPARENZ
// =========================================================================
{
id: 'M-AI-EXPL-01',
type: 'technical',
sdmGoals: ['transparenz', 'intervenierbarkeit'],
title: 'Explainable AI (XAI) - Erklaerbare KI-Methoden',
description: 'Einsatz von Erklaerbarkeitsmethoden wie SHAP, LIME oder Attention Maps, um KI-Entscheidungen nachvollziehbar zu machen. Bereitstellung von Erklaerungen in verstaendlicher Sprache.',
legalBasis: 'Art. 13 AI Act, Art. 13-14 DSGVO',
evidenceTypes: ['XAI-Implementierungsbericht', 'Erklaerbarkeits-Screenshots', 'Nutzer-Feedback'],
addressesRiskIds: ['R-AI-EXPL-01', 'R-AI-AUTO-02', 'R-AI-BIAS-03'],
effectiveness: 'high',
},
{
id: 'M-AI-EXPL-02',
type: 'organizational',
sdmGoals: ['transparenz'],
title: 'KI-Modellkarte (Model Card) und Datenblatt',
description: 'Erstellung und Pflege einer Modellkarte nach dem Model Card Framework. Dokumentation von Leistung, Einschraenkungen, beabsichtigter Nutzung und Fairness-Metriken.',
legalBasis: 'Art. 11 AI Act, Art. 13 DSGVO',
evidenceTypes: ['Model Card (PDF)', 'Data Sheet', 'Leistungsbericht'],
addressesRiskIds: ['R-AI-EXPL-03', 'R-AI-EXPL-01'],
effectiveness: 'medium',
},
{
id: 'M-AI-EXPL-03',
type: 'organizational',
sdmGoals: ['transparenz'],
title: 'KI-Kennzeichnung und Nutzertransparenz',
description: 'Deutliche Kennzeichnung von KI-generierten Inhalten und KI-Interaktionen. Informierung der Nutzer ueber den Einsatz von KI-Systemen, deren Zweck und Einschraenkungen.',
legalBasis: 'Art. 50 AI Act, Art. 13-14 DSGVO',
evidenceTypes: ['KI-Kennzeichnungs-Screenshots', 'Datenschutzhinweis-Auszug', 'Nutzerinformation'],
addressesRiskIds: ['R-AI-EXPL-02', 'R-AI-EXPL-01'],
effectiveness: 'high',
},
{
id: 'M-AI-TRANS-01',
type: 'legal',
sdmGoals: ['transparenz'],
title: 'KI-Transparenzbericht (jaehrlich)',
description: 'Veroeffentlichung eines jaehrlichen Transparenzberichts ueber den Einsatz von KI-Systemen, deren Auswirkungen, durchgefuehrte Audits und ergriffene Massnahmen.',
legalBasis: 'Art. 13 AI Act',
evidenceTypes: ['Transparenzbericht (PDF)', 'Veroeffentlichungsnachweis'],
addressesRiskIds: ['R-AI-EXPL-02'],
effectiveness: 'medium',
},
{
id: 'M-AI-DOC-01',
type: 'organizational',
sdmGoals: ['transparenz'],
title: 'Technische Dokumentation nach AI Act',
description: 'Vollstaendige technische Dokumentation des KI-Systems gemaess Art. 11 und Anhang IV AI Act: Systembeschreibung, Designentscheidungen, Datenmanagement, Monitoring-Plan.',
legalBasis: 'Art. 11, Anhang IV AI Act',
evidenceTypes: ['Technische Dokumentation', 'Systemarchitektur-Diagramm', 'Anhang-IV-Checkliste'],
addressesRiskIds: ['R-AI-EXPL-03'],
effectiveness: 'high',
},
// =========================================================================
// DATENQUALITAET & GOVERNANCE
// =========================================================================
{
id: 'M-AI-DATA-01',
type: 'organizational',
sdmGoals: ['integritaet', 'datenminimierung'],
title: 'Data Governance Framework fuer KI-Training',
description: 'Einrichtung eines strukturierten Data-Governance-Prozesses: Datenherkunft (Provenance), Qualitaetskontrolle, Versionierung, Dokumentation und regelmaessige Ueberpruefung der Trainingsdaten.',
legalBasis: 'Art. 10 AI Act, Art. 5 Abs. 1 lit. d DSGVO',
evidenceTypes: ['Data-Governance-Policy', 'Datenherkunfts-Dokumentation', 'Qualitaetskontroll-Protokoll'],
addressesRiskIds: ['R-AI-DATA-01', 'R-AI-DATA-03', 'R-AI-BIAS-01'],
effectiveness: 'high',
},
{
id: 'M-AI-DATA-02',
type: 'technical',
sdmGoals: ['integritaet'],
title: 'Automatisierte Datenqualitaetspruefung',
description: 'Automatisierte Pipelines zur Pruefung der Datenqualitaet: Erkennung von Ausreissern, Duplikaten, fehlenden Werten, Datenkonsistenz und statistischen Abweichungen.',
legalBasis: 'Art. 10 Abs. 2 AI Act',
evidenceTypes: ['Data-Quality-Pipeline-Logs', 'Qualitaetsmetriken-Dashboard'],
addressesRiskIds: ['R-AI-DATA-01', 'R-AI-DATA-04', 'R-AI-MON-01'],
effectiveness: 'medium',
},
{
id: 'M-AI-DATA-03',
type: 'legal',
sdmGoals: ['datenminimierung', 'nichtverkettung'],
title: 'Rechtsgrundlage und DSFA fuer KI-Trainingsdaten',
description: 'Sicherstellung einer validen Rechtsgrundlage fuer die Nutzung personenbezogener Daten im KI-Training. Durchfuehrung einer separaten DSFA fuer den Trainingsdaten-Verarbeitungszweck.',
legalBasis: 'Art. 6, Art. 35 DSGVO, Art. 10 Abs. 5 AI Act',
evidenceTypes: ['Rechtsgrundlagen-Bewertung', 'DSFA-Trainingsdaten', 'Einwilligungsformular'],
addressesRiskIds: ['R-AI-DATA-02', 'R-AI-PRIV-04', 'R-AI-DATA-03'],
effectiveness: 'high',
},
// =========================================================================
// SICHERHEIT & ROBUSTHEIT
// =========================================================================
{
id: 'M-AI-SEC-01',
type: 'technical',
sdmGoals: ['integritaet', 'verfuegbarkeit'],
title: 'Adversarial Robustness Testing',
description: 'Regelmaessige Tests des KI-Modells gegen Adversarial Attacks, Data Poisoning und Evasion-Angriffe. Einsatz von Robustness Toolkits (z.B. IBM ART, Foolbox).',
legalBasis: 'Art. 15 AI Act, Art. 32 DSGVO',
evidenceTypes: ['Adversarial-Test-Report', 'Robustness-Metriken', 'Penetrationstest-Bericht'],
addressesRiskIds: ['R-AI-SEC-01', 'R-AI-DATA-04', 'R-AI-SEC-03'],
effectiveness: 'high',
},
{
id: 'M-AI-SEC-02',
type: 'technical',
sdmGoals: ['verfuegbarkeit', 'integritaet'],
title: 'Input-Validierung und Sanitization',
description: 'Implementierung robuster Eingabevalidierung fuer KI-Systeme: Laengen- und Formatpruefung, Content-Filterung, Erkennung adversarialer Eingabemuster.',
legalBasis: 'Art. 15 AI Act, Art. 32 DSGVO',
evidenceTypes: ['Input-Validation-Policy', 'Filter-Regeln-Dokumentation'],
addressesRiskIds: ['R-AI-SEC-01', 'R-AI-SEC-02'],
effectiveness: 'medium',
},
{
id: 'M-AI-SEC-03',
type: 'technical',
sdmGoals: ['vertraulichkeit', 'integritaet'],
title: 'Prompt-Injection-Schutz und Output-Filterung',
description: 'Implementierung mehrschichtiger Schutzmassnahmen gegen Prompt Injection: System-Prompt-Isolation, Input-Sanitization, Output-Filterung und PII-Detection in Antworten.',
legalBasis: 'Art. 15 AI Act, Art. 32 DSGVO',
evidenceTypes: ['Security-Policy', 'Prompt-Injection-Test-Report', 'Filter-Konfiguration'],
addressesRiskIds: ['R-AI-SEC-02', 'R-AI-DATA-04'],
effectiveness: 'high',
},
{
id: 'M-AI-SEC-04',
type: 'technical',
sdmGoals: ['vertraulichkeit'],
title: 'PII-Detection und Daten-Redaction in KI-Ausgaben',
description: 'Automatisierte Erkennung und Entfernung personenbezogener Daten (PII) in KI-Ausgaben. Echtzeit-Filterung sensibler Informationen vor der Auslieferung an Nutzer.',
legalBasis: 'Art. 32 DSGVO, Art. 25 DSGVO',
evidenceTypes: ['PII-Detection-Konfiguration', 'Redaction-Logs', 'False-Positive-Rate'],
addressesRiskIds: ['R-AI-SEC-02', 'R-AI-PRIV-02'],
effectiveness: 'high',
},
{
id: 'M-AI-SEC-05',
type: 'technical',
sdmGoals: ['integritaet', 'verfuegbarkeit'],
title: 'Retrieval-Augmented Generation (RAG) gegen Halluzinationen',
description: 'Einsatz von RAG-Systemen, die KI-Antworten auf verifizierte Quelldokumente stuetzen. Quellenangabe in jeder Antwort fuer Nachvollziehbarkeit.',
legalBasis: 'Art. 15 AI Act',
evidenceTypes: ['RAG-Architektur-Dokumentation', 'Quellengenauigkeits-Report', 'Halluzinations-Rate'],
addressesRiskIds: ['R-AI-SEC-04', 'R-AI-EXPL-01'],
effectiveness: 'high',
},
// =========================================================================
// AUTOMATISIERTE ENTSCHEIDUNGEN (HUMAN OVERSIGHT)
// =========================================================================
{
id: 'M-AI-AUTO-01',
type: 'organizational',
sdmGoals: ['intervenierbarkeit'],
title: 'Human-in-the-Loop / Human-on-the-Loop Prozess',
description: 'Etablierung eines strukturierten Prozesses fuer menschliche Aufsicht: Definierte Eskalationsschwellen, geschulte Entscheider, dokumentierte Ueberpruefungsschritte.',
legalBasis: 'Art. 14 AI Act, Art. 22 Abs. 3 DSGVO',
evidenceTypes: ['Human-Oversight-Prozessdokumentation', 'Eskalationsmatrix', 'Schulungsnachweis'],
addressesRiskIds: ['R-AI-AUTO-01', 'R-AI-AUTO-02', 'R-AI-MON-02'],
effectiveness: 'high',
},
{
id: 'M-AI-AUTO-02',
type: 'technical',
sdmGoals: ['intervenierbarkeit', 'transparenz'],
title: 'Konfidenzwert-basierte Entscheidungssteuerung',
description: 'KI-System gibt bei jeder Entscheidung einen Konfidenzwert aus. Entscheidungen unterhalb eines definierten Schwellwerts werden automatisch an menschliche Pruefer eskaliert.',
legalBasis: 'Art. 14 AI Act',
evidenceTypes: ['Konfidenzwert-Policy', 'Schwellwert-Konfiguration', 'Eskalationsstatistik'],
addressesRiskIds: ['R-AI-AUTO-01', 'R-AI-SEC-04'],
effectiveness: 'high',
},
{
id: 'M-AI-AUTO-03',
type: 'legal',
sdmGoals: ['intervenierbarkeit'],
title: 'Widerspruchsrecht und manuelle Ueberpruefung',
description: 'Implementierung eines transparenten Prozesses, ueber den Betroffene einer KI-Entscheidung widersprechen und eine manuelle Ueberpruefung durch eine qualifizierte Person verlangen koennen.',
legalBasis: 'Art. 22 Abs. 3 DSGVO',
evidenceTypes: ['Widerspruchsformular', 'Prozessbeschreibung', 'Bearbeitungsstatistik'],
addressesRiskIds: ['R-AI-AUTO-01', 'R-AI-AUTO-03'],
effectiveness: 'high',
},
{
id: 'M-AI-AUTO-04',
type: 'organizational',
sdmGoals: ['intervenierbarkeit'],
title: 'Anti-Automation-Bias-Training',
description: 'Schulung der menschlichen Ueberpruefer gegen Automation Bias: Kritisches Hinterfragen von KI-Empfehlungen, regelmaessige Kalibierung, Entscheidungsdokumentation.',
legalBasis: 'Art. 14 Abs. 4 AI Act',
evidenceTypes: ['Schulungsunterlagen', 'Teilnahmebestaetigung', 'Ueberpruefungsstatistik'],
addressesRiskIds: ['R-AI-AUTO-02'],
effectiveness: 'medium',
},
{
id: 'M-AI-AUTO-05',
type: 'legal',
sdmGoals: ['intervenierbarkeit', 'transparenz'],
title: 'Informationspflicht bei automatisierter Entscheidungsfindung',
description: 'Proaktive Information der Betroffenen ueber automatisierte Entscheidungsfindung, die angewandte Logik, die Tragweite und die Rechte der Betroffenen (Art. 13 Abs. 2 lit. f DSGVO).',
legalBasis: 'Art. 13 Abs. 2 lit. f, Art. 14 Abs. 2 lit. g DSGVO',
evidenceTypes: ['Datenschutzerklaerung-Auszug', 'Informationsschreiben', 'Transparenzhinweise-UI'],
addressesRiskIds: ['R-AI-AUTO-03'],
effectiveness: 'medium',
},
// =========================================================================
// MONITORING & QUALITAETSSICHERUNG
// =========================================================================
{
id: 'M-AI-MON-01',
type: 'technical',
sdmGoals: ['integritaet', 'verfuegbarkeit'],
title: 'KI-Performance-Monitoring und Drift-Detection',
description: 'Kontinuierliches Monitoring der KI-Leistungsmetriken (Accuracy, F1-Score, Fairness). Automatisierte Erkennung von Data Drift und Concept Drift mit Alerting.',
legalBasis: 'Art. 9 Abs. 2 AI Act, Art. 32 DSGVO',
evidenceTypes: ['Monitoring-Dashboard', 'Drift-Detection-Alerts', 'Performance-Trend-Report'],
addressesRiskIds: ['R-AI-MON-01', 'R-AI-DATA-01', 'R-AI-BIAS-02', 'R-AI-SEC-01'],
effectiveness: 'high',
},
{
id: 'M-AI-MON-02',
type: 'technical',
sdmGoals: ['integritaet', 'transparenz'],
title: 'KI-Audit-Logging und Entscheidungsprotokollierung',
description: 'Vollstaendige Protokollierung aller KI-Entscheidungen mit Eingabe, Ausgabe, Konfidenzwert und Zeitstempel. Aufbewahrung gemaess Art. 12 AI Act.',
legalBasis: 'Art. 12 AI Act, Art. 5 Abs. 2 DSGVO',
evidenceTypes: ['Audit-Log-Konfiguration', 'Log-Retention-Policy', 'Beispiel-Audit-Trail'],
addressesRiskIds: ['R-AI-MON-01', 'R-AI-BIAS-02', 'R-AI-SEC-02'],
effectiveness: 'medium',
},
{
id: 'M-AI-MON-03',
type: 'technical',
sdmGoals: ['verfuegbarkeit', 'intervenierbarkeit'],
title: 'Kill-Switch und Fallback-Mechanismus',
description: 'Implementierung eines Notfall-Abschaltmechanismus (Kill Switch) fuer das KI-System. Automatischer Fallback auf regelbasierte Verarbeitung oder manuelle Bearbeitung bei Stoerungen.',
legalBasis: 'Art. 14 Abs. 4 lit. e AI Act',
evidenceTypes: ['Kill-Switch-Dokumentation', 'Fallback-Prozess', 'Notfall-Testprotokoll'],
addressesRiskIds: ['R-AI-MON-02', 'R-AI-AUTO-01'],
effectiveness: 'high',
},
{
id: 'M-AI-MON-04',
type: 'organizational',
sdmGoals: ['verfuegbarkeit'],
title: 'Regelmaessiger KI-Systemtest und Wartungsplan',
description: 'Definierter Wartungsplan mit regelmaessigen Systemtests, Modell-Retraining-Zyklen und Leistungsueberpruefungen. Dokumentation aller Aenderungen und deren Auswirkungen.',
legalBasis: 'Art. 9 Abs. 3 AI Act',
evidenceTypes: ['Wartungsplan', 'Testprotokolle', 'Aenderungsdokumentation'],
addressesRiskIds: ['R-AI-MON-02', 'R-AI-MON-01'],
effectiveness: 'medium',
},
// =========================================================================
// PRIVATSPHAERE & DATENSCHUTZ
// =========================================================================
{
id: 'M-AI-PRIV-01',
type: 'technical',
sdmGoals: ['datenminimierung', 'nichtverkettung'],
title: 'Privacy-Preserving AI (Differential Privacy, Federated Learning)',
description: 'Einsatz von Privacy-Enhancing Technologies: Differential Privacy beim Training, Federated Learning fuer dezentrales Training, K-Anonymitaet bei Trainingsdaten.',
legalBasis: 'Art. 25 DSGVO, Art. 10 Abs. 5 AI Act',
evidenceTypes: ['Privacy-Technik-Beschreibung', 'Epsilon-Budget-Dokumentation', 'Anonymisierungs-Nachweis'],
addressesRiskIds: ['R-AI-PRIV-01', 'R-AI-DATA-02', 'R-AI-PRIV-04'],
effectiveness: 'high',
},
{
id: 'M-AI-PRIV-02',
type: 'technical',
sdmGoals: ['vertraulichkeit', 'datenminimierung'],
title: 'Trainingsdaten-Anonymisierung und Pseudonymisierung',
description: 'Konsequente Anonymisierung oder Pseudonymisierung personenbezogener Daten vor dem KI-Training. Anwendung von Data Masking, Tokenisierung und synthetischer Datengenerierung.',
legalBasis: 'Art. 25 Abs. 1 DSGVO, Art. 32 DSGVO',
evidenceTypes: ['Anonymisierungskonzept', 'Re-Identifizierungs-Risiko-Bewertung', 'Pseudonymisierungs-Policy'],
addressesRiskIds: ['R-AI-DATA-02', 'R-AI-SEC-03', 'R-AI-PRIV-02'],
effectiveness: 'high',
},
{
id: 'M-AI-PRIV-03',
type: 'organizational',
sdmGoals: ['datenminimierung'],
title: 'Datenminimierung im KI-Lebenszyklus',
description: 'Systematische Ueberpruefung und Minimierung der verarbeiteten Daten in jeder Phase des KI-Lebenszyklus: Training, Validierung, Inferenz. Loeschkonzept fuer nicht mehr benoetigte Daten.',
legalBasis: 'Art. 5 Abs. 1 lit. c DSGVO, Art. 10 AI Act',
evidenceTypes: ['Datenminimierungs-Assessment', 'Loeschkonzept-KI', 'Datenbestandsbericht'],
addressesRiskIds: ['R-AI-DATA-03', 'R-AI-PRIV-01'],
effectiveness: 'medium',
},
{
id: 'M-AI-PRIV-04',
type: 'technical',
sdmGoals: ['vertraulichkeit'],
title: 'Machine Unlearning / Modell-Bereinigung',
description: 'Faehigkeit, einzelne Datenpunkte nachtraeglich aus dem trainierten Modell zu entfernen (Machine Unlearning). Unterstuetzung des Rechts auf Loeschung (Art. 17 DSGVO) auch fuer Trainingsdaten.',
legalBasis: 'Art. 17 DSGVO',
evidenceTypes: ['Unlearning-Verfahrensbeschreibung', 'Loeschanfrage-Protokoll', 'Verifikations-Test'],
addressesRiskIds: ['R-AI-SEC-03', 'R-AI-PRIV-02'],
effectiveness: 'medium',
},
{
id: 'M-AI-PRIV-05',
type: 'technical',
sdmGoals: ['vertraulichkeit', 'nichtverkettung'],
title: 'Self-Hosting / On-Premises KI-Betrieb',
description: 'Betrieb des KI-Systems auf eigener Infrastruktur (Self-Hosting/On-Premises) oder in EU-Rechenzentren, um Drittlandtransfers zu vermeiden und Datensouveraenitaet zu gewaehrleisten.',
legalBasis: 'Art. 44 ff. DSGVO',
evidenceTypes: ['Hosting-Dokumentation', 'Standort-Nachweis', 'Infrastruktur-Audit'],
addressesRiskIds: ['R-AI-PRIV-03'],
effectiveness: 'high',
},
{
id: 'M-AI-PRIV-06',
type: 'legal',
sdmGoals: ['nichtverkettung'],
title: 'Standardvertragsklauseln und TIA fuer KI-Cloud-Dienste',
description: 'Bei Nutzung von Cloud-basierten KI-Diensten mit Drittlandtransfer: Abschluss von Standardvertragsklauseln (SCC), Durchfuehrung eines Transfer Impact Assessment (TIA) und ergaenzende Massnahmen.',
legalBasis: 'Art. 46 Abs. 2 lit. c DSGVO, Schrems-II',
evidenceTypes: ['SCC-Vertrag', 'Transfer-Impact-Assessment', 'Ergaenzende-Massnahmen-Dokumentation'],
addressesRiskIds: ['R-AI-PRIV-03'],
effectiveness: 'medium',
},
]
// =============================================================================
// HELPER FUNCTIONS
// =============================================================================
/**
* Gibt KI-Massnahmen zurueck, die ein bestimmtes Risiko adressieren
*/
export function getAIMitigationsForRisk(riskId: string): CatalogMitigation[] {
return AI_MITIGATION_LIBRARY.filter(m => m.addressesRiskIds.includes(riskId))
}
/**
* Gibt KI-Massnahmen zurueck, die einem bestimmten SDM-Gewaehrleistungsziel dienen
*/
export function getAIMitigationsBySDMGoal(goal: string): CatalogMitigation[] {
return AI_MITIGATION_LIBRARY.filter(m => m.sdmGoals.includes(goal as any))
}
/**
* Gibt alle technischen KI-Massnahmen zurueck
*/
export function getTechnicalAIMitigations(): CatalogMitigation[] {
return AI_MITIGATION_LIBRARY.filter(m => m.type === 'technical')
}

View File

@@ -0,0 +1,375 @@
/**
* DSFA KI-Risikokatalog - Vordefinierte KI-spezifische Risiken
*
* ~25 Risiken gegliedert nach:
* - Bias & Diskriminierung
* - Erklaerbarkeit & Transparenz
* - Datenqualitaet & Training
* - Sicherheit & Robustheit
* - Automatisierte Entscheidungen
* - Ueberwachung & Kontrolle
* - Privatsphaere & Datenschutz
*
* Quellen: AI Act (EU 2024/1689), Art. 22 DSGVO, EDPB Guidelines,
* BSI-TR-03161, SDM V2.0
*/
import type { CatalogRisk } from './risk-catalog'
// =============================================================================
// KI-RISIKOKATALOG
// =============================================================================
export const AI_RISK_CATALOG: CatalogRisk[] = [
// =========================================================================
// BIAS & DISKRIMINIERUNG
// =========================================================================
{
id: 'R-AI-BIAS-01',
category: 'rights_freedoms',
sdmGoal: 'nichtverkettung',
title: 'Algorithmische Diskriminierung durch verzerrte Trainingsdaten',
description: 'Das KI-System reproduziert oder verstaerkt bestehende gesellschaftliche Vorurteile durch unausgewogene oder historisch verzerrte Trainingsdaten, was zu diskriminierenden Ergebnissen fuehrt.',
impactExamples: ['Benachteiligung geschuetzter Gruppen', 'Ungleichbehandlung bei Bewerbungsverfahren', 'Diskriminierende Kreditvergabe'],
typicalLikelihood: 'medium',
typicalImpact: 'high',
wp248Criteria: ['K1', 'K7', 'K8'],
applicableTo: ['decision_support', 'automated_processing', 'recommendation', 'predictive', 'analytics'],
mitigationIds: ['M-AI-BIAS-01', 'M-AI-BIAS-02', 'M-AI-DATA-01'],
},
{
id: 'R-AI-BIAS-02',
category: 'rights_freedoms',
sdmGoal: 'nichtverkettung',
title: 'Feedback-Loop-Verstaerkung von Bias',
description: 'KI-Entscheidungen beeinflussen kuenftige Trainingsdaten und verstaerken damit bestehende Verzerrungen in einem Teufelskreis (Feedback Loop).',
impactExamples: ['Zunehmende Polarisierung', 'Verstaerkte Ungleichbehandlung ueber Zeit', 'Systematische Benachteiligung'],
typicalLikelihood: 'medium',
typicalImpact: 'high',
wp248Criteria: ['K1', 'K8'],
applicableTo: ['recommendation', 'predictive', 'automated_processing'],
mitigationIds: ['M-AI-BIAS-02', 'M-AI-MON-01', 'M-AI-MON-02'],
},
{
id: 'R-AI-BIAS-03',
category: 'rights_freedoms',
sdmGoal: 'intervenierbarkeit',
title: 'Proxy-Diskriminierung durch korrelierte Merkmale',
description: 'Das KI-System diskriminiert indirekt anhand von Merkmalen, die mit geschuetzten Eigenschaften korrelieren (z.B. Postleitzahl als Proxy fuer Ethnizitaet).',
impactExamples: ['Indirekte Diskriminierung', 'Verletzung des Gleichheitsgrundsatzes', 'Schwer nachweisbare Benachteiligung'],
typicalLikelihood: 'medium',
typicalImpact: 'high',
wp248Criteria: ['K1', 'K6'],
applicableTo: ['predictive', 'decision_support', 'automated_processing', 'analytics'],
mitigationIds: ['M-AI-BIAS-01', 'M-AI-BIAS-03', 'M-AI-EXPL-01'],
},
// =========================================================================
// ERKLAERBARKEIT & TRANSPARENZ
// =========================================================================
{
id: 'R-AI-EXPL-01',
category: 'rights_freedoms',
sdmGoal: 'transparenz',
title: 'Fehlende Erklaerbarkeit von KI-Entscheidungen (Black Box)',
description: 'Entscheidungen des KI-Systems koennen nicht nachvollzogen oder erklaert werden, was die Wahrnehmung von Betroffenenrechten und die Aufsicht erschwert.',
impactExamples: ['Betroffene koennen Entscheidungen nicht anfechten', 'Aufsichtsbehoerden koennen nicht pruefen', 'Vertrauensverlust'],
typicalLikelihood: 'high',
typicalImpact: 'medium',
wp248Criteria: ['K2', 'K8', 'K9'],
applicableTo: ['decision_support', 'automated_processing', 'predictive', 'recommendation'],
mitigationIds: ['M-AI-EXPL-01', 'M-AI-EXPL-02', 'M-AI-EXPL-03'],
},
{
id: 'R-AI-EXPL-02',
category: 'rights_freedoms',
sdmGoal: 'transparenz',
title: 'Taeuschung ueber KI-Einsatz (fehlende Kennzeichnung)',
description: 'Nutzer wissen nicht, dass sie mit einem KI-System interagieren oder dass Inhalte KI-generiert sind (Verstoss gegen Transparenzpflicht AI Act Art. 50).',
impactExamples: ['Vertrauensmissbrauch', 'Manipulation durch Deepfakes', 'Fehlende informierte Einwilligung'],
typicalLikelihood: 'medium',
typicalImpact: 'medium',
wp248Criteria: ['K8'],
applicableTo: ['chatbot', 'content_generation', 'speech_processing', 'image_recognition'],
mitigationIds: ['M-AI-EXPL-03', 'M-AI-TRANS-01'],
},
{
id: 'R-AI-EXPL-03',
category: 'rights_freedoms',
sdmGoal: 'transparenz',
title: 'Unzureichende Dokumentation der KI-Entscheidungslogik',
description: 'Die Funktionsweise des KI-Systems ist nicht ausreichend dokumentiert, um die gesetzlichen Anforderungen an Technische Dokumentation (Art. 11 AI Act) zu erfuellen.',
impactExamples: ['Verstoss gegen Dokumentationspflichten', 'Keine Reproduzierbarkeit', 'Erschwerter Audit'],
typicalLikelihood: 'medium',
typicalImpact: 'medium',
wp248Criteria: ['K8'],
applicableTo: ['decision_support', 'automated_processing', 'predictive', 'recommendation', 'analytics'],
mitigationIds: ['M-AI-EXPL-02', 'M-AI-DOC-01'],
},
// =========================================================================
// DATENQUALITAET & TRAINING
// =========================================================================
{
id: 'R-AI-DATA-01',
category: 'integrity',
sdmGoal: 'integritaet',
title: 'Schlechte Trainingsdatenqualitaet fuehrt zu fehlerhaften Ergebnissen',
description: 'Unvollstaendige, veraltete oder fehlerhafte Trainingsdaten fuehren zu unzuverlaessigen KI-Ergebnissen, die Entscheidungen negativ beeinflussen.',
impactExamples: ['Falsche Vorhersagen', 'Fehlerhafte Klassifizierungen', 'Unzuverlaessige Empfehlungen'],
typicalLikelihood: 'medium',
typicalImpact: 'medium',
wp248Criteria: ['K8'],
applicableTo: ['predictive', 'decision_support', 'recommendation', 'image_recognition', 'analytics'],
mitigationIds: ['M-AI-DATA-01', 'M-AI-DATA-02', 'M-AI-MON-01'],
},
{
id: 'R-AI-DATA-02',
category: 'confidentiality',
sdmGoal: 'vertraulichkeit',
title: 'Unbefugte Nutzung personenbezogener Daten im Training',
description: 'Personenbezogene Daten werden ohne ausreichende Rechtsgrundlage oder Einwilligung fuer das Training des KI-Modells verwendet.',
impactExamples: ['Verletzung des Zweckbindungsgrundsatzes', 'Fehlende Rechtsgrundlage', 'Verstoss gegen Informationspflichten'],
typicalLikelihood: 'medium',
typicalImpact: 'high',
wp248Criteria: ['K4', 'K5', 'K8'],
applicableTo: ['content_generation', 'recommendation', 'predictive', 'speech_processing', 'image_recognition'],
mitigationIds: ['M-AI-DATA-03', 'M-AI-PRIV-01', 'M-AI-PRIV-02'],
},
{
id: 'R-AI-DATA-03',
category: 'integrity',
sdmGoal: 'datenminimierung',
title: 'Uebermassige Datenerhebung fuer KI-Training',
description: 'Fuer das Training werden mehr personenbezogene Daten erhoben als fuer den Zweck erforderlich, was den Grundsatz der Datenminimierung verletzt.',
impactExamples: ['Verstoss gegen Art. 5 Abs. 1 lit. c DSGVO', 'Erhoehtes Risiko bei Datenleck', 'Unnoetige Profilbildung'],
typicalLikelihood: 'medium',
typicalImpact: 'medium',
wp248Criteria: ['K5', 'K8'],
applicableTo: ['predictive', 'recommendation', 'analytics', 'speech_processing'],
mitigationIds: ['M-AI-PRIV-01', 'M-AI-PRIV-03', 'M-AI-DATA-01'],
},
{
id: 'R-AI-DATA-04',
category: 'integrity',
sdmGoal: 'integritaet',
title: 'Data Poisoning / Manipulation der Trainingsdaten',
description: 'Boesartige Akteure fuegen gezielt manipulierte Daten in den Trainingsdatensatz ein, um das Verhalten des KI-Systems zu verfaelschen.',
impactExamples: ['Gezielte Fehlklassifizierungen', 'Umgehung von Sicherheitsmechanismen', 'Vertrauensverlust'],
typicalLikelihood: 'low',
typicalImpact: 'high',
wp248Criteria: ['K8'],
applicableTo: ['image_recognition', 'content_generation', 'predictive', 'decision_support'],
mitigationIds: ['M-AI-SEC-01', 'M-AI-DATA-02', 'M-AI-SEC-03'],
},
// =========================================================================
// SICHERHEIT & ROBUSTHEIT
// =========================================================================
{
id: 'R-AI-SEC-01',
category: 'availability',
sdmGoal: 'verfuegbarkeit',
title: 'Adversarial Attacks auf KI-Modell',
description: 'Angreifer nutzen gezielt manipulierte Eingaben (Adversarial Examples), um das KI-System zu falschen Ausgaben zu verleiten.',
impactExamples: ['Umgehung von Schutzmechanismen', 'Falsche Identifikation', 'Fehlerhafte Entscheidungen'],
typicalLikelihood: 'low',
typicalImpact: 'high',
wp248Criteria: ['K8'],
applicableTo: ['image_recognition', 'speech_processing', 'decision_support', 'automated_processing'],
mitigationIds: ['M-AI-SEC-01', 'M-AI-SEC-02', 'M-AI-MON-01'],
},
{
id: 'R-AI-SEC-02',
category: 'confidentiality',
sdmGoal: 'vertraulichkeit',
title: 'Prompt Injection / Jailbreaking',
description: 'Nutzer umgehen durch manipulierte Eingaben die Sicherheitsschranken des KI-Systems und extrahieren vertrauliche Informationen oder loesen unerwuenschtes Verhalten aus.',
impactExamples: ['Offenlegung von Systemprompts', 'Extraktion von Trainingsdaten', 'Generierung schaedlicher Inhalte'],
typicalLikelihood: 'high',
typicalImpact: 'medium',
wp248Criteria: ['K4', 'K8'],
applicableTo: ['chatbot', 'content_generation', 'decision_support'],
mitigationIds: ['M-AI-SEC-03', 'M-AI-SEC-04', 'M-AI-MON-02'],
},
{
id: 'R-AI-SEC-03',
category: 'confidentiality',
sdmGoal: 'vertraulichkeit',
title: 'Model Inversion / Membership Inference',
description: 'Angreifer rekonstruieren Trainingsdaten aus dem KI-Modell oder stellen fest, ob bestimmte Daten im Training verwendet wurden.',
impactExamples: ['Rekonstruktion personenbezogener Daten', 'Verletzung der Vertraulichkeit', 'Re-Identifizierung anonymisierter Daten'],
typicalLikelihood: 'low',
typicalImpact: 'high',
wp248Criteria: ['K4', 'K8'],
applicableTo: ['predictive', 'recommendation', 'image_recognition', 'content_generation'],
mitigationIds: ['M-AI-PRIV-02', 'M-AI-SEC-01', 'M-AI-PRIV-04'],
},
{
id: 'R-AI-SEC-04',
category: 'availability',
sdmGoal: 'verfuegbarkeit',
title: 'Halluzination / Generierung falscher Informationen',
description: 'Das KI-System generiert plausibel klingende aber faktisch falsche Informationen (Halluzinationen), die zu Fehlentscheidungen fuehren koennen.',
impactExamples: ['Falsche Rechtsauskunft', 'Fehlerhafte medizinische Empfehlung', 'Vertrauensverlust in das System'],
typicalLikelihood: 'high',
typicalImpact: 'medium',
wp248Criteria: ['K8', 'K9'],
applicableTo: ['chatbot', 'content_generation', 'decision_support', 'translation'],
mitigationIds: ['M-AI-SEC-05', 'M-AI-MON-01', 'M-AI-AUTO-02'],
},
// =========================================================================
// AUTOMATISIERTE ENTSCHEIDUNGEN (ART. 22 DSGVO)
// =========================================================================
{
id: 'R-AI-AUTO-01',
category: 'rights_freedoms',
sdmGoal: 'intervenierbarkeit',
title: 'Automatisierte Einzelentscheidung ohne menschliche Beteiligung',
description: 'Das KI-System trifft Entscheidungen mit Rechtswirkung ohne angemessene menschliche Beteiligung, was gegen Art. 22 Abs. 1 DSGVO verstoesst.',
impactExamples: ['Rechtswidrige automatisierte Ablehnung', 'Fehlende Anfechtungsmoeglichkeit', 'Verletzung der Menschenwuerde'],
typicalLikelihood: 'medium',
typicalImpact: 'high',
wp248Criteria: ['K2', 'K8', 'K9'],
applicableTo: ['automated_processing', 'decision_support', 'predictive'],
mitigationIds: ['M-AI-AUTO-01', 'M-AI-AUTO-02', 'M-AI-AUTO-03'],
},
{
id: 'R-AI-AUTO-02',
category: 'rights_freedoms',
sdmGoal: 'intervenierbarkeit',
title: 'Unzureichende menschliche Aufsicht (Human Oversight)',
description: 'Die menschliche Aufsicht ueber das KI-System ist unzureichend oder pro forma, sodass problematische Entscheidungen nicht erkannt und korrigiert werden.',
impactExamples: ['Automation Bias bei Entscheidern', 'Blindes Vertrauen in KI-Ergebnis', 'Fehlende Korrekturmoeglichkeit'],
typicalLikelihood: 'medium',
typicalImpact: 'high',
wp248Criteria: ['K2', 'K8'],
applicableTo: ['decision_support', 'automated_processing', 'predictive', 'analytics'],
mitigationIds: ['M-AI-AUTO-01', 'M-AI-AUTO-04', 'M-AI-EXPL-01'],
},
{
id: 'R-AI-AUTO-03',
category: 'rights_freedoms',
sdmGoal: 'intervenierbarkeit',
title: 'Fehlende Widerspruchsmoeglichkeit bei KI-Entscheidungen',
description: 'Betroffene haben keine effektive Moeglichkeit, einer KI-gestuetzten Entscheidung zu widersprechen oder eine manuelle Ueberpruefung zu verlangen.',
impactExamples: ['Verletzung von Art. 22 Abs. 3 DSGVO', 'Rechtsschutzluecke', 'Machtungleichgewicht'],
typicalLikelihood: 'medium',
typicalImpact: 'high',
wp248Criteria: ['K2', 'K9'],
applicableTo: ['automated_processing', 'decision_support', 'predictive'],
mitigationIds: ['M-AI-AUTO-03', 'M-AI-AUTO-05'],
},
// =========================================================================
// UEBERWACHUNG & KONTROLLE
// =========================================================================
{
id: 'R-AI-MON-01',
category: 'integrity',
sdmGoal: 'integritaet',
title: 'Model Drift - Verschlechterung der KI-Leistung ueber Zeit',
description: 'Die Genauigkeit und Zuverlaessigkeit des KI-Modells verschlechtert sich durch veraenderte Datenverteilungen (Data Drift) oder Konzeptaenderungen (Concept Drift).',
impactExamples: ['Zunehmend fehlerhafte Entscheidungen', 'Unbemerkte Qualitaetsverschlechterung', 'Veraenderte Diskriminierungsmuster'],
typicalLikelihood: 'high',
typicalImpact: 'medium',
wp248Criteria: ['K8'],
applicableTo: ['predictive', 'recommendation', 'decision_support', 'analytics', 'image_recognition'],
mitigationIds: ['M-AI-MON-01', 'M-AI-MON-02', 'M-AI-DATA-02'],
},
{
id: 'R-AI-MON-02',
category: 'availability',
sdmGoal: 'verfuegbarkeit',
title: 'Fehlende Notfallmassnahmen bei KI-Fehlfunktion',
description: 'Es existieren keine Fallback-Mechanismen oder Notfallprozeduren fuer den Fall, dass das KI-System fehlerhafte oder schaedliche Ergebnisse produziert.',
impactExamples: ['Langandauernde Stoerung', 'Kaskadierende Fehler', 'Keine manuelle Alternative'],
typicalLikelihood: 'medium',
typicalImpact: 'high',
wp248Criteria: ['K8'],
applicableTo: ['automated_processing', 'decision_support', 'chatbot', 'predictive'],
mitigationIds: ['M-AI-MON-03', 'M-AI-AUTO-01', 'M-AI-MON-04'],
},
// =========================================================================
// PRIVATSPHAERE & DATENSCHUTZ
// =========================================================================
{
id: 'R-AI-PRIV-01',
category: 'confidentiality',
sdmGoal: 'datenminimierung',
title: 'Unbeabsichtigte Profilbildung durch KI-Analyse',
description: 'Das KI-System erstellt durch Zusammenfuehrung und Analyse verschiedener Datenpunkte detaillierte Persoenlichkeitsprofile, die ueber den urspruenglichen Verarbeitungszweck hinausgehen.',
impactExamples: ['Unerlaubtes Profiling', 'Verletzung der Zweckbindung', 'Erstellung umfassender Persoenlichkeitsbilder'],
typicalLikelihood: 'medium',
typicalImpact: 'high',
wp248Criteria: ['K1', 'K6', 'K8'],
applicableTo: ['analytics', 'recommendation', 'predictive', 'chatbot'],
mitigationIds: ['M-AI-PRIV-01', 'M-AI-PRIV-03', 'M-AI-DATA-03'],
},
{
id: 'R-AI-PRIV-02',
category: 'confidentiality',
sdmGoal: 'vertraulichkeit',
title: 'Datenleck durch KI-Ausgaben (Output Leakage)',
description: 'Das KI-System gibt in seinen Antworten unbeabsichtigt personenbezogene oder vertrauliche Daten aus den Trainingsdaten preis.',
impactExamples: ['Preisgabe von Trainingsdaten', 'Offenlegung vertraulicher Geschaeftsinformationen', 'Verletzung des Berufsgeheimnisses'],
typicalLikelihood: 'medium',
typicalImpact: 'high',
wp248Criteria: ['K4', 'K8'],
applicableTo: ['chatbot', 'content_generation', 'decision_support', 'translation'],
mitigationIds: ['M-AI-PRIV-02', 'M-AI-SEC-04', 'M-AI-PRIV-04'],
},
{
id: 'R-AI-PRIV-03',
category: 'confidentiality',
sdmGoal: 'nichtverkettung',
title: 'Drittlandtransfer durch Cloud-basierte KI-Dienste',
description: 'Personenbezogene Daten werden zur KI-Verarbeitung in Drittlaender uebertragen, ohne dass angemessene Garantien bestehen (Art. 44 ff. DSGVO).',
impactExamples: ['Unzulaessiger Drittlandtransfer', 'Zugriff durch auslaendische Behoerden', 'Verlust der Datensouveraenitaet'],
typicalLikelihood: 'medium',
typicalImpact: 'high',
wp248Criteria: ['K5', 'K8'],
applicableTo: ['chatbot', 'content_generation', 'translation', 'speech_processing', 'image_recognition'],
mitigationIds: ['M-AI-PRIV-05', 'M-AI-PRIV-06'],
},
{
id: 'R-AI-PRIV-04',
category: 'rights_freedoms',
sdmGoal: 'datenminimierung',
title: 'Verarbeitung besonderer Datenkategorien durch KI ohne explizite Einwilligung',
description: 'Das KI-System verarbeitet oder leitet besondere Kategorien personenbezogener Daten ab (Art. 9 DSGVO), z.B. Gesundheitsdaten aus Schreibmustern oder ethnische Herkunft aus Bildern.',
impactExamples: ['Verstoss gegen Art. 9 DSGVO', 'Diskriminierung aufgrund sensibler Merkmale', 'Verletzung der Menschenwuerde'],
typicalLikelihood: 'medium',
typicalImpact: 'high',
wp248Criteria: ['K4', 'K7', 'K8'],
applicableTo: ['image_recognition', 'speech_processing', 'analytics', 'predictive'],
mitigationIds: ['M-AI-PRIV-01', 'M-AI-DATA-03', 'M-AI-BIAS-01'],
},
]
// =============================================================================
// HELPER FUNCTIONS
// =============================================================================
/**
* Gibt KI-Risiken zurueck, die fuer einen bestimmten Use-Case-Typ relevant sind
*/
export function getAIRisksForUseCaseType(useCaseType: string): CatalogRisk[] {
return AI_RISK_CATALOG.filter(risk => risk.applicableTo.includes(useCaseType))
}
/**
* Gibt KI-Risiken zurueck, die einem bestimmten SDM-Gewaehrleistungsziel zugeordnet sind
*/
export function getAIRisksBySDMGoal(goal: string): CatalogRisk[] {
return AI_RISK_CATALOG.filter(risk => risk.sdmGoal === goal)
}
/**
* Gibt alle KI-Risiken zurueck, die fuer Art. 22 DSGVO relevant sind
*/
export function getArt22Risks(): CatalogRisk[] {
return AI_RISK_CATALOG.filter(risk => risk.wp248Criteria.includes('K2'))
}

View File

@@ -0,0 +1,622 @@
/**
* EU/EWR Rechtsgrundlagen pro Land
*
* Strukturierter Katalog der datenschutzrechtlichen Grundlagen fuer EU/EWR/DACH.
* 3-Schicht-Architektur: EU-Basis → Nationale Ergaenzungen → Dokumentspezifische Bausteine.
*
* Quellen: Amtliche Rechtstexte (gemeinfrei gemaess §5 UrhG / Art. 1 EU-Beschluss 2011/833/EU),
* EDPB-Leitlinien (CC-BY-4.0), nationale Aufsichtsbehoerden.
*/
// =============================================================================
// Types
// =============================================================================
export type CountryCode =
| 'EU' // EU-weite Basis
| 'DE' // Deutschland
| 'AT' // Oesterreich
| 'CH' // Schweiz (nicht EU, eigenes DSG)
| 'FR' // Frankreich
| 'ES' // Spanien
| 'IT' // Italien
| 'NL' // Niederlande
| 'GB' // Grossbritannien (post-Brexit)
| 'NO' // Norwegen (EWR)
| 'IS' // Island (EWR)
export type LegalDocumentType =
| 'regulation' // EU-Verordnung (unmittelbar geltendes Recht)
| 'directive' // EU-Richtlinie (nationale Umsetzung noetig)
| 'national_law' // Nationales Gesetz
| 'guideline' // Behoerdliche Leitlinie
| 'supervisory' // Aufsichtsbehoerden-Praxis
export type LicenseType =
| 'PUBLIC_DOMAIN' // Amtliche Werke, gemeinfrei
| 'CC-BY-4.0' // Creative Commons Attribution
| 'OGL-3.0' // UK Open Government Licence
| 'DL-DE-BY-2.0' // Datenlizenz Deutschland
/** Welche SDK-Dokumenttypen sind EU-weit einheitlich vs. laenderspezifisch? */
export type DocumentUniformity = 'eu_uniform' | 'needs_national_supplement' | 'country_specific'
// =============================================================================
// Interfaces
// =============================================================================
export interface LegalFramework {
id: string
countryCode: CountryCode
name: string
fullName: string
abbreviation: string
type: LegalDocumentType
description: string
sourceUrl: string | null
license: LicenseType
licenseNote: string
/** Welche DSGVO-Oeffnungsklauseln bedient dieses Gesetz? */
gdprOpeningClauses?: string[]
/** Spezialregelungen, die ueber die DSGVO hinausgehen */
specialProvisions?: string[]
/** Zustaendige Aufsichtsbehoerde(n) */
supervisoryAuthorities?: SupervisoryAuthority[]
/** Relevanz-Phase: wann sollte diese Quelle ins RAG? */
ragPhase: 1 | 2 | 3
}
export interface SupervisoryAuthority {
name: string
abbreviation: string
url: string
country: CountryCode
}
export interface DocumentTypeMatrix {
documentType: string
label: string
uniformity: DocumentUniformity
description: string
/** Welche Laender brauchen spezifische Logik? */
countrySpecificNotes?: Record<CountryCode, string>
}
// =============================================================================
// EU-Basis (Phase 1 — gilt fuer gesamte EU/EWR)
// =============================================================================
export const EU_BASE_FRAMEWORKS: LegalFramework[] = [
{
id: 'EU-GDPR',
countryCode: 'EU',
name: 'DSGVO / GDPR',
fullName: 'Verordnung (EU) 2016/679 — Datenschutz-Grundverordnung',
abbreviation: 'DSGVO',
type: 'regulation',
description:
'Die EU-Datenschutz-Grundverordnung gilt unmittelbar in allen EU-Mitgliedstaaten. ' +
'GDPR und DSGVO sind identisch — nur unterschiedliche Sprachfassungen derselben Verordnung. ' +
'Kern des europaeischen Datenschutzrechts.',
sourceUrl: 'https://eur-lex.europa.eu/eli/reg/2016/679/oj/deu',
license: 'CC-BY-4.0',
licenseNote: 'EU-Recht, EUR-Lex, Wiederverwendung gemaess Beschluss 2011/833/EU',
ragPhase: 1,
},
{
id: 'EU-EPRIVACY',
countryCode: 'EU',
name: 'ePrivacy-Richtlinie',
fullName: 'Richtlinie 2002/58/EG — Datenschutz in der elektronischen Kommunikation',
abbreviation: 'ePrivacy-RL',
type: 'directive',
description:
'Ergaenzt die DSGVO fuer elektronische Kommunikation (Cookies, Tracking, Direktmarketing). ' +
'Als Richtlinie national umgesetzt (DE: TTDSG, FR: Loi Informatique et Libertés, etc.).',
sourceUrl: 'https://eur-lex.europa.eu/eli/dir/2002/58/oj',
license: 'CC-BY-4.0',
licenseNote: 'EU-Recht, EUR-Lex, Wiederverwendung gemaess Beschluss 2011/833/EU',
ragPhase: 1,
},
{
id: 'EU-AI-ACT',
countryCode: 'EU',
name: 'AI Act',
fullName: 'Verordnung (EU) 2024/1689 — KI-Verordnung',
abbreviation: 'AI Act',
type: 'regulation',
description:
'EU-weite Regulierung kuenstlicher Intelligenz. Risikobasierter Ansatz mit Verboten (Art. 5), ' +
'Hochrisiko-Anforderungen und Transparenzpflichten. Gilt unmittelbar in allen Mitgliedstaaten.',
sourceUrl: 'https://eur-lex.europa.eu/eli/reg/2024/1689/oj/deu',
license: 'CC-BY-4.0',
licenseNote: 'EU-Recht, EUR-Lex, Wiederverwendung gemaess Beschluss 2011/833/EU',
ragPhase: 1,
},
{
id: 'EU-EDPB',
countryCode: 'EU',
name: 'EDPB-Leitlinien',
fullName: 'Leitlinien des Europaeischen Datenschutzausschusses',
abbreviation: 'EDPB',
type: 'guideline',
description:
'Verbindliche Auslegungshilfen zur DSGVO (z.B. DSFA, Art. 25, Art. 28, Drittlandtransfer, ' +
'Pseudonymisierung). Gelten als autoritaetive Rechtsquelle in der gesamten EU.',
sourceUrl: 'https://edpb.europa.eu/our-work-tools/general-guidance/guidelines-recommendations-best-practices_en',
license: 'CC-BY-4.0',
licenseNote: 'EDPB-Publikationen, CC BY 4.0',
ragPhase: 1,
},
]
// =============================================================================
// Nationale Ergaenzungsgesetze (Phase 2 — modular pro Land)
// =============================================================================
export const NATIONAL_FRAMEWORKS: LegalFramework[] = [
// --- Deutschland ---
{
id: 'DE-BDSG',
countryCode: 'DE',
name: 'BDSG',
fullName: 'Bundesdatenschutzgesetz (2018)',
abbreviation: 'BDSG',
type: 'national_law',
description:
'Nationales Begleitgesetz zur DSGVO. Ergaenzt u.a. Beschaeftigtendatenschutz (§26), ' +
'Videoueberwachung (§4), Forschung/Statistik, Bussgeldpraxis.',
sourceUrl: 'https://www.gesetze-im-internet.de/bdsg_2018/',
license: 'PUBLIC_DOMAIN',
licenseNote: 'Amtliches Werk, gemeinfrei (§5 UrhG)',
gdprOpeningClauses: ['Art. 6 Abs. 2', 'Art. 9 Abs. 4', 'Art. 23', 'Art. 85', 'Art. 88'],
specialProvisions: [
'§26 BDSG — Beschaeftigtendatenschutz',
'§4 BDSG — Videoueberwachung oeffentlich zugaenglicher Raeume',
'§22 BDSG — Verarbeitung besonderer Kategorien',
'§41-43 BDSG — Straf- und Bussgeldvorschriften',
],
supervisoryAuthorities: [
{ name: 'Bundesbeauftragter fuer den Datenschutz', abbreviation: 'BfDI', url: 'https://www.bfdi.bund.de', country: 'DE' },
],
ragPhase: 2,
},
{
id: 'DE-TTDSG',
countryCode: 'DE',
name: 'TTDSG',
fullName: 'Telekommunikation-Telemedien-Datenschutz-Gesetz',
abbreviation: 'TTDSG',
type: 'national_law',
description:
'Deutsche Umsetzung der ePrivacy-Richtlinie. Regelt insbesondere Cookie-Consent (§25 TTDSG), ' +
'Endgeraetezugriff und Telekommunikations-Datenschutz.',
sourceUrl: 'https://www.gesetze-im-internet.de/ttdsg/',
license: 'PUBLIC_DOMAIN',
licenseNote: 'Amtliches Werk, gemeinfrei (§5 UrhG)',
specialProvisions: [
'§25 TTDSG — Einwilligung fuer Cookies/Tracking',
'§26 TTDSG — Anerkannte Dienste zur Einwilligungsverwaltung',
],
ragPhase: 2,
},
{
id: 'DE-TMG',
countryCode: 'DE',
name: 'TMG / DDG',
fullName: 'Telemediengesetz / Digitale-Dienste-Gesetz',
abbreviation: 'TMG',
type: 'national_law',
description:
'Impressumspflicht (§5 TMG/DDG) und Anbieterkennzeichnung fuer Online-Dienste in Deutschland.',
sourceUrl: 'https://www.gesetze-im-internet.de/tmg/',
license: 'PUBLIC_DOMAIN',
licenseNote: 'Amtliches Werk, gemeinfrei (§5 UrhG)',
specialProvisions: [
'§5 TMG — Impressumspflicht (Anbieterkennzeichnung)',
'§7-10 TMG — Verantwortlichkeit von Diensteanbietern',
],
ragPhase: 3,
},
// --- Oesterreich ---
{
id: 'AT-DSG',
countryCode: 'AT',
name: 'DSG (AT)',
fullName: 'Datenschutzgesetz (Oesterreich, 2018)',
abbreviation: 'DSG',
type: 'national_law',
description:
'Oesterreichisches Begleitgesetz zur DSGVO. Enthält Besonderheiten fuer Behoerden, ' +
'Strafverfolgung und teilweise andere Auslegungspraxis als Deutschland.',
sourceUrl: 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10001597',
license: 'PUBLIC_DOMAIN',
licenseNote: 'Amtliches Werk, Rechtsinformationssystem des Bundes (RIS)',
supervisoryAuthorities: [
{ name: 'Oesterreichische Datenschutzbehoerde', abbreviation: 'DSB', url: 'https://www.dsb.gv.at', country: 'AT' },
],
ragPhase: 2,
},
// --- Schweiz (NICHT EU — eigenes Recht) ---
{
id: 'CH-DSG',
countryCode: 'CH',
name: 'revDSG (CH)',
fullName: 'Bundesgesetz ueber den Datenschutz (revidiertes DSG, seit 01.09.2023)',
abbreviation: 'revDSG',
type: 'national_law',
description:
'Die Schweiz ist nicht EU-Mitglied. Das revidierte DSG (2023) ist inhaltlich aehnlich der DSGVO, ' +
'aber nicht identisch. Unterschiede: andere Sanktionslogik (Busse bis 250.000 CHF gegen ' +
'natuerliche Personen), teils andere Begriffe, kein One-Stop-Shop.',
sourceUrl: 'https://www.fedlex.admin.ch/eli/cc/2022/491/de',
license: 'PUBLIC_DOMAIN',
licenseNote: 'Amtliches Bundesrecht, Fedlex (Schweiz)',
specialProvisions: [
'Art. 60-66 revDSG — Strafbestimmungen (gegen natuerliche Personen)',
'Art. 16-18 revDSG — Drittlandtransfer (eigene Laenderliste)',
'Art. 22 revDSG — Datenschutz-Folgenabschaetzung',
'Art. 12 revDSG — Verzeichnis der Bearbeitungstaetigkeiten',
],
supervisoryAuthorities: [
{ name: 'Eidgenoessischer Datenschutzbeauftragter', abbreviation: 'EDOEB', url: 'https://www.edoeb.admin.ch', country: 'CH' },
],
ragPhase: 2,
},
// --- Frankreich ---
{
id: 'FR-LIL',
countryCode: 'FR',
name: 'Loi Informatique et Libertés',
fullName: 'Loi n° 78-17 du 6 janvier 1978 relative à l\'informatique, aux fichiers et aux libertés',
abbreviation: 'LIL',
type: 'national_law',
description:
'Franzoesisches Begleitgesetz zur DSGVO (aktualisiert 2018). Spezialregelungen u.a. ' +
'zur Einwilligung Minderjaehriger (ab 15 Jahren), Forschungsdaten und Gesundheitsdaten.',
sourceUrl: 'https://www.legifrance.gouv.fr/loda/id/JORFTEXT000000886460',
license: 'PUBLIC_DOMAIN',
licenseNote: 'Amtliches Gesetz, Légifrance (gemeinfrei)',
supervisoryAuthorities: [
{ name: 'Commission Nationale de l\'Informatique et des Libertés', abbreviation: 'CNIL', url: 'https://www.cnil.fr', country: 'FR' },
],
ragPhase: 2,
},
// --- Spanien ---
{
id: 'ES-LOPDGDD',
countryCode: 'ES',
name: 'LOPDGDD',
fullName: 'Ley Orgánica 3/2018 de Protección de Datos Personales y garantía de los derechos digitales',
abbreviation: 'LOPDGDD',
type: 'national_law',
description:
'Spanisches Datenschutzgesetz. Ergaenzt DSGVO u.a. mit Regelungen zu ' +
'Kindereinwilligung, digitalem Testament und Rechten Verstorbener.',
sourceUrl: 'https://www.boe.es/diario_boe/txt.php?id=BOE-A-2018-16673',
license: 'PUBLIC_DOMAIN',
licenseNote: 'Amtliches Gesetz, Boletín Oficial del Estado (gemeinfrei)',
supervisoryAuthorities: [
{ name: 'Agencia Española de Protección de Datos', abbreviation: 'AEPD', url: 'https://www.aepd.es', country: 'ES' },
],
ragPhase: 2,
},
// --- Italien ---
{
id: 'IT-CODICE',
countryCode: 'IT',
name: 'Codice Privacy',
fullName: 'Decreto Legislativo 30 giugno 2003, n. 196 (Codice in materia di protezione dei dati personali)',
abbreviation: 'Codice Privacy',
type: 'national_law',
description:
'Italienischer Datenschutzkodex, angepasst an die DSGVO (D.Lgs. 101/2018). ' +
'Enthaelt Spezialregelungen fuer Gesundheitsdaten, Forschung und Journalismus.',
sourceUrl: 'https://www.normattiva.it/uri-res/N2Ls?urn:nir:stato:decreto.legislativo:2003-06-30;196!vig=',
license: 'PUBLIC_DOMAIN',
licenseNote: 'Amtliches Gesetz, Normattiva (gemeinfrei)',
supervisoryAuthorities: [
{ name: 'Garante per la protezione dei dati personali', abbreviation: 'Garante', url: 'https://www.garanteprivacy.it', country: 'IT' },
],
ragPhase: 2,
},
// --- Niederlande ---
{
id: 'NL-AVG',
countryCode: 'NL',
name: 'AVG / UAVG',
fullName: 'Uitvoeringswet Algemene verordening gegevensbescherming (UAVG)',
abbreviation: 'UAVG',
type: 'national_law',
description:
'Niederlaendisches Ausfuehrungsgesetz zur DSGVO.',
sourceUrl: 'https://wetten.overheid.nl/BWBR0040948/',
license: 'PUBLIC_DOMAIN',
licenseNote: 'Amtliches Gesetz, wetten.overheid.nl (gemeinfrei)',
supervisoryAuthorities: [
{ name: 'Autoriteit Persoonsgegevens', abbreviation: 'AP', url: 'https://www.autoriteitpersoonsgegevens.nl', country: 'NL' },
],
ragPhase: 2,
},
// --- Grossbritannien (post-Brexit) ---
{
id: 'GB-DPA',
countryCode: 'GB',
name: 'UK DPA 2018 / UK GDPR',
fullName: 'Data Protection Act 2018 + UK GDPR (retained EU law)',
abbreviation: 'DPA 2018',
type: 'national_law',
description:
'Nach Brexit: UK GDPR (inhaltlich weitgehend identisch mit EU-DSGVO) plus Data Protection Act 2018 ' +
'als nationales Begleitgesetz. ICO als Aufsichtsbehoerde.',
sourceUrl: 'https://www.legislation.gov.uk/ukpga/2018/12/contents',
license: 'OGL-3.0',
licenseNote: 'UK legislation, Open Government Licence v3.0',
supervisoryAuthorities: [
{ name: 'Information Commissioner\'s Office', abbreviation: 'ICO', url: 'https://ico.org.uk', country: 'GB' },
],
ragPhase: 2,
},
// --- Norwegen (EWR) ---
{
id: 'NO-PERSONOPPL',
countryCode: 'NO',
name: 'Personopplysningsloven',
fullName: 'Lov om behandling av personopplysninger (personopplysningsloven)',
abbreviation: 'POL',
type: 'national_law',
description:
'Norwegisches DSGVO-Ausfuehrungsgesetz (EWR-Mitglied, DSGVO gilt ueber EWR-Abkommen).',
sourceUrl: 'https://lovdata.no/dokument/NL/lov/2018-06-15-38',
license: 'PUBLIC_DOMAIN',
licenseNote: 'Amtliches Gesetz, Lovdata (gemeinfrei)',
supervisoryAuthorities: [
{ name: 'Datatilsynet', abbreviation: 'DT', url: 'https://www.datatilsynet.no', country: 'NO' },
],
ragPhase: 2,
},
]
// =============================================================================
// Dokumenttyp-Matrix: EU-einheitlich vs. laenderspezifisch
// =============================================================================
export const DOCUMENT_TYPE_MATRIX: DocumentTypeMatrix[] = [
{
documentType: 'privacy_policy',
label: 'Datenschutzerklaerung',
uniformity: 'needs_national_supplement',
description: 'DSGVO-Kern EU-weit gleich. Nationale Ergaenzungen fuer ePrivacy-Umsetzung, Behoerden-Praxis.',
},
{
documentType: 'ropa',
label: 'Verarbeitungsverzeichnis (VVT)',
uniformity: 'eu_uniform',
description: 'Art. 30 DSGVO — EU-weit identische Anforderungen.',
},
{
documentType: 'tom',
label: 'Technisch-Organisatorische Massnahmen',
uniformity: 'eu_uniform',
description: 'Art. 32 DSGVO — EU-weit identische Anforderungen.',
},
{
documentType: 'dpia',
label: 'Datenschutz-Folgenabschaetzung (DSFA)',
uniformity: 'eu_uniform',
description: 'Art. 35 DSGVO — EU-weit identisch. Muss-Listen variieren je Aufsichtsbehoerde.',
},
{
documentType: 'dpa',
label: 'Auftragsverarbeitungsvertrag (AVV)',
uniformity: 'eu_uniform',
description: 'Art. 28 DSGVO — EU-weit identische Anforderungen.',
},
{
documentType: 'deletion_concept',
label: 'Loeschkonzept',
uniformity: 'eu_uniform',
description: 'Art. 5(1)(e), Art. 17 DSGVO — EU-weit einheitlich.',
},
{
documentType: 'breach_process',
label: 'Data Breach / Incident Response',
uniformity: 'eu_uniform',
description: 'Art. 33-34 DSGVO — EU-weit identische 72-Stunden-Frist.',
},
{
documentType: 'dsar_process',
label: 'Betroffenenrechte-Prozess (DSAR)',
uniformity: 'eu_uniform',
description: 'Art. 12-22 DSGVO — EU-weit identische Rechte und Fristen.',
},
{
documentType: 'imprint',
label: 'Impressum',
uniformity: 'country_specific',
description: 'Kein DSGVO-Thema. Nationale Mediengesetze (DE: §5 TMG, AT: §5 ECG, CH: eigene Regeln).',
countrySpecificNotes: {
'EU': 'Keine EU-weite Regelung',
'DE': '§5 TMG / DDG — strenge Impressumspflicht',
'AT': '§5 ECG — aehnlich wie DE, nicht identisch',
'CH': 'Obligationenrecht + kantonale Regeln',
'FR': 'Loi pour la Confiance dans l\'Économie Numérique (LCEN)',
'ES': 'LSSI-CE Art. 10',
'IT': 'D.Lgs. 70/2003',
'NL': 'Handelsregisterpflicht + BW',
'GB': 'Companies Act 2006',
'NO': 'E-handelsloven',
'IS': 'Rafraeðislög',
},
},
{
documentType: 'terms_of_service',
label: 'AGB / Nutzungsbedingungen',
uniformity: 'country_specific',
description: 'Nationales Vertragsrecht (BGB, ABGB, OR). Verbraucherrecht teils EU-harmonisiert, aber national umgesetzt.',
},
{
documentType: 'withdrawal_notice',
label: 'Widerrufsbelehrung',
uniformity: 'country_specific',
description: 'EU-Verbraucherrechterichtlinie national umgesetzt. DE/AT: Muster-Widerrufsbelehrung. CH: eigene Logik.',
},
{
documentType: 'cookie_banner',
label: 'Cookie-Banner / Consent',
uniformity: 'needs_national_supplement',
description: 'ePrivacy + DSGVO EU-weit aehnlich, aber Aufsichtspraxis variiert (CNIL vs. DSK vs. DPC etc.).',
},
]
// =============================================================================
// RAG-Schichtmodell
// =============================================================================
export interface RAGLayer {
phase: 1 | 2 | 3
name: string
description: string
scope: string
sources: string[]
}
export const RAG_LAYERS: RAGLayer[] = [
{
phase: 1,
name: 'EU-Basis',
description: 'Einmal laden — gilt fuer gesamte EU/EWR (ausser CH)',
scope: 'EU/EWR',
sources: [
'DSGVO Volltext (EU 2016/679)',
'ePrivacy-Richtlinie (2002/58/EG)',
'AI Act (EU 2024/1689)',
'EDPB-Leitlinien (DSFA, Art. 25, Art. 28, Art. 32, Drittlandtransfer etc.)',
],
},
{
phase: 2,
name: 'Nationale Ergaenzungen',
description: 'Modular pro Land — nationale Begleitgesetze zur DSGVO',
scope: 'Je Land',
sources: [
'DE: BDSG, TTDSG, DSK-Kurzpapiere',
'AT: DSG (AT), DSB-Entscheidungen',
'CH: revDSG, EDOEB-Leitlinien (separater Stack!)',
'FR: Loi Informatique et Libertés, CNIL-Leitfaeden',
'ES: LOPDGDD, AEPD-Leitfaeden',
'IT: Codice Privacy, Garante-Leitfaeden',
'NL: UAVG, AP-Leitlinien',
'GB: UK DPA 2018, ICO Guidance',
],
},
{
phase: 3,
name: 'Dokumentspezifische Bausteine',
description: 'Templates und Mustertexte fuer laenderspezifische Dokumenttypen',
scope: 'Je Land + Dokumenttyp',
sources: [
'Impressum-Templates (DE §5 TMG, AT §5 ECG, CH)',
'AGB-Bausteine (SaaS/Webshop, B2B/B2C)',
'Widerrufsbelehrung (DE/AT Muster)',
'Cookie-Banner-Texte (EU-weit + Feinjustierung)',
],
},
]
// =============================================================================
// Helper Functions
// =============================================================================
/** Alle Rechtsgrundlagen zusammen (EU-Basis + National) */
export function getAllFrameworks(): LegalFramework[] {
return [...EU_BASE_FRAMEWORKS, ...NATIONAL_FRAMEWORKS]
}
/** Rechtsgrundlagen fuer ein bestimmtes Land (inkl. EU-Basis) */
export function getFrameworksForCountry(country: CountryCode): LegalFramework[] {
return getAllFrameworks().filter(
f => f.countryCode === country || f.countryCode === 'EU'
)
}
/** Nur nationale Ergaenzungsgesetze (ohne EU-Basis) */
export function getNationalFrameworks(country: CountryCode): LegalFramework[] {
return NATIONAL_FRAMEWORKS.filter(f => f.countryCode === country)
}
/** Alle Aufsichtsbehoerden */
export function getAllSupervisoryAuthorities(): SupervisoryAuthority[] {
const authorities: SupervisoryAuthority[] = []
for (const fw of getAllFrameworks()) {
if (fw.supervisoryAuthorities) {
for (const sa of fw.supervisoryAuthorities) {
if (!authorities.some(a => a.abbreviation === sa.abbreviation)) {
authorities.push(sa)
}
}
}
}
return authorities
}
/** Aufsichtsbehoerde(n) fuer ein Land */
export function getSupervisoryAuthority(country: CountryCode): SupervisoryAuthority[] {
return getAllSupervisoryAuthorities().filter(sa => sa.country === country)
}
/** Dokumenttypen, die fuer ein Land spezifische Logik brauchen */
export function getCountrySpecificDocTypes(country: CountryCode): DocumentTypeMatrix[] {
return DOCUMENT_TYPE_MATRIX.filter(
d => d.uniformity === 'country_specific' ||
(d.uniformity === 'needs_national_supplement' && country !== 'EU')
)
}
/** Dokumenttypen, die EU-weit einheitlich generiert werden koennen */
export function getEUUniformDocTypes(): DocumentTypeMatrix[] {
return DOCUMENT_TYPE_MATRIX.filter(d => d.uniformity === 'eu_uniform')
}
/** Pruefen ob ein Land EU/EWR-Mitglied ist (DSGVO direkt anwendbar) */
export function isGDPRCountry(country: CountryCode): boolean {
const gdprCountries: CountryCode[] = ['EU', 'DE', 'AT', 'FR', 'ES', 'IT', 'NL', 'NO', 'IS']
return gdprCountries.includes(country)
}
/** Pruefen ob ein Land einen separaten Rechtsrahmen hat (nicht DSGVO) */
export function hasSeparateLegalFramework(country: CountryCode): boolean {
return country === 'CH' || country === 'GB'
}
/** RAG-Quellen fuer eine bestimmte Phase */
export function getRAGSourcesForPhase(phase: 1 | 2 | 3): LegalFramework[] {
return getAllFrameworks().filter(f => f.ragPhase === phase)
}
/** Zusammenfassung: Was braucht ein Unternehmen in Land X? */
export function getRequiredFrameworkSummary(country: CountryCode): {
baseLaw: string
nationalLaw: string | null
supervisoryAuthority: string | null
separateFramework: boolean
} {
const isGDPR = isGDPRCountry(country)
const national = getNationalFrameworks(country)
const authorities = getSupervisoryAuthority(country)
return {
baseLaw: isGDPR ? 'DSGVO (EU 2016/679)' : (country === 'CH' ? 'revDSG (CH)' : 'UK GDPR'),
nationalLaw: national.length > 0 ? national.map(n => n.abbreviation).join(', ') : null,
supervisoryAuthority: authorities.length > 0 ? authorities.map(a => a.abbreviation).join(', ') : null,
separateFramework: hasSeparateLegalFramework(country),
}
}

View File

@@ -0,0 +1,433 @@
/**
* DSGVO-Bussgeldentscheidungen und Durchsetzungsfaelle
*
* Strukturierter Katalog relevanter Bussgelder und Gerichtsentscheidungen
* als Referenz fuer DSFA-Risikobewertung und Compliance-Beratung.
*
* Quellen: Amtliche Entscheidungen/Bescheide (§5 UrhG), EDPB-Mitteilungen (CC-BY-4.0)
*/
// =============================================================================
// Types
// =============================================================================
export type GDPRViolationType =
| 'data_minimization' // Art. 5 — Datenminimierung/Zweckbindung
| 'security' // Art. 32 — Technische/Org. Massnahmen
| 'special_categories' // Art. 9 — Besondere Kategorien
| 'transparency' // Art. 12-14 — Informationspflichten
| 'lawfulness' // Art. 6 — Rechtsmaessigkeit
| 'data_subject_rights' // Art. 15-22 — Betroffenenrechte
| 'dpo_conflict' // Art. 38 — DSB-Interessenkonflikt
| 'accountability' // Art. 5 Abs. 2 — Rechenschaftspflicht
| 'international_transfer' // Art. 44-49 — Drittlandtransfer
export type EnforcementOutcome = 'final' | 'reduced_on_appeal' | 'pending' | 'overturned'
export interface GDPREnforcementCase {
id: string
company: string
country: string
authority: string
year: number
fineOriginal: number // Urspruengliches Bussgeld in Euro
fineAfterAppeal?: number // Nach Berufung (falls reduziert)
outcome: EnforcementOutcome
violationTypes: GDPRViolationType[]
gdprArticles: string[] // Verletzte Artikel
description: string
keyFacts: string[] // Wesentliche Tatbestandsmerkmale
lessons: string[] // Lehren fuer Unternehmen
/** Nur amtliche Quellen (Bescheide, Urteile, EDPB) */
officialSources: OfficialSource[]
}
export interface OfficialSource {
type: 'court_decision' | 'dsb_decision' | 'edpb_news' | 'bfdi_press'
title: string
reference?: string // Aktenzeichen
date?: string
url?: string
licenseNote: string // Lizenzhinweis
}
export interface GDPRLesson {
id: string
gdprArticles: string[]
title: string
description: string
relatedCaseIds: string[]
severity: 'critical' | 'high' | 'medium'
}
// =============================================================================
// Enforcement Cases
// =============================================================================
export const GDPR_ENFORCEMENT_CASES: GDPREnforcementCase[] = [
{
id: 'CASE-HM-2020',
company: 'H&M (Nuernberg)',
country: 'DE',
authority: 'Hamburger Datenschutzbehoerde (HmbBfDI)',
year: 2020,
fineOriginal: 35_300_000,
outcome: 'final',
violationTypes: ['special_categories', 'lawfulness'],
gdprArticles: ['Art. 6 DSGVO', 'Art. 9 DSGVO'],
description:
'Systematische Ausspaeung von Beschaeftigtendaten. In sog. "Welcome-Back-Talks" nach ' +
'Krankheit wurden private Informationen zu Gesundheit, Familie und Religion erfasst und ' +
'in einer Datenbank gespeichert. Die Daten waren fuer Fuehrungskraefte zugaenglich.',
keyFacts: [
'Erfassung und Auswertung privater Gesundheitsinformationen',
'Systematische Dokumentation in Datenbank',
'Zugang fuer breiten Kreis von Fuehrungskraeften',
'Verarbeitung besonderer Kategorien (Art. 9) ohne Rechtsgrundlage',
],
lessons: [
'Gesundheitsdaten duerfen nur mit strenger Rechtsgrundlage verarbeitet werden',
'Mitarbeiter-Gespraeche duerfen nicht zur verdeckten Datenerhebung missbraucht werden',
'Besondere Kategorien (Art. 9) erfordern besondere Schutzmassnahmen',
],
officialSources: [
{
type: 'dsb_decision',
title: 'HmbBfDI Bussgeld gegen H&M Servicecenter',
date: '2020-10-01',
licenseNote: 'Amtlicher Bescheid gem. §5 UrhG',
},
],
},
{
id: 'CASE-DW-2019',
company: 'Deutsche Wohnen SE (Berlin)',
country: 'DE',
authority: 'Berliner Beauftragte fuer Datenschutz (BlnBDI)',
year: 2019,
fineOriginal: 14_500_000,
outcome: 'final',
violationTypes: ['data_minimization', 'accountability'],
gdprArticles: ['Art. 5 DSGVO', 'Art. 25 DSGVO'],
description:
'Langjaehrige Speicherung von Mieterdaten ohne Rechtsgrundlage. Das Archivsystem erlaubte ' +
'keine Loeschung veralteter Daten (Gehaltsabrechnungen, Kontodaten, Mietvertraege). ' +
'Trotz vorheriger Beanstandung keine technischen Massnahmen zur Loeschung umgesetzt.',
keyFacts: [
'Archivsystem ohne Loeschmoeglichkeit fuer veraltete Daten',
'Vorherige Beanstandung durch Aufsichtsbehoerde ohne Abhilfe',
'Verstoss gegen Datenminimierung und Speicherbegrenzung',
'Keine Privacy-by-Design-Massnahmen (Art. 25)',
],
lessons: [
'Loeschkonzepte muessen technisch umsetzbar sein',
'Vorherige Beanstandungen erhoehen das Bussgeld erheblich',
'Art. 25 (Privacy by Design) betrifft auch bestehende Systeme',
],
officialSources: [
{
type: 'edpb_news',
title: 'Berlin Commissioner for Data Protection Imposes Fine on Real Estate Company',
url: 'https://www.edpb.europa.eu/news/national-news/2019/berlin-commissioner-data-protection-imposes-fine-real-estate-company_en',
licenseNote: 'EDPB Nachricht, CC-BY-4.0',
},
],
},
{
id: 'CASE-1U1-2019',
company: '1&1 Telecom GmbH',
country: 'DE',
authority: 'BfDI (Bundesbeauftragter)',
year: 2019,
fineOriginal: 9_550_000,
fineAfterAppeal: 900_000,
outcome: 'reduced_on_appeal',
violationTypes: ['security'],
gdprArticles: ['Art. 32 DSGVO'],
description:
'Unzureichende Kunden-Authentifizierung: Allein Name und Geburtsdatum genuegten fuer ' +
'telefonische Auskuenfte. Das LG Bonn bestaetigte den Verstoss, reduzierte das Bussgeld ' +
'jedoch auf 900.000 Euro, da kein massiver Datenskandal vorlag und das Unternehmen kooperativ war.',
keyFacts: [
'Nur Name und Geburtsdatum als Authentifizierung',
'Verstoesse gegen Art. 32 (technisch-organisatorische Massnahmen)',
'LG Bonn reduzierte Bussgeld von 9,55 Mio. auf 0,9 Mio. Euro',
'Kooperatives Verhalten als mildernder Umstand',
],
lessons: [
'Starke Authentifizierung ist Pflicht bei Kundenkontakt',
'Art. 32 verlangt dem Risiko angemessene Sicherheit',
'Kooperation mit der Aufsichtsbehoerde kann Bussgelder deutlich reduzieren',
],
officialSources: [
{
type: 'bfdi_press',
title: 'BfDI verhaengt Geldbusse gegen Telekommunikationsdienstleister',
date: '2019-12-09',
url: 'https://www.bfdi.bund.de/SharedDocs/Pressemitteilungen/DE/2019/30_BfDIverh%C3%A4ngtGeldbu%C3%9Fe1u1.html',
licenseNote: 'Amtliche Pressemitteilung gem. §5 UrhG',
},
{
type: 'court_decision',
title: 'LG Bonn, Urteil v. 11.11.2020 — Reduzierung auf 900.000 Euro',
reference: 'LG Bonn, 2020',
date: '2020-11-11',
licenseNote: 'Amtliches Werk gem. §5 UrhG',
},
],
},
{
id: 'CASE-WA-2021',
company: 'WhatsApp Ireland Ltd.',
country: 'IE',
authority: 'Irish Data Protection Commission (DPC)',
year: 2021,
fineOriginal: 225_000_000,
outcome: 'final',
violationTypes: ['transparency'],
gdprArticles: ['Art. 5 DSGVO', 'Art. 12 DSGVO', 'Art. 13 DSGVO', 'Art. 14 DSGVO'],
description:
'Verletzung der Transparenzpflichten: Unvollstaendige Information ueber Datenweitergabe ' +
'innerhalb der Meta/Facebook-Unternehmensgruppe. Betroffene wurden nicht ausreichend darueber ' +
'informiert, welche Daten zu welchen Zwecken mit welchen Empfaengern geteilt wurden.',
keyFacts: [
'Mangelnde Transparenz bei konzerninterner Datenweitergabe',
'Unzureichende Datenschutzhinweise (Art. 12-14)',
'EDPB-Streitbeilegung erhoehte das Bussgeld erheblich',
'Hoechstes Bussgeld gegen ein Unternehmen in der EU zum damaligen Zeitpunkt',
],
lessons: [
'Datenschutzhinweise muessen vollstaendig und verstaendlich sein',
'Konzerninterne Datenweitergabe muss transparent dokumentiert werden',
'Art. 12 verlangt klare, einfache Sprache',
],
officialSources: [
{
type: 'dsb_decision',
title: 'DPC Decision re WhatsApp Ireland Limited',
date: '2021-09-02',
licenseNote: 'Amtliche Entscheidung der irischen Aufsichtsbehoerde',
},
],
},
{
id: 'CASE-GOOGLE-2019',
company: 'Google LLC',
country: 'FR',
authority: 'CNIL (Franzoesische Datenschutzbehoerde)',
year: 2019,
fineOriginal: 50_000_000,
outcome: 'final',
violationTypes: ['transparency', 'lawfulness'],
gdprArticles: ['Art. 6 DSGVO', 'Art. 12 DSGVO', 'Art. 13 DSGVO'],
description:
'Maengel bei Einwilligung und Transparenz: Informationen zur Datenverarbeitung waren ueber ' +
'mehrere Seiten verstreut und schwer verstaendlich. Einwilligung fuer personalisierte Werbung ' +
'war vorausgewaehlt und nicht hinreichend spezifisch.',
keyFacts: [
'Informationen ueber 5-6 Klicks verstreut',
'Vorausgewaehlte Einwilligung (kein aktives Opt-in)',
'Einwilligung nicht granular genug',
'Erstes grosses DSGVO-Bussgeld gegen US-Tech-Konzern',
],
lessons: [
'Einwilligung muss aktiv, informiert und spezifisch sein',
'Datenschutzinformationen muessen leicht zugaenglich sein',
'Vorausgewaehlte Checkboxen sind keine gueltige Einwilligung',
],
officialSources: [
{
type: 'dsb_decision',
title: 'CNIL Deliberation No. SAN-2019-001 v. 21.01.2019',
date: '2019-01-21',
licenseNote: 'Amtliche Entscheidung der CNIL',
},
],
},
{
id: 'CASE-OLG-DD-2021',
company: 'GmbH-Geschaeftsfuehrer (Detektiveinsatz)',
country: 'DE',
authority: 'OLG Dresden',
year: 2021,
fineOriginal: 5_000, // Schadensersatz, kein Bussgeld
outcome: 'final',
violationTypes: ['lawfulness'],
gdprArticles: ['Art. 6 DSGVO', 'Art. 10 DSGVO', 'Art. 82 DSGVO'],
description:
'Persoenliche Haftung des Geschaeftsfuehrers: Ein GmbH-GF liess eine Privatperson durch ' +
'einen Detektiv ausspionieren. Das OLG Dresden sprach dem Betroffenen 5.000 Euro Schadensersatz ' +
'zu — gegen GmbH und Geschaeftsfuehrer als Gesamtschuldner. Begruendung: Der GF entscheide ' +
'selbst ueber die Datenverarbeitung und sei daher Verantwortlicher i.S.d. Art. 4 Nr. 7 DSGVO.',
keyFacts: [
'Geschaeftsfuehrer als Verantwortlicher (Art. 4 Nr. 7)',
'Persoenliche Haftung neben der GmbH (Gesamtschuldner)',
'Schadensersatz nach Art. 82 DSGVO',
'Ausspionierung durch Detektiv = Verstoss gegen Art. 6, 10',
],
lessons: [
'Geschaeftsfuehrer koennen persoenlich fuer DSGVO-Verstoesse haften',
'Art. 82 DSGVO ermoeglicht Schadensersatz gegen natuerliche Personen',
'Verantwortlichkeit i.S.d. Art. 4 Nr. 7 kann auch den GF persoenlich treffen',
],
officialSources: [
{
type: 'court_decision',
title: 'OLG Dresden, Urteil 2021 — Persoenliche GF-Haftung bei DSGVO-Verstoss',
reference: 'OLG Dresden, 2021',
date: '2021',
licenseNote: 'Amtliches Werk gem. §5 UrhG',
},
],
},
]
// =============================================================================
// Lessons Learned (aggregiert)
// =============================================================================
export const GDPR_LESSONS: GDPRLesson[] = [
{
id: 'LESSON-01',
gdprArticles: ['Art. 5 DSGVO', 'Art. 25 DSGVO'],
title: 'Datenminimierung und Loeschkonzepte sind Pflicht',
description:
'Personenbezogene Daten duerfen nur so lange gespeichert werden, wie es fuer den Zweck ' +
'notwendig ist. Technische Loeschmechanismen muessen implementiert sein. Archivsysteme ' +
'ohne Loeschfunktion verstoessen gegen Art. 5 und Art. 25 DSGVO.',
relatedCaseIds: ['CASE-DW-2019'],
severity: 'critical',
},
{
id: 'LESSON-02',
gdprArticles: ['Art. 32 DSGVO'],
title: 'Angemessene IT-Sicherheit (Art. 32) ist unverzichtbar',
description:
'Technisch-organisatorische Massnahmen muessen dem Risiko angemessen sein. ' +
'Schwache Authentifizierung (z.B. nur Name/Geburtsdatum) reicht nicht aus. ' +
'Verschluesselung, Zugriffskontrollen und starke Authentifizierung sind Pflicht.',
relatedCaseIds: ['CASE-1U1-2019'],
severity: 'critical',
},
{
id: 'LESSON-03',
gdprArticles: ['Art. 9 DSGVO'],
title: 'Besondere Kategorien erfordern besondere Vorsicht',
description:
'Gesundheitsdaten, religioese Ueberzeugungen und andere besondere Kategorien (Art. 9) ' +
'duerfen nur mit expliziter Rechtsgrundlage verarbeitet werden. Informelle Gespraeche ' +
'duerfen nicht zur verdeckten Erhebung solcher Daten missbraucht werden.',
relatedCaseIds: ['CASE-HM-2020'],
severity: 'critical',
},
{
id: 'LESSON-04',
gdprArticles: ['Art. 12 DSGVO', 'Art. 13 DSGVO', 'Art. 14 DSGVO'],
title: 'Transparenz und vollstaendige Datenschutzhinweise',
description:
'Betroffene muessen klar, verstaendlich und vollstaendig informiert werden. ' +
'Konzerninterne Datenweitergabe muss dokumentiert sein. Informationen duerfen ' +
'nicht ueber zahlreiche Unterseiten verstreut werden.',
relatedCaseIds: ['CASE-WA-2021', 'CASE-GOOGLE-2019'],
severity: 'high',
},
{
id: 'LESSON-05',
gdprArticles: ['Art. 82 DSGVO', 'Art. 4 Nr. 7 DSGVO'],
title: 'Persoenliche Haftung von Geschaeftsfuehrern moeglich',
description:
'Geschaeftsfuehrer koennen neben dem Unternehmen persoenlich fuer DSGVO-Verstoesse ' +
'haften, wenn sie die Datenverarbeitung selbst veranlassen. Dies gilt insbesondere ' +
'bei vorsaetzlichen Verstoessen.',
relatedCaseIds: ['CASE-OLG-DD-2021'],
severity: 'high',
},
{
id: 'LESSON-06',
gdprArticles: ['Art. 83 DSGVO'],
title: 'Kooperation kann Bussgelder deutlich reduzieren',
description:
'Kooperatives Verhalten und zeitnahe Massnahmen zur Abhilfe werden von Aufsichtsbehoerden ' +
'und Gerichten als mildernde Umstaende anerkannt. Im 1&1-Fall wurde das Bussgeld um ueber ' +
'90% reduziert.',
relatedCaseIds: ['CASE-1U1-2019'],
severity: 'medium',
},
]
// =============================================================================
// Violation Type Labels
// =============================================================================
export const VIOLATION_TYPE_LABELS: Record<GDPRViolationType, string> = {
data_minimization: 'Datenminimierung / Speicherbegrenzung',
security: 'IT-Sicherheit (Art. 32)',
special_categories: 'Besondere Kategorien (Art. 9)',
transparency: 'Transparenz / Informationspflichten',
lawfulness: 'Rechtsmaessigkeit (Art. 6)',
data_subject_rights: 'Betroffenenrechte',
dpo_conflict: 'DSB-Interessenkonflikt',
accountability: 'Rechenschaftspflicht',
international_transfer: 'Drittlandtransfer',
}
// =============================================================================
// Helper Functions
// =============================================================================
/**
* Gibt Enforcement Cases zurueck, die fuer bestimmte DSGVO-Artikel relevant sind.
*/
export function getEnforcementCasesForArticle(article: string): GDPREnforcementCase[] {
return GDPR_ENFORCEMENT_CASES.filter(c =>
c.gdprArticles.some(a => a.toLowerCase().includes(article.toLowerCase()))
)
}
/**
* Gibt Enforcement Cases zurueck, die fuer einen bestimmten Verstosstyp relevant sind.
*/
export function getEnforcementCasesForViolationType(type: GDPRViolationType): GDPREnforcementCase[] {
return GDPR_ENFORCEMENT_CASES.filter(c => c.violationTypes.includes(type))
}
/**
* Gibt Lessons zurueck, die fuer bestimmte DSGVO-Artikel relevant sind.
*/
export function getLessonsForArticle(article: string): GDPRLesson[] {
return GDPR_LESSONS.filter(l =>
l.gdprArticles.some(a => a.toLowerCase().includes(article.toLowerCase()))
)
}
/**
* Gibt das hoechste bekannte Bussgeld fuer einen Verstosstyp zurueck.
*/
export function getMaxFineForViolationType(type: GDPRViolationType): {
amount: number
company: string
year: number
} | null {
const cases = getEnforcementCasesForViolationType(type)
if (cases.length === 0) return null
const sorted = [...cases].sort((a, b) => b.fineOriginal - a.fineOriginal)
return {
amount: sorted[0].fineOriginal,
company: sorted[0].company,
year: sorted[0].year,
}
}
/**
* Formatiert einen Euro-Betrag fuer die Anzeige.
*/
export function formatFineAmount(amount: number): string {
if (amount >= 1_000_000) {
return `${(amount / 1_000_000).toFixed(1)} Mio. Euro`
}
if (amount >= 1_000) {
return `${(amount / 1_000).toFixed(0)}.000 Euro`
}
return `${amount.toLocaleString('de-DE')} Euro`
}

View File

@@ -0,0 +1,386 @@
/**
* Verbotene KI-Anwendungsfaelle nach Art. 5 EU AI Act (2024/1689)
*
* Seit Februar 2025 sind diese Praktiken in der EU ausdruecklich verboten.
* Dieses Modul stellt einen strukturierten Katalog bereit, der sowohl
* im SDK-Frontend als auch via RAG fuer den Compliance Advisor nutzbar ist.
*
* Quellen:
* - EU AI Act Art. 5 (Verbotene Praktiken), Verordnung (EU) 2024/1689
* - LG Muenchen I, 11.11.2025 (42 O 14139/24) — amtliches Werk nach §5 UrhG
*/
// =============================================================================
// Types
// =============================================================================
export type ProhibitionSeverity = 'absolute' | 'conditional'
export type ProhibitionCategory =
| 'manipulation'
| 'vulnerability_exploitation'
| 'social_scoring'
| 'biometric_surveillance'
| 'predictive_policing'
| 'emotion_recognition'
| 'biometric_categorization'
| 'copyright_violation'
export interface ProhibitedAIPractice {
id: string
title: string
titleEN: string
category: ProhibitionCategory
severity: ProhibitionSeverity
legalBasis: string
description: string
examples: string[]
exceptions?: string[]
/** Stichworte fuer automatische Erkennung */
detectionKeywords: string[]
/** Relevante Gerichtsentscheidungen */
caseLaw?: CaseLawReference[]
}
export interface CaseLawReference {
id: string
court: string
date: string
reference: string
title: string
summary: string
relevance: string
sourceUrl?: string
/** Amtliche Werke nach §5 UrhG — keine Lizenzpflicht */
licenseNote: string
}
// =============================================================================
// Verbotskatalog Art. 5 AI Act
// =============================================================================
export const PROHIBITED_AI_PRACTICES: ProhibitedAIPractice[] = [
// --- Absolut verboten ---
{
id: 'VERBOT-01',
title: 'Irrefuehrende Manipulation',
titleEN: 'Subliminal Manipulation',
category: 'manipulation',
severity: 'absolute',
legalBasis: 'Art. 5 Abs. 1 lit. a AI Act',
description:
'KI-Systeme, die durch unterschwellige Techniken oder absichtlich manipulative/taeuschende Methoden ' +
'das Verhalten von Personen wesentlich beeinflussen und ihnen dadurch erheblichen Schaden zufuegen oder ' +
'zufuegen koennen. Beispiel: Sprachgesteuertes Spielzeug, das Kinder zu gefaehrlichem Verhalten animiert.',
examples: [
'Sprachgesteuertes Spielzeug mit manipulativen Inhalten fuer Kinder',
'Unterschwellige Audio-/Videobotschaften zur Verhaltenssteuerung',
'Dark Patterns in KI-Interfaces, die zu schaedlichen Entscheidungen fuehren',
'KI-generierte Deepfakes zur politischen Manipulation',
],
detectionKeywords: [
'manipulation', 'unterschwellig', 'subliminal', 'taeuschung', 'dark pattern',
'verhaltenssteuerung', 'beeinflussung', 'deepfake', 'desinformation',
],
},
{
id: 'VERBOT-02',
title: 'Ausnutzung von Schwaechen',
titleEN: 'Exploitation of Vulnerabilities',
category: 'vulnerability_exploitation',
severity: 'absolute',
legalBasis: 'Art. 5 Abs. 1 lit. b AI Act',
description:
'KI-Systeme, die gezielt die Verletzlichkeit bestimmter Personen oder Gruppen ausnutzen — ' +
'etwa aufgrund von Alter, Behinderung, sozialer oder wirtschaftlicher Situation — ' +
'um deren Verhalten wesentlich zu beeinflussen und ihnen dadurch erheblichen Schaden zuzufuegen.',
examples: [
'KI-Werbung, die gezielt aeltere oder kognitiv eingeschraenkte Menschen zu Kaeufen verleitet',
'Sucht-foerdernde Algorithmen, die psychische Vulnerabilitaet ausnutzen',
'Finanzprodukt-Empfehlungen, die wirtschaftliche Notlagen ausnutzen',
'Gamification-KI, die Kinder zur uebermassigen Nutzung verleitet',
],
detectionKeywords: [
'schwaeche', 'vulnerabel', 'alter', 'behinderung', 'kinder', 'sucht',
'ausnutz', 'manipulation minderjahrig', 'schutzbeduerft',
],
},
{
id: 'VERBOT-03',
title: 'Social Scoring',
titleEN: 'Social Scoring',
category: 'social_scoring',
severity: 'absolute',
legalBasis: 'Art. 5 Abs. 1 lit. c AI Act',
description:
'KI-Systeme zur Bewertung oder Klassifizierung natuerlicher Personen auf Grundlage ihres Sozialverhaltens ' +
'oder persoenlicher Eigenschaften, wenn dies zu einer ungerechtfertigten oder unverhaeltnismaessigen ' +
'Benachteiligung fuehrt — insbesondere in Kontexten, die keinen Bezug zur urspruenglichen Datenerhebung haben.',
examples: [
'Bewertungssysteme auf Basis von Social-Media-Aktivitaeten',
'Scoring anhand von Internet-Surfverhalten fuer Kreditwuerdigkeit',
'Verhaltensbasierte Bewertung von Buergern durch Behoerden',
'Zugangssteuerung zu oeffentlichen Leistungen basierend auf Verhaltensdaten',
],
detectionKeywords: [
'social scoring', 'sozialkredit', 'verhaltensbewertung', 'buergerscore',
'personenbewertung', 'social media scoring', 'reputation score',
],
},
{
id: 'VERBOT-04',
title: 'Ungezielte Gesichtsdatensammlung',
titleEN: 'Untargeted Facial Image Scraping',
category: 'biometric_surveillance',
severity: 'absolute',
legalBasis: 'Art. 5 Abs. 1 lit. e AI Act',
description:
'KI-Systeme, die ungezielt Gesichtsbilder aus dem Internet oder von Ueberwachungskameras ' +
'sammeln, um biometrische Datenbanken aufzubauen. Prominentes Beispiel: Clearview AI.',
examples: [
'Scraping von Gesichtsbildern aus sozialen Netzwerken (Clearview AI)',
'Aufbau biometrischer Datenbanken aus Ueberwachungskameraaufnahmen',
'Sammlung von Portraetfotos ohne Wissen der Betroffenen',
'Web-Crawling zur Erstellung von Gesichtserkennungs-Trainingsdaten',
],
detectionKeywords: [
'gesichtserkennung', 'facial recognition', 'biometrisch', 'clearview',
'gesichtsdatenbank', 'scraping gesicht', 'face scraping',
],
},
{
id: 'VERBOT-05',
title: 'Biometrische Echtzeit-Ueberwachung',
titleEN: 'Real-time Biometric Surveillance in Public Spaces',
category: 'biometric_surveillance',
severity: 'absolute',
legalBasis: 'Art. 5 Abs. 1 lit. h AI Act',
description:
'Biometrische Echtzeit-Fernidentifizierung im oeffentlich zugaenglichen Raum zu Strafverfolgungszwecken ' +
'ist grundsaetzlich verboten. Ausnahmen bestehen nur bei konkretem, begruendetem Tatverdacht unter ' +
'strikten Voraussetzungen.',
examples: [
'Live-Gesichtserkennung durch Polizei an oeffentlichen Plaetzen',
'Echtzeit-Identifikation an Bahnhoefen oder Flughaefen ohne konkreten Anlass',
'Permanente biometrische Ueberwachung in Fussballstadien',
],
exceptions: [
'Gezielte Suche nach Opfern von Entfuehrung oder Menschenhandel',
'Verhinderung einer konkreten, erheblichen Bedrohung fuer Leib und Leben',
'Identifizierung von Verdaechtigen schwerer Straftaten (unter richterlicher Genehmigung)',
],
detectionKeywords: [
'echtzeit', 'live', 'ueberwachung', 'surveillance', 'oeffentlicher raum',
'fernidentifizierung', 'real-time', 'biometric identification',
],
},
// --- Bedingt / teilweise verboten ---
{
id: 'VERBOT-06',
title: 'Predictive Policing auf Personenprofilen',
titleEN: 'Profile-based Predictive Policing',
category: 'predictive_policing',
severity: 'conditional',
legalBasis: 'Art. 5 Abs. 1 lit. d AI Act',
description:
'KI-Systeme zur Erstellung von Risikobewertungen natuerlicher Personen zur Vorhersage von Straftaten ' +
'allein auf Grundlage von Profiling oder Persoenlichkeitsmerkmalen. Ortsbezogene Analysen ' +
'(Hotspot-Policing) sind hiervon nicht erfasst.',
examples: [
'Persoenlichkeitsprofilbasierte Straftaten-Vorhersage',
'KI-Score zur Bewertung der Rueckfallgefahr ohne konkreten Anlass',
'Vorausschauende Ueberwachung auf Basis ethnischer Profile',
],
exceptions: [
'Ortsbezogene Kriminalitaetsanalysen (Hotspot-Policing) ohne Personenbezug',
'Strafverfolgung mit konkretem Anfangsverdacht und richterlicher Anordnung',
],
detectionKeywords: [
'predictive policing', 'vorhersage straftat', 'risikobewertung person',
'profiling polizei', 'rueckfallprognose', 'kriminalitaetsprognose',
],
},
{
id: 'VERBOT-07',
title: 'Biometrische Kategorisierung sensibler Merkmale',
titleEN: 'Biometric Categorization of Sensitive Attributes',
category: 'biometric_categorization',
severity: 'conditional',
legalBasis: 'Art. 5 Abs. 1 lit. g AI Act',
description:
'KI-Systeme zur biometrischen Kategorisierung, die Rueckschluesse auf Rasse, politische Meinungen, ' +
'Gewerkschaftszugehoerigkeit, religioese oder weltanschauliche Ueberzeugungen, Sexualleben oder ' +
'sexuelle Orientierung ziehen. Ausnahme: Strafverfolgung unter engen Voraussetzungen.',
examples: [
'Gesichtsanalyse zur Erkennung ethnischer Zugehoerigkeit',
'Stimmanalyse zur Ableitung sexueller Orientierung',
'Gangerkennung zur Kategorisierung nach Religionszugehoerigkeit',
],
exceptions: [
'Strafverfolgung unter eng definierten gesetzlichen Voraussetzungen',
'Kennzeichnung oder Filterung rechtmaessig erworbener biometrischer Datensaetze',
],
detectionKeywords: [
'biometrisch', 'rasse', 'ethni', 'religion', 'sexuell', 'kategorisierung',
'gesichtsanalyse', 'stimmanalyse', 'gang erkennung',
],
},
{
id: 'VERBOT-08',
title: 'Emotionserkennung am Arbeitsplatz und in Schulen',
titleEN: 'Emotion Recognition in Workplaces and Schools',
category: 'emotion_recognition',
severity: 'conditional',
legalBasis: 'Art. 5 Abs. 1 lit. f AI Act',
description:
'KI-Systeme zur fortlaufenden Erkennung von Emotionen von Beschaeftigten am Arbeitsplatz oder ' +
'von Lernenden in Bildungseinrichtungen. Erlaubt nur mit medizinischem oder ' +
'sicherheitstechnischem Rechtfertigungsgrund.',
examples: [
'Webcam-basierte Aufmerksamkeitsueberwachung im Unterricht',
'Emotionsanalyse von Mitarbeitern waehrend Videokonferenzen',
'Stimmungsanalyse von Schuelern ueber Mikrofone',
'Stress-Detection bei Mitarbeitern ohne deren Einwilligung',
],
exceptions: [
'Medizinische Zwecke (z.B. Erkennung von Schmerzpatienten in Pflege)',
'Sicherheitstechnische Gruende (z.B. Muedigkeitserkennung bei Piloten/Fahrern)',
],
detectionKeywords: [
'emotionserkennung', 'emotion recognition', 'aufmerksamkeit', 'stimmungsanalyse',
'arbeitsplatz', 'schule', 'unterricht', 'webcam ueberwachung', 'stress detection',
],
},
]
// =============================================================================
// Relevante Rechtsprechung
// =============================================================================
export const AI_CASE_LAW: CaseLawReference[] = [
{
id: 'CASE-01',
court: 'LG Muenchen I',
date: '2025-11-11',
reference: '42 O 14139/24',
title: 'Urheberrecht bei KI-generierten Inhalten (Memorisierung)',
summary:
'Das Gericht stellte fest, dass ein KI-System urheberrechtlich geschuetzte Songtexte ' +
'inhaltsgleich reproduzierte, da diese im Modell „memorisiert" waren. Die KI-Modelle ' +
'stellen daher Vervielfaeltigungsstuecke i.S.d. Art. 2 InfoSoc-RL, §16 Abs. 1,2 UrhG dar.',
relevance:
'Zeigt, dass der Einsatz von KI-Systemen, die urheberrechtlich geschuetzte Inhalte ' +
'unautorisiert reproduzieren, urheberrechtlich unzulaessig ist. Relevant fuer alle ' +
'KI-Module, die auf urheberrechtlich geschuetzten Trainingsdaten basieren.',
sourceUrl: 'https://www.gesetze-bayern.de/Content/Document/Y-300-Z-GRURRS-B-2025-N-30204',
licenseNote: 'Amtliches Werk nach §5 UrhG — kein Urheberrechtsschutz, frei verwendbar im RAG.',
},
]
// =============================================================================
// Kategorisierung
// =============================================================================
export const PROHIBITION_CATEGORY_LABELS: Record<ProhibitionCategory, string> = {
manipulation: 'Manipulation & Taeuschung',
vulnerability_exploitation: 'Ausnutzung von Schwaechen',
social_scoring: 'Social Scoring',
biometric_surveillance: 'Biometrische Ueberwachung',
predictive_policing: 'Predictive Policing',
emotion_recognition: 'Emotionserkennung',
biometric_categorization: 'Biometrische Kategorisierung',
copyright_violation: 'Urheberrechtsverletzung',
}
export const SEVERITY_LABELS: Record<ProhibitionSeverity, string> = {
absolute: 'Absolut verboten',
conditional: 'Bedingt verboten (Ausnahmen moeglich)',
}
// =============================================================================
// Erkennung / Helper Functions
// =============================================================================
/**
* Prueft, ob eine Beschreibung oder ein Name auf verbotene Praktiken hinweist.
* Gibt alle potenziell zutreffenden Verbote zurueck, sortiert nach Relevanz.
*/
export function detectProhibitedPractices(
description: string,
name?: string
): { practice: ProhibitedAIPractice; matchCount: number; matchedKeywords: string[] }[] {
const searchText = `${name || ''} ${description}`.toLowerCase()
const results = PROHIBITED_AI_PRACTICES.map(practice => {
const matchedKeywords = practice.detectionKeywords.filter(kw =>
searchText.includes(kw.toLowerCase())
)
return {
practice,
matchCount: matchedKeywords.length,
matchedKeywords,
}
}).filter(r => r.matchCount > 0)
// Absolut verbotene zuerst, dann nach matchCount
results.sort((a, b) => {
if (a.practice.severity !== b.practice.severity) {
return a.practice.severity === 'absolute' ? -1 : 1
}
return b.matchCount - a.matchCount
})
return results
}
/**
* Gibt alle absolut verbotenen Praktiken zurueck.
*/
export function getAbsoluteProhibitions(): ProhibitedAIPractice[] {
return PROHIBITED_AI_PRACTICES.filter(p => p.severity === 'absolute')
}
/**
* Gibt alle bedingt verbotenen Praktiken zurueck.
*/
export function getConditionalProhibitions(): ProhibitedAIPractice[] {
return PROHIBITED_AI_PRACTICES.filter(p => p.severity === 'conditional')
}
/**
* Prueft, ob ein KI-Anwendungsfall Urheberrechts-Risiken birgt.
* Basierend auf LG Muenchen I Urteil.
*/
export function hasCopyrightRisk(trainingDataDescription?: string): boolean {
if (!trainingDataDescription) return false
const keywords = [
'urheberrecht', 'copyright', 'lizenz', 'geschuetzt', 'songtext',
'buch', 'artikel', 'literatur', 'musik', 'film', 'bild',
'web scraping', 'internet', 'crawl',
]
const lower = trainingDataDescription.toLowerCase()
return keywords.some(kw => lower.includes(kw))
}
/**
* Generiert einen formatierten Warnungstext fuer ein erkanntes Verbot.
*/
export function formatProhibitionWarning(practice: ProhibitedAIPractice): string {
const severity = practice.severity === 'absolute'
? 'ABSOLUT VERBOTEN'
: 'BEDINGT VERBOTEN'
let text = `${severity}: ${practice.title}\n`
text += `Rechtsgrundlage: ${practice.legalBasis}\n\n`
text += `${practice.description}\n`
if (practice.exceptions?.length) {
text += `\nAusnahmen:\n`
practice.exceptions.forEach(e => {
text += `- ${e}\n`
})
}
return text
}