Wardline
TürkçeSign inRequest a demo

SOLUTIONS · 02

Personal data is masked before it reaches the model.

When a call centre agent pastes a customer record to get a summary, the national ID number, IBAN and phone number go into the prompt too. Wardline detects those values with validators, sends placeholders to the model and puts the real values back when the answer returns to the user.

THE PROBLEM

A regular expression is not enough

Not every eleven-digit number is a Turkish national ID, and not every string starting with TR is an IBAN. A scanner that only checks the format either treats customer numbers as personal data and breaks the workflow, or misses a real value because of a formatting difference.

Secrets have the same problem. A configuration file pasted for debugging may hold a database connection string or a private key. Those are not masked and forwarded; policy stops the request.

MECHANISM
REQUESTtcknibanplaceholderSENT TO MODEL[[TCKN_1]][[IBAN_1]]MODEL REPLY[[IBAN_1]]restoreTO THE USER

HOW IT WORKS

Step by step

  1. Detection and validation

    Turkish national and tax ID numbers are checked against their check digits, IBANs with mod-97 and card numbers with Luhn. Phone numbers, email addresses, licence plates and passport numbers are recognised by format. An optional NER model finds names, addresses and dates of birth.

  2. Secret scanning

    More than twenty secret types are searched with dedicated detectors, including cloud provider keys, LLM API keys, JWTs, private keys and database connection strings.

  3. Masking

    When policy says MASK, the gateway swaps each value for a session-specific placeholder. The model sees “[[IBAN_1_…]]”, never the value. The placeholder carries an unguessable suffix.

  4. Incomplete masking check

    If masking cannot be completed, the request goes through policy a second time. That pass can only make the decision stricter, so data that could not be masked does not reach the model.

  5. Local models and residency

    Policy can route requests containing personal data to an in-house model. The tenant’s residency rule keeps only providers in allowed regions while personal data is present, and it applies even in observe mode.

  6. Restore

    On the way back, placeholders are replaced with the real values from the same session. The user reads the full answer; the model provider’s logs hold no personal data.

DECISIONS

Which decision you get, and when

DecisionWhenExample reason code
MASKValidated personal data: values are replaced with placeholders, the request reaches the model and the values are restored in the reply.PII.IBAN_TR
MASKPolicy routes requests with personal data to an in-house model: the masked request goes there and the ROUTED_LOCAL flag is set.ROUTE.LOCAL_PII
DENYA private key, cloud access key or connection string: the request does not reach the model.SECRET.PRIVATE_KEY
DENYPersonal data is present and the target provider is outside the tenant’s allowed regions: the request is refused.RESIDENCY.PII_BLOCKED

EXAMPLE

Summarising a record in the call centre

An agent pastes a customer note into the assistant to summarise a complaint. The note contains a national ID number and an IBAN, and both pass their checksums. Policy says MASK. The model summarises text with two placeholders in it, and the placeholders are swapped back on the way out. The evidence holds the message number, byte range and validation result, not the values.

Evidence record
DecisionMASK
Finding 1message 0 · bytes 120–131 · tckn · checksum valid
Finding 2message 0 · bytes 148–173 · iban · mod-97 valid
Maskstckn 1 · iban 1
Targetprovider in an allowed region
Reason codes
  • PII.TCKN
  • PII.IBAN_TR
  • POLICY.MASK_APPLIED
Flagsnone
Risk score0.99

CONFIGURATION

What administrators control

RELATED

Capabilities that work alongside

See it on your own traffic.

In a demo session we walk through this flow with examples your security team picks, in the console’s evidence viewer.

Request a demo