Dla działów IT

Ta sama ochrona, wywoływana przez twoje programy – jeden bezstanowy obraz do uruchomienia.

Zanim proces wyśle dokument do AI, tłumacza lub dostawcy, może poprosić DoNotLeak o znalezienie i zastąpienie zawartych w nim danych osobowych – przez API, które wymaga tożsamości i które obsługuje silnik strony.

Jeszcze jeden komponent do hostowania, zabezpieczania, aktualizowania i monitorowania? Oto jego wymagania: podpisany obraz, bez bazy danych i bez wolumenu do kopii zapasowych, konfigurowany przez środowisko, wywoływany przez zidentyfikowane maszyny. A na życzenie – jego kod źródłowy dla twoich zespołów.

Tylko zidentyfikowani wywołujący · Nic nie jest przechowywane · Podpisane obrazy, amd64 i arm64

Panoramiczny rysunek kreskowy: stos dokumentów trafia do rzędu trzech identycznych, połączonych ze sobą skrzynek; linia biegnie dalej do laptopa z dokumentem i krótką listą, rozdziela się w stronę biurowca i chmury, po czym łączy się ponownie przy kole zębatym. Kropkowana, jeszcze niepodłączona linia prowadzi do małego robota w przerywanej ramce.

Wypróbuj API

Wyślij żądanie, przeczytaj odpowiedź.

Prawdziwy silnik, otwarty tu jako demo, bez klucza: odpowiedź, którą czytasz, to ta, którą otrzymają twoje programy.

  • 1 wywołanie co 15 s na adres IP
  • teksty do 4 KB
  • nic nie jest przechowywane
  • jedna sieć dzieli rytm
Pułapy demonstracji

Na adres — sieć IPv6 /64 liczy się jako jeden: 100 wywołań dziennie, 300 tygodniowo, 600 miesięcznie, 2000 rocznie. Dla całej demonstracji: 600 wywołań na minutę i jeden tekst analizowany naraz; powyżej odpowiada 503, a reszta usługi pozostaje nienaruszona. Twój adres jest trzymany tylko w pamięci, na czas liczenia jego wywołań; logi zachowują czasownik, status, rozmiary i czas trwania — nigdy adres, tekst ani odpowiedź.

RateLimit-Policy · RateLimit · Retry-After

  • POSTscan
  • POSTprotectWkrótce
  • POSTrestoreWkrótce
  • GETcapabilitiesWkrótce
  • POSTextractz kluczem
  • POSTrenderz kluczem

Żądanie

POST/api/demo/scan

Znajduje dane osobowe — gdzie są (w bajtach UTF-8), ich typ, ich wagę — i zwraca chroniony tekst.

81 / 4096 bajtów

Kraje
Zobacz wysłany JSON
{
  "text": "Damien Morel a validé le virement vers l'IBAN FR76 3000 6000 0112 3456 7890 189.",
  "scope": [
    "FR"
  ]
}

Gotowe — 1 wywołanie dostępne

Odpowiedź

Tu pojawi się odpowiedź.

Twoje programy wywołują /api/v1/scan ze swoją tożsamością — certyfikatem klienta lub tokenem: to następna sekcja.

API

Co robi dziś: znajduje, potem zastępuje.

Jedno wywołanie: JSON na wejściu, wykrycia i chroniony tekst na wyjściu. Odpowiada ten sam silnik co na stronie.

  • Znajdowanie

    Każda dana osobowa w tekście, z typem, pozycją i poziomem pewności. Formaty zależą od krajów, które wskażesz.

    findings · counts · scope

  • Zastępowanie

    Ta sama odpowiedź zawiera chroniony tekst: każda wartość staje się typowanym, numerowanym znacznikiem. Wartości wskazane do zachowania pozostają bez zmian.

    anonymized_text · replacements · kept

Wywołanie

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
Z tokenem zamiast certyfikatu
-H "Authorization: Bearer $TOKEN"

Odpowiedź – nagrana z silnika, z dodanymi podziałami wierszy

