Pentru echipele IT

Aceeași protecție, apelată de programele dumneavoastră — o singură imagine, fără stare, de operat.

Înainte ca un flux de lucru să trimită un document unei IA, unui traducător sau unui furnizor, poate cere DoNotLeak să găsească și să înlocuiască datele personale din el — printr-un API care cere o identitate, deservit de motorul paginii.

Încă o componentă de găzduit, securizat, actualizat și monitorizat? Iată ce cere: o imagine semnată, fără bază de date și fără volum de salvat, configurată prin mediul ei, apelată de mașini identificate. Și, la cerere, codul ei sursă pentru echipele dumneavoastră.

Doar apelanți identificați · Nimic nu este păstrat · Imagini semnate, amd64 și arm64

Desen în linie, panoramic: un teanc de documente intră într-un șir de trei cutii identice, legate una de alta; linia continuă spre un laptop care afișează un document și o listă scurtă, se desparte spre o clădire de birouri și un nor, apoi se reunește la o roată dințată. O linie punctată, încă neconectată, duce la un mic robot într-un cadru întrerupt.

Încercați API-ul

Trimiteți o cerere, citiți răspunsul.

Motorul real, deschis aici ca demonstrație, fără cheie: răspunsul pe care îl citiți este cel pe care îl vor primi programele dumneavoastră.

  • 1 apel la 15 s pe adresă IP
  • texte de până la 4 KB
  • nu se păstrează nimic
  • aceeași rețea împarte ritmul
Plafoanele demonstrației

Pe adresă — o rețea IPv6 /64 contează ca una singură: 100 de apeluri pe zi, 300 pe săptămână, 600 pe lună, 2.000 pe an. Pentru întreaga demonstrație: 600 de apeluri pe minut și un singur text analizat odată; peste acestea, răspunde 503, iar restul serviciului nu este afectat. Adresa dumneavoastră este ținută doar în memorie, cât timp i se numără apelurile; jurnalele păstrează verbul, starea, dimensiunile și durata — niciodată adresa, textul sau răspunsul.

RateLimit-Policy · RateLimit · Retry-After

  • POSTscan
  • POSTprotectÎn curând
  • POSTrestoreÎn curând
  • GETcapabilitiesÎn curând
  • POSTextractcu o cheie
  • POSTrendercu o cheie

Cerere

POST/api/demo/scan

Găsește datele personale — unde sunt (în octeți UTF-8), tipul lor, gravitatea lor — și returnează textul protejat.

81 / 4096 de octeți

Țări
Vedeți JSON-ul trimis
{
  "text": "Damien Morel a validé le virement vers l'IBAN FR76 3000 6000 0112 3456 7890 189.",
  "scope": [
    "FR"
  ]
}

Gata — 1 apel disponibil

Răspuns

Răspunsul va apărea aici.

Programele dumneavoastră apelează /api/v1/scan cu identitatea lor — un certificat de client sau un token: este secțiunea următoare.

API-ul

Ce face astăzi: găsește, apoi înlocuiește.

Un singur apel: JSON la intrare, detecțiile și textul protejat la ieșire. Răspunde chiar motorul paginii.

  • Găsire

    Fiecare dată personală din text, cu tipul, poziția și un scor de încredere. Formatele urmează țările pe care le indicați.

    findings · counts · scope

  • Înlocuire

    Același răspuns conține textul protejat: fiecare valoare devine un marcaj tipizat și numerotat. Valorile pe care le indicați ca păstrate rămân neschimbate.

    anonymized_text · replacements · kept

Apelul

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
Cu un token în loc de un certificat
-H "Authorization: Bearer $TOKEN"

Răspunsul — înregistrat din motor, cu rânduri noi adăugate

