Für die IT-Leitung

Derselbe Schutz, aufgerufen von Ihren Programmen – ein einziges zustandsloses Image zu betreiben.

Bevor ein Workflow ein Dokument an eine KI, einen Übersetzer oder einen Lieferanten schickt, kann er DoNotLeak die personenbezogenen Daten darin finden und ersetzen lassen – über eine API, die eine Identität verlangt und von der Engine der Seite beantwortet wird.

Noch eine Komponente, die gehostet, abgesichert, aktualisiert und überwacht werden will? Das verlangt sie: ein signiertes Image, ohne Datenbank und ohne zu sicherndes Volume, über seine Umgebung konfiguriert, von identifizierten Maschinen aufgerufen. Und auf Anfrage seinen Quellcode für Ihre Teams.

Nur identifizierte Aufrufer · Nichts wird gespeichert · Signierte Images, amd64 und arm64

Panorama-Strichzeichnung: Ein Stapel Dokumente läuft in eine Reihe aus drei gleichen, miteinander verbundenen Kästen; die Linie führt weiter zu einem Laptop mit einem Dokument und einer kurzen Liste, teilt sich zu einem Bürogebäude und einer Wolke und trifft sich an einem Zahnrad wieder. Eine gepunktete, noch nicht verbundene Linie führt zu einem kleinen Roboter in einem gestrichelten Rahmen.

Die API ausprobieren

Senden Sie eine Anfrage, lesen Sie die Antwort.

Die echte Engine, hier als Demo geöffnet, ohne Schlüssel: Die Antwort, die Sie lesen, ist die, die Ihre Programme erhalten werden.

  • 1 Aufruf alle 15 s pro IP-Adresse
  • Texte bis 4 KB
  • nichts wird gespeichert
  • ein Netz teilt sich den Takt
Die Obergrenzen der Demo

Pro Adresse – ein IPv6-/64-Netz zählt als eine: 100 Aufrufe pro Tag, 300 pro Woche, 600 pro Monat, 2.000 pro Jahr. Für die ganze Demo: 600 Aufrufe pro Minute und ein einziger Text zugleich in Analyse; darüber antwortet sie 503, und der übrige Dienst bleibt unberührt. Ihre Adresse wird nur im Arbeitsspeicher gehalten, solange ihre Aufrufe gezählt werden; die Protokolle behalten Verb, Status, Größen und Dauer – nie die Adresse, den Text oder die Antwort.

RateLimit-Policy · RateLimit · Retry-After

  • POSTscan
  • POSTprotectBald
  • POSTrestoreBald
  • GETcapabilitiesBald
  • POSTextractmit Schlüssel
  • POSTrendermit Schlüssel

Anfrage

POST/api/demo/scan

Findet die personenbezogenen Daten – wo sie stehen (in UTF-8-Bytes), ihren Typ, ihre Schwere – und liefert den geschützten Text.

81 / 4096 Bytes

Länder
Das gesendete JSON ansehen
{
  "text": "Damien Morel a validé le virement vers l'IBAN FR76 3000 6000 0112 3456 7890 189.",
  "scope": [
    "FR"
  ]
}

Bereit – 1 Aufruf verfügbar

Antwort

Die Antwort erscheint hier.

Ihre Programme rufen /api/v1/scan mit ihrer Identität auf – einem Client-Zertifikat oder einem Token: Das ist der nächste Abschnitt.

Die API

Was sie heute kann: finden, dann ersetzen.

Ein Aufruf: JSON hinein, die Funde und der geschützte Text heraus. Es antwortet die Engine der Seite selbst.

  • Finden

    Jeder personenbezogene Wert im Text, mit Typ, Position und einem Konfidenzwert. Die Formate richten sich nach den Ländern, die Sie angeben.

    findings · counts · scope

  • Ersetzen

    Dieselbe Antwort enthält den geschützten Text: Jeder Wert wird zu einem typisierten, nummerierten Platzhalter. Werte, die Sie als zu behalten angeben, bleiben, wie sie sind.

    anonymized_text · replacements · kept

Der Aufruf

curl -sS --cacert ca.pem --cert client.pem --key client.key \
  -H 'Content-Type: application/json' \
  -X POST --data '{"text":"Contact: jean.dupont@example.org"}' \
  https://donotleak.example.org/api/v1/scan
Mit einem Token statt eines Zertifikats
-H "Authorization: Bearer $TOKEN"

Die Antwort – von der Engine aufgezeichnet, Zeilenumbrüche ergänzt

{"version":1,
 "findings":[{"id":0,"kind":"Pii","span":{"start":9,"end":32},
   "primary":{"label":"EMAIL","severity":"Medium","confidence":85},
   "alternatives":[],"entity_id":0,"kept":false,"applied":0}],
 "counts":{"total":1,"low":0,"medium":1,"high":0,"critical":0},
 "anonymized_text":"Contact: [[EMAIL-1]]",
 "replacements":[{"span":{"start":9,"end":32},"placeholder":"[[EMAIL-1]]"}],
 "entities":[{"id":0,"label":"EMAIL","value":"jean.dupont@example.org",
   "placeholder":"[[EMAIL-1]]"}],
 "skipped_overlaps":0}
