Namespace-Technologie fuer Geschaeftskunden

Wie das SDK sensible Daten anonymisiert, verschluesselt und sicher in der Cloud verarbeiten laesst -- ohne dass der Betreiber Zugriff auf Klartext hat.

1. Was ist die Namespace-Technologie?

Unsere Namespace-Technologie (intern BYOEH -- Bring Your Own Expectation Horizon) ist eine Privacy-First-Architektur, die es Geschaeftskunden ermoeglicht, sensible Daten anonym und verschluesselt von KI-Services in der Cloud verarbeiten zu lassen -- ohne dass personenbezogene Informationen jemals den Client verlassen.

“Daten gehen pseudonymisiert und verschluesselt in die Cloud, werden dort von KI verarbeitet, und kommen verarbeitet zurueck. Nur der Kunde kann die Ergebnisse wieder den Originaldaten zuordnen -- denn nur sein System hat den Schluessel dafuer.”

Die Architektur basiert auf vier Bausteinen:

  1. Pseudonymisierung: Personenbezogene Daten werden durch zufaellige Tokens ersetzt. Nur der Kunde kennt die Zuordnung.
  2. Client-seitige Verschluesselung: Alle Daten werden auf dem System des Kunden verschluesselt, bevor sie die Infrastruktur verlassen.
  3. Namespace-Isolation: Jeder Kunde erhaelt einen eigenen, vollstaendig abgeschotteten Namespace.
  4. KI-Verarbeitung in der Cloud: Die KI arbeitet mit den pseudonymisierten Daten. Ergebnisse gehen zurueck an den Kunden zur lokalen Entschluesselung.

Kern-Designprinzip: Operator Blindness

Breakpilot kann die Kundendaten nicht lesen. Der Server sieht nur verschluesselte Blobs und einen Schluessel-Hash (nicht den Schluessel selbst). Die Passphrase zum Entschluesseln existiert ausschliesslich auf dem System des Kunden.

2. Typische Anwendungsfaelle

BrancheAnwendungsfallSensible Daten
BildungKI-gestuetzte KlausurkorrekturSchuelernamen, Noten, Leistungsdaten
GesundheitswesenMedizinische BefundanalysePatientennamen, Diagnosen, Befunde
RechtVertragsanalyse, Due DiligenceMandantendaten, Vertragsinhalte
PersonalwesenBewerbungsscreening, ZeugnisanalyseBewerberdaten, Gehaltsinformationen
FinanzwesenDokumentenpruefung, Compliance-ChecksKontodaten, Transaktionen, Identitaeten

3. Der komplette Ablauf im Ueberblick

Workflow: Vom Quelldokument zur KI-verarbeiteten Ausgabe
SCHRITT 1: DOKUMENTE ERFASSEN & PSEUDONYMISIEREN
SDK empfaengt Dokumente (PDF, Bild, Text)
  → Personenbezogene Daten werden erkannt (Header, Namen, IDs)
  → PII wird durch zufaellige Tokens ersetzt (doc_token, UUID4)
  → Zuordnung "Token → Originalname" wird lokal gesichert

SCHRITT 2: CLIENT-SEITIGE VERSCHLUESSELUNG
Kunde konfiguriert eine Passphrase im SDK
  → SDK leitet daraus einen 256-Bit-Schluessel ab (PBKDF2, 100k Runden)
  → Dokumente werden mit AES-256-GCM verschluesselt
  → Nur der Hash des Schluessels wird an den Server gesendet

SCHRITT 3: IDENTITAETS-MAP SICHERN
  → Nur mit der Passphrase des Kunden rekonstruierbar

SCHRITT 4: UPLOAD IN DEN KUNDEN-NAMESPACE
  → Jeder Kunde hat eine eigene tenant_id
  → Daten werden in MinIO (Storage) + Qdrant (Vektoren) gespeichert

SCHRITT 5: KI-VERARBEITUNG IN DER CLOUD
  → RAG-System durchsucht Referenzdokumente des Kunden
  → KI generiert Ergebnisse basierend auf Kundenkontext

SCHRITT 6: ERGEBNISSE ZURUECK
  → SDK entschluesselt die Ergebnisse mit der Passphrase

SCHRITT 7: RE-IDENTIFIZIERUNG & FINALISIERUNG
  → Identitaets-Map wird entschluesselt
  → Tokens werden wieder den echten Datensaetzen zugeordnet

4. SDK-Integration

Beispiel: SDK-Integration (TypeScript)
import { BreakpilotSDK, NamespaceClient } from '@breakpilot/compliance-sdk'

// 1. SDK initialisieren mit API-Key
const sdk = new BreakpilotSDK({
  apiKey: process.env.BREAKPILOT_API_KEY,
  endpoint: 'https://api.breakpilot.de'
})

