""" 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 """
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.
Anwendung auf unser System:
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).
Erklaerung der Schritte:
| 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 |
| Token-Generierung | UUID v4 (128-bit kryptographisch zufaellig) |
| Verschluesselung | AES-256-GCM (authentifizierte Verschluesselung) |
| Schluesselableitung | PBKDF2-SHA256, 100.000 Iterationen |
| Salt | 128-bit zufaellig pro Sitzung |
| IV (Initialisierungsvektor) | 96-bit zufaellig pro Verschluesselung |
| LLM-Hosting | SysEleven, Berlin (DE) |
| Datenbank | PostgreSQL mit Verschluesselung at rest |
| Netzwerk | TLS 1.3, kein Datenverkehr zu US-Servern |
| Datenloeschung | Automatisch nach 30 Tagen |
| Lehrer-Isolation | Strikte Mandantentrennung (teacher_id Filter) |
| Kein Admin-Zugriff auf Zuordnung | Zero-Knowledge-Design |
| Audit-Log | Alle Zugriffe protokolliert (ohne PII) |
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 |
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.
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.
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