Ablehnungen und die Entitätentabelle

Ablehnungen zitieren nie den Inhalt: 400 leer oder kein JSON, 413 über 1 MiB, 422 verdächtiger Inhalt, 401 keine Identität, 403 nicht erlaubt, 429 Budget überschritten.

Die Entitätentabelle gibt jeden Originalwert an den Aufrufer zurück, der ihn geschickt hat – sie macht das Wiederherstellen möglich. Nur der geschützte Text geht weiter an die KI.

Was sie noch nicht kann
  • Wiederherstellen: die Originale in die Antwort der KI zurücksetzen Bald
  • Word-Dokumente über die API Bald
  • Der veröffentlichte v1-Vertrag: eine OpenAPI-Beschreibung, einheitliche Fehler, Kontingente pro Aufrufer Bald

Wo es in Ihre Workflows passt

Eine Prüfung vor dem externen Aufruf.

Ein Workflow – ein Dokumentenmanagementsystem, ein CRM, ein Stapel Dateien – ruft DoNotLeak auf, kurz bevor er eine KI oder einen Partner aufruft. Nur der geschützte Text geht weiter.

Sie entscheiden, wo die Prüfung sitzt und was folgt: sofort senden oder eine Person die Funde erst prüfen lassen und den Text erneut senden, mit den Werten, die die Aufgabe braucht.

Strichzeichnung: Dokumente mit orangefarbenen Zeilen laufen auf einem Förderband durch ein Prüftor, dann unter einer Lupe hindurch. Ein abgehakter Weg bringt eine geschützte Seite zu einem KI-Chip; der andere, durchgestrichen, legt die Originale beiseite.
Die Prüfung sitzt vor der Grenze – dort, wo Sie sie hinsetzen.

Maschinenidentität

Nie anonym: Jeder Aufruf nennt seinen Aufrufer.

Die API hat keine offene Tür. Der Server startet erst, wenn er weiß, wie er einen Aufrufer identifiziert, und jeder Aufruf wird nach Ihrer Richtlinie beurteilt.

  • Ein Client-Zertifikat

    Mutual TLS, vom Server selbst terminiert: Das Zertifikat muss auf die Zertifizierungsstelle zurückgehen, der Sie vertrauen, und seine SPIFFE-ID – sonst sein DNS-Name, nie sein Common Name – wird zum Aufrufer.

    TLS_CLIENT_CA · TLS_CLIENT_IDENTITY=san

  • Ein Token Ihres Identitätsanbieters

    Der OpenID-Connect-Aussteller, den Sie benennen – Ihr Verzeichnis, Ihr SSO: Signatur, Aussteller, Zielgruppe und Ablauf jedes Tokens werden mit den Schlüsseln geprüft, die er veröffentlicht, und seine Rollen kommen mit.

    OIDC_ISSUER_URL · OIDC_CLIENT_ID · in der CI gegen Keycloak erprobt

  • Standardmäßig verweigert: Ein Aufrufer ohne Rolle in Ihrer Richtliniendatei wird abgewiesen (403), und Scannen ist ein eigenes Recht.
  • Kein statischer API-Schlüssel, der durchsickern kann: Ein Aufrufer weist sich mit einem Zertifikat oder einem signierten Token aus.

Hosting und Souveränität

Von Contee gehostet oder in Ihrem eigenen Informationssystem.

In beiden Fällen dasselbe Headless-Image.

  • Durch Contee, in der EU

    Contee betreibt den Server, Sie rufen ihn auf. Die öffentliche Seite läuft bereits so, bei OVH SAS, einem französischen Hoster (siehe Impressum).

    Die gehostete API, mit eigenem Dienstleistungsvertrag Bald

  • In Ihrem Informationssystem

    Das Image läuft auf Ihren Servern, hinter Ihrer PKI und Ihrem Identitätsanbieter: Die Texte verlassen Ihre Umgebung nie. Auf Anfrage mit seinem Quellcode: das On-Premises-Angebot, weiter unten.

Strichzeichnung: Eine Frau setzt einen mit einem Schild markierten Würfel in einen Kreis, der ein Serverrack umschließt; ein Laptop schickt ihm ein Dokument; eine Seite kommt heraus, und nur ein gestrichelter Pfeil führt zu einer fernen Wolke.
Wo die Prüfung läuft, ist Ihre Architekturentscheidung.

Das On-Premises-Angebot

Der Quellcode in Ihren Händen, und Ihre Teams, um ihn weiterzuentwickeln.