// 2. Namespace-Client erstellen (pro Mandant/Abteilung)
const namespace = sdk.createNamespace({
  tenantId: 'kunde-firma-abc',
  passphrase: process.env.ENCRYPTION_PASSPHRASE  // Bleibt lokal!
})

// 3. Dokument pseudonymisieren & verschluesselt hochladen
const result = await namespace.upload({
  file: documentBuffer,
  metadata: { type: 'vertrag', category: 'due-diligence' },
  pseudonymize: true,
  headerRedaction: true
})
// result.docToken = "a7f3c2d1-4e9b-4a5f-8c7d-..."

// 4. Referenzdokument hochladen (z.B. Pruefkriterien)
await namespace.uploadReference({
  file: referenceBuffer,
  title: 'Pruefkriterien Vertrag Typ A'
})

// 5. KI-Verarbeitung anstossen
const analysis = await namespace.analyze({
  docToken: result.docToken,
  prompt: 'Pruefe den Vertrag gegen die Referenzkriterien',
  useRAG: true
})

// 6. Ergebnisse entschluesseln (passiert automatisch im SDK)
console.log(analysis.findings)
console.log(analysis.score)

// 7. Re-Identifizierung (Token → Originalname)
const identityMap = await namespace.getIdentityMap()
const originalName = identityMap[result.docToken]

Zero-Knowledge-Architektur

Die Passphrase verlässt niemals das System des Kunden. Das SDK verschluesselt und entschluesselt ausschliesslich lokal.

5. Pseudonymisierung: Wie personenbezogene Daten entfernt werden

5.1 Der doc_token: Ein zufaelliger Identifikator

Jedes Dokument erhaelt einen doc_token -- einen 128-Bit-Zufallscode im UUID4-Format. Dieser Token ist kryptographisch zufaellig, kann nicht zurueckgerechnet werden und dient als eindeutiger Schluesselfuer die spaetere Re-Identifizierung.

5.2 Header-Redaction: PII wird entfernt

MethodeWie es funktioniertWann verwenden
Einfache RedactionDefinierter Bereich des Dokuments wird entferntStandardisierte Formulare mit festem Layout
Smarte RedactionOpenCV/NER erkennt Textbereiche mit PII und entfernt gezieltFreitext-Dokumente, variable Layouts

5.3 Die Identitaets-Map: Nur der Kunde kennt die Zuordnung

Datenmodell: Namespace-Session (vereinfacht)
NamespaceSession
├── tenant_id                = "kunde-firma-abc"      ← Pflichtfeld (Isolation)
├── encrypted_identity_map   = [verschluesselte Bytes]  ← Nur mit Passphrase lesbar
├── identity_map_iv          = "a3f2c1..."
│
└── PseudonymizedDocument (pro Dokument)
    ├── doc_token             = "a7f3c2d1-..."         ← Zufaelliger Token (Primary Key)
    ├── session_id            = [Referenz]
    └── (Kein Name, keine personenbezogenen Daten)

DSGVO Art. 4 Nr. 5 konform

Die Pseudonymisierung erfuellt die Definition der DSGVO: Personenbezogene Daten koennen ohne Hinzuziehung zusaetzlicher Informationen(der verschluesselten Identitaets-Map + der Passphrase) nicht mehr einer bestimmten Person zugeordnet werden.

6. Ende-zu-Ende-Verschluesselung

Die Verschluesselung findet vollstaendig auf dem System des Kunden statt -- der Cloud-Server bekommt nur verschluesselte Daten zu sehen.

6.1 Der Verschluesselungsvorgang

Client-seitige Verschluesselung (im SDK)
┌─────────────────────────────────────────────────────────────────┐
│                    System des Kunden (SDK)                       │
├─────────────────────────────────────────────────────────────────┤
│  1. Kunde konfiguriert Passphrase im SDK                        │
│     → Passphrase bleibt hier -- wird NIE gesendet               │
│                                                                 │
│  2. Schluessel-Ableitung:                                       │
│     PBKDF2-SHA256(Passphrase, zufaelliger Salt, 100.000 Runden) │
│     → Ergebnis: 256-Bit-Schluessel (32 Bytes)                   │
│                                                                 │
│  3. Verschluesselung:                                           │
│     AES-256-GCM(Schluessel, zufaelliger IV, Dokument)           │
│     → GCM: Garantiert Integritaet (Manipulation erkennbar)      │
│                                                                 │
│  4. Schluessel-Hash:                                            │
│     SHA-256(abgeleiteter Schluessel) → Hash fuer Verifikation   │
│     → Vom Hash kann der Schluessel NICHT zurueckberechnet werden│
│                                                                 │
│  5. Upload: Nur diese Daten gehen an den Cloud-Server:          │
│     • Verschluesselter Blob   • Salt   • IV   • Schluessel-Hash │
│                                                                 │
│     Was NICHT an den Server geht:                               │
│     ✗ Passphrase  ✗ Abgeleiteter Schluessel  ✗ Klartext         │
└─────────────────────────────────────────────────────────────────┘

