Zum Inhalt springen
lurno
Sicherheit und Datenschutz

Isolation, durchgesetzt von der Datenbank, nicht von Anwendungscode.

Jede Anfrage, die etwas ändert, wird dreimal autorisiert, an drei Stellen, die unabhängig voneinander versagen. Dahinter liegen 868 Row-Level-Security-Richtlinien, sodass ein Fehler in einem Handler ein Bug bleibt und kein Datenleck wird. Diese Seite ist für die Person geschrieben, die uns freigeben muss.

Kurz gesagt

Wie Lurno die Daten einer Organisation vor einer anderen schützt

Lurno autorisiert jede verändernde Anfrage an drei unabhängigen Stellen. Die Oberfläche prüft eine Berechtigung, bevor sie ein Bedienelement zeichnet. Der Server prüft dieselbe Berechtigung, bevor er Daten anfasst, und verweigert, wenn die Antwort Nein lautet. Die Datenbank wendet eine Row-Level-Security-Richtlinie an, die entscheidet, welche Zeilen die Abfrage überhaupt zurückgeben darf. Alle drei müssen bestehen. Es gibt 868 solcher Richtlinien über 676 Migrationen, und die Anwendungstabellen liegen in 14 Fachschemata statt im Standardschema public, sodass die Zeilen einer Organisation aus der Sitzung einer anderen unerreichbar bleiben, selbst wenn der Code darüber falsch ist. Administrative Änderungen werden in ein Audit-Log geschrieben, das nur anhängt und dessen Zeilen mit SHA-256 verkettet sind und sich per Abfrage prüfen lassen. Augmental Learning Inc. ist an den Praktiken von ISO 27001 ausgerichtet; das Unternehmen hält kein Zertifikat nach ISO 27001 und keinen Bericht nach SOC 2, und wir sagen das im Fragebogen, statt es einen Käufer anders annehmen zu lassen.

Autorisierung an drei Toren
Ein Modell, in dem eine Anfrage dreimal autorisiert wird, durch drei Mechanismen, die unabhängig voneinander versagen. Das erste Tor ist die Oberfläche: Sie verbirgt ein Bedienelement, für das die angemeldete Person keine Berechtigung hat. Das zweite Tor ist der Server: Der Handler prüft die Berechtigung, bevor er Daten anfasst, und bricht ab, wenn die Antwort Nein lautet. Das dritte Tor ist die Datenbank: Eine Row-Level-Security-Richtlinie auf der Tabelle begrenzt, welche Zeilen die Abfrage zurückgeben kann. Das erste Tor ist Bequemlichkeit, das zweite ist die eigentliche Grenze, und das dritte hält auch dann noch, wenn das zweite übersprungen wird.
Die Architektur

Drei Tore, und was hinter jedem steht

Tor für Tor

Eine Anfrage, dreimal autorisiert

Ein Bedienelement in der Oberfläche fragt, ob die angemeldete Person eine Berechtigung hält, bevor es gezeichnet wird. Der Handler auf dem Server prüft dieselbe Berechtigung, bevor er irgendetwas tut. Dann wendet die Datenbank eine Richtlinie an, die entscheidet, welche Zeilen die Abfrage sehen darf. Drei Mechanismen, drei getrennte Stellen, an denen es stimmen muss, und ein einziges Nein beendet die Anfrage.

  • Die Prüfung in der Oberfläche ist Bequemlichkeit, keine Grenze. Sie verbirgt eine Schaltfläche; sie schützt keine Tabelle.
  • Jede Prüfung läuft über einen Berechtigungskatalog und eine Funktion. Kein Handler liest einen Rollennamen und entscheidet selbst, was diese Rolle bedeutet.
  • Eine an einem Zweig des Organisationsbaums vergebene Rolle wirkt diesen Zweig hinunter — und die Datenbankrichtlinien lesen denselben Baum wie die Oberfläche, die beiden können also nicht auseinandergehen.
Wie Organisationen und Rollen aufgebaut sind
In der Datenbank

868 Richtlinien über 676 Migrationen

Isolation ist Schema, nicht Konvention. Tabellen werden mit aktivierter Row-Level Security angelegt, mit Richtlinien, die an dieselbe Berechtigungsfunktion delegieren, die auch der Server aufruft, und eine Migrationsprüfung sucht nach Tabellen, für die Zugriff gewährt wurde, ohne dass eine Richtlinie dahintersteht. Die Zahl ist keine Marketingzahl — es ist das, was die Datenbank zurückgibt, wenn man sie fragt, wie viele Richtlinien sie durchsetzt.

  • Richtlinien haben ihre Logik nicht eingebaut. Sie rufen die Berechtigungsfunktion auf, damit die Antwort nicht von dem abweichen kann, was der Server einen Moment zuvor entschieden hat.
  • Schreibrichtlinien tragen neben der Lesebedingung eine Prüfbedingung, sodass ein Insert keine Zeile in eine Organisation legen kann, für die der Schreibende keine Berechtigung hat.
  • Wo eine View personenbezogene Daten offenlegt, wird der Zugriff Spalte für Spalte gewährt. Eine tabellenweite Gewährung würde den spaltenweisen Schutz still aushebeln, deshalb wird sie nicht verwendet.
