Voor IT-afdelingen

Dezelfde bescherming, aangeroepen door uw programma’s – één stateless image om te draaien.

Voordat een workflow een document naar een AI, een vertaler of een leverancier stuurt, kan hij DoNotLeak de persoonsgegevens erin laten vinden en vervangen – via een API die een identiteit eist en die de engine van de pagina beantwoordt.

Nog een component om te hosten, te beveiligen, bij te werken en te monitoren? Dit is wat het vraagt: een ondertekende image, zonder database en zonder volume om te back-uppen, geconfigureerd via de omgeving, aangeroepen door geïdentificeerde machines. En, op verzoek, de broncode voor uw teams.

Alleen geïdentificeerde aanroepers · Niets wordt bewaard · Ondertekende images, amd64 en arm64

Panoramische lijntekening: een stapel documenten gaat een rij van drie identieke, onderling verbonden dozen in; de lijn loopt door naar een laptop met een document en een korte lijst, splitst zich naar een kantoorgebouw en een wolk en komt weer samen bij een tandwiel. Een stippellijn, nog niet verbonden, leidt naar een kleine robot in een gestreept kader.

De API uitproberen

Stuur een verzoek, lees het antwoord.

De echte engine, hier open als demo, zonder sleutel: het antwoord dat u leest, is het antwoord dat uw programma’s zullen krijgen.

  • 1 aanroep per 15 s per IP-adres
  • teksten tot 4 kB
  • er wordt niets bewaard
  • één netwerk deelt het ritme
De plafonds van de demo

Per adres — een IPv6-/64-netwerk telt als één: 100 aanroepen per dag, 300 per week, 600 per maand, 2.000 per jaar. Voor de hele demo: 600 aanroepen per minuut en één tekst tegelijk in analyse; daarboven antwoordt ze 503 en blijft de rest van de dienst onaangeroerd. Uw adres wordt alleen in het geheugen gehouden, zolang de aanroepen ervan worden geteld; de logs bewaren het werkwoord, de status, de groottes en de duur — nooit het adres, de tekst of het antwoord.

RateLimit-Policy · RateLimit · Retry-After

  • POSTscan
  • POSTprotectBinnenkort
  • POSTrestoreBinnenkort
  • GETcapabilitiesBinnenkort
  • POSTextractmet een sleutel
  • POSTrendermet een sleutel

Verzoek

POST/api/demo/scan

Vindt de persoonsgegevens — waar ze staan (in UTF-8-bytes), hun type, hun ernst — en geeft de beschermde tekst terug.

81 / 4096 bytes

Landen
Het verzonden JSON bekijken
{
  "text": "Damien Morel a validé le virement vers l'IBAN FR76 3000 6000 0112 3456 7890 189.",
  "scope": [
    "FR"
  ]
}

Klaar — 1 aanroep beschikbaar

Antwoord

Het antwoord verschijnt hier.

Uw programma’s roepen /api/v1/scan aan met hun identiteit — een clientcertificaat of een token: dat is de volgende sectie.

De API

Wat ze vandaag doet: vinden, dan vervangen.

Eén aanroep: JSON erin, de vondsten en de beschermde tekst eruit. De engine van de pagina zelf antwoordt.

  • Vinden

    Elk persoonsgegeven in de tekst, met zijn type, zijn positie en een betrouwbaarheidsscore. De formaten volgen de landen die u opgeeft.

    findings · counts · scope

  • Vervangen

    Hetzelfde antwoord bevat de beschermde tekst: elke waarde wordt een getypeerde, genummerde placeholder. Waarden die u als te behouden opgeeft, blijven zoals ze zijn.

    anonymized_text · replacements · kept

De aanroep

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
Met een token in plaats van een certificaat
-H "Authorization: Bearer $TOKEN"

Het antwoord – opgenomen uit de engine, regeleinden toegevoegd

