Administratorhandbuch

Kryptoarchitektur

Dieser Artikel erklärt die Verschlüsselungsarchitektur von Ephraim für Schul-Admins: mit technischer Tiefe, aber ohne vorausgesetztes Kryptografie-Studium. Im Mittelpunkt stehen Nutzer-Vaults, Server-Schlüssel, Projektmaterial, Basiswissen, Sitzungen, 2FA, KI-Jobs, Resetfolgen und die praktischen Betriebsregeln.

· Stand: Juni 2026

1. Zielbild in einfachen Worten

Wer muss das lesen? Schul-Admins, Super-Admins und technische Betreuerinnen sollten diesen Artikel kennen, bevor sie Passwörter zurücksetzen, Backups bewerten, Projekte löschen, externe Komponenten freigeben oder Sicherheitsvorfälle einordnen. Für normale Nutzer reicht zuerst Datenschutz tiefgehend.

Ephraim verschlüsselt Daten nicht mit einem einzigen Generalschlüssel. Stattdessen gibt es mehrere Schlüsselbereiche. Private Inhalte einer Nutzerin oder eines Nutzers hängen am persönlichen Vault. Geteiltes Projektmaterial hat eigene Projektschlüssel. Serverdaten, die Cron, Worker oder Adminfunktionen unabhängig von einer angemeldeten Person benötigen, werden mit serverseitigen Schlüsseln geschützt.

Das wichtigste Bild ist der verschlossene Umschlag: Der eigentliche Inhalt liegt in einem Umschlag. Der Schlüssel zu diesem Umschlag liegt wiederum in einem zweiten Umschlag, der nur mit dem passenden Passwort oder einem Servergeheimnis geöffnet wird. Dadurch muss bei einem Passwortwechsel nicht jeder Chat neu verschlüsselt werden; Ephraim verpackt nur den Datenschlüssel neu.

Admin-Merksatz: Verschlüsselung ist kein Schalter „an oder aus“. Entscheidend ist, welcher Schlüssel welche Daten schützt und wer diesen Schlüssel zur Laufzeit tatsächlich besitzt.

2. Begriffe für Nicht-Experten

Begriff Bedeutung in Ephraim Warum das für Admins wichtig ist
Klartext Lesbare Daten: Chattext, Dateiname, TOTP-Secret oder Projektauftrag. Klartext ist nur im Browser, im aktuellen Serverprozess oder im Modellaufruf zulässig.
Ciphertext Verschlüsselte Daten, die ohne passenden Schlüssel wie Zufall aussehen. Ein Datenbankdump soll überwiegend Ciphertext enthalten, nicht private Inhalte.
Hash Ein Einweg-Prüfwert, etwa für Passwörter, Sessiontokens oder Recovery-Codes. Ein Hash wird geprüft, aber nicht zurückentschlüsselt. Admins lesen daraus kein Passwort.
Salt Zufälliger Zusatzwert pro Passwortableitung. Gleiche Passwörter führen nicht zu gleichen abgeleiteten Schlüsseln.
Nonce Einmalwert für eine Verschlüsselung. Die Nonce ist nicht geheim, verhindert aber wiederholte Muster im Ciphertext.
DEK Data Encryption Key: Schlüssel für eigentliche Daten. Wenn ein DEK verloren ist, sind die damit verschlüsselten Daten praktisch verloren.
KEK Key Encryption Key: Schlüssel zum Verpacken eines DEK. Beim Passwortwechsel wird der DEK neu verpackt, nicht jeder Chat neu geschrieben.
AEAD Verschlüsselung mit eingebauter Integritätsprüfung. Manipulierte Ciphertexte werden nicht still als „falscher Klartext“ akzeptiert.
Zweckbindung Ein Ciphertext ist an einen Verwendungszweck gebunden. Ein TOTP-Secret-Ciphertext passt nicht einfach als Projektkonfiguration.

3. Datenklassen und Schlüsselmodelle

Ephraim trennt Daten danach, ob sie privat, geteilt oder serverbetrieben sind. Diese Trennung ist wichtiger als die einzelne Tabelle. Für Schul-Admins ist entscheidend, welche Daten ohne Nutzerpasswort verarbeitet werden müssen und welche bewusst nur im Nutzer-Vault liegen.