Schemata

Vierzehn Fachschemata, nie das öffentliche

Anwendungstabellen liegen in vierzehn benannten Schemata — eines für Identität und Zugriff, eines für Organisationen, eines für Medien und so fort. Nichts, worauf es ankommt, liegt im Standardschema public, dem Ort, an dem eine versehentliche Gewährung oder eine zu großzügige Voreinstellung am ehesten etwas offenlegt. Für private Medien gibt es überhaupt keine Speicherrichtlinien für angemeldete Browser: Jeder Lesezugriff wird von einem Server signiert, der zuvor die zugehörige Zeile geprüft hat, und jeder Upload entsteht auf demselben Weg.

  • Einmal-Token — Einladungen, Passwort-Zurücksetzungen, Kontowiederherstellung — werden als gesalzene Hashes gespeichert. Das rohe Token wird einmal angezeigt, in der E-Mail, und nie wieder.
  • Öffentlich ist nur die Marke. Logo und Favicon einer Organisation müssen erscheinen, bevor sich jemand anmeldet; Profilbilder und Lektionsmedien müssen das nicht und bleiben deshalb signiert.
Rechenschaft

Hinterher belegen, was geschehen ist

Ein Audit-Log, das niemand prüfen kann, ist eine Protokolldatei mit besserem Marketing. Dieses hängt nur an, macht Manipulation sichtbar, und es zu prüfen ist eine Abfrage.

Ein Log, das nur anhängt

Administrative Änderungen werden als Ereignisse geschrieben, die Akteur, Aktion, Ressource, Organisation und einen Vorher-Nachher-Datensatz tragen. Nichts aktualisiert eine Audit-Zeile. Der Schreibpfad hängt nur an.

Eine SHA-256-Hashkette

Jedes Ereignis speichert den Hash des vorigen und einen Hash von sich selbst, beide von einem Datenbank-Trigger vergeben und nicht von dem Code, der das Ereignis protokolliert hat. Ändern Sie eine Zeile, und jeder spätere Hash passt nicht mehr.

Eine Prüfung, bei der Sie zusehen können

Eine Prüffunktion läuft die Kette entlang und benennt die erste Zeile, an der sie bricht. Wir lassen sie in einer Prüfung vor Ihren Augen laufen.

Zugriffsprüfungen

Wer welche Rolle in welcher Organisation hält, turnusmäßig geprüft statt erst zum Audit. Ein Entzug ist ein Audit-Ereignis wie jedes andere.

Zwei Menschen für die zerstörenden Dinge

Eine Person zu anonymisieren oder zu löschen ist erst ein Antrag und dann eine getrennte Freigabe. Wer beantragt, kann nicht selbst freigeben, und niemand kann sich selbst zum Ziel machen.

Sitzungen, die Sie beenden können

Eine angemeldete Person kann ihre übrigen Sitzungen widerrufen, und eine widerrufene Sitzung wird bei der nächsten Berechtigungsprüfung ausgesperrt und nicht erst, wenn ihr Token zufällig abläuft.

Datenschutz

Von der Einwilligung bis zur Löschung, mit einer Uhr an jedem Schritt

Jeder Mandant ist Verantwortlicher für die Daten seiner Lernenden, und Lurno ist Auftragsverarbeiter. Die Mechanik unten macht diese Trennung real statt bloß vertraglich.

  1. 01

    Einwilligung, mit einer Version darauf

    Jede Richtlinie, in die eine Person einwilligt, trägt eine Version. Ändern Sie die Richtlinie, und die alte Einwilligung zählt nicht mehr: Die Person wird erneut gefragt, und wozu sie wann eingewilligt hat, wird festgehalten. Die AI-Verarbeitung ist eine eigene Einwilligung — widerrufen Sie sie, und es geht nichts an einen Anbieter.

  2. 02

    Ein Auskunftsersuchen, als geführter Ablauf

    Eine Administration arbeitet den Antrag ab, statt ihn zu improvisieren: die betroffene Person feststellen, zusammentragen, was plattformweit vorliegt, den Export erzeugen. Übertragbarkeit heißt maschinenlesbar — JSON und CSV, nicht ein PDF eines Bildschirmfotos.

  3. 03

    Aufbewahrung mit Enddatum

    Personenbezogene Daten tragen je Kategorie eine Aufbewahrungsfrist, statt standardmäßig ewig zu bleiben. Inaktive Konten, abgelaufene Einladungen und alte Sitzungen haben alle ein Datum, nach dem sie aufhören zu existieren.

  4. 04

    Löschung nach dem Vier-Augen-Prinzip

    Eine Administration beantragt sie, eine zweite gibt sie frei, und erst dann läuft sie. Wer beantragt, kann nie freigeben, und keine der beiden kann selbst betroffen sein. Die Löschung erreicht die Tabellen, die auf die Person verweisen, nicht nur die Profilzeile.

  5. 05

    Ein Register für Datenpannen mit einer 72-Stunden-Uhr

    Ein Vorfall ist eine Zeile mit einer Frist, berechnet als 72 Stunden ab Entdeckung, mit Erinnerungen, die weiter auslösen, bis er geschlossen ist. Die Uhr startet bei der Entdeckung, nicht in dem Moment, in dem sich jemand an Artikel 33 erinnert.

