From 1502ac6d8f8b16e4aa799ad0343dac29681c53bd Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Sat, 9 May 2026 07:25:39 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Kamera/PII-Trigger=20differenziert=20+?= =?UTF-8?q?=20CE=20=C3=97=20Compliance=20FAQ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - HP059 Trigger: "DSFA erforderlich" → "zu pruefen" mit Entscheidungslogik (Edge-Processing ohne Speicherung/Personenerkennung = keine DSFA) - 6 FAQ-Eintraege: Kamera-PII, zugekaufte Baugruppen, Herstellererklaerung, KI-Hochrisiko, CRA OTA-Updates, verkettete Produktionslinien - GET /compliance-faq Endpoint mit Kategorie-Filter Co-Authored-By: Claude Opus 4.6 (1M context) --- .../api/handlers/iace_handler_compliance.go | 20 +++ ai-compliance-sdk/internal/app/routes.go | 1 + .../internal/iace/compliance_faq.go | 125 ++++++++++++++++++ .../internal/iace/compliance_triggers.go | 11 +- 4 files changed, 153 insertions(+), 4 deletions(-) create mode 100644 ai-compliance-sdk/internal/iace/compliance_faq.go diff --git a/ai-compliance-sdk/internal/api/handlers/iace_handler_compliance.go b/ai-compliance-sdk/internal/api/handlers/iace_handler_compliance.go index 3a7993a..7e9c499 100644 --- a/ai-compliance-sdk/internal/api/handlers/iace_handler_compliance.go +++ b/ai-compliance-sdk/internal/api/handlers/iace_handler_compliance.go @@ -77,6 +77,26 @@ func (h *IACEHandler) GetComplianceTriggers(c *gin.Context) { c.JSON(http.StatusOK, summary) } +// GetComplianceFAQ handles GET /compliance-faq +// Returns CE × Compliance FAQ entries, optionally filtered by ?category= +func (h *IACEHandler) GetComplianceFAQ(c *gin.Context) { + category := c.Query("category") + all := iace.GetComplianceFAQ() + + if category != "" { + var filtered []iace.ComplianceFAQEntry + for _, f := range all { + if f.Category == category { + filtered = append(filtered, f) + } + } + c.JSON(http.StatusOK, gin.H{"faq": filtered, "total": len(filtered)}) + return + } + + c.JSON(http.StatusOK, gin.H{"faq": all, "total": len(all)}) +} + // firstOrEmpty returns the first element of a string slice or "". func firstOrEmpty(ss []string) string { if len(ss) > 0 { diff --git a/ai-compliance-sdk/internal/app/routes.go b/ai-compliance-sdk/internal/app/routes.go index bc20c77..52fa4c2 100644 --- a/ai-compliance-sdk/internal/app/routes.go +++ b/ai-compliance-sdk/internal/app/routes.go @@ -429,6 +429,7 @@ func registerIACERoutes(v1 *gin.RouterGroup, h *handlers.IACEHandler) { // CE x Compliance Crossover iaceRoutes.GET("/projects/:id/compliance-triggers", h.GetComplianceTriggers) + iaceRoutes.GET("/compliance-faq", h.GetComplianceFAQ) } } diff --git a/ai-compliance-sdk/internal/iace/compliance_faq.go b/ai-compliance-sdk/internal/iace/compliance_faq.go new file mode 100644 index 0000000..7909086 --- /dev/null +++ b/ai-compliance-sdk/internal/iace/compliance_faq.go @@ -0,0 +1,125 @@ +package iace + +// ComplianceFAQEntry represents a frequently asked question about +// the intersection of CE marking and data protection / AI regulation. +type ComplianceFAQEntry struct { + ID string `json:"id"` + QuestionDE string `json:"question_de"` + AnswerDE string `json:"answer_de"` + Category string `json:"category"` // "dsfa", "ai_act", "cra", "ce_general" + Tags []string `json:"tags"` +} + +// GetComplianceFAQ returns CE × Compliance FAQ entries. +func GetComplianceFAQ() []ComplianceFAQEntry { + return []ComplianceFAQEntry{ + { + ID: "FAQ-001", + Category: "dsfa", + Tags: []string{"kamera", "cobot", "pii", "dsfa", "edge-processing"}, + QuestionDE: "Muss fuer eine Kamera am Cobot eine DSFA durchgefuehrt werden?", + AnswerDE: `Nicht automatisch. Eine Kamera verarbeitet nicht zwangslaeufig personenbezogene Daten (PII). + +Entscheidend ist die Art der Verarbeitung: +- Reine Anwesenheitserkennung (ja/nein) mit Edge-Processing ohne Speicherung: KEIN PII → keine DSFA +- Objekterkennung ohne Personenbezug (Werkstuecke, Positionen): KEIN PII → keine DSFA +- Personenerkennung oder Bildspeicherung/-uebertragung: PII → DSFA pruefen +- Gesichts-/Koerpererkennung: Biometrische Daten → DSFA PFLICHT + +Der Hersteller muss in der Betriebsanleitung dokumentieren, welche Datenverarbeitung stattfindet. Diese Herstellererklaerung ist massgeblich fuer die datenschutzrechtliche Bewertung. + +WICHTIG: Die Formulierungen der Kamerahersteller variieren stark. Eine rein stichwortbasierte Pruefung reicht nicht — der Text muss inhaltlich analysiert werden.`, + }, + { + ID: "FAQ-002", + Category: "ce_general", + Tags: []string{"zugekauft", "baugruppe", "ce-kennzeichnung", "schnittstelle"}, + QuestionDE: "Muessen zugekaufte Baugruppen mit eigener CE-Kennzeichnung neu bewertet werden?", + AnswerDE: `Nein — Baugruppen mit eigener CE-Konformitaetserklaerung muessen NICHT intern neu bewertet werden. + +ABER: Folgendes MUSS bewertet werden: +1. Schnittstellen zwischen den Baugruppen (mechanisch, elektrisch, steuerungstechnisch) +2. Neue Gefaehrdungen die durch die Kombination entstehen +3. Wechselwirkungen zwischen den Baugruppen (z.B. Schwingungen, EMV, thermisch) + +Die CE-Erklaerung des Zulieferers deckt nur die INTERNE Sicherheit der Baugruppe ab. Die Gesamtanlage als Verkettung braucht eine eigene Risikobeurteilung fuer die Schnittstellen. + +Praxis: Bei Aenderungen an Schnittstellen oder der Einbausituation muss geprueft werden, ob die CE-Erklaerung des Zulieferers noch gueltig ist.`, + }, + { + ID: "FAQ-003", + Category: "dsfa", + Tags: []string{"herstellererklaerung", "kamera", "datenschutz", "llm"}, + QuestionDE: "Wie pruefe ich die Herstellererklaerung einer Kamera auf PII-Relevanz?", + AnswerDE: `Die Herstellererklaerungen variieren stark in Formulierung und Detail. Eine reine Stichwortsuche reicht nicht. + +Indikatoren fuer KEIN PII: +- "keine Speicherung von Bilddaten" +- "lokale Verarbeitung / Edge-Processing" +- "Daten werden nach Auswertung sofort geloescht" +- "keine Personenerkennung / nur Anwesenheitserkennung" +- "keine Uebertragung von Bilddaten" + +Indikatoren fuer PII: +- "Personenerkennung / Gesichtserkennung" +- "Bilddaten werden gespeichert / uebertragen" +- "Cloud-basierte Verarbeitung" +- "Tracking / Verfolgung von Personen" +- "biometrische Merkmale" + +Bei unklarer Formulierung: LLM-basierte Textanalyse durchfuehren oder Rueckfrage an den Hersteller stellen.`, + }, + { + ID: "FAQ-004", + Category: "ai_act", + Tags: []string{"ki", "sicherheitsfunktion", "hochrisiko", "ai-act"}, + QuestionDE: "Wann ist eine KI-basierte Sicherheitsfunktion ein Hochrisiko-KI-System?", + AnswerDE: `Gemaess AI Act Art. 6 + Anhang I ist ein KI-System Hochrisiko wenn: +1. Es als Sicherheitskomponente in ein Produkt eingebaut ist (z.B. Maschinensteuerung) +2. Das Produkt selbst einer EU-Harmonisierungsvorschrift unterliegt (z.B. Maschinenverordnung) + +Beispiele fuer Hochrisiko: +- KI-basierte Kollisionsvermeidung am Cobot (Sicherheitsfunktion) +- KI-basierte Qualitaetskontrolle die Sicherheitsentscheidungen beeinflusst +- Predictive Maintenance die Sicherheitsintervalle veraendert + +NICHT Hochrisiko: +- KI fuer reine Prozessoptimierung ohne Sicherheitsbezug +- KI fuer Energiemanagement +- KI fuer Logistikplanung`, + }, + { + ID: "FAQ-005", + Category: "cra", + Tags: []string{"software-update", "cra", "schwachstelle", "ota"}, + QuestionDE: "Welche CRA-Pflichten gelten fuer OTA-Updates an Maschinen?", + AnswerDE: `Der Cyber Resilience Act (CRA) verpflichtet Hersteller von Produkten mit digitalen Elementen: + +1. Schwachstellenmanagement (Art. 10): Bekannte Schwachstellen zeitnah beheben +2. Sicherheitsupdates (Art. 13): Mindestens 5 Jahre kostenlose Sicherheitsupdates +3. Meldepflicht (Art. 11): Aktiv ausgenutzte Schwachstellen binnen 24h an ENISA melden +4. SBOM (Art. 13): Software-Stueckliste bereitstellen + +Bei OTA-Updates speziell: +- Update darf Sicherheitsfunktionen nicht beeintraechtigen (Validierung vor Rollout) +- Rollback-Moeglichkeit vorsehen +- Update-Integritaet sicherstellen (signierte Updates) +- Nutzer ueber sicherheitsrelevante Updates informieren`, + }, + { + ID: "FAQ-006", + Category: "ce_general", + Tags: []string{"gesamtanlage", "verkettung", "produktionslinie", "schnittstelle"}, + QuestionDE: "Braucht eine verkettete Produktionslinie eine eigene CE-Kennzeichnung?", + AnswerDE: `Ja — wenn Maschinen zu einer Gesamtanlage verkettet werden, gilt die Gesamtheit als neue Maschine im Sinne der Maschinenverordnung. Der Integrator/Anlagenbauer ist dann Hersteller der Gesamtanlage. + +Pflichten des Integrators: +1. Risikobeurteilung fuer die Gesamtanlage (Schnittstellen, Verkettung, Transfersysteme) +2. CE-Kennzeichnung fuer die Gesamtanlage +3. Betriebsanleitung fuer die Gesamtanlage +4. EU-Konformitaetserklaerung + +Die CE-Erklaerungen der Einzelmaschinen bleiben gueltig, decken aber NUR die interne Sicherheit ab. Die Schnittstellen-Risiken muessen separat bewertet werden.`, + }, + } +} diff --git a/ai-compliance-sdk/internal/iace/compliance_triggers.go b/ai-compliance-sdk/internal/iace/compliance_triggers.go index 419414b..413e70f 100644 --- a/ai-compliance-sdk/internal/iace/compliance_triggers.go +++ b/ai-compliance-sdk/internal/iace/compliance_triggers.go @@ -35,15 +35,18 @@ func GetComplianceTriggerMap() map[string][]ComplianceTrigger { m := make(map[string][]ComplianceTrigger) // --- Cobot / camera / biometric patterns --- + // NOTE: Kamera ≠ automatisch PII/DSFA. Entscheidend ist ob Personenerkennung + // oder Bildspeicherung stattfindet. Edge-Processing ohne Speicherung/Personenbezug + // erfordert keine DSFA. Herstellererklaerung ist massgeblich. m["HP059"] = []ComplianceTrigger{ { Regulation: "DSGVO Art. 35", - TriggerCondDE: "Kamera-Personenerkennung verarbeitet biometrische Daten", - Severity: "high", + TriggerCondDE: "Kamera am Cobot erkannt. DSFA-Pflicht abhaengig von Verarbeitungsart: Erfolgt Personenerkennung oder Bildspeicherung? Wenn nur Anwesenheitserkennung (ja/nein) mit Edge-Processing ohne Speicherung: keine DSFA erforderlich. Herstellererklaerung dokumentieren.", + Severity: "medium", Module: "dsfa", ModuleLink: "/sdk/dsfa", - ActionDE: "Datenschutz-Folgenabschaetzung fuer Kamera-System durchfuehren", - RAGQuery: "DSFA biometrische Daten Kameraerkennung", + ActionDE: "Pruefen: Verarbeitet die Kamera personenbezogene Daten? Herstellererklaerung einholen. Bei reinem Edge-Processing ohne Personenerkennung/Speicherung: DSFA nicht erforderlich.", + RAGQuery: "DSFA Kamera Cobot Edge-Processing Personenerkennung biometrische Daten", }, { Regulation: "AI Act Art. 6",