Für eine Organisation, die DoNotLeak in ihrem eigenen Informationssystem will, ohne für den Weiterbetrieb von Contee abhängig zu sein.

  • Der Quellcode, ausgeliefert

    Für die interne Nutzung Ihrer Organisation: Ihre Teams lesen ihn, bauen ihn und setzen ihn in Ihrer Umgebung ein.

  • Ihre Teams, geschult

    Um ihn zu warten, zu verbessern und zu erweitern: Die Kompetenzen entstehen bei Ihnen im Haus, nicht bei uns.

  • So wenig Lock-in wie möglich

    Code und Know-how bleiben im Haus; der Server erreicht nur, was Sie konfigurieren, nie einen Dienst von Contee.

  • Einmalig, kein SaaS-Abonnement

Ab sofort verfügbar, auf Anfrage, für Ihre Umgebung.

Das Headless-Image

Nur der Scan-Kern – signiert, für zwei Architekturen.

Keine Seite, kein Cookie, kein Browsercode: die API und die Engine, sonst nichts.

  • Die Engine der Seite

    Seite und API rufen dieselbe Scan-Funktion auf: Was ein Mensch auf der Seite sieht, bekommt auch ein Programm.

    ein Kern · zwei Türen

  • Klein und standardmäßig geschlossen

    Eine Distroless-Basis – keine Shell, kein Paketmanager – und ein Nicht-Root-Benutzer. Ohne Identitätsquelle oder mit einer halben TLS-Konfiguration startet es nicht.

    Port 3000 · TLS und mTLS in der App oder hinter Ihrem Proxy

  • Gebaut und signiert wie das Web-Image

    Dieselbe Pipeline baut und prüft es und signiert es dann per Digest mit dem eigenen Schlüssel von DoNotLeak – das Image, seine Stückliste und seine Build-Provenienz.

    amd64 + arm64 · cosign · SPDX-SBOM · SLSA-Provenienz · Trivy, Grype, Dockle, Dive

Betrieb

Was das Image von Ihrem Betrieb verlangt.

Ein Container unter anderen.

  • Zustandslos

    Keine Datenbank, kein zu sicherndes Volume: Jede Anfrage wird im Arbeitsspeicher verarbeitet und dann vergessen. Nichts wiederherzustellen.

    keine Datenbank · kein Datenvolume

  • Über seine Umgebung konfiguriert

    Listen-Adresse, Zertifikate, Client-Zertifizierungsstelle, OIDC-Aussteller, Richtliniendatei, Budgets: Variablen und schreibgeschützt eingehängte Dateien. Mit einer halben Konfiguration startet es nicht.

    LEPTOS_SITE_ADDR · TLS_CERT · TLS_CLIENT_CA · CASBIN_POLICY_FILE · SCAN_*

  • Mit Ihren Werkzeugen überwacht

    Traces gehen über OpenTelemetry an Ihren Collector, sonst auf die Standardausgabe; die Logs enthalten nie einen gescannten Text.

    OTEL_EXPORTER_OTLP_ENDPOINT

  • Per Digest aktualisiert

    Ein Release ist ein signiertes Image, benannt nach seinem Digest: Signatur prüfen, Digest ändern, neu starten. Ein Zertifikat ändert sich: neue Dateien, dann ein Neustart.

    cosign verify · amd64 + arm64

Wo immer es läuft

Drei Dinge, die sich nicht ändern.

  • Nichts wird gespeichert

    Jeder Text wird im Speicher der Anfrage analysiert, die ihn trägt, auf dem Server, und verschwindet mit ihr: keine Kopie, kein Log seines Inhalts.

    Jede Pipeline schickt einen Kontrolltext durch den Headless-Server und schlägt fehl, sobald dessen Log ihn zeigt.

  • Niemand sonst wird aufgerufen

    Die Erkennung beruht auf Formaten, Regeln und Wörterbüchern: kein Sprachmodell, kein Drittanbieterdienst. Der Server erreicht nur, was Sie konfigurieren – Ihren Identitätsanbieter, Ihren Telemetrie-Collector.

  • Jede Version überprüfbar

    Jedes Image ist per Digest signiert, mit seiner Stückliste und seiner Provenienz; die Pipeline prüft die Signatur, bevor etwas ausgeliefert wird.

Strichzeichnung: Orange markierte Seiten laufen auf einem Band durch eine kleine Zahnradmaschine mit einer Anzeige und kommen mit gestrichelten Kästchen statt der Markierungen heraus; daneben steht eine große Maschine mit einem Gehirn auf dem Bildschirm, ausgesteckt, der Stecker hängt herab.
Regeln und Wörterbücher machen die Arbeit: kein Sprachmodell, das aufgerufen wird.

Probieren Sie es auf der Seite aus, dann schreiben Sie Contee.

Die Seite antwortet mit derselben Engine wie die API: Fügen Sie einen typischen Text aus Ihren Workflows ein. Die Sicherheit des Images prüfen Sie Kontrolle für Kontrolle auf der Seite für CISOs. Für die gehostete API oder das On-Premises-Angebot: Schreiben Sie Contee.