Self-hosted data protection for AI · multilingual DLP layer for LLM traffic

The model does the work. It never learns who it was about.

Salus replaces names, ID numbers and account details with consistent tokens before a prompt leaves your network, then puts the real values back in the answer. Your teams keep the AI tools they already use. The provider only ever receives tokens.

31 detection classes9 semantic categories7 in-house modelsmultilingualPDF / Office / imagesOpenShiftSIEM eventsfails closed

AI assistant · protected by Salus · synthetic dataSupport ticket
complaint-march.pdfPDF · 1 page

Müşteri Ayşe Demir (TCKN 12345678901) mart faturasına itiraz ediyor…

Protected before it left your network
Ayşe Demir→[PERSON_81af3c]TR12 3456 …→[IBAN_c412e8]+2 more
Müşteriye yanıt taslağı hazırla.
Assistant · restored inside your network
Sayın Ayşe Demir, ABN-4471822 numaralı aboneliğinizin mart faturası incelenmiştir. 184,50 TL iade 5 iş günü içinde hesabınıza yapılacaktır.

Self-hosted

Runs in your datacentre or private cloud. Salus the company holds no copy of your data or your keys.

Multilingual

Seven language models we trained ourselves, working across languages, with checksum validators for national identifiers such as TCKN, VKN and IBAN.

Any provider

OpenAI, Anthropic, Google, Mistral or your own model. You keep your contract and your credentials.

Two-way

Answers come back with the real values restored, for the people authorised to see them.

The boundary

Only tokens cross.

Names and numbers never leave. What reaches the model is a typed token; what comes back is restored on your side.

Ayşe Demir12345678901TR12 3456 7890 1234Mehmet Kaya+90 532 000 00 01[PERSON_81af3c][TCKN_5f7d2e][IBAN_c412e8][PERSON_3e77c0][MSISDN_2d9e1a]ChatGPT

Names and identifiers on the left become typed tokens as they cross the boundary; the answer comes back and the tokens become names again, inside your network.

Inside your networkYour AI providers

Why tokens

Blocking stops the work. Redaction ruins the answer.

Most tools that protect AI traffic either refuse the prompt or black out the sensitive parts. Both keep the data safe. Neither leaves your colleague with an answer they can use, so people go around them.

“Maria Sandoval missed three payments. Her guarantor Erik Lindqvist missed none. Draft a reminder letter to the right person.”

Block · traditional DLP policy

Block

The model receives: nothing. The prompt is stopped.

Your colleague gets: “This request violates company policy.”

Safe, and the work moves to a personal account.

Redact · one-way masking (AI security gateways)

Redact

The model receives: “▮▮▮ missed three payments. Her guarantor ▮▮▮ missed none.”

Your colleague gets: “Dear ▮▮▮, our records show three missed payments.”

No name, and no way to tell which of the two it is for. Safe, and the answer has to be rebuilt by hand.

Tokenise · Salus

Tokenise

The model receives: “[PERSON_81af3c] missed three payments. Her guarantor [PERSON_5b90da] missed none.”

Your colleague gets: “Dear Maria Sandoval, our records show three missed payments.”

Addressed to the right person, ready to send. Safe, and the answer is usable as it arrives.

Product and proof

What ships today, counted.

Six things you can install, inspect and measure. Each one is in the current release.

31classes

Detection engine

Format rules with checksums (TCKN, VKN, IBAN mod-97, Luhn, IMSI, ICCID, IMEI) and seven in-house language models, each with one job, under fixed versions: the same input always gives the same result. A semantic layer adds nine categories of stated disclosure. CPU only.

  • checksums
  • 7 models
  • verifier
  • semantic layer
  • deterministic
7models

Language models, trained in-house

Seven purpose-built models, trained by us on our own data, each with one job: finding entities, verifying every candidate in context, reading pages and images, screening and locating stated disclosures. Multilingual, with no provider in the loop.

  • entity models
  • verifier
  • vision
  • semantic pair
  • multilingual
6formats

Documents and images

Protected in place, structure preserved. Scanned pages and photos are read on your servers; signatures, identity documents and faces are blocked outright. Files that cannot be read are refused, never passed through.

  • PDF
  • DOCX
  • XLSX
  • PPTX
  • PNG / JPG
  • scanned pages
1token per person

Context store

