feat: Kamera/PII-Trigger differenziert + CE × Compliance FAQ
- 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) <noreply@anthropic.com>
This commit is contained in:
@@ -77,6 +77,26 @@ func (h *IACEHandler) GetComplianceTriggers(c *gin.Context) {
|
|||||||
c.JSON(http.StatusOK, summary)
|
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 "".
|
// firstOrEmpty returns the first element of a string slice or "".
|
||||||
func firstOrEmpty(ss []string) string {
|
func firstOrEmpty(ss []string) string {
|
||||||
if len(ss) > 0 {
|
if len(ss) > 0 {
|
||||||
|
|||||||
@@ -429,6 +429,7 @@ func registerIACERoutes(v1 *gin.RouterGroup, h *handlers.IACEHandler) {
|
|||||||
|
|
||||||
// CE x Compliance Crossover
|
// CE x Compliance Crossover
|
||||||
iaceRoutes.GET("/projects/:id/compliance-triggers", h.GetComplianceTriggers)
|
iaceRoutes.GET("/projects/:id/compliance-triggers", h.GetComplianceTriggers)
|
||||||
|
iaceRoutes.GET("/compliance-faq", h.GetComplianceFAQ)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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.`,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -35,15 +35,18 @@ func GetComplianceTriggerMap() map[string][]ComplianceTrigger {
|
|||||||
m := make(map[string][]ComplianceTrigger)
|
m := make(map[string][]ComplianceTrigger)
|
||||||
|
|
||||||
// --- Cobot / camera / biometric patterns ---
|
// --- 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{
|
m["HP059"] = []ComplianceTrigger{
|
||||||
{
|
{
|
||||||
Regulation: "DSGVO Art. 35",
|
Regulation: "DSGVO Art. 35",
|
||||||
TriggerCondDE: "Kamera-Personenerkennung verarbeitet biometrische Daten",
|
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: "high",
|
Severity: "medium",
|
||||||
Module: "dsfa",
|
Module: "dsfa",
|
||||||
ModuleLink: "/sdk/dsfa",
|
ModuleLink: "/sdk/dsfa",
|
||||||
ActionDE: "Datenschutz-Folgenabschaetzung fuer Kamera-System durchfuehren",
|
ActionDE: "Pruefen: Verarbeitet die Kamera personenbezogene Daten? Herstellererklaerung einholen. Bei reinem Edge-Processing ohne Personenerkennung/Speicherung: DSFA nicht erforderlich.",
|
||||||
RAGQuery: "DSFA biometrische Daten Kameraerkennung",
|
RAGQuery: "DSFA Kamera Cobot Edge-Processing Personenerkennung biometrische Daten",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Regulation: "AI Act Art. 6",
|
Regulation: "AI Act Art. 6",
|
||||||
|
|||||||
Reference in New Issue
Block a user