Zum Inhalt springen
Cybsis

Sicherheit & Datenschutz

Offen bei allem – außer bei den Schlüsseln.

Ein Kryptosystem muss sicher bleiben, selbst wenn alles darüber bekannt ist – außer dem Schlüssel. Kerckhoffs schrieb das 1883; wir stimmen zu. Im Folgenden zeigen wir die Implementierung, wie sie heute tatsächlich ausgeliefert wird: was live ist, was noch nicht, und wohin Sie schreiben können, wenn Sie eine Lücke finden, die wir übersehen haben.

01 — Authentifizierung

Von Haus aus modern, auf Behördenniveau, wo es darauf ankommt.

Authentifizierung ist das erste Signal dafür, wie ernst der Rest der Plattform genommen wird. Cybsis behandelt sie entsprechend.

Passkeys (WebAuthn) — der Standard
Phishing-resistente kryptografische Anmeldedaten, die an das Gerät gebunden sind. Hardware-Sicherheitsschlüssel wie YubiKey werden gleichberechtigt unterstützt — derselbe Ablauf verarbeitet sie und Plattform-Authentifikatoren wie Touch ID oder Windows Hello austauschbar. @simplewebauthn/server v13
TARA — estnische eID-Dachlösung (öffentlicher Sektor)
Ein einziger OIDC-Flow über das staatliche estnische SSO deckt alle nationalen eID-Verfahren ab: ID-card, Mobile-ID und Smart-ID. Die Nutzerin oder der Nutzer wählt im TARA-Portal; Cybsis erhält anschließend eine verifizierte Identitätsbestätigung zurück. TARA ist ein staatlich betriebener Dienst zur Authentifizierung an Systemen des öffentlichen Sektors – Bereitstellungen im Privatsektor nutzen das unten beschriebene Web eID. openid-client v6
Active Directory / LDAP
Direkte Bindung an das AD des Kunden oder an ein beliebiges LDAP-kompatibles Verzeichnis. Für Unternehmen, die Identitäten bereits zentral verwalten und keinen zweiten Benutzerspeicher möchten. Die Kontosperrung arbeitet mit der eigenen Richtlinie des Verzeichnisses zusammen. ldapts v8 · integrationAD-Modul
Web eID – ID-Karte für die Privatwirtschaft
Authentifizierung mit der estnischen ID-Karte ist für Käufer aus der Privatwirtschaft verfügbar – sowie für Teams im öffentlichen Sektor, die nicht über TARA gehen möchten. Browsererweiterungsbasiert, mit OCSP-Zertifikatsvalidierung und nonce-gebundener Challenge-Response. Kommerzielle Mobile-ID und Smart-ID über SK ID Solutions werden als kostenpflichtiges Integrationsmodul unterstützt – für Bestandskunden inklusive, für neue Implementierungen in der Privatwirtschaft separat erhältlich. @peculiar/x509 · OCSP-validiert
Federation-API-Schlüssel
Machine-to-Machine-Zugriff zwischen Cybsis-Instanzen. Bearer-Token mit HMAC-SHA256-Anfragesignaturen und Rollenzuordnung über Identity-Header; widerrufbar an der ausstellenden Instanz. Föderationsmodul
Passwort (wenn nichts anderes passt)
Mit Bcrypt gehasht, Mindestlänge konfigurierbar, Kontosperrung nach einer konfigurierbaren Anzahl fehlgeschlagener Versuche innerhalb eines gleitenden 15-Minuten-Fensters. Wir würden es jedoch bevorzugen, wenn Sie Passkeys verwenden. bcryptjs v3

Sitzungsmodell

Kurzlebige JWT-Access-Tokens (15 Minuten, konfigurierbar) werden in httpOnly-SameSite=Strict-Cookies übertragen, mit Validierung von Audience und Issuer. Refresh-Tokens bestehen aus 48 zufälligen Bytes und werden im Ruhezustand SHA-256-gehasht gespeichert — der Klartext existiert ausschließlich im Browser-Cookie. Das Idle-Timeout ist pro Instanz konfigurierbar; Standard sind 60 Minuten. Routenbezogene Rate Limits gelten für jeden Authentifizierungsendpunkt (z. B. Passwort: 10 Anfragen / 15 Minuten; Passkey-Registrierung: 20 / 5 Minuten).

02 — Autorisierung und Isolation

Eine Datenbank, strikte Mandantengrenzen.