Datenklasse Beispiele Kryptografisches Modell
Privater Nutzer-Vault Private Chats, Chattitel, persönliche Dateien, Datei-Chunks, Embeddings, Chat-Zusammenfassungen, Erinnerungen, private KI-Artefakte Zufällige User-DEK, mit passwortabgeleiteter KEK verpackt
Nutzerprivate Kalenderquellen Private ICS-URLs, private Kalender-Rohdaten, daraus erzeugte Chunks, Embeddings und Termine Eigener Quellschlüssel pro Kalender, mit der User-DEK des Besitzers verpackt
Projektmaterial Projektdateien, Projektkopien, Projektdatei-Chunks, Projektmaterial-Embeddings Projektbezogener Dateischlüssel, serverseitig verpackt
Projektkonfiguration Projektauftrag, Gesprächsstarter, Builder-Zustand Serverseitige Verschlüsselung mit Zweck project-config
Zentrales Basiswissen Globale Quellen, Kalender-/Wetterdaten, Wikipedia-Cache, Chunks, Embeddings Eigener Knowledge-Schlüssel, weil Cron und Retrieval Zugriff brauchen
Sicherheitsgeheimnisse 2FA-Secrets, PHP-Sessions, temporäre Exporte, Projektdatei-Schlüssel ServerCrypto mit AT_REST_ENCRYPTION_KEY und Zweckbindung
Admin-Runtime Supervisor-/Runtime-WebSocket-Zugriff Kurzlebige Ed25519-JWTs mit Signatur- und Verifikationsschlüssel

4. Schlüsselkarte

Schlüsselkarte der Ephraim-Kryptoarchitektur Nutzerpasswort nicht gespeichert, nur geprüft Argon2id + Salt leitet KEK aus Passwort ab User-DEK verschlüsselt private Inhalte Vault-Daten Chats, Dateien, Memories, Summaries AT_REST_ENCRYPTION_KEY serverweiter Betriebskey ServerCrypto Zweckbindung pro Datenart Servergeschützte Daten 2FA, Sessions, Projektconfig KNOWLEDGE_STORAGE_KEY_HEX Basiswissen / Kalender / Wikipedia JWT-Schlüsselpaar für Runtime
Die Karte zeigt die wichtigsten Schlüsselbereiche. Kein einzelner Datenbankschlüssel öffnet alles; die Datenklassen sind getrennt.

5. Nutzer-Vault und User-DEK

Für private Inhalte erzeugt Ephraim pro normalem Konto eine zufällige 32-Byte-User-DEK. Diese User-DEK ist der eigentliche Datenschlüssel für private Inhalte. Sie entsteht nicht aus dem Passwort und sie ist auch nicht das Passwort. Das Passwort dient dazu, eine KEK abzuleiten, mit der die User-DEK verpackt wird.

Die Ableitung nutzt Argon2id mit individuellem 16-Byte-Salt, opslimit 3 und 64 MiB Speicherlimit. Für Laien übersetzt: Das System macht die Passwortprüfung für Angreifer absichtlich teuer. Wer nur Datenbankmaterial erbeutet, muss jedes vermutete Passwort mit deutlichem Rechen- und Speicheraufwand ausprobieren.

Vault-Schlüsselableitung Passwort nicht gespeichert Salt pro Konto Argon2id KEK ableiten verpackte User-DEK XChaCha20-Poly1305 Vault-Daten privat
Das Passwort öffnet nicht direkt den Chat. Es öffnet den verpackten Vault-Schlüssel, und dieser schützt die privaten Inhalte.

6. Warum bcrypt und Argon2id beide vorkommen

Ephraim nutzt zwei verschiedene Passwortfunktionen für zwei verschiedene Aufgaben. Der bcrypt-Hash dient der Login-Prüfung: Stimmt das eingegebene Passwort zum gespeicherten Hash? Ephraim speichert diesen Hash mit bcrypt und Kostenfaktor 12. Argon2id dient der Schlüsselableitung: Aus dem eingegebenen Passwort entsteht eine KEK, mit der die User-DEK entpackt wird.

Diese Trennung verhindert eine gefährliche Vereinfachung. Der Passwort-Hash ist kein Datenschlüssel. Wenn sich das Passwort ändert, ändert sich der Login-Hash und die Verpackung der User-DEK. Die privaten Chats selbst bleiben mit derselben User-DEK verschlüsselt.

7. Passwortwechsel, Recovery und Reset

