Security Whitepaper

Published: July 19, 2026

Open Headers is a browser development toolkit: a desktop app, browser extensions, a multi-user daemon, a CLI, and an MCP server. This document describes the security architecture those components share. It makes no claim that proprietary licensing is itself a security property; the guarantees below hold because of how the software is built, and each one is stated so it can be verified from the outside.

1. Principles

2. Network surface

The full outbound surface of the software is:

License refresh POST license.openheaders.io/refresh
whodesktop main process, daemon
payload{licenseKey, appVersion, platform} — nothing else
offno license / offline license / licenseRefresh: false
Update check GitHub releases repo
whopackaged desktop builds, oh CLI, ohd status
payloadplain GETs, no payload
offupdates.check: off / oh autoupdate off / OH_NO_UPDATE_CHECK
Severity manifest planned
whopackaged desktop builds
payloadplain GET of a static file
offsame as update check
Anonymous telemetry POST telemetry.openheaders.io/v1/events
whoextension, desktop app, CLI — never the daemon, served web app, or MCP server
payloadtyped event allowlist — closed unions only, no free-form strings
offSettings → General toggle / OH_TELEMETRY=0

Everything else leaving the process is operator-configured: your OIDC issuer, your Git remotes, your SIEM collector, and the HTTP requests your own rules, sources, and workflows define. The browser extension’s only OpenHeaders-bound call is the telemetry channel above. The exact bytes of each call above are published in the wire-transparency specification; a request not listed there is a bug we treat as a vulnerability.

The software is fully functional with every OpenHeaders endpoint unreachable — offline use is a supported mode, not a degraded one.

3. Licensing security model

The app only ever validates offline-signed license files (Ed25519, verified against a public-key ring compiled into the binary). The online layer never validates anything; it only delivers fresh signed files. Consequences:

4. Local architecture

5. Multi-user daemon

Team deployments run the daemon with SSO/OIDC, role-based access control, an append-only audit log with JSONL export, and optional SIEM forwarding — all available on the free tier, because security features are not upsells. Administrative operations are gated per-frame on the wire and audited.

6. Reporting a vulnerability

Email security [at] openheaders.io with a description of the issue, steps to reproduce, and the affected component and version. Reports go straight to the maintainer, not a ticket queue — you’ll get a reply confirming receipt and follow-up as the issue is assessed, and confirmed vulnerabilities are prioritized ahead of all other work.

The full disclosure policy — including its safe harbor for good-faith research, with an explicit carve-out from the EULA’s reverse-engineering restrictions — is published in SECURITY.md and referenced from security.txt. An undocumented outbound request is a valid finding on its own.

7. What we deliberately do not claim