Tessera for Windows
ACP-240 · STANAG 4774 · STANAG 4778 · ADatP-5636 — file-level encryption with ABAC policy embedded and cryptographically bound, enforced in real time at the moment of decryption against the requester's clearance attributes.
Traditional network-perimeter security works well when all sensitive work happens inside a controlled boundary. In practice, that boundary is constantly crossed: files are shared with coalition partners, archived on removable media, sent by email, or moved to systems outside the organisation's direct control.
When a file leaves the perimeter, it leaves behind the access controls that were protecting it. At that point there is nothing stopping an unauthorised recipient from reading it — or an authorised one from forwarding it further.
.ztdf archive can only be decrypted by a Key Access Service that
has evaluated the requester's attributes against the embedded access policy.
The policy enforces itself regardless of where the file travels.
Three phases, standards-defined at every step.
The file is encrypted with AES-256-GCM. A unique Data Encryption Key (DEK) is generated per file, then wrapped for the Key Access Service using RSA-OAEP-SHA256 (elliptic-curve KAS keys are also supported). The ABAC access policy — classification level and releasability attributes from the STANAG 4774 label — is bound to the DEK with an HMAC and stored in the manifest. The STANAG 4778 Binding Data Object ties the label to the content with a digital signature: XML-DSIG for documents, files and sidecars, CMS SignedData for the SMTP/MIME profile.
The result is a .ztdf archive — a ZIP container holding the
encrypted payload, the manifest (policy + wrapped DEK), and the STANAG 4774
Confidentiality Label with its ADatP-5636 Object Classification Label (OCL). The archive is
completely self-describing. It can be stored, forwarded, archived, or
transferred to any other system — the access policy travels with it and
cannot be stripped without invalidating the signature.
When a user attempts to open the file, the local Tessera agent sends a rewrap request to the Key Access Service, carrying the user's identity token and a DPoP proof (RFC 9449) that binds that token to the requesting client. The KAS verifies the policy binding, evaluates the embedded ABAC policy against the requester's clearance attributes, and either releases the DEK or returns a denial. Decrypted content is served from memory through a virtual drive, so the working copy the user edits never exists as a plaintext file on the local disk.
Tessera for Windows is a layered system. The Windows-side components handle the user experience and local operations. The backend components handle identity, policy, and key management.
The local agent runs in the user's own session as a tray application and exposes a loopback API, authenticated with a per-session HMAC. Office add-ins, the Notepad++ plugin, the Explorer integration and both virtual drives communicate exclusively with that agent — they never contact the KAS or the management service directly. This means the backend can be deployed in an isolated network segment without exposing it to the desktop.
The Key Access Service holds no content: only its own key material — optionally in an HSM over PKCS#11 — and the policy distributed to it. No plaintext is ever stored or logged. The management service holds audit records, the SPIF catalogue and KAS configuration, but never holds decryption keys.
VSTO add-ins for Word, Excel, PowerPoint, and Outlook. Integrate classification label selection, document protection, and label-aware send enforcement into the native Office ribbon. Outlook enforces that emails carry a valid label before sending.
Context-menu entries for Protect with Tessera and Open Tessera File
on any file type, a padlock overlay on protected files, and Explorer columns
showing the classification. Enables .ztdf encryption and transparent
decryption without leaving the Windows shell.
A native plugin that classifies and protects plain-text and source files, and shows the confidentiality marking as a banner above the editor — the same label pipeline as the Office add-ins, for the editor developers actually use.
S: mirrors the local disk with transparent decryption: a
.ztdf appears as its plaintext form, and anything saved there is
encrypted on close. N: is a Windows Cloud Files sync root
backed by the federated storage service, so protected objects replicated
between sites appear as ordinary files.
A tray application running in the user's own session — not a Windows service — that orchestrates all local operations: encryption, decryption, label construction, signature verification, KAS communication, and the SPIF-driven attribute URI mapping. The single point of contact for every Windows-side component, reached over a loopback API whose requests are signed with a per-session HMAC.
A filesystem minifilter that confines an edit session: write-intent opens outside the session directory are refused, and closing the file signals the agent to re-seal it. It is what stops an application quietly writing an unprotected copy somewhere else.
Server-side service implementing the ACP-240 KAS role. Holds the KAS private key — RSA or elliptic-curve, optionally in an HSM — evaluates ABAC policies through Open Policy Agent, and releases Data Encryption Keys only after positive policy evaluation. Runs as a fleet across sites, with domain-scoped ABAC and brokering between domains so a compartmented document is released only when every domain that owns a fragment agrees.
Web application providing operator access to KAS configuration, user management, domain and SPIF administration, policy review, audit log, and PKI certificate management. Secured with OIDC.
OIDC identity provider issuing ADatP-5663 subject claims: the holder's clearance as a structured ADatP-4774 clearance object, Community-of-Interest membership and citizenship. The KAS validates these on every key-release request. Partner identity providers are brokered, so a coalition user authenticates at home and is still evaluated against the local policy.
The .ztdf archive format and key-access protocol.
XML Confidentiality Label schema; classification level and categories.
XML-DSIG label-to-content binding, CMS SignedData for email; ADatP-4778.2 profiles for OOXML/OPC, XMP, SMTP and detached sidecars.
JSON OCL record; portioning marking strings, document-level and portion-level marks.
SPIF parsing for policy-driven attribute URI mapping and ABAC.
JCS-canonical form for deterministic HMAC computation over manifest.
Proof-of-possession binding every key request to the client's own key.
Subject claims for clearance, COI membership and citizenship.
Classifications are not hard-coded. Everything the user is offered — the levels, their order, and the categories that may qualify them — is read from the domain's XMLSPIF, so the desktop speaks exactly the vocabulary the policy authority published. The screenshots below use TESSERA, a fictional demonstration policy we publish for testing, so that nothing shown here is a real classification marking.
.docx, in a custom XML part, so the marking
survives a copy, a rename and a mail hop — and appears in whichever application
opens the file next, not just the one that applied it.
Binding-Data header
the receiving client reads the same way.
The banner says Unsigned deliberately, and it
is telling the truth: ADatP‑4778.2 §3.5 makes that header plain
label XML, with the cryptographic binding carried in the signed MIME envelope
around the message rather than in the header. A client that showed a green tick
here would be vouching for something it has not checked.
Office, Notepad++, the Explorer columns and the virtual drives all read the same binding through the same pipeline — one policy, read once, applied everywhere.
Standards implemented in Tessera for Windows
ACP-240 STANAG 4774 STANAG 4778 ADatP-5636 ADatP-5663 XMLSPIF v2.1/v3.0 RFC 8785 JCS RFC 9449 DPoP RFC 5652 CMS