Speicherort

Wo die Daten tatsächlich liegen

Dateien

Medienspeicher, den Sie woanders hinlenken können

Dateien werden über eine Speicherschnittstelle mit vier Implementierungen geschrieben: Supabase Storage, Amazon S3, Azure Blob Storage und Google Cloud Storage. Das ist meist die ehrliche Antwort auf eine Anforderung an den Speicherort — eine Installation kann Dateien in einen Bucket in der Region schreiben, die Sie nutzen müssen, statt darauf zu warten, dass ein Anbieter dort eröffnet. Nennen Sie uns die Anforderung früh, und wir sagen Ihnen klar, ob sie heute erfüllt ist.

  • Die Datenbank, die Authentifizierung und die Funktionen, auf denen die API läuft, werden von Supabase gehostet. Das ist die eine Abhängigkeit, die Sie nicht wegkonfigurieren können, und sie ist im DPA benannt.
  • Die eigenen Domains je Organisation werden über Cloudflare ausgeliefert, mit automatisch ausgestellten Zertifikaten, sodass eine lernende Person in Beirut oder Mailand Ihre Domain sieht und nicht unsere.
Eigene Domains und White-Label
Analytik

Produktanalytik in der EU, ohne Lernende

Die Plattformanalytik läuft über PostHog in dessen EU-Region, hinter einer Abstraktion, damit der Anbieter ohne Eingriff ins Produkt ersetzt werden kann. Die Sitzungsaufzeichnung ist maskiert, und sie zeichnet nie Lernende auf — die Lernendenoberfläche ist für Aufzeichnungen gar nicht instrumentiert.

  • Texteingaben und alles, was als personenbezogen markiert ist, werden im Browser maskiert, bevor eine Aufzeichnung irgendwohin geht.
  • Die Analytik ist an eine Einwilligung gebunden und aus, solange eine Organisation sie nicht einschaltet. Über Minderjährige wird auf keiner Oberfläche ein Profil gebildet.
AI-Sicherheit

Was mit Text geschieht, bevor er einen AI-Anbieter erreicht

Die Nachricht einer lernenden Person, ein hochgeladenes PDF, eine in den Copilot getippte Frage: alles davon ist Inhalt, nichts davon ist Anweisung. Diese Unterscheidung wird erzwungen und nicht in einem Prompt erbeten.

Klassifizierung von Injektionen

Nicht vertrauenswürdige Eingaben werden klassifiziert, bevor der eigentliche Aufruf läuft. Text, der das Modell umzulenken versucht, wird markiert statt ausgeführt.

Ein zufällig gewählter Zaun

Nicht vertrauenswürdiger Text wird in ein Tag je Anfrage eingefasst, das er nicht erraten kann, und dieses Tag wird aus dem Inhalt selbst entfernt. Beim Kürzen wird der Zaun wieder geschlossen, statt offen zu bleiben.

Schwärzung vor dem Aufruf

Namen, E-Mail-Adressen und Kennungen werden ersetzt, bevor etwas zu einem Anbieter geht. Die Bewertung läuft über eine anonymisierte Abgabe; die Zuordnung zurück zur lernenden Person bleibt auf unserem Server.

Prüfung des Ausgabeschemas

Jede Antwort wird gegen ein Schema geprüft. Eine fehlerhafte Antwort bekommt einen Reparaturversuch und scheitert dann, statt in einem Kurs zu landen.

Eine Spur vom Vorschlag bis zur Änderung

Anfragen, angenommene Entwürfe und abgelehnte Entwürfe sind getrennte Einträge in demselben hash-verketteten Log. Was das Modell vorgeschlagen hat, steht neben dem, was ein Mensch übernommen hat.

Identität

Wie Menschen sich anmelden