Per-case opaque tokens. The same person keeps the same token across a conversation, batch or case. Optional format-preserving mode.

  • case-scoped
  • opaque
  • format-preserving
6images

Enterprise delivery

Private OCI Helm chart for OpenShift 4.x, signed release manifest, CycloneDX software bill of materials.

  • Helm
  • OpenShift 4.x
  • signed manifest
  • SBOM
ECSevents

Evidence

Security events with stable codes to your SIEM, a PostgreSQL audit store, OpenMetrics, and reviewer feedback on every decision.

  • SIEM
  • audit store
  • OpenMetrics
  • reviewer feedback

Every item above is in the current release.

How it works

Four steps. One of them leaves your network, and it carries tokens.

Inside01

Detect

Language models, format validators and a vision model running on your own servers find the sensitive values in text, documents and images.

Inside02

Tokenise

Each value becomes a typed token such as [PERSON_81af3c]. The same person keeps the same token for the whole case, so the model can still follow who did what.

Outside03

Your AI call

Your application calls its own provider with its own credentials. Salus does not call the model for you. Only tokens cross the boundary.

Inside04

Restore

When the answer returns, Salus puts the real values back inside your network, for users who are authorised to see them.

What it detects

31classes

Grouped by what a reviewer would ask about.

Text, PDF, Office documents and images. Classes are configured per deployment and measured per class on your own data before go-live. Signatures, identity documents and faces are blocked rather than tokenised. The semantic layer masks stated disclosures about a person in nine categories, on top of the core result.

Full detection dictionary

Identity and organisation6

  • Person name
  • Organisation
  • TCKN11 digits, two-step checksum
  • Passport number
  • Date of birth
  • Vehicle plateTurkish plate grammar

Contact and location7

  • Phone number (MSISDN)Numbering-plan check, E.164 and national formats
  • E-mail address
  • Postal address
  • Location
  • Coordinates
  • Identifying URL
  • IP addressIPv4 and IPv6 syntax

Financial and government identifiers5

  • IBANCountry length and structure, mod-97 check
  • Payment card numberLuhn check, 13 to 19 digits
  • Tax number (VKN)10 digits, checksum
  • Bank account number
  • Customer or subscriber number

Telecom and device3

  • IMSI15 digits, MCC and MNC structure
  • ICCID19 or 20 digits, Luhn check
  • IMEI15 digits, Luhn check

Credentials, international and sector identifiers7

  • Foreign identity, tax and social-security numbers
  • Driving licence numbers
  • MAC addresses
  • Credentials
  • Domestic banking formats
  • Healthcare identifiers
  • Crypto-asset addresses

Signatures, identity documents and faces3

  • Handwritten signatures
  • Identity documents
  • Faces

Customer-defined1

  • Your own identifiers

Semantic layer 9

Optional and complementary. Masks a stated disclosure about an identifiable person; generic statements pass unchanged. It only adds protection; it never removes or re-types what the core found.

  • Health
  • Religion or belief
  • Sexual life
  • Age or gender
  • Nationality or citizenship
  • Marital or family information
  • Employer or occupation
  • Salary or financial circumstances
  • Location in free text
9 · Full detection dictionary

Where it fits

Two ways to put Salus in the path.

Integrate it into the applications you build, or deploy it around the ones you don't control. Both run on the same engine, with the same tokens and the same rules.

In the applications you build

Call Salus from your code, your AI gateway or your batch jobs: protect before the provider call, restore after it. If protection cannot complete, the request stops and nothing is sent.

  • In-house assistants and copilots
  • The AI gateway you already run
  • Analytics and batch jobs over customer data
  • Agents and automated pipelines

Around the applications you don't control

For the AI tools your teams use directly, Salus is deployed on managed endpoints and protects what is typed or attached, without changing the application.

  • Browser-based AI services
  • Desktop AI applications
  • Documents and attachments
  • Optional human review before anything is sent

Security and compliance

Reviewed like any other system inside your perimeter.

Because that is where all of it lives. Controls are named and numbered, frameworks are mapped, and nothing is claimed as certified.

Controls

  • Named control catalogue, SC-01 onward
  • One decision record per request
  • Stable reason codes

Published with the datasheet.

Frameworks · mapped

  • OWASP Top 10 for LLMs
  • NIST AI RMF
  • ISO 27001 Annex A
  • KVKK
  • BTK traffic data categories

