Security & privacy

Inspection on the Device, by Design

Proctored decrypts AI traffic where it starts, on the device, under a certificate authority that belongs to that device alone. This page says what it touches, what it keeps, and what it sends home.

Only AI hosts are routedRedacted events by defaultReleases signed and verified
One event, as the console receives itprompt capture: redacted
{ "app": "chatgpt", "host": "chatgpt.com", "user": "nurse1", "device": "CLINIC-WS-01", "channel": "prompt", "action": "block", "rule": "Block card numbers", "findings": [{ "detector": "fin.credit_card", "count": 1, "severity": "critical" }], "snippet": "…charge [REDACTED:fin.credit_card] and send the receipt…" } // never present: the full prompt, the file, headers, cookies, tokens
What is routed

Only What You Govern. Everything Else Goes Direct.

What goes through the agent is decided by the client's policy, visible in the console, and by nothing else.

The Policy Is the Only List

The agent routes the AI services in the client's policy through its inspection, and nothing else. The list is visible in the console and changes only when the client changes it. Banking, email, the intranet and every other site are never seen.

  • AI services in the client's catalog, by domain, and products on shared domains by client signature.
  • Web channels (webmail, file sharing, collaboration) only when a client opts a category in for data protection.
  • Remote MCP servers only after a client has approved or blocked them.
  • Private apps published through zero-trust access are relayed as-is and never decrypted.
  • Apps that pin certificates are not decrypted; the console shows them as "seen, not inspected" rather than pretending.
What is read, what is kept

The Request Is Inspected in Memory on the Device, Then Forgotten

Sent to the Console

  • The app, host, user, device and channel
  • The data types found and their counts, the rule, the decision
  • A redacted excerpt around each finding, if the client allows one
  • For files: name, size, type and a SHA-256, never the file
  • For MCP tool calls: the server, method and tool name
  • Hourly usage counts per app, no content

Never Sent

  • The full prompt or the file, unless a client turns on full capture deliberately
  • Cookies, bearer tokens, API keys, request headers
  • The device CA's private key
  • MCP environment variables or headers; secret-looking arguments are masked on the device
  • Exact-match list values: hashed with a per-list salt before upload
  • Anything from hosts that are not governed

Prompt Capture, per Client

None: findings and counts only. Redacted (default): a short excerpt with every finding replaced by its detector name; the console re-redacts as defence in depth. Full: a deliberate choice, visible in the client's settings and the audit log.

Exception requests carry the data types found and the employee's reason, never the content.

The agent

Built to Be Trusted on the Endpoint

A Device-Unique CA

Each device generates its own certificate authority at install. The private key is stored on that device, never sent anywhere, and used only for the governed hosts. There is no shared root to steal and no central point that can decrypt a device's traffic.

Tamper Resistance

A protected system service owns the enforcement on every platform; a standard user cannot stop it, reconfigure it or remove it. Any attempt shows as "enforcement degraded" in the console within minutes, and in your RMM probe.

Signed, Verified Releases

Agents and installers are signed, and macOS builds are notarized by Apple. Every release is cryptographically signed with a key that never leaves the build environment; devices verify the signature before installing an update and never accept a downgrade, so a compromised download path cannot push a binary.

Minimal Surface

One small, self-contained agent, about 20 MB of memory. No kernel driver, no browser extension, no third-party runtime, and nothing reachable from the network.

Grants Bound to a Device

Exception approvals are cryptographically bound to the one device that asked and re-validated by the console on every use. A claim from another device, or after expiry, is refused and raised as an alert.

Fail Open or Closed, Your Call

Per client: if inspection fails, allow and log, or block until healthy. Files nothing can be read from (password-protected, scanned, archives) can be held. OCR of images runs with the device's own engine; images never leave the device for reading.

The console

Scoped, Audited, Verifiable

WhatWhere it livesWho can see itHow long
Events and alertsfindings, counts, redacted excerptsThe client's tenant, inside its service provider'sThat client's admins and viewers; its service provider; the platformPer-client retention, 7 days to 10 years, purged automatically
Exception requestsreason, duration, decision, usesThe client's tenantAs aboveClosed requests purged with the retention window
Exact-match listscustomer identifiersHashed with a per-list salt at uploadNobody; raw values are never stored or sent to devicesUntil the list is deleted
Report snapshotsthe monthly report, frozenThe client's tenant, with a SHA-256 digestAs eventsKept; immutable
Audit logevery console and agent actionHash-chained; verifiable in the consoleService providers and the platform, scoped to their tierKept
API keysSIEM and compliance toolingHashed; read-only, cursor-paged, per client or all clientsWhoever holds the key, within its scopeUntil revoked
Reporting a vulnerability

We Want to Hear It

If you find a security issue in the agent or the console, tell us through the contact form with "security" in the message. A person reads it within one business day, and we will tell you what we did about it. We ask only that you give us a reasonable time to fix before publishing.

Security reviewers at prospective partners are welcome to ask for the protocol documents and a walkthrough of the agent on a test device.

Ask a Security Question

Questions security reviewers ask

Straight Answers

Can Proctored, or the MSP, read employees' private browsing?

No. Only the governed hosts in the policy are routed through the agent; banking, personal email and every other site go direct and are never seen. What the console receives for governed traffic is the event shown at the top of this page, redacted unless a client deliberately turns on full capture, which is itself audited.

Does the console ever hold a device's private key?

No. Each device generates and keeps its own CA key. The console sees the device's enrolment token hash, its events and its heartbeat, never key material. Compromising the console does not let anyone decrypt a device's traffic.

What does the agent send home, and how often?

A heartbeat every few minutes with version, hostname, OS, proxy health, the installed AI apps and MCP servers it found (secrets masked), hourly usage counts, the signed-in account per AI app (address and work/personal), and the last requests it inspected as a trace (host, path, action, findings; no content). Plus events as they happen. All over TLS to the console, authenticated by a per-device token.

What about apps that pin their certificates?

They cannot be decrypted by any on-device proxy, including ours. The catalog marks them, and the console's coverage column shows them as "seen, not inspected" so nobody believes a control exists where it doesn't.

Can a compromised console push a malicious agent update?

No. Updates are accepted only when the release checksums carry a valid signature from the release key, which is embedded in the agent and never on the console. Each device also refuses to install below the highest version it has ever run.

Where is the console hosted and can we run it ourselves?

Proctored hosts the console for partners. It can also run on infrastructure you control; ask us for the hosting guide.