RBAC mit berechtigungsbasierten Zugriffsschranken
Rollen bündeln Berechtigungen; Berechtigungen werden am Endpoint über Middleware geprüft, nicht auf Model-Ebene. Endpoints ohne Berechtigungsprüfung gibt es nicht — einen hinzuzufügen ist eine Entscheidung im Kompilierschritt.
Mandantenisolierung auf Zeilenebene
Jede operative Entität trägt einen instanceId-Fremdschlüssel. Abfragen, die ihn vergessen, werden verworfen – jeder Listen-Endpunkt ist auf die für den authentifizierten Benutzer zugänglichen Instanzen beschränkt.
Rollenzuordnung für Föderation
Wenn sich eine föderierte Instanz meldet, übermittelt der API-Schlüssel Identitäts-Header, die einer lokalen Rolle zugeordnet werden. Der entfernte Aufrufer erhält niemals pauschalen Zugriff, sondern nur die Rolle, die der lokale Administrator diesem Federation-Link zugewiesen hat.

03 — Verschlüsselung

Secrets auf Feldebene. Inhaltsschlüssel pro Datei.

  • Vertrauliche Konfiguration

    API-Schlüssel von AI-Anbietern, SMTP/IMAP-Zugangsdaten und andere Secrets in der Systemkonfiguration werden auf Feldebene mit AES-256-GCM verschlüsselt — mit vorangestelltem 12-Byte-IV plus 16-Byte-Authentifizierungs-Tag vor dem Chiffrat. Mitarbeitende von RaulWalter können sie nicht lesen; die Datenbankzeile allein reicht dafür nicht aus.

  • Hochgeladene Dateien

    Jede Datei erhält ihren eigenen abgeleiteten Schlüssel über HMAC-SHA256(master, "file:" + fileId) — eine HKDF-Konstruktion. Der Master-Schlüssel verschlüsselt nichts direkt; wird ein Dateischlüssel kompromittiert, ist nur diese eine Datei betroffen.

  • Passwörter

    Bcrypt-gehasht. Die Datenbank speichert ausschließlich Hashes; beim Zurücksetzen von Passwörtern werden kurzlebige signierte Token erzeugt, niemals Klartext.

  • Refresh-Tokens

    Als SHA-256-Hashes gespeichert. Selbst mit vollständigem Datenbankzugriff kann ein Angreifer keine Sitzung wiederverwenden — dafür bräuchte er den Klartext aus dem Browser-Cookie des Benutzers.

  • Hauptschlüssel

    Befindet sich in der Umgebungsvariable ENCRYPTION_KEY — 32 Byte, Base64-kodiert. Bei Self-Hosting- und On-Premises-Bereitstellungen verlässt der Schlüssel niemals die Infrastruktur des Kunden; RaulWalter besitzt keine Kopie. Bei RW Hosting liegt der Schlüssel in der isolierten AWS-Umgebung des Kunden, niemals auf Entwickler-Laptops und niemals in der Versionskontrolle.

  • Bei der Übertragung

    TLS terminiert am Reverse Proxy (nginx in der empfohlenen Bereitstellung). Cybsis akzeptiert kein unverschlüsseltes HTTP für authentifizierten Datenverkehr.

04 — Audit und Rechenschaftspflicht

Alles, was passiert, wird festgehalten.

Aktivitätsprotokoll
Über 80 Aktionstypen – Anmeldungen, Rollenänderungen, Änderungen an Controls, Übergänge im Dokumentenlebenszyklus, Incident-Workflows, Integrationsumschaltungen und Lizenzereignisse. Durchsuchbar und exportierbar.
Protokoll der Anmeldeversuche
Jeder Authentifizierungsversuch — Methode, IP, User-Agent, Erfolg oder Fehlschlag — mit dem Benutzerdatensatz (oder dem eingegebenen Benutzernamen bei fehlgeschlagenen Versuchen). Steuert die Kontosperrlogik und liefert Auditoren eine forensische Prüfspur.
KI-Nutzungsprotokoll
Jeder KI-Aufruf — welcher Benutzer, welche Funktion, welcher Anbieter, Prompt- und Antwort-Payloads, Input-/Output-Token, Kostenschätzung, Dauer, Status. Der Schalter zum Deaktivieren der KI schaltet auch dies ab; nichts verlässt die Plattform unbemerkt.

05 — Deployment & Datenresidenz

Drei Vertrauensgrenzen. Wählen Sie Ihre.

RW-Hosting

AWS eu-north-1 · 300 €/Jahr pauschal

Single-Tenant pro Kunde, isoliertes AWS-Konto, verschlüsselt im Ruhezustand. RaulWalter betreibt die Laufzeitumgebung – Updates am selben Tag, aktiver Support und für uns sichtbare Telemetrie, damit Support schnell läuft. Der Kompromiss, den Sie wählen, wenn Sie die Infrastruktur nicht selbst betreiben möchten.

Ihre Cloud