{"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}
Odmowy i tabela encji

Odmowy nigdy nie cytują treści: 400 pusty tekst lub nie JSON, 413 powyżej 1 MiB, 422 podejrzana treść, 401 brak tożsamości, 403 brak uprawnień, 429 przekroczony budżet.

Tabela encji zwraca każdą oryginalną wartość temu, kto ją wysłał – to ona umożliwi przywracanie. Do AI trafia tylko chroniony tekst.

Czego jeszcze nie robi
  • Przywracanie: wstawianie oryginałów z powrotem do odpowiedzi AI Wkrótce
  • Dokumenty Word przez API Wkrótce
  • Opublikowany kontrakt v1: opis OpenAPI, jednolite błędy, limity dla każdego wywołującego Wkrótce

Gdzie to wpiąć w twoje procesy

Kontrola przed wywołaniem zewnętrznym.

Proces – system zarządzania dokumentami, CRM, partia plików – wywołuje DoNotLeak tuż przed wywołaniem AI lub partnera. Dalej idzie tylko chroniony tekst.

To ty decydujesz, gdzie stoi kontrola i co następuje potem: wysłać od razu albo najpierw dać człowiekowi przejrzeć wykrycia i wysłać tekst ponownie, zachowując wartości potrzebne do zadania.

Rysunek kreskowy: dokumenty z pomarańczowymi liniami jadą taśmą przez bramkę skanującą, a potem pod lupą. Jedna droga, zatwierdzona, prowadzi chronioną stronę do układu AI; druga, przekreślona, odkłada oryginały na bok.
Kontrola stoi przed granicą – tam, gdzie zdecydujesz ją postawić.

Tożsamość maszyn

Nigdy anonimowo: każde wywołanie wskazuje wywołującego.

API nie ma otwartych drzwi. Serwer nie uruchomi się, dopóki nie wie, jak identyfikować wywołującego, a każde wywołanie jest oceniane według twojej polityki.

  • Certyfikat klienta

    Wzajemne TLS, obsługiwane przez sam serwer: certyfikat musi prowadzić do urzędu certyfikacji, któremu ufasz, a jego identyfikator SPIFFE – w przeciwnym razie nazwa DNS, nigdy common name – staje się wywołującym.

    TLS_CLIENT_CA · TLS_CLIENT_IDENTITY=san

  • Token od twojego dostawcy tożsamości

    Wskazany przez ciebie wystawca OpenID Connect – twój katalog, twoje SSO: podpis, wystawca, odbiorca i ważność każdego tokenu są sprawdzane kluczami, które on publikuje, a role tokenu przychodzą razem z nim.

    OIDC_ISSUER_URL · OIDC_CLIENT_ID · przetestowane w CI z serwerem Keycloak

  • Domyślnie odmowa: wywołujący bez roli w twoim pliku polityki zostaje odrzucony (403), a skanowanie to osobne uprawnienie.
  • Brak statycznego klucza API, który mógłby wyciec: wywołujący potwierdza się certyfikatem lub podpisanym tokenem.

Hosting i suwerenność

Hostowane przez Contee albo w twoim własnym systemie informatycznym.

W obu przypadkach ten sam obraz headless.

  • Przez Contee, w UE

    Contee utrzymuje serwer, a ty go wywołujesz. Publiczna strona już tak działa, u OVH SAS, francuskiego dostawcy hostingu (zob. notę prawną).

    Hostowane API, z własną umową o świadczenie usługi Wkrótce

  • W twoim systemie informatycznym

    Obraz działa na twoich serwerach, za twoją PKI i twoim dostawcą tożsamości: teksty nigdy nie opuszczają twojego środowiska. Na życzenie – z kodem źródłowym: oferta on-premises, poniżej.

Rysunek kreskowy: kobieta umieszcza sześcian oznaczony tarczą w okręgu otaczającym szafę serwerową; laptop wysyła do niego dokument; wychodzi jedna strona, a do odległej chmury prowadzi tylko przerywana strzałka.
Gdzie działa kontrola – to twój wybór architektoniczny.

Oferta on-premises

Kod źródłowy w twoich rękach, a jego rozwój – w rękach twoich zespołów.

Dla organizacji, która chce mieć DoNotLeak we własnym systemie informatycznym, nie zależąc od Contee w jego dalszym utrzymaniu.

  • Dostarczony kod źródłowy

    Do użytku wewnętrznego twojej organizacji: twoje zespoły go czytają, budują i wdrażają w twoim środowisku.

  • Przeszkolone zespoły

    Do utrzymania, ulepszania i rozbudowy kodu: kompetencje powstają u ciebie, nie u nas.

  • Jak najmniejsze uzależnienie

    Kod i know-how zostają w firmie; serwer łączy się tylko z tym, co skonfigurujesz, nigdy z usługą Contee.

  • Jednorazowo, nie w abonamencie SaaS

Dostępna już dziś, na życzenie, dla twojego środowiska.

Obraz headless

Sam rdzeń skanowania – podpisany, dla dwóch architektur.

Bez strony, bez ciasteczek, bez kodu przeglądarki: API i silnik, nic więcej.

  • Silnik strony

    Strona i API wywołują tę samą funkcję skanowania: to, co człowiek widzi na stronie, dostaje też program.

    jeden rdzeń · dwoje drzwi

  • Mały i domyślnie zamknięty

    Baza distroless – bez powłoki, bez menedżera pakietów – i użytkownik bez uprawnień roota. Nie uruchomi się bez źródła tożsamości ani z niepełną konfiguracją TLS.

    port 3000 · TLS i mTLS w aplikacji albo za twoim proxy

  • Budowany i podpisywany jak obraz webowy

    Ten sam pipeline go buduje i skanuje, a potem podpisuje po skrócie (digest) własnym kluczem DoNotLeak – obraz, jego wykaz komponentów i pochodzenie kompilacji.

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

Eksploatacja

Czego obraz wymaga od twojego zespołu utrzymania.

Jeden kontener wśród innych.

  • Bezstanowy

    Bez bazy danych i bez wolumenu do kopii zapasowych: każde żądanie jest przetwarzane w pamięci, a potem zapominane. Nic do przywracania.

    bez bazy danych · bez wolumenu danych

  • Konfigurowany przez środowisko

    Adres nasłuchu, certyfikaty, urząd certyfikacji klientów, wystawca OIDC, plik polityki, budżety: zmienne oraz pliki montowane tylko do odczytu. Przy niepełnej konfiguracji obraz się nie uruchomi.

    LEPTOS_SITE_ADDR · TLS_CERT · TLS_CLIENT_CA · CASBIN_POLICY_FILE · SCAN_*

  • Monitorowany twoimi narzędziami

    Ślady (traces) trafiają przez OpenTelemetry do twojego kolektora, a w przeciwnym razie na standardowe wyjście; logi nigdy nie zawierają skanowanego tekstu.

    OTEL_EXPORTER_OTLP_ENDPOINT

  • Aktualizowany po skrócie

    Wydanie to podpisany obraz wskazany swoim skrótem: sprawdź podpis, zmień skrót, uruchom ponownie. Zmiana certyfikatu: nowe pliki, potem restart.

    cosign verify · amd64 + arm64

Gdziekolwiek działa

Trzy rzeczy, które się nie zmieniają.

  • Nic nie jest przechowywane

    Każdy tekst jest analizowany w pamięci żądania, które go przenosi, na serwerze, i znika razem z nim: bez kopii, bez logów jego treści.

    Każdy pipeline przepuszcza tekst kontrolny przez serwer headless i kończy się błędem, jeśli kiedykolwiek pojawi się on w logu.

  • Nikt inny nie jest wywoływany

    Wykrywanie opiera się na formatach, regułach i słownikach: bez modelu językowego, bez usług zewnętrznych. Serwer łączy się tylko z tym, co skonfigurujesz – twoim dostawcą tożsamości, twoim kolektorem telemetrii.

  • Każde wydanie do sprawdzenia

    Każdy obraz jest podpisany po skrócie, razem z wykazem komponentów i pochodzeniem; pipeline sprawdza podpis, zanim cokolwiek zostanie wydane.

Rysunek kreskowy: strony z pomarańczowymi oznaczeniami jadą taśmą przez małą maszynę z kołami zębatymi i tarczą wskaźnika i wychodzą z przerywanymi ramkami w miejscu oznaczeń; obok stoi duża maszyna z mózgiem na ekranie, odłączona, z wiszącą wtyczką.
Pracę wykonują reguły i słowniki: nie trzeba wywoływać żadnego modelu językowego.

Wypróbuj na stronie, a potem napisz do Contee.

Strona odpowiada tym samym silnikiem co API: wklej typowy tekst ze swoich procesów. Bezpieczeństwo obrazu sprawdzisz zabezpieczenie po zabezpieczeniu na stronie CISO. W sprawie hostowanego API lub oferty on-premises napisz do Contee.