Beim normalen Passwortwechsel ist der alte Vault bereits entsperrt. Ephraim nimmt die User-DEK aus der aktuellen Sitzung, prüft das alte Passwort, leitet aus dem neuen Passwort eine neue KEK ab und verpackt dieselbe User-DEK neu. Die privaten Inhalte bleiben lesbar. Andere aktive Sitzungen werden über die Session-Version beendet.

Bei vorbereiteter datenerhaltender Recovery ist die User-DEK ebenfalls nicht verloren: Ein aktivierter Wiederherstellungskontakt gibt in einem zeitlich begrenzten Live-Fall kryptografisch frei. Ephraim rekonstruiert daraus nicht ein neues Passwort, sondern verpackt dieselbe User-DEK mit dem neuen Passwort des Kontoinhabers neu. Der Kontakt erhält keinen Klartextzugriff auf Chats, Dateien oder die User-DEK.

Beim datenlöschenden Reset ist die Lage anders. Das alte Passwort steht nicht mehr zur Verfügung und keine gültige datenerhaltende Recovery wird genutzt. Ephraim deaktiviert beim Admin-Reset das alte Passwort sofort; beim Self-Service-Reset geschieht der eigentliche Vault-Neustart beim Setzen des neuen Passworts. Danach entsteht eine neue User-DEK. Alte verschlüsselte Chats und persönliche Dateien werden entfernt, weil Ephraim ohne alte User-DEK keinen vertrauenswürdigen Zugriff auf den alten Vault herstellen soll.

Für Admins: Ein Reset ist ein Notfallzugang zum Konto, keine datenbewahrende Wiederherstellung. Wenn die Person ihr altes Passwort noch kennt, ist der normale Wechsel der richtige Weg. Wenn Recovery vorbereitet ist, ist der datenerhaltende Recovery-Weg dem Reset vorzuziehen.

8. AEAD, Nonces und Manipulationsschutz

Für viele Text- und Payload-Verschlüsselungen nutzt Ephraim XChaCha20-Poly1305. Das ist ein AEAD-Verfahren: Es verschlüsselt und prüft gleichzeitig, ob der Ciphertext manipuliert wurde. Bei falschem Schlüssel, falscher Zweckbindung oder beschädigtem Inhalt liefert die Entschlüsselung keinen plausiblen Klartext, sondern schlägt fehl.

Viele verschlüsselte Textfelder liegen als Base64(Nonce || Ciphertext) vor. Das heißt: Die Nonce steht vor dem eigentlichen Ciphertext und ist mitgespeichert. Das ist korrekt, weil die Nonce kein Geheimnis ist. Secretbox-verschlüsselte Dateinamen verwenden ein eigenes Präfix, damit Ephraim das Format erkennt.

Die Nonce ist dabei kein Passwort und kein geheimer Schlüssel. Sie ist ein Einmalwert, der zusammen mit dem Ciphertext gespeichert wird. XChaCha20 hat eine lange Nonce; zufällige Nonces sind in dieser Architektur praktikabel. Die Sicherheit hängt weiterhin am geheimen Schlüssel, nicht an der Geheimhaltung der Nonce.

9. Serverseitige Verschlüsselung und Zweckbindung

Nicht alle Daten lassen sich an ein Nutzerpasswort binden. Cron, Worker, Adminfunktionen, Projektverwaltung und 2FA-Prüfung müssen auch dann laufen, wenn kein Nutzer gerade seinen Vault entsperrt hat. Dafür verwendet Ephraim serverseitige At-rest-Verschlüsselung.

Der bevorzugte Betriebskey ist AT_REST_ENCRYPTION_KEY. Daraus leitet Ephraim pro Zweck einen eigenen Schlüssel ab. Der Zweck wird zusätzlich als authentifizierter Kontext verwendet. Technisch bedeutet das: Ein Ciphertext für den Zweck totp-secret lässt sich nicht einfach als project-config verwenden.

Serverseitig verschlüsselte Textwerte tragen ein eigenes internes Präfix. Daran erkennt Ephraim, dass ein Feld bereits im neuen At-rest-Format vorliegt. Das hilft bei Migrationen und verhindert, dass alter Klartext und neuer Ciphertext still verwechselt werden.

Wenn AT_REST_ENCRYPTION_KEY fehlt, existiert für Kompatibilität ein Fallback auf STREAM_DEK_SERVER_KEY. In Produktion gehört ein expliziter AT_REST_ENCRYPTION_KEY gesetzt. Der Entwicklungsmodus darf einen lokalen Ableitungsfallback nutzen; dieser Zustand ist kein Produktionsbetrieb.