{"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}
Weigeringen en de entiteitentabel

Weigeringen citeren nooit de inhoud: 400 leeg of geen JSON, 413 boven 1 MiB, 422 verdachte inhoud, 401 geen identiteit, 403 niet toegestaan, 429 budget overschreden.

De entiteitentabel geeft elke oorspronkelijke waarde terug aan de aanroeper die haar stuurde – daarmee wordt herstellen mogelijk. Alleen de beschermde tekst gaat door naar de AI.

Wat ze nog niet doet
  • Herstellen: de originelen terugzetten in het antwoord van de AI Binnenkort
  • Word-documenten via de API Binnenkort
  • Het gepubliceerde v1-contract: een OpenAPI-beschrijving, uniforme fouten, quota per aanroeper Binnenkort

Waar het past in uw workflows

Een controle vóór de externe aanroep.

Een workflow – een documentbeheersysteem, een CRM, een batch bestanden – roept DoNotLeak aan vlak voordat hij een AI of een partner aanroept. Alleen de beschermde tekst gaat verder.

U kiest waar de controle zit en wat er volgt: meteen versturen, of eerst een persoon de vondsten laten nakijken en de tekst opnieuw sturen met de waarden die de taak nodig heeft.

Lijntekening: documenten met oranje regels gaan op een lopende band door een scanpoort en dan onder een vergrootglas. Eén pad, afgevinkt, brengt een beschermde pagina naar een AI-chip; het andere, doorgestreept, legt de originelen opzij.
De controle zit vóór de grens – waar u besluit haar te plaatsen.

Machine-identiteit

Nooit anoniem: elke aanroep noemt zijn aanroeper.

De API heeft geen open deur. De server weigert te starten zolang hij niet weet hoe hij een aanroeper identificeert, en elke aanroep wordt beoordeeld volgens uw beleid.

  • Een clientcertificaat

    Wederzijdse TLS, door de server zelf afgehandeld: het certificaat moet teruggaan op de certificeringsinstantie die u vertrouwt, en zijn SPIFFE-ID – anders zijn DNS-naam, nooit zijn common name – wordt de aanroeper.

    TLS_CLIENT_CA · TLS_CLIENT_IDENTITY=san

  • Een token van uw identiteitsprovider

    De OpenID Connect-uitgever die u aanwijst – uw directory, uw SSO: handtekening, uitgever, doelgroep en vervaldatum van elk token worden gecontroleerd met de sleutels die hij publiceert, en zijn rollen komen mee.

    OIDC_ISSUER_URL · OIDC_CLIENT_ID · in de CI getest tegen Keycloak

  • Standaard geweigerd: een aanroeper zonder rol in uw beleidsbestand wordt afgewezen (403), en scannen is een recht op zich.
  • Geen statische API-sleutel die kan uitlekken: een aanroeper bewijst zich met een certificaat of een ondertekend token.

Hosting en soevereiniteit

Gehost door Contee, of binnen uw eigen informatiesysteem.

In beide gevallen dezelfde headless image.

  • Door Contee, in de EU

    Contee beheert de server, u roept hem aan. De openbare pagina draait al zo, bij OVH SAS, een Franse hostingprovider (zie de juridische kennisgeving).

    De gehoste API, onder een eigen dienstcontract Binnenkort

  • Binnen uw informatiesysteem

    De image draait op uw servers, achter uw PKI en uw identiteitsprovider: de teksten verlaten uw omgeving nooit. Op verzoek, met de broncode: het aanbod on-premises, hieronder.

Lijntekening: een vrouw plaatst een kubus met een schild in een cirkel rond een serverrek; een laptop stuurt er een document naartoe; er komt één pagina uit, en alleen een gestreepte pijl leidt naar een verre wolk.
Waar de controle draait, is uw architectuurkeuze.

Het aanbod on-premises

De broncode in uw handen, en uw eigen teams om hem verder te ontwikkelen.

Voor een organisatie die DoNotLeak binnen haar eigen informatiesysteem wil, zonder van Contee afhankelijk te zijn om het in leven te houden.

  • De broncode, geleverd

    Voor intern gebruik binnen uw organisatie: uw teams lezen hem, bouwen hem en rollen hem uit binnen uw omgeving.

  • Uw teams, opgeleid

    Om hem te onderhouden, te verbeteren en uit te breiden: de kennis wordt bij u opgebouwd, niet bij ons.

  • Zo min mogelijk lock-in

    De code en de knowhow blijven in huis; de server bereikt alleen wat u configureert, nooit een dienst van Contee.

  • Eenmalig, geen SaaS-abonnement

Nu beschikbaar, op verzoek, voor uw omgeving.

De headless image

Alleen de scankern – ondertekend, voor twee architecturen.

Geen pagina, geen cookie, geen browsercode: de API en de engine, verder niets.

  • De engine van de pagina

    De pagina en de API roepen dezelfde scanfunctie aan: wat een persoon op de pagina ziet, krijgt een programma ook.

    één kern · twee deuren

  • Klein, en standaard gesloten

    Een distroless basis – geen shell, geen pakketbeheerder – en een niet-root-gebruiker. Zonder identiteitsbron of met een halve TLS-configuratie start ze niet.

    poort 3000 · TLS en mTLS in de app, of achter uw proxy

  • Gebouwd en ondertekend zoals de webimage

    Dezelfde pipeline bouwt en scant haar en ondertekent haar daarna per digest met de eigen sleutel van DoNotLeak – de image, haar stuklijst en haar build-herkomst.

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

Beheer

Wat de image van uw beheer vraagt.

Eén container tussen de andere.

  • Stateless

    Geen database, geen volume om te back-uppen: elk verzoek wordt in het geheugen verwerkt en daarna vergeten. Niets om te herstellen.

    geen database · geen datavolume

  • Geconfigureerd via de omgeving

    Luisteradres, certificaten, client-CA, OIDC-uitgever, beleidsbestand, budgetten: variabelen, en bestanden die alleen-lezen zijn gemount. Met een halve configuratie start ze niet.

    LEPTOS_SITE_ADDR · TLS_CERT · TLS_CLIENT_CA · CASBIN_POLICY_FILE · SCAN_*

  • Gemonitord met uw tools

    Traces gaan via OpenTelemetry naar uw collector, anders naar de standaarduitvoer; de logs bevatten nooit een gescande tekst.

    OTEL_EXPORTER_OTLP_ENDPOINT

  • Bijgewerkt per digest

    Een release is een ondertekende image, aangeduid met haar digest: controleer de handtekening, wijzig de digest, herstart. Een certificaat dat verandert: nieuwe bestanden, dan een herstart.

    cosign verify · amd64 + arm64

Waar ze ook draait

Drie dingen die niet veranderen.

  • Niets wordt bewaard

    Elke tekst wordt geanalyseerd in het geheugen van het verzoek dat hem draagt, op de server, en verdwijnt daarmee: geen kopie, geen log van de inhoud.

    Elke pipeline stuurt een controletekst door de headless server en faalt zodra het log hem toont.

  • Niemand anders wordt aangeroepen

    De detectie steunt op formaten, regels en woordenboeken: geen taalmodel, geen dienst van derden. De server bereikt alleen wat u configureert – uw identiteitsprovider, uw telemetrie-collector.

  • Elke release verifieerbaar

    Elke image is per digest ondertekend, met haar stuklijst en haar herkomst; de pipeline controleert de handtekening voordat er iets wordt uitgeleverd.

Lijntekening: oranje gemarkeerde pagina’s gaan op een band door een kleine machine met tandwielen en een wijzerplaat en komen eruit met gestreepte vakjes in plaats van de markeringen; ernaast staat een grote machine met een brein op het scherm, losgekoppeld, de stekker hangend.
Regels en woordenboeken doen het werk: geen taalmodel om aan te roepen.

Probeer het op de pagina, en stuur Contee dan een bericht.

De pagina antwoordt met dezelfde engine als de API: plak er een typische tekst uit uw workflows in. De beveiliging van de image is maatregel voor maatregel te controleren op de CISO-pagina. Voor de gehoste API of het aanbod on-premises: stuur Contee een bericht.