Browser extension
Provision, install, test, and roll out Orthalon browser protection for supported AI websites.
Plan requirement: Monitor discovers and evaluates without enforcement. Protect, Business, and Enterprise can apply active decisions.
The extension detects sensitive prompt text and small readable file contents locally before a supported AI website sends them. Business and Enterprise can hold supported PDF, Office, spreadsheet, ZIP, and larger readable files while a private short-lived analysis job extracts and checks their content. It can distinguish a known corporate account from a personal or unknown account when the site exposes enough account context, then discover, redact, coach, request approval, or block according to the current policy bundle.
Install the pilot extension
Until the Chrome Web Store listing is available, approved pilot users can load the packaged Orthalon extension directly. This installation method is for desktop Chrome and does not update automatically. A managed work or school browser may prevent Developer Mode; contact your browser administrator if the controls below are unavailable.
- Download Orthalon Browser Sensor 1.0.1. Download the SHA-256 checksum if your organization verifies software downloads.
- Extract the ZIP into a permanent folder such as
Orthalon Browser Sensor. Do not select the ZIP in Chrome, and do not delete or move the extracted folder while the extension is installed. - Enter
chrome://extensionsin Chrome's address bar. - Turn on Developer mode, then select Load unpacked.
- Select the extracted folder that contains
manifest.json. - Open Chrome's Extensions menu, pin Orthalon AI Security Sensor, and open its popup.
- In Orthalon, open Operations → Sensors & keys, provision a Browser extension key for this user and browser profile, then copy the one-time key into the popup and select Connect browser.
- Confirm the popup displays Protection active, matching Applied policy and Latest policy versions, and a recent synchronization time.
The pilot package contains compiled extension code and the public Orthalon ingest address. It does not contain an Ably API key, sensor key, database credential, private key, environment file, or source map. The browser sensor key is added after installation, is scoped to the browser environment and assigned member, and remains in extension-only storage on that browser.
For updates, download the new version, replace the files inside the existing
extracted folder without changing that folder's path, then select Reload on
chrome://extensions. Keeping the path stable preserves the unpacked extension
identity. When the Chrome Web Store edition becomes available, remove the
unpacked pilot after installing and enrolling the store edition so both copies
do not inspect the same submission.
Provision the pilot
- Open Operations → Sensors & keys.
- Select Provision sensor, choose Browser extension, keep the 90-day lifetime for the pilot, assign the member whose browser profile will use it, give it a recognizable label, and copy the raw key.
- For a local test, open the extension popup and enter only the raw key. The
extension already contains the service address from Orthalon's build
environment. For production, set
sensorKeyand optionallygenericAdapterEnabledthrough Chrome/Edge managed extension policy. - Install the packaged pilot build above, or use your managed Chrome/Edge deployment. A Firefox package is available for pilot testing; validate it against your managed Firefox version before broad rollout.
- Open the extension popup and confirm enrollment and policy sync.
Orthalon sends a version hint to connected browser sensors after an administrator changes policy, content analysis, custom detectors, or app sanction state. The extension then downloads and validates the new policy from ingest. A five-minute conditional check recovers updates missed while the browser, network, or notification service was unavailable. Users do not need a manual refresh control.
The popup follows the browser language on first use and supports English, German, French, Spanish, Italian, and Polish. Use the translation icon beside the status to choose another language; Orthalon saves that preference locally and applies it to setup, errors, detector explanations, and protection actions.
Treat the sensor key as a user-and-browser credential. It carries the assigned member identity, organization, browser scope, and expiry. Use a separate key per managed member/profile or another documented accountability unit. A shared key attributes every event to the same member. Do not embed a raw key in public documentation, extension source, or a website. Revoke it when the profile is retired.
Chrome's extension service-worker inspector can display the Authorization
header used by the extension. This is expected: a device owner or administrator
can inspect software and credentials running on that device. Orthalon limits
the impact with environment-scoped, assigned, expiring, and revocable keys;
the extension also prevents browser cookies and referrer data from accompanying
sensor requests. Do not share Network-panel exports or screenshots containing
request headers. If a key is exposed, revoke it and provision a replacement.
Production configuration
During the review period, approved users can install the versioned pilot package above. General distribution uses the signed Orthalon extension from its Chrome Web Store listing or force-install enterprise policy. Users do not receive the source repository and do not run or configure Orthalon ingest. Orthalon builds the HTTPS service address into each package. The customer administrator supplies the generated enrollment configuration from Sensors & keys to the extension policy for the published extension ID.
The copied JSON contains the policy values the extension reads:
{
"sensorKey": "sk_orthalon_replace-with-browser-scoped-key",
"organizationId": "organization-id-from-enrollment",
"genericAdapterEnabled": false
}Your browser-management product may wrap or transport those values differently.
Use its extension-policy workflow and the published Orthalon extension ID; do
not add a generic Value wrapper unless that product explicitly requires one.
Chrome requires a developer-declared managed-storage schema and validates
enterprise policy against it. Orthalon includes this schema in the packaged
extension. Confirm the values are visible at chrome://policy, then open the
popup and require Protection active, a numeric policy version, and a recent sync
before broad deployment. The organization ID pins downloaded bundles to the
enrolled tenant. The app-generated JSON contains the three values above.
Administrators may add managedAccountType (PERSONAL or CORPORATE) and a
normalized managedAccountDomain when browser management can assert that
context for the whole profile. Never use a complete email. Page scripts cannot
read the key because Orthalon limits extension storage to trusted extension
contexts. Chrome documents managed storage in its
extension storage reference
and limits normal distribution to the
Chrome Web Store or managed distribution.
Validate the extension
- Visit a supported AI application.
- Enter harmless text and confirm no protection message appears.
- Enter invented detector test data while the policy is in Monitor mode.
- Confirm a metadata-only event appears in Violations and the AI application appears in AI app discovery.
- On Protect or higher, activate one pilot policy and test coaching or redaction.
- Confirm a hard block cannot be bypassed by an ordinary form submission. Change the policy in Orthalon and confirm the popup receives the new numeric version without user action.
- Test Require approval. Orthalon must hold the draft and create a raw-content-free request carrying a nonce-randomized opaque binding digest. An Ably decision notification should trigger one authoritative status read; a bounded fallback read covers missed notifications. The extension must verify that the composer still matches the held state, consume one approved use with the same binding, and only then submit or restore an approved paste. Editing the draft after the request must stop release.
- Attach a small synthetic
.txt,.csv,.json, source-code, configuration, or log file and confirm its text follows the same policy. These readable files are inspected locally. - On Business or Enterprise, configure Controls → Content analysis and
test
.pdf,.docx,.pptx,.xlsx, and.zip, plus larger supported text files. Orthalon uses a private, short-lived upload for formats that require server extraction and supports a maximum configured size of 500 MB per file. - Add your company domain under Internal email domains to ignore. Confirm
employee@yourcompany.exampleis ignored whileperson@external.examplestill matches the email detector. - Configure protected IPv4/CIDR ranges and at least one synthetic company-specific identifier pattern. Confirm only in-range addresses and matching internal identifiers trigger their policy.
- If an adapter can identify account context, test a corporate and personal account separately. Treat Unknown as its own policy value; do not assume that it means corporate.
Managed rollout
For Chrome, Edge, and validated Firefox deployments, distribute the extension with browser management or MDM and provide its managed configuration. Start with an optional pilot, then force-install after false-positive review. Keep the browser-scoped sensor credential in the managed profile and rotate it before its displayed expiration date. No Orthalon service URL is requested from the employee or customer administrator. Do not enroll a profile unless the popup shows Protection active; a browser with no valid current or cached bundle has no active enforcement contract.
Browser coverage boundary
Current first-class rollout targets are Chrome and Edge; Firefox is packaged
for managed pilot acceptance. The Safari conversion helper creates an Xcode
project from the same extension, but Apple signing, notarization, managed-device
installation, and adapter acceptance remain release gates. Mobile apps,
personal devices outside management, unsupported page editors, and traffic from
native applications require another coverage layer. Business and Enterprise
file analysis supports PDF, Word (.docx), PowerPoint (.pptx), Excel
(.xlsx), ZIP, CSV, structured data, logs, Markdown, and
plain text up to the configured 500 MB limit. Images, audio, video,
encrypted/password-protected archives, macro-only content, embedded binary
objects, and unsupported nested formats are not claimed as scanned. The generic
page adapter is opt-in because broad DOM interception can create false
positives.
The package declares broad HTTPS host access so an opted-in generic adapter can
register on newly discovered sites and so the service worker can upload to a
private presigned R2 address. Static content scripts run only on the named AI
sites above. With genericAdapterEnabled: false, the service worker must not
register the generic all-HTTPS content script.
Remote analysis caps one browser sensor at 10 pending files or 1 GiB and one organization at 50 pending files or 5 GiB. It rejects mismatched MIME/file identity or completion-time R2 object version, unsafe, duplicate, symlinked, or encrypted ZIP entries, executable/nested archive payloads, Office active or embedded content, active/embedded PDF actions, more than 5,000 entries, more than 1 GiB expanded archive data, excessive compression, malware findings, required-scanner failure, parser timeout, and PDF page overflow. When an applicable active non-ALLOW rule exists, a configured supported-file failure blocks the upload. Monitor mode records the failed analysis without enforcing it. Orthalon deletes the private object and temporary extraction directory after success or failure; the operator also configures a one-day R2 lifecycle backstop. R2 is a private short-lived quarantine bucket: Orthalon never serves or executes its objects, and production analysis uses a private ClamAV-compatible scanner before parsing.
File approval binds the request to the selected bytes. The browser hashes local files in memory. Remote analysis returns an unguessable per-job binding randomized before the file bytes are hashed, not a reusable file hash. The browser combines all selected files into one local fingerprint. It creates a randomized 64-hex binding from a fresh nonce and that local fingerprint. Approval creation and consumption carry the same opaque binding. Raw file content, the nonce, and deterministic file fingerprints are not sent to the approval endpoint. The extension retains the original immutable file references, rejects replacement or reordering, and recomputes the complete selection fingerprint before consumption. Ingest requires the original opaque binding before it consumes the grant.
Choose your protected environments
Understand where Orthalon observes, enforces, and discovers AI use across browsers, desktop applications, APIs, networks, and MCP clients.
Desktop protection
Protect compatible native AI clients and IDEs with Orthalon's local endpoint proxy on macOS, Windows, and Linux.