Geschrieben, wie eine Sicherheitsprüfung es braucht: was heute ausgeliefert ist und was nicht.

Konten per Einladung

Konten werden von einer Administration oder per Einladung angelegt — eine Selbstregistrierung gibt es nicht. Links zum Zurücksetzen und zur Wiederherstellung sind einmalig nutzbar und werden gehasht gespeichert.

Partner-Anmeldung (Silent SSO)

Ein Partnersystem, das jemanden bereits authentifiziert hat, kann die Person mit einer signierten Assertion übergeben, sodass sie nie eine zweite Anmeldung sieht. Das wird je Organisation eingerichtet, mit Schlüssel versehen und ist widerrufbar.

Single Sign-on über SAML und OIDC

Auf der Roadmap

Nicht gebaut. Wenn Ihr Rollout an Entra ID oder Okta hängt, sagen Sie es im ersten Gespräch, und wir sagen Ihnen den Stand, statt anzudeuten, es sei vorhanden.

MFA und Passkeys

Auf der Roadmap

Ebenfalls auf der Roadmap. Heute verwaltet der Identitätsanbieter das Passwort, Sitzungen können von ihrer Inhaberin widerrufen werden, und der Widerruf greift bei der nächsten Berechtigungsprüfung.

Unterauftragsverarbeiter

Alle, die Ihre Daten berühren

Fünf, und jeder davon ist im Auftragsverarbeitungsvertrag benannt, statt später entdeckt zu werden.

CapabilityWofür zuständigWo es gilt
SupabaseDatenbank, Authentifizierung, Dateispeicher und die Funktionen, auf denen die API läuftDer Hauptverarbeiter. Der Medienspeicher kann stattdessen auf S3, Azure oder GCS gelenkt werden.
CloudflareDNS, TLS und die eigene Domain, unter der jede Organisation ausgeliefert wirdBeendet TLS für die Domains je Organisation; Zertifikate werden automatisch ausgestellt.
OpenAIAI-Generierung, Tutoring und BewertungsentwürfeWird nur aufgerufen, wenn eine Anfrage es braucht, und nach der Schwärzung. Anthropic und Google lassen sich stattdessen einrichten, und eine Organisation kann einen eigenen Schlüssel hinterlegen.
ResendTransaktions-E-Mails — Einladungen, Benachrichtigungen, ZurücksetzungenEine Organisation kann von ihrer eigenen Subdomain senden, mit eigenem Schlüssel.
PostHogProduktanalytik und maskierte SitzungsaufzeichnungEU-Region. Lernendenoberflächen werden nicht aufgezeichnet.

Maßgeblich ist die Liste im Auftragsverarbeitungsvertrag, zusammen mit dem FERPA-Addendum zum Schutz von Schülerdaten. Wir schicken beides vor einem Termin statt danach.

Barrierefreiheit

WCAG 2.1 AA, und was wir nicht haben

Lurno ist nach WCAG 2.1 AA gebaut. Automatisierte axe-Prüfungen laufen in der kontinuierlichen Integration, sodass ein Kontrastfehler oder ein fehlendes Label einen Build bricht, statt in eine Auslieferung zu gelangen. Tastaturwege, sichtbarer Fokus und die Einstellung für reduzierte Bewegung leben in der Komponentenbibliothek, statt je Bildschirm nachgerüstet zu werden. Das Produkt erscheint auf Englisch, Französisch, Arabisch und Italienisch, und Arabisch läuft durchgehend von rechts nach links, nicht als übersetztes Layout von links nach rechts.

Was wir nicht haben, ist ein VPAT oder ein Barrierefreiheits-Audit durch Dritte, und wir schreiben das lieber hierhin, als es in der Antwort auf Frage 47 zu vergraben. Wenn ein formaler Konformitätsbericht Bedingung für den Kauf ist, sprechen Sie es früh an — das ist ein Gespräch über den Umfang, kein Häkchen.

Fragen, die die Beschaffung stellt

Beantwortet, bevor Sie den Fragebogen schicken müssen

Nein. Lurno ist an den Praktiken von ISO 27001 ausgerichtet — Zugriffssteuerung, Kryptografie, Protokollierung, Änderungsmanagement und Lieferantenmanagement sind als Maßnahmen im Produkt umgesetzt —, aber Augmental Learning Inc. hält kein Zertifikat nach ISO 27001 und keinen Bericht nach SOC 2. Wir sind lieber nachprüfbar als beeindruckend. Alles auf dieser Seite lässt sich in einer Live-Sitzung zeigen.

Schicken Sie uns den Fragebogen.

Das meiste davon ist oben beantwortet. Bringen Sie den Rest — Speicherort, Aufbewahrung, Unterauftragsverarbeiter, den DPA — in einen Termin, und wir antworten in denselben klaren Worten wie hier.