6.2 Sicherheitsgarantien

AngriffsszenarioWas der Angreifer siehtErgebnis
Cloud-Server wird gehacktVerschluesselte Blobs + HashesKeine lesbaren Dokumente
Datenbank wird geleaktencrypted_identity_map (verschluesselt)Keine personenbezogenen Daten
Netzwerkverkehr abgefangenVerschluesselte Daten (TLS + AES)Doppelt verschluesselt
Betreiber (Breakpilot) will mitlesenVerschluesselte Blobs, kein SchluesselOperator Blindness
Anderer Kunde versucht ZugriffNichts (Tenant-Isolation)Namespace blockiert

7. Namespace-Isolation: Jeder Kunde hat seinen eigenen Bereich

Ein Namespace ist ein vollstaendig abgeschotteter Bereich im System -- wie separate Tresorraeume in einer Bank. Jeder Kunde hat seinen eigenen Raum, und kein Schluessel passt in einen anderen.

Tenant-Isolation in der Vektordatenbank (Qdrant)
Kunde A (tenant_id: "firma-alpha-001")
├── Dokument 1 (verschluesselt)
└── Referenz: Pruefkriterien 2025

Kunde B (tenant_id: "firma-beta-002")
└── Referenz: Compliance-Vorgaben 2025

Suchanfrage von Kunde A:
  → Suche NUR in tenant_id = "firma-alpha-001"
  → Kunde B's Daten sind UNSICHTBAR

Jede Qdrant-Query hat diesen Pflichtfilter:
  must_conditions = [
    FieldCondition(key="tenant_id", match="firma-alpha-001")
  ]

7.2 Drei Ebenen der Isolation

EbeneSystemIsolation
DateisystemMinIO (S3-Storage)Eigener Bucket/Pfad pro Kunde
VektordatenbankQdrantPflichtfilter tenant_id bei jeder Suche
Metadaten-DBPostgreSQLJede Tabelle hat tenant_id als Pflichtfeld

Kein Training mit Kundendaten

Auf allen Vektoren in Qdrant ist das Flag training_allowed: false gesetzt. Kundeninhalte werden ausschliesslich fuer RAG-Suchen innerhalb des Kunden-Namespace verwendet.

8. RAG-Pipeline: KI-Verarbeitung mit Kundenkontext

Die KI nutzt die vom Kunden hochgeladenen Referenzdokumente als Wissensbasis. Dieser Prozess heisst RAG (Retrieval Augmented Generation).

8.1 Indexierung der Referenzdokumente

Indexierung: Vom Upload zum durchsuchbaren Referenzdokument
Referenzdokument (verschluesselt auf Server)
     |
     v
┌────────────────────────────────────┐
│  1. Passphrase-Verifikation        │  ← SDK sendet Schluessel-Hash
└──────────┬─────────────────────────┘
           v
┌────────────────────────────────────┐
│  2. Entschluesselung               │  ← Temporaer im Arbeitsspeicher
└──────────┬─────────────────────────┘
           v
┌────────────────────────────────────┐
│  3. Text-Extraktion                │  ← PDF → Klartext
└──────────┬─────────────────────────┘
           v
┌────────────────────────────────────┐
│  4. Chunking                       │  ← ~1.000-Zeichen-Abschnitte
└──────────┬─────────────────────────┘
           v
┌────────────────────────────────────┐
│  5. Embedding                      │  ← Text → 1.536 Zahlen
└──────────┬─────────────────────────┘
           v
┌────────────────────────────────────┐
│  6. Re-Encryption                  │  ← Jeder Chunk wird erneut verschluesselt
└──────────┬─────────────────────────┘
           v
┌────────────────────────────────────┐
│  7. Qdrant-Indexierung              │  ← Vektor + verschluesselter Chunk
│  tenant_id: "firma-alpha-001"      │     mit Tenant-Filter gespeichert
│  training_allowed: false           │
└────────────────────────────────────┘

8.2 Wie die KI eine Anfrage bearbeitet (RAG-Query)

  1. Anfrage formulieren: Das SDK sendet eine Suchanfrage mit dem zu verarbeitenden Dokument.
  2. Semantische Suche: Die Anfrage wird in einen Vektor umgewandelt und gegen die Referenz-Vektoren in Qdrant gesucht -- nur im Namespace des Kunden.
  3. Entschluesselung: Die gefundenen Chunks werden mit der Passphrase des Kunden entschluesselt.
  4. KI-Antwort: Die entschluesselten Referenzpassagen werden als Kontext an die KI uebergeben.

9. Key Sharing: Zusammenarbeit ermoeglichen