10. Persönliche Dateien im EFR1-Format

Persönliche Dateien liegen nicht als Klartext im Webbereich. Beim Upload wird die temporäre PHP-Uploaddatei validiert und anschließend in das verschlüsselte EFR1-Format geschrieben. EFR1 besteht aus einer Kennung, einem Secretstream-Header und einer Folge von längengepackten Ciphertext-Blöcken. Die Klartext-Blockgröße beträgt 1 MiB.

Element Funktion
EFR1 Formatkennung. Ephraim erkennt daran, dass es sich um eine verschlüsselte Datei im erwarteten Format handelt.
Secretstream-Header Startwert für die Streaming-Entschlüsselung mit XChaCha20-Poly1305.
4-Byte-Längenfeld Gibt an, wie lang der nächste verschlüsselte Chunk ist.
Final-Tag Markiert das echte Dateiende. Fehlt es, gilt die Datei als unvollständig.

Beim Download liest Ephraim den Ciphertext chunkweise, entschlüsselt im RAM und schreibt direkt in die HTTP-Antwort. Es entsteht keine entschlüsselte Downloadkopie auf Platte. Dateinamen werden separat mit Secretbox verschlüsselt gespeichert, damit nicht schon ein Dateiname sensible Informationen verrät.

Datenexporte sind ein Sonderfall: Für die Nutzerin oder den Nutzer entsteht am Ende ein lesbares Exportarchiv, aber die temporäre Datei auf dem Server liegt ebenfalls verschlüsselt. Ephraim verwendet dafür ein servergeschütztes Streaming-Format und löscht abgelaufene oder bereits heruntergeladene Exportdateien wieder.

11. Projektdateien und Re-Encryption

Projektmaterial ist bewusst geteilt. Deshalb hängt es nicht dauerhaft an der User-DEK der hochladenden Lehrkraft. Ephraim erzeugt für Projektdateien einen eigenen Projektdatei- Schlüssel. Die Datei selbst liegt wieder im EFR1-Format, aber mit dem Projektdatei-Schlüssel. Dieser Schlüssel wird serverseitig mit Zweck project-file-key verpackt.

Wenn eine private Datei als Projektmaterial übernommen wird, geschieht kein bloßes Freischalten des privaten Originals. Ephraim entschlüsselt die private Datei im berechtigten Request und verschlüsselt sie direkt als neue Projektkopie mit dem Projektdatei-Schlüssel. Dadurch bleiben privates Original und Projektkopie kryptografisch getrennt.

12. Basiswissen, Kalender, Wetter und Wikipedia

Zentrales Basiswissen ist kein normaler Nutzer-Vault. Globale Quellen, globale Kalenderquellen, Wetterdaten und Wikipedia-Cache müssen durch Cron, Retrieval und Adminfunktionen verarbeitet werden. Deshalb verwendet Ephraim für diesen Bereich KNOWLEDGE_STORAGE_KEY_HEX.

Embedding ist dabei eine Rechenoperation, kein Spark-Speicher. Die Webanwendung sendet freigegebene Klartext-Chunks und konkrete Suchfragen nur für den aktuellen Request an den lokalen SGLang-Embedding-Dienst school-ui-embedding. Dieser Dienst berechnet Zahlenvektoren und speichert weder Klartexte noch Suchfragen noch Vektoren dauerhaft. Persistenz findet auf dem Webserver statt: Chunktexte und Embedding-Vektoren werden mit dem passenden Schlüssel verschlüsselt in MySQL gespeichert.

Private Kalenderquellen gehören kryptografisch zum persönlichen Vault des Besitzers. Für jede private Kalenderquelle erzeugt Ephraim einen eigenen Quellschlüssel. Dieser Quellschlüssel wird mit der User-DEK des Besitzers verpackt. Die private ICS-URL, der geladene Kalender-Blob, daraus erzeugte Chunks, Embeddings und Termintexte werden mit diesem Quellschlüssel verschlüsselt. Ohne entsperrten User-Vault kann der Server diese privaten Kalender nicht entschlüsseln und nicht automatisch per Cron aktualisieren.