{"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}
Refuzurile și tabelul entităților

Refuzurile nu citează niciodată conținutul: 400 gol sau nu e JSON, 413 peste 1 MiB, 422 conținut suspect, 401 fără identitate, 403 nepermis, 429 buget depășit.

Tabelul entităților returnează fiecare valoare originală apelantului care a trimis-o — datorită lui va fi posibilă restaurarea. Doar textul protejat merge mai departe spre IA.

Ce nu face încă
  • Restaurare: readucerea originalelor în răspunsul IA În curând
  • Documentele Word prin API În curând
  • Contractul v1 publicat: o descriere OpenAPI, erori uniforme, cote pe apelant În curând

Unde se integrează în fluxurile dumneavoastră

O verificare înaintea apelului extern.

Un flux — un sistem de gestiune a documentelor, un CRM, un lot de fișiere — apelează DoNotLeak chiar înainte de a apela o IA sau un partener. Doar textul protejat merge mai departe.

Dumneavoastră alegeți unde stă verificarea și ce urmează: trimiterea imediată sau revizuirea detecțiilor de către o persoană, apoi retrimiterea textului cu valorile de care are nevoie sarcina.

Desen în linie: documente cu rânduri portocalii trec pe o bandă printr-o poartă de scanare, apoi pe sub o lupă. Un drum, bifat, duce o pagină protejată spre un cip de IA; celălalt, tăiat, pune originalele deoparte.
Verificarea stă înaintea graniței — acolo unde decideți să o puneți.

Identitatea mașinilor

Niciodată anonim: fiecare apel își numește apelantul.

API-ul nu are nicio ușă deschisă. Serverul refuză să pornească până nu știe cum să identifice un apelant, iar fiecare apel este judecat după politica dumneavoastră.

  • Un certificat de client

    TLS mutual, terminat chiar de server: certificatul trebuie să ducă la autoritatea de certificare în care aveți încredere, iar ID-ul său SPIFFE — altfel numele DNS, niciodată common name — devine apelantul.

    TLS_CLIENT_CA · TLS_CLIENT_IDENTITY=san

  • Un token de la furnizorul dumneavoastră de identitate

    Emitentul OpenID Connect pe care îl desemnați — directorul dumneavoastră de utilizatori, SSO-ul dumneavoastră: semnătura, emitentul, audiența și expirarea fiecărui token sunt verificate cu cheile pe care acesta le publică, iar rolurile îl însoțesc.

    OIDC_ISSUER_URL · OIDC_CLIENT_ID · validat în CI cu Keycloak

  • Refuz implicit: un apelant fără rol în fișierul dumneavoastră de politică este respins (403), iar scanarea este un drept separat.
  • Nicio cheie API statică ce ar putea să scape: un apelant se dovedește cu un certificat sau un token semnat.

Găzduire și suveranitate

Găzduit de Contee sau în propriul dumneavoastră sistem informatic.

Aceeași imagine headless în ambele cazuri.

  • De către Contee, în UE

    Contee operează serverul, iar dumneavoastră îl apelați. Pagina publică funcționează deja așa, la OVH SAS, un furnizor francez de găzduire (vedeți mențiunile legale).

    API-ul găzduit, cu propriul contract de servicii În curând

  • În sistemul dumneavoastră informatic

    Imaginea rulează pe serverele dumneavoastră, în spatele PKI-ului și al furnizorului dumneavoastră de identitate: textele nu vă părăsesc niciodată perimetrul. La cerere, împreună cu codul ei sursă: oferta pe propriile servere, mai jos.

Desen în linie: o femeie așază un cub marcat cu un scut într-un cerc care înconjoară un rack de servere; un laptop îi trimite un document; iese o pagină, și doar o săgeată întreruptă duce spre un nor îndepărtat.
Locul unde rulează verificarea este alegerea dumneavoastră de arhitectură.

Oferta pe propriile servere

Codul sursă în mâinile dumneavoastră, iar echipele dumneavoastră îl duc mai departe.

Pentru o organizație care vrea DoNotLeak în propriul sistem informatic, fără să depindă de Contee pentru a-l menține în viață.

  • Codul sursă livrat

    Pentru uzul intern al organizației dumneavoastră: echipele dumneavoastră îl citesc, îl construiesc și îl implementează în perimetrul dumneavoastră.

  • Echipele dumneavoastră instruite

    Să îl întrețină, să îl îmbunătățească și să îl extindă: competențele se construiesc la dumneavoastră, nu la noi.

  • Cea mai mică dependență posibilă

    Codul și know-how-ul rămân în organizație; serverul ajunge doar la ce configurați, niciodată la un serviciu Contee.

  • O singură dată, nu un abonament SaaS

Disponibilă de acum, la cerere, pentru perimetrul dumneavoastră.

Imaginea headless

Doar nucleul de scanare — semnat, pentru două arhitecturi.

Fără pagină, fără cookie, fără cod de browser: API-ul și motorul, nimic altceva.

  • Motorul paginii

    Pagina și API-ul apelează aceeași funcție de scanare: ce vede o persoană pe pagină primește și un program.

    un nucleu · două uși

  • Mică și închisă implicit

    O bază distroless — fără shell, fără manager de pachete — și un utilizator non-root. Refuză să pornească fără o sursă de identitate sau cu o configurație TLS incompletă.

    port 3000 · TLS și mTLS în aplicație sau în spatele proxy-ului dumneavoastră

  • Construită și semnată ca imaginea web

    Același pipeline o construiește și o scanează, apoi o semnează după digest cu cheia proprie DoNotLeak — imaginea, lista ei de componente și proveniența compilării.

    amd64 + arm64 · cosign · SBOM SPDX · proveniență SLSA · Trivy, Grype, Dockle, Dive

Operare

Ce le cere imaginea operațiunilor dumneavoastră.

Un container printre celelalte.

  • Fără stare

    Nicio bază de date, niciun volum de salvat: fiecare cerere este prelucrată în memorie, apoi uitată. Nimic de restaurat.

    nicio bază de date · niciun volum de date

  • Configurată prin mediul ei

    Adresa de ascultare, certificatele, autoritatea de certificare a clienților, emitentul OIDC, fișierul de politică, bugetele: variabile și fișiere montate doar pentru citire. O configurație incompletă refuză să pornească.

    LEPTOS_SITE_ADDR · TLS_CERT · TLS_CLIENT_CA · CASBIN_POLICY_FILE · SCAN_*

  • Monitorizată de instrumentele dumneavoastră

    Trace-urile pleacă prin OpenTelemetry către colectorul dumneavoastră sau, altfel, către ieșirea standard; jurnalele nu conțin niciodată un text scanat.

    OTEL_EXPORTER_OTLP_ENDPOINT

  • Actualizată prin digest

    O versiune este o imagine semnată, desemnată prin digestul ei: verificați semnătura, schimbați digestul, reporniți. Un certificat care se schimbă: fișiere noi, apoi o repornire.

    cosign verify · amd64 + arm64

Oriunde ar rula

Trei lucruri care nu se schimbă.

  • Nimic nu este păstrat

    Fiecare text este analizat în memoria cererii care îl poartă, pe server, și dispare odată cu ea: nicio copie, niciun jurnal al conținutului.

    Fiecare pipeline trece un text-martor prin serverul headless și eșuează dacă jurnalul îl arată vreodată.

  • Nimeni altcineva nu este apelat

    Detecția se bazează pe formate, reguli și dicționare: niciun model de limbaj, niciun serviciu terț. Serverul ajunge doar la ce configurați — furnizorul de identitate, colectorul de telemetrie.

  • Fiecare versiune verificabilă

    Fiecare imagine este semnată după digest, cu lista de componente și proveniența; pipeline-ul verifică semnătura înainte de orice publicare.

Desen în linie: pagini marcate cu portocaliu trec pe o bandă printr-o mică mașină cu roți dințate și un cadran și ies cu casete întrerupte în locul marcajelor; alături, o mașină mare care afișează un creier stă deconectată, cu ștecherul atârnând.
Regulile și dicționarele fac treaba: niciun model de limbaj de apelat.

Încercați pe pagină, apoi trimiteți un mesaj către Contee.

Pagina răspunde cu același motor ca API-ul: lipiți un text tipic din fluxurile dumneavoastră. Securitatea imaginii se verifică control cu control pe pagina CISO. Pentru API-ul găzduit sau pentru oferta pe propriile servere, trimiteți un mesaj către Contee.