AWS · GCP · Azure · ohne Aufpreis

Docker-Image, Bereitstellungsdokumentation – Sie betreiben es. Der Verschlüsselungs-Master-Key liegt in Ihrem Secret Store; RaulWalter hat keinen Lesezugriff auf Ihre Datenbank und keine Shell auf Ihren Instanzen. Lizenzprüfungen gegen unseren Lizenzserver sind die einzigen ausgehenden Verbindungen.

On-Premises

Verteidigung · Nachrichtendienste · Gesundheitswesen · ohne Aufpreis

Dasselbe Docker-Image, vom Kunden installiert. Air-Gapped-Betrieb über den Air-Gapped-Lizenzpfad. Keine ausgehenden Verbindungen. Wenn die KI-Funktionen mit einem selbst gehosteten Modellanbieter aktiviert sind, läuft der gesamte Stack innerhalb des Sicherheitsperimeters.

Datenbank und Backups

PostgreSQL 17 ist der Standard und die Datenbank, gegen die wir testen. Da die Datenschicht auf Prisma basiert und keine PostgreSQL-spezifischen Spaltentypen, JSON-Operatoren oder Erweiterungen verwendet, werden MySQL und SQLite auf Schemaebene als Provider-Ziele unterstützt — eine praktikable Option, wenn eine Organisation andernorts standardisiert hat und bereit ist, das Deployment selbst zu betreiben. Diese Schema-Disziplin ist bewusst gewählt, nicht zufällig.

Integrierte Backup-Tools führen pg_dump nach einem gestuften Zeitplan aus — stündlich, täglich, wöchentlich — mit konfigurierbarer Aufbewahrung. Beim Self-Hosting verweisen Sie das Backup-Volume auf den Speicher Ihrer Wahl; bei RW Hosting werden Backups in kundenisoliertem S3 abgelegt. Nicht-Postgres-Deployments nutzen die eigenen Backup-Tools des Betreibers.

06 — KI-Vertrauensgrenze

Standardmäßig deaktiviert. Konfigurierbar. Protokolliert.

KI ist die einzige Funktion, die Daten über Ihre Vertrauensgrenze hinaus bewegen kann. Deshalb behandeln wir sie mit der größten Sorgfalt.

  • 01Aus, bis es aktiviert wird. Eine Neuinstallation wird mit ai_enabled = false ausgeliefert. Keine Glitzer-Buttons, kein Ludwig-Einstiegspunkt, keine ausgehenden Aufrufe. Ein Administrator aktiviert die Funktion unter Administration → AI Settings; der Schalter ist jederzeit umkehrbar.
  • 02Drei Anbietermodi. Verwenden Sie Ihren eigenen Schlüssel (Anthropic, OpenAI, Gemini, Azure OpenAI), verbinden Sie einen selbst gehosteten, OpenAI-kompatiblen Endpunkt (Ollama, vLLM, ein beliebiges internes LLM) oder lassen Sie RaulWalter den Schlüssel bereitstellen. Alle Details finden Sie auf der Seite zu den KI-Funktionen.
  • 03Die Anbieter-Konfiguration ist verschlüsselt. Das Feld für den API-Schlüssel ist im Ruhezustand mit AES-256-GCM verschlüsselt. Ein Datenbank-Snapshot legt ihn nicht offen; nur der laufende Prozess mit dem Master-Key kann ihn entschlüsseln.
  • 04Jeder Aufruf wird protokolliert. Das KI-Nutzungsprotokoll erfasst Benutzer, Instanz, Anbieter, Modell, vollständige Prompt- und Antwort-Payloads, Token-Zahlen, Kostenschätzung und Dauer. Prüfbar wie jede andere Aktivität.
  • 05Keine automatische Schwärzung. Klar gesagt: Cybsis entfernt PII oder sensible Inhalte nicht automatisch aus Prompts, bevor diese an den von Ihnen gewählten Anbieter gesendet werden. Der Prompt, den Sie absenden, ist genau der Prompt, der beim Anbieter ankommt. Für Workloads, bei denen dies relevant ist, verwenden Sie Modus 2 — einen selbst gehosteten LLM-Endpunkt innerhalb Ihrer Sicherheitsgrenze — damit kein Prompt jemals das Netzwerk verlässt.

07 — Was auf der Sicherheits-Roadmap steht

Was wir noch nicht veröffentlicht haben.

