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:
417
admin-v2/lib/sdk/dsfa/ai-mitigation-library.ts
Normal file
417
admin-v2/lib/sdk/dsfa/ai-mitigation-library.ts
Normal 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')
|
||||
}
|
||||
375
admin-v2/lib/sdk/dsfa/ai-risk-catalog.ts
Normal file
375
admin-v2/lib/sdk/dsfa/ai-risk-catalog.ts
Normal 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'))
|
||||
}
|
||||
622
admin-v2/lib/sdk/dsfa/eu-legal-frameworks.ts
Normal file
622
admin-v2/lib/sdk/dsfa/eu-legal-frameworks.ts
Normal 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),
|
||||
}
|
||||
}
|
||||
433
admin-v2/lib/sdk/dsfa/gdpr-enforcement-cases.ts
Normal file
433
admin-v2/lib/sdk/dsfa/gdpr-enforcement-cases.ts
Normal 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`
|
||||
}
|
||||
386
admin-v2/lib/sdk/dsfa/prohibited-ai-practices.ts
Normal file
386
admin-v2/lib/sdk/dsfa/prohibited-ai-practices.ts
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user