Mapped, with evidence aligned. Not certified.

Deployment

  • On-premises
  • Private cloud
  • Isolated network with a mirrored registry

Containers, CPU, PostgreSQL state.

Data

  • No Salus-side copy
  • No keys leave your environment
  • No telemetry home

Nothing on our side to breach or subpoena.

Control

You run it. You hold the keys.

Runs where you decide

On-premises, private cloud or an isolated environment. Ships as containers, runs on CPU, keeps its state in your own PostgreSQL.

No Salus-side copy

Detection, tokenisation and the mapping back to real values all stay in your environment.

Fails closed

If detection or tokenisation cannot complete, the request is stopped. Nothing goes out unprotected because a step was skipped.

Audit without the data

Every protect and restore is logged for your SIEM. The logs record what happened without reprinting the values you were protecting.

Administration and operations

Operate it like any other system in your perimeter.

A console your administrators sign into with their directory accounts, policies per calling system, a tamper-evident audit trail, metrics your monitoring already scrapes. Nothing new to learn.

Administration console

Web console in English and Turkish. Detection classes on and off, custom rules by keyword or pattern, API keys per calling system, review screen with CSV export.

Your directory, your roles

Administrators authenticate against Active Directory or LDAP; rights follow group membership. Three roles: administrator, rules editor, reviewer. No local privileged accounts, no shared logins. Single sign-on on request.

Policy per calling system

Each caller gets its own key and its own policy: tokenise, suppress, allow or block, per class. Deterministic, versioned, and rolled back with the release.

Tamper-evident audit trail

Write-only: every detection, restoration, configuration change, key rotation and login attempt, with hashes instead of content. Exported as JSON lines with a CEF mapping to your SIEM.

Monitoring you already have

OpenMetrics on every service: request rate, p50 and p95 latency, error rate, detector availability. A Grafana dashboard and a default alert set ship with the release.

Sized for a CPU node

Reference production node: 16 cores, 32 GB RAM, no GPU. Stateless services with replicas for availability; a disaster-recovery instance is covered by the licence.

Models and rules are versioned artefacts pinned to each release. A release is either active or rolled back; nothing retrains silently.

Company

It started with a problem we kept seeing.

AI note takers in every meeting, client files pasted into chat assistants, and organisations that could not adopt any of it because of what the data contained.

An engineer and a lawyer, we saw the same picture from both sides. Teams were already using the best models on real work with no protection at all, because every “safe” alternative was too weak to be worth using. Regulated organisations either looked away or stayed out. Salus was built to remove that choice: the best models available, working on real files, without ever learning who the files are about.

The same problem exists wherever data is sensitive and regulated: banks, telecom operators, insurers, law firms. Salus is built for them, in every language their teams work in. In test with large regulated organisations in Türkiye.

What the team brings
  • Language model training and evaluation
  • Rust systems and enterprise platforms
  • Telecom and banking delivery
  • KVKK, contracts and compliance
  • Regulated-sector operations

Meet the founders

Emir Tarık Yıldırım

Emir Tarık Yıldırım

Co-founder, CEO

Software engineer since 2015 and the architect of the detection stack: trains and evaluates the models, owns the benchmarks and the release gates. Previously built AI agent products at Fundamental Research Labs, a San Francisco AI company. Founded Paramosoft in 2020, consulting on cybersecurity and fraud compliance for a participation bank’s digital channels.

Şahin Gülci

Şahin Gülci

Co-founder, CTO

Fifteen years building and running enterprise platforms. Wrote the Rust services behind detection, verification, redaction and restore. Before Salus: CRM modernisation and e-SIM provisioning at a national mobile operator, CPaaS microservices at Netaş, technical lead of a video-marketing SaaS. M.Sc. Computer Science.

S. Hakan Yıldırım

S. Hakan Yıldırım

Co-founder, COO

Attorney at law, Istanbul Bar since 2014, founding partner of LP Legal since 2016. Saw the problem from inside a law practice, and now runs operations, legal and compliance: KVKK, contracts, the control catalogue.

Pilot

Start with one team, one workflow, your own data.

A focused pilot is the fastest way to see what Salus catches in your traffic, and what it hands to the model instead. Tell us the workflow and we will set it up with you.

[email protected]
Request received. We will be in touch at the e-mail you gave us. In the meantime, the resources above answer the questions security teams usually ask first.