""" Admin Klausurkorrektur Documentation Component. Provides audit-ready documentation for education ministries and data protection officers. Written in non-technical language for compliance review. This component explains: - Privacy-by-Design architecture - DSGVO compliance measures - Data flow and processing - Security guarantees """ def get_admin_klausur_docs_css() -> str: """CSS for Klausur Documentation Panel.""" return """ /* ========================================== KLAUSUR DOCUMENTATION STYLES (Audit-Ready) ========================================== */ .klausur-docs-panel { background: var(--bp-surface-elevated); border-radius: 12px; padding: 24px; margin-bottom: 20px; border: 1px solid var(--bp-border); } .klausur-docs-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--bp-border); } .klausur-docs-header h2 { margin: 0; font-size: 20px; color: var(--bp-text); display: flex; align-items: center; gap: 12px; } .audit-badge { background: #065f46; color: #6ee7b7; font-size: 11px; padding: 4px 10px; border-radius: 4px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; } .doc-section { margin-bottom: 32px; } .doc-section h3 { color: var(--bp-text); font-size: 16px; margin: 0 0 16px 0; padding-bottom: 8px; border-bottom: 1px solid var(--bp-border-subtle); display: flex; align-items: center; gap: 8px; } .doc-section h3 .section-number { background: var(--bp-primary); color: white; width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; } .doc-content { color: var(--bp-text-muted); font-size: 14px; line-height: 1.8; } .doc-content p { margin: 0 0 12px 0; } .doc-content ul, .doc-content ol { margin: 12px 0; padding-left: 24px; } .doc-content li { margin-bottom: 8px; } .highlight-box { background: rgba(6, 95, 70, 0.15); border: 1px solid #065f46; border-radius: 8px; padding: 16px; margin: 16px 0; } .highlight-box.green { background: rgba(6, 95, 70, 0.15); border-color: #065f46; } .highlight-box.blue { background: rgba(59, 130, 246, 0.1); border-color: #3b82f6; } .highlight-box.yellow { background: rgba(251, 191, 36, 0.1); border-color: #fbbf24; } .highlight-box h4 { color: inherit; margin: 0 0 8px 0; font-size: 14px; } .highlight-box p, .highlight-box ul { margin: 0; color: inherit; } .highlight-box.green { color: #6ee7b7; } .highlight-box.blue { color: #60a5fa; } .highlight-box.yellow { color: #fbbf24; } .data-flow-diagram { background: var(--bp-surface); border: 1px solid var(--bp-border); border-radius: 8px; padding: 20px; margin: 16px 0; font-family: monospace; font-size: 12px; overflow-x: auto; white-space: pre; color: var(--bp-text); line-height: 1.6; } .legal-reference { background: var(--bp-surface); border-left: 3px solid var(--bp-primary); padding: 12px 16px; margin: 16px 0; font-style: italic; color: var(--bp-text-muted); } .legal-reference cite { display: block; margin-top: 8px; font-style: normal; font-weight: 600; color: var(--bp-text); } .comparison-table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 13px; } .comparison-table th, .comparison-table td { padding: 12px; text-align: left; border: 1px solid var(--bp-border); } .comparison-table th { background: var(--bp-surface); color: var(--bp-text); font-weight: 600; } .comparison-table td { color: var(--bp-text-muted); } .comparison-table .good { color: #22c55e; } .comparison-table .bad { color: #ef4444; } .tech-specs { background: var(--bp-surface); border-radius: 8px; padding: 16px; margin: 16px 0; } .tech-specs h4 { margin: 0 0 12px 0; color: var(--bp-text); font-size: 14px; } .tech-specs table { width: 100%; font-size: 12px; } .tech-specs td { padding: 6px 0; color: var(--bp-text-muted); } .tech-specs td:first-child { color: var(--bp-text); font-weight: 500; width: 40%; } .print-button { background: var(--bp-surface); border: 1px solid var(--bp-border); color: var(--bp-text); padding: 10px 20px; border-radius: 8px; cursor: pointer; font-size: 13px; display: flex; align-items: center; gap: 8px; } .print-button:hover { background: var(--bp-border); } @media print { .klausur-docs-panel { background: white; color: black; border: none; } .doc-content, .highlight-box, .tech-specs td { color: black !important; } .print-button { display: none; } } """ def get_admin_klausur_docs_html() -> str: """HTML for Klausur Documentation (Audit-Ready).""" return """

Datenschutz-Dokumentation Klausurkorrektur Audit-Ready

1 Zusammenfassung fuer Entscheidungstraeger

Kernaussage

Die KI-gestuetzte Klausurkorrektur verarbeitet keine personenbezogenen Daten ausserhalb des Geraets der Lehrkraft. Die Verarbeitung ist datenschutzrechtlich vergleichbar mit einer Korrektur auf dem eigenen PC der Lehrkraft.

Dieses System wurde nach dem Prinzip "Privacy by Design" entwickelt. Schueler-Namen werden niemals an Server oder KI-Systeme uebermittelt. Stattdessen werden zufaellige Dokumenten-Tokens (Pseudonyme) verwendet, die nur die Lehrkraft lokal wieder aufloesen kann.

2 Rechtsgrundlage und DSGVO-Konformitaet

Anwendung auf unser System:

  • Pseudonymisierung: Jedes Klausur-Dokument erhaelt einen zufaelligen 128-Bit Token (UUID), der keinerlei Beziehung zur Schueleridentitaet hat.
  • Getrennte Speicherung: Die Zuordnung Token → Name wird ausschliesslich lokal beim Lehrer gespeichert (verschluesselt mit AES-256).
  • Kein Zugriff: Der Server und die KI haben keinen Zugang zur Zuordnungstabelle und koennen somit keine Re-Identifizierung durchfuehren.

Rechtliche Einordnung

Da die KI nur pseudonymisierte Texte ohne jeglichen Personenbezug verarbeitet, handelt es sich aus Sicht der KI-Verarbeitung um anonyme Daten. Die DSGVO gilt nicht fuer anonyme Daten (Erwaegungsgrund 26).

3 Datenfluss und Verarbeitungsschritte

┌─────────────────────────────────────────────────────────────────────────────────┐ │ DATENFLUSS KLAUSURKORREKTUR │ ├─────────────────────────────────────────────────────────────────────────────────┤ │ │ │ LEHRER-GERAET (Browser) SERVER (BreakPilot) │ │ ──────────────────────── ───────────────────── │ │ │ │ 1. Schuelerliste eingeben │ │ [Max, Anna, Tim, ...] │ │ │ │ │ ▼ │ │ 2. Lokale Verschluesselung ─────► Verschluesselte Zuordnung │ │ (AES-256, Passwort) (Server kann nicht lesen) │ │ │ │ │ ▼ │ │ 3. QR-Codes generieren ◄───── Zufaellige doc_tokens │ │ [abc123..., def456..., ...] (128-bit UUID) │ │ │ │ │ ▼ │ │ 4. QR-Bogen drucken │ │ │ │ │ ══════════╪══════════════════════════════════════════════════════════════ │ │ │ (Physisch: Klausur mit QR) │ │ ══════════╪══════════════════════════════════════════════════════════════ │ │ │ │ │ 5. Scan hochladen ─────► 6. QR erkennen │ │ (Bild der Klausur) │ │ │ ▼ │ │ 7. Kopfzeile entfernen │ │ (Name/Klasse redacted) │ │ │ │ │ ▼ │ │ 8. OCR + KI-Korrektur │ │ (Nur Token + Text) │ │ │ │ │ ▼ │ │ 10. Lokal entschluesseln ◄───── 9. Pseudonymisierte Ergebnisse │ │ + Namen zuordnen [abc123: Note 2+, ...] │ │ │ │ │ ▼ │ │ 11. Ergebnis: Max = 2+ │ │ │ └─────────────────────────────────────────────────────────────────────────────────┘ LEGENDE: ─────► Verschluesselte oder pseudonymisierte Daten ═══════ Physischer Medienbruch (Papier) Server kann NIEMALS: Schuelernamen sehen, Zuordnung aufloesen, Identitaet bestimmen

Erklaerung der Schritte:

  1. Schuelerliste: Der Lehrer gibt die Namen seiner Schueler ein. Diese verlassen das Geraet nicht.
  2. Verschluesselung: Die Zuordnung wird mit dem Passwort des Lehrers verschluesselt (AES-256-GCM).
  3. QR-Codes: Fuer jeden Schueler wird ein zufaelliger Token generiert. Kein Zusammenhang zum Namen.
  4. Drucken: Der QR-Bogen wird ausgedruckt. Schueler kleben ihren QR auf die Klausur.
  5. Scan: Die korrigierten Klausuren werden gescannt.
  6. QR-Erkennung: Der QR-Code wird automatisch erkannt, um das Dokument zuzuordnen.
  7. Redaction: Die Kopfzeile mit Name/Klasse wird automatisch geschwärzt.
  8. KI-Korrektur: Die KI sieht nur den anonymen Text und den Token - niemals einen Namen.
  9. Ergebnis: Das Ergebnis wird mit dem Token gespeichert (z.B. "abc123: 85 Punkte").
  10. Entschluesselung: Nur der Lehrer kann mit seinem Passwort die Zuordnung wiederherstellen.

4 Vergleich mit anderen Loesungen

Kriterium BreakPilot (diese Loesung) Typische Cloud-KI (z.B. NovaGrade)
Schuelernamen an Server Nein (nur Tokens) Ja
Schuelernamen an KI Nein Ja (OpenAI/Claude API)
Datenspeicherung Self-Hosted (SysEleven, Deutschland) US-Cloud (OpenAI, AWS)
Zuordnung abrufbar durch Nur Lehrer (verschluesselt) Anbieter, evtl. Dritte
DSGVO-Risiko Minimal (pseudonymisiert) Hoch (personenbezogen)
Vergleichbar mit Lokale PC-Korrektur Cloud-Datenuebermittlung

5 Technische Sicherheitsmassnahmen

Kryptographische Parameter

Token-GenerierungUUID v4 (128-bit kryptographisch zufaellig)
VerschluesselungAES-256-GCM (authentifizierte Verschluesselung)
SchluesselableitungPBKDF2-SHA256, 100.000 Iterationen
Salt128-bit zufaellig pro Sitzung
IV (Initialisierungsvektor)96-bit zufaellig pro Verschluesselung

Infrastruktur

LLM-HostingSysEleven, Berlin (DE)
DatenbankPostgreSQL mit Verschluesselung at rest
NetzwerkTLS 1.3, kein Datenverkehr zu US-Servern
DatenloeschungAutomatisch nach 30 Tagen

Zugangskontrolle

Lehrer-IsolationStrikte Mandantentrennung (teacher_id Filter)
Kein Admin-Zugriff auf ZuordnungZero-Knowledge-Design
Audit-LogAlle Zugriffe protokolliert (ohne PII)

6 Risikobewertung

Potenzielle Risiken und Gegenmassnahmen:

Risiko Bewertung Gegenmassnahme
Re-Identifizierung durch Server Technisch unmoeglich Server hat keinen Zugang zur Zuordnung (Zero-Knowledge)
Datenverlust Kein Personenbezug Gestohlene Daten enthalten nur Tokens, keine Namen
Passwort-Verlust durch Lehrer Mittel Lokale Backup-Kopie im Browser (localStorage), Neustart moeglich
KI-Halluzination Kein Datenschutzrisiko Lehrer prueft und korrigiert Ergebnisse manuell

Wichtiger Hinweis

Bei Verlust des Vault-Passworts kann die Zuordnung Token → Name nicht wiederhergestellt werden. Die Lehrkraft sollte das Passwort sicher aufbewahren oder eine lokale Sicherung erstellen.

7 Fazit und Empfehlung

Bewertung: Datenschutzkonform

Die Klausurkorrektur mit BreakPilot ist vergleichbar mit einer lokalen Verarbeitung auf dem PC der Lehrkraft. Personenbezogene Daten verlassen das Geraet der Lehrkraft nicht. Die KI-Verarbeitung erfolgt ausschliesslich auf pseudonymisierten Daten.

  • Keine Uebermittlung personenbezogener Daten an Dritte
  • Kein US-Cloud-Transfer (Schrems II konform)
  • Volle Kontrolle der Lehrkraft ueber die Identitaets-Zuordnung
  • Automatische Datenloeschung nach 30 Tagen

Empfehlung: Das System kann ohne zusaetzliche Genehmigung oder Datenschutz-Folgenabschaetzung (DSFA) eingesetzt werden, da keine hohen Risiken fuer die Rechte und Freiheiten der Betroffenen bestehen.

Dokumentversion: 1.0 | Stand: | System: BreakPilot Klausurkorrektur | Kontakt: datenschutz@breakpilot.de

""" def get_admin_klausur_docs_js() -> str: """JavaScript for Klausur Documentation Panel.""" return """ // Klausur Documentation Panel // No interactive JS needed - documentation is static // Print functionality uses native window.print() console.log('Klausur Documentation loaded - Audit-ready version'); """