Das Key-Sharing-System ermoeglicht es dem Eigentuemer, seinen Namespace sicher mit anderen zu teilen (z.B. fuer Vier-Augen-Prinzip, Qualitaetskontrolle oder externe Audits).

9.1 Einladungs-Workflow

Key Sharing: Sicheres Teilen zwischen Bearbeitern
Eigentuemer                        Server                     Eingeladener
     │                                │                             │
     │  1. Einladung senden            │                             │
     │─────────────────────────────────▶                             │
     │                                │  2. Einladung erstellt       │
     │                                │     (14 Tage gueltig)        │
     │                                │  3. Benachrichtigung ──────▶│
     │                                │                 4. Einladung annehmen
     │                                │◀─────────────────────────────│
     │                                │  5. Key-Share erstellt       │
     │                                │  6. Eingeladener kann ──────▶│
     │                                │     Daten im Namespace        │
     │                                │     abfragen                 │
     │  7. Zugriff widerrufen          │                             │
     │─────────────────────────────────▶  Share deaktiviert          │

9.2 Rollen beim Key-Sharing

RolleTypischer NutzerRechte
OwnerProjektverantwortlicherVollzugriff, kann teilen & widerrufen
ReviewerQualitaetssicherungLesen, RAG-Queries, eigene Anmerkungen
AuditorExterner PrueferNur Lesen (Aufsichtsfunktion)

10. Audit-Trail: Vollstaendige Nachvollziehbarkeit

Jede Aktion im Namespace wird revisionssicher im Audit-Log gespeichert.

EventWas protokolliert wird
uploadDokument hochgeladen (Dateigroesse, Metadaten, Zeitstempel)
indexReferenzdokument indexiert (Anzahl Chunks, Dauer)
rag_queryRAG-Suchanfrage ausgefuehrt (Query-Hash, Anzahl Ergebnisse)
analyzeKI-Verarbeitung gestartet (Dokument-Token, Modell, Dauer)
shareNamespace mit anderem Nutzer geteilt (Empfaenger, Rolle)
revoke_shareZugriff widerrufen (wer, wann)
decryptErgebnis entschluesselt (durch wen, Zeitstempel)
deleteDokument geloescht (Soft Delete, bleibt in Logs)

11. API-Endpunkte (SDK-Referenz)

Authentifizierung erfolgt ueber API-Key + JWT-Token.

11.1 Namespace-Verwaltung

MethodeEndpunktBeschreibung
POST/api/v1/namespace/uploadVerschluesseltes Dokument hochladen
GET/api/v1/namespace/documentsEigene Dokumente auflisten
GET/api/v1/namespace/documents/{id}Einzelnes Dokument abrufen
DELETE/api/v1/namespace/documents/{id}Dokument loeschen (Soft Delete)

11.2 Referenzdokumente & RAG

MethodeEndpunktBeschreibung
POST/api/v1/namespace/references/uploadReferenzdokument hochladen
POST/api/v1/namespace/references/{id}/indexReferenz fuer RAG indexieren
POST/api/v1/namespace/rag-queryRAG-Suchanfrage ausfuehren
POST/api/v1/namespace/analyzeKI-Verarbeitung anstossen

11.3 Key Sharing

MethodeEndpunktBeschreibung
POST/api/v1/namespace/shareNamespace mit anderem Nutzer teilen
GET/api/v1/namespace/sharesAktive Shares auflisten
DELETE/api/v1/namespace/shares/{shareId}Zugriff widerrufen
GET/api/v1/namespace/shared-with-meMit mir geteilte Namespaces

12. Zusammenfassung: Compliance-Garantien

GarantieWie umgesetztRegelwerk
Keine PII verlaesst das KundensystemHeader-Redaction + verschluesselte Identity-MapDSGVO Art. 4 Nr. 5
Betreiber kann nicht mitlesenClient-seitige AES-256-GCM VerschluesselungDSGVO Art. 32
Kein Zugriff durch andere KundenTenant-Isolation (Namespace) auf allen 3 EbenenDSGVO Art. 25
Kein KI-Training mit Kundendatentraining_allowed: false auf allen VektorenAI Act Art. 10
Alles nachvollziehbarVollstaendiger Audit-Trail aller AktionenDSGVO Art. 5 Abs. 2
Kunde behaelt volle KontrolleJederzeitiger Widerruf, Loeschung, DatenexportDSGVO Art. 17, 20

Das Wichtigste in einem Satz

Die Namespace-Technologie ermoeglicht KI-gestuetzte Datenverarbeitung in der Cloud, bei der keine personenbezogenen Daten das Kundensystem verlassen, alle Daten Ende-zu-Ende verschluesselt sind, jeder Kunde seinen eigenen abgeschotteten Namespace hat, und ein vollstaendiger Audit-Trail jede Aktion dokumentiert.