Kerckhoffs’ Prinzip wirkt in beide Richtungen. Wenn wir erwarten, dass Sie der Implementierung vertrauen, schulden wir Ihnen eine Liste der Dinge, die noch nicht enthalten sind.

  • TOTP als zweiter Faktor

    Die Plattform empfiehlt Passkeys, da sie in Bezug auf Phishing-Resistenz stärker sind als Passwort + TOTP. Umgebungen, die TOTP vorschreiben – insbesondere Beschaffungsrahmen im öffentlichen Sektor – benötigen jedoch einen expliziten zweiten Faktor zusätzlich zum Passwort. Im nächsten Minor-Release.

  • SAML-SSO

    OIDC wird über die TARA-Integration bereits unterstützt; generisches OIDC für beliebige IdPs ist nur eine kleine Erweiterung. SAML — für Unternehmen, deren IdP-Team ausschließlich SAML spricht — steht im Backlog und wird umgesetzt, sobald der erste Kunde es tatsächlich benötigt.

  • Audit-Log mit Manipulationsnachweis

    Das Audit-Protokoll ist umfassend, aber die Zeilen sind wie in jeder anderen Datenbanktabelle veränderbar – ein Datenbankadministrator mit Schreibzugriff kann die Historie bearbeiten. Als geplante Härtung ist eine Hash-Chain oder ein Append-only-Speicher vorgesehen; besonders wichtig ist das für regulierte Branchen, in denen der Auditor eine kryptografische Nichtabstreitbarkeit benötigt.

  • Automatisiertes Supply-Chain-Scanning

    Das Lockfile wird bei jedem Release committed und geprüft, aber wir lassen noch weder Dependabot noch Renovate automatisiert gegen das Repository laufen, und es gibt keine veröffentlichte SBOM. Beides steht auf der Liste für das nächste Quartal.

  • Schwärzung personenbezogener Daten in KI-Prompts

    Die von der Plattform erstellten Teile eines KI-Prompts sind bereits minimiert: kontrollierte Felder mit begrenzten Stichprobengrößen, keine Zugangsdaten, keine nationalen Identifikationsnummern. Was noch fehlt, ist eine automatische Bereinigungsebene für von Nutzern verfasste Prompt-Inhalte: Ein Kommentar oder eine Freitextnotiz, die in eine Sparkle-Button-Eingabe eingegeben wird, geht unverändert an den Anbieter. Ein Redaktionsdurchlauf – Entitätserkennung, konfigurierbare Muster, Richtlinie auf Instanzebene – steht auf der Entwicklungsliste.

  • Bug-Bounty-Programm

    Coordinated Disclosure über die unten angegebene E-Mail-Adresse ist derzeit der vereinbarte Weg. Ein finanziertes Bounty-Programm — voraussichtlich über eine öffentliche Plattform — starten wir, sobald unsere installierte Basis groß genug ist, um für Sicherheitsforscher relevant zu sein.

08 — Responsible Disclosure

Etwas gefunden? Sagen Sie uns Bescheid.

Wenn Sie ein Sicherheitsproblem in Cybsis gefunden haben — im Produkt, auf der Website oder in einer von uns veröffentlichten Integration — schreiben Sie an security@raulwalter.com. Wir bestätigen den Eingang innerhalb von 24 Stunden, an jedem Tag des Jahres.

PGP – vertrauliche Berichte verschlüsseln

Fingerabdruck: 3361 FEA1 BF78 5BDA A1BF 0385 860E 681F 87FF 816A
Schlüssel: /.well-known/security-raulwalter.asc · auch referenziert in /.well-known/security.txt

Was wir tun werden

  • — Wir bestätigen den Eingang Ihrer Meldung innerhalb von 24 Stunden.
  • — Wir teilen Ihnen innerhalb von 5 Werktagen mit, ob wir das Problem reproduzieren können.
  • — Wir halten Sie auf dem Laufenden, bis das Problem behoben ist.
  • — Wir nennen Sie im Changelog, sobald der Fix veröffentlicht wird, es sei denn, Sie bitten uns, dies nicht zu tun.
  • — Wir drohen Ihnen niemals, weil Sie sie gefunden haben.

Worum wir Sie bitten

  • — Geben Sie uns vor einer öffentlichen Offenlegung ein angemessenes Zeitfenster zur Behebung.
  • — Exfiltrieren Sie keine Kundendaten, auch nicht, um nachzuweisen, dass die Schwachstelle funktioniert.
  • — Setzen Sie keine automatisierten Scanner gegen Produktionsinstanzen ein, die Ihnen nicht gehören.
  • — Verwenden Sie eine Testinstanz oder eine RW Hosting-Testversion, wenn Sie etwas demonstrieren müssen.

Für produktbezogene Fragen, die nicht die Sicherheit betreffen, nutzen Sie das Angebotsformular oder schreiben Sie an sales@raulwalter.com. Das Sicherheitspostfach wird separat überwacht und sollte ausschließlich für Meldungen zu Schwachstellen verwendet werden.