Sichtbarkeit und Eigentümerbindung bleiben zusätzlich erhalten: Private Kalender werden nur im normalen Chat und auf der Startseite des Besitzers verwendet, nicht im Projektchat und nicht im Projektbuilder. Zentrale Kalenderquellen sind davon getrennt: Sie sind Teil des administrativ freigegebenen Basiswissens und werden mit dem Knowledge-Schlüssel geschützt, damit Cron, Retrieval und Adminfunktionen sie ohne entsperrten Nutzer-Vault warten können.

Wichtig: „Nutzerprivat“ bedeutet bei privaten Kalendern auch kryptografisch nutzervault-gebunden. Zentrales Basiswissen bleibt dagegen bewusst serverseitig verschlüsselt, weil es ohne konkrete Nutzersitzung wartbar sein muss.

13. Sitzungen, Sessiondaten und Sitzungsliste

Eine angemeldete Sitzung ist der Moment, in dem private Daten verarbeitet werden dürfen. Deshalb schützt Ephraim serverseitige PHP-Sessiondateien mit ServerCrypto und Zweck php-session. In solchen Sessions liegen temporär sicherheitsrelevante Werte, zum Beispiel CSRF-Kontext und die entsperrte User-DEK.

Die Sitzungsliste speichert keine Klartext-Sessiontokens. Ein zufälliger Sitzungstoken wird gehasht. Geräte- und Zugriffshinweise werden für die Anzeige gekürzt oder mit einem Privacy-Hash versehen. Die Session-Version ist der harte Schalter: Nach Passwortwechsel, Reset oder 2FA-Reset werden alte Sitzungen ungültig.

14. Zwei-Faktor-Authentifizierung

TOTP basiert auf einem gemeinsamen Geheimnis zwischen Ephraim und der Authenticator-App. Dieses Geheimnis ist wertvoller als ein einzelner sechsstelliger Code. Ephraim erzeugt ein 160-Bit-Secret, zeigt es als QR-Code oder manuelle Eingabe an und speichert es anschließend serverseitig verschlüsselt mit Zweck totp-secret.

Die laufenden TOTP-Codes folgen dem üblichen Muster: 30-Sekunden-Zeitschritte, sechs Ziffern, HMAC-SHA1. Recovery-Codes werden anders behandelt: Ephraim erzeugt acht Codes, speichert nur SHA3-512-Hashes und entfernt einen Code nach erfolgreicher Nutzung. Ein Admin kann Recovery-Codes deshalb nicht auslesen. Ein 2FA-Reset löscht das alte Secret und die alten Recovery-Codes und zwingt zur Neueinrichtung.

15. KI-Jobs, Streaming und kurzlebige Puffer

KI-Antworten laufen über Jobs und Streams. Der Browser sieht eine fortlaufende Antwort, technisch gibt es aber Queue-Einträge, Stream-Chunks und Reconnect-Snapshots. Private oder nutzerabgeleitete Job-Payloads liegen mit der User-DEK verschlüsselt. Die technischen JSON-Felder enthalten dann nur Metadaten; eigentliche Prompt- und Ergebnisblobs liegen in verschlüsselten Payloadfeldern.

Der Worker benötigt zur Verarbeitung zeitweise Zugriff auf den passenden Vault-Kontext. Dafür speichert Ephraim eine serverseitig verschlüsselte Kopie des Job-DEK-Zugangs, nicht den Klartext im normalen Job-Payload. Stream-Chunks werden zusätzlich mit einem jobbezogenen Stream-Token geschützt und haben kurze Lebensdauer. Das Ziel ist: Reconnect und Streaming funktionieren, ohne dauerhafte Klartextpuffer anzulegen.

16. Wo Klartext unvermeidlich ist

Verschlüsselung schützt ruhende Daten. Sie verhindert nicht, dass Daten dort im Klartext entstehen, wo sie fachlich verarbeitet werden müssen. Der Browser muss einen Chat anzeigen. Der PHP-Prozess muss beim Speichern oder Exportieren entschlüsseln. Die Spark muss den Prompt lesen, um eine Antwort zu berechnen.

Klartextgrenzen bei einer KI-Antwort Browser sichtbarer Klartext PHP-Prozess entsperrt pro Request Spark Prompt im RAM Persistenz wieder verschlüsselt Kryptografie reduziert dauerhafte Ablage im Klartext. Sie ersetzt keine Laufzeitisolation und kein Berechtigungskonzept.
Für die Berechnung einer Antwort gibt es kurze Klartextphasen. Danach erfolgt die dauerhafte Ablage wieder verschlüsselt oder als begrenzte Metadaten.

17. Runtime-JWTs und Supervisor-Webterminal

Administrative Runtime-Zugriffe verwenden kurzlebige JWTs mit Ed25519-Signatur. Das Frontend signiert mit JWT_SIGNING_KEY_HEX. Runtime und Supervisor prüfen mit dem passenden öffentlichen Schlüssel, der dort als RUNTIME_WS_TOKEN_PUBLIC_KEY erwartet wird. In Ephraim selbst muss JWT_VERIFY_KEY_HEX zu diesem öffentlichen Schlüssel passen.

Signatur bedeutet: Die Runtime prüft, ob das Token wirklich vom berechtigten Frontend stammt und ob Audience und Issuer passen. Das Token verschlüsselt nicht den Inhalt des WebSocket-Verkehrs; dafür ist die Transport- und Netzwerkinfrastruktur zuständig. Die Signatur schützt die Berechtigung, nicht den gesamten Datenkanal.

Typische Fehlkonfigurationen zeigen sich hart: Der Token-Endpunkt liefert einen Fehler oder die Runtime lehnt das Token ab. Mehrere Frontends, die dieselbe Spark ansprechen, müssen dieselbe Schlüsselpaarlogik verwenden oder die Runtime muss den passenden neuen Public Key erhalten.

19. MCP-OAuth und Admin-Werkzeuge

Der MCP-Server ist ein Admin-Werkzeug und gehört nicht zur normalen Schüler- oder Lehrkraftnutzung. Er arbeitet mit OAuth und PKCE. Zugriffstokens werden nur gehasht gespeichert und mit Scopes begrenzt. Ein Client erhält also nicht automatisch alle Adminrechte, sondern nur die angeforderten und genehmigten Berechtigungen.

Für Admins ist dabei entscheidend: Kryptografie schützt den Tokenbestand, aber Scopes, Bestätigungsabfragen und Auditspuren sind genauso wichtig. Ein gültiger Token mit Schreibscope ist ein echtes Machtmittel und muss widerrufen werden, wenn ein Client nicht mehr vertrauenswürdig ist.

20. Backups, Restore und Schlüsselverlust

Verschlüsselung macht Backups nicht unwichtig, sondern anspruchsvoller. Datenbank, Dateispeicher und Betriebsgeheimnisse müssen zusammen betrachtet werden. Wer nur die Datenbank sichert, verliert Dateiinhalte. Wer Dateispeicher und Datenbank sichert, aber die Serverkeys verliert, verliert servergeschützte Inhalte. Wer Serverkeys ungeschützt in dasselbe Backup legt, schwächt die Schutzwirkung.

Verlust Konsequenz
Nutzerpasswort vergessen Mit vorbereiteter Recovery bleibt der Vault erhalten; ohne Recovery erzeugt der Reset einen neuen Vault und entfernt alte private Vault-Daten.
AT_REST_ENCRYPTION_KEY verloren Servergeschützte Daten wie 2FA-Secrets, Projektkonfiguration und Projektdatei-Schlüssel sind nicht zuverlässig lesbar.
KNOWLEDGE_STORAGE_KEY_HEX verloren Verschlüsselte Knowledge-Daten sind unlesbar; Quellen müssen aus Originalen neu aufgebaut werden, soweit vorhanden.
STREAM_DEK_SERVER_KEY verloren Aktive Stream-/Job-Geheimnisse und Fallback-abhängige Daten sind betroffen.
JWT-Schlüsselpaar falsch kopiert Admin-Runtime-Tokens werden nicht akzeptiert oder können nicht erzeugt werden.

Schlüsselrotation bedeutet nicht „neuen Wert eintragen und fertig“. Betroffene Daten müssen mit dem alten Schlüssel gelesen und mit dem neuen Schlüssel neu verpackt werden, oder das System muss während einer Übergangszeit mehrere Schlüsselgenerationen verstehen.

21. Was Admins lesen und nicht lesen

Normale Adminfunktionen geben keinen Klartextzugriff auf fremde private Vault-Inhalte. Lehrkräfte lesen keine privaten Schülerchats und auch keine Projektchat-Rohtexte einzelner Teilnehmender. Super-Admins verwalten System, Nutzer, Klassen, Quoten, Basiswissen, Runtime und Sicherheitszustände; sie erhalten damit technische Macht, aber nicht automatisch eine Lesefunktion für fremde Vaults.

Gleichzeitig schützt keine Kryptografie gegen eine vollständig kompromittierte Serverlaufzeit. Wer Serverprozess, Konfiguration und Code kontrolliert, kontrolliert die Stelle, an der Klartext legitimerweise verarbeitet wird. Deshalb gehören Betriebsschutz, 2FA für Admins, minimale Adminrollen, Patchpflege, Auditlogs und gute Backupdisziplin zur Kryptoarchitektur dazu.

22. Typische Angriffsbilder

Szenario Schutzwirkung Restproblem
Datenbankdump ohne Secrets Private Inhalte, TOTP-Secrets, Projektkonfigurationen und Knowledge-Inhalte liegen überwiegend verschlüsselt oder gehasht vor. Metadaten wie Rollen, Zeitpunkte und Größen bleiben sichtbar.
Dateispeicher-Dump ohne Datenbank EFR1-Dateien sehen wie Ciphertext aus; Zufallsnamen erschweren Zuordnung. Größen und Mengen bleiben erkennbar.
DB plus Serverkeys, aber ohne Nutzerpasswörter Servergeschützte Daten sind gefährdet; private User-Vaults brauchen weiterhin User-DEK oder Passwort. Aktive Sessions oder Jobzustände können die Lage verschärfen.
Voll kompromittierter Server zur Laufzeit At-rest-Krypto begrenzt nur alte/offline Datenbestände. Laufzeitklartext, Secrets und Codepfade sind unter Kontrolle des Angreifers.
Gestohlener Resetlink Ablaufzeit, Einmalnutzung, Zweckbindung und Token-Hashing begrenzen Missbrauch. Vor Ablauf bleibt der Link sensibel und muss widerrufen werden.

23. Betriebsregeln für Schul-Admins

24. Fehlersuche ohne Datenschutzschaden

Viele Krypto-Fehler sehen für Nutzer gleich aus: Daten lassen sich nicht laden, 2FA klappt nicht, Projektmaterial wirkt unlesbar oder die Runtime lehnt Tokens ab. Admins sollten zuerst die betroffene Datenklasse bestimmen. Ein Problem im Nutzer-Vault ist anders zu behandeln als ein Problem im Knowledge-Schlüssel oder im JWT-Schlüsselpaar.

Symptom Wahrscheinlicher Bereich Datensparsame Prüfung
Nutzer kann private Chats nach Login nicht lesen User-DEK, Passwort, Vault-Entsperrung Login- und Resetverlauf, Sessionzustand und Fehlermeldungen prüfen; keine Chatklartexte in Logs schreiben.
2FA funktioniert nach Serverumzug nicht AT_REST_ENCRYPTION_KEY oder Secret-Migration Konfiguration und 2FA-Status prüfen; bei Bedarf 2FA zurücksetzen statt Secret auszulesen.
Basiswissen liefert keine Treffer Knowledge-Schlüssel, Index, Retrieval, Sichtbarkeit Quellenstatus, Indexstatus und Rechte prüfen; Quelltexte nicht unnötig in Logs kopieren.
Projektdateien sind unlesbar Projektdatei-Schlüssel oder Projektdateispeicher Projektdatei-Metadaten, Speicherpfad und Serverkey-Verfügbarkeit prüfen.
Admin-Webterminal verbindet nicht JWT-Schlüsselpaar, Audience, Issuer, Runtime-Public-Key Token-Endpunkt, Runtime-Konfiguration und Uhrzeit prüfen.

25. Grenzen der Kryptografie

Kryptografie ist ein starker Baustein, aber sie löst nicht jede Sicherheitsfrage. Sie schützt keine Inhalte, die eine berechtigte Person gerade im Browser sieht. Sie verhindert keine falsche Freigabeentscheidung in einem Projekt. Sie ersetzt keine Rollenprüfung. Und sie schützt nicht vor einem Angreifer, der den laufenden Serverprozess samt Konfiguration kontrolliert.

Die richtige Erwartung lautet deshalb: At-rest-Verschlüsselung reduziert Schäden bei Datenbank-, Dateispeicher- und Backupabflüssen deutlich. Sie erzwingt aber weiterhin sauberen Betrieb, minimale Rechte, Protokollhygiene, sichere Adminzugänge und transparente Fachentscheidungen.