Documentation

Security model

What is protected, by what, from whom — and what is not.

A remote-support tool can see any screen, type anything, and — with elevation or backstage — run commands as SYSTEM. That makes it one of the most valuable targets in an estate. This page is written so a reviewer can check the claims rather than take them.

Trust boundaries

[client host] --TLS--> [relay host] --TLS--> [agent host]
     endpoint          forwards ciphertext        endpoint
   holds a key            holds no key          holds a key
  • Each hop is TLS. An on-path network attacker cannot read or modify traffic in transit.
  • The relay terminates TLS, so it could read whatever it forwards. That is why the endpoints encrypt above it. With end-to-end encryption negotiated, the relay forwards ciphertext it holds no key for — which removes it from the confidentiality boundary.
  • The endpoints are the trusted parties. The installed client runs as LocalSystem and is powerful by design. Install it only where that is intended, and only let authorized technicians pair with it.
  • Backstage is the highest-privilege surface in the product: a SYSTEM shell, no user present, nothing on screen. Treat access to it as equivalent to handing out a remote SYSTEM command prompt.

The encryption scheme

After pairing, both endpoints generate an ephemeral ECDH P-256 key pair and exchange public keys through the relay. The shared secret goes through HKDF-SHA256, salted with the session token, to derive:

  • two AES-256-GCM keys, one per direction, so a captured frame cannot be replayed back the other way;
  • a 4-byte nonce salt per direction, combined with a monotonic counter — no nonce is ever reused, and the receiver rejects a non-increasing counter, which is also anti-replay;
  • the material for a 6-digit short authentication string.

The browser console uses the standard WebCrypto API; the native Windows client implements the identical scheme, so any pairing of console and client interoperates.

Read the 6 digits aloud

Both ends derive the same short authentication string from the agreed key material — and only if nothing altered the exchange in flight. Folding the session token into the derivation already defeats a passive relay; the SAS is what catches an active man-in-the-middle, including a malicious relay that also knows the token. Compare it out of band — say it to the user — before backstage or elevation.

End-to-end encryption is negotiated with a plaintext-TLS fallback for older peers. For a sensitive deployment, set a policy that requires it and refuses that fallback. The console already refuses to send elevation credentials over a session that is not end-to-end encrypted.

Three identity planes that never mix

Secure Desk is deliberately decoupled from the supported computer's own security. A client can sit in any customer domain, or none, and the system never joins, trusts or authenticates against that domain in order to operate.

PlaneCredentialWhat it governs
Operate the systemPortal account: password + enforced TOTP, or SSO through Microsoft Entra / GoogleWho may run support sessions, and in what role.
Pair with the relayPortal-issued token: a one-time session token, an enrolled device token, or a short-lived console grantWhich socket may join which session. No domain membership involved.
Act on the machineWhatever context the client already runs in — the logged-in user, or LocalSystemWhat the session can do on the target. More rights require that machine's own admin account, entered in-session.

The consequence is the one worth stating plainly: compromising the portal does not grant OS access to any client, and operating a client never exposes portal identities or customer domain secrets to the support infrastructure.

Authentication and roles

Local accounts are gated until they enrol TOTP — on by default — with recovery codes issued once and stored only as hashes. SSO delegates the second factor to your identity provider, and domain-allowlisted auto-provisioning drops a new SSO user into the read-only viewer role rather than granting access by default.

RoleCanCannot
adminEverything, including users, customers, settings and the audit log
operatorCreate, view and revoke sessions; see and connect to devices; handle requestsManage users, customers or settings; read the audit log
viewerSee sessions, devices and requestsConnect to or control anything; create or revoke sessions; change anything

Socket access is authorized per session: the relay validates the session id format and its secret token against the portal's registry with constant-time comparisons, honours expiry, and consumes a one-time link when its client session ends. Sessions use HttpOnly, SameSite cookies and scrypt-hashed passwords. The legacy shared relay token remains only as an optional path for unregistered session ids and is off by default — leave it off in production.

Elevation, specifically

When a technician needs more rights than the session has, they are prompted inside the session for that machine's own administrator account. Those credentials are used once, on that box, for a linked-token launch. They are never persisted, never logged, and never reach the portal — and with end-to-end encryption they never reach the relay either. The relaunched worker reports the integrity level it actually obtained, so the console cannot claim an elevation that did not happen.

PCI-DSS considerations

PCI-DSS compliance is a property of an environment and an organization's processes, validated by an assessor. Software cannot be compliant on its own — it can only support a compliant deployment. Nothing here is a compliance claim.

What the design gives you:

  • TLS on every link, with TLS 1.2 as a floor and an AEAD-only cipher list when the relay terminates TLS itself (Req. 4).
  • A relay that forwards opaque bytes and stores no payloads, so it is a candidate to sit outside the cardholder data environment — and with end-to-end encryption, "does not look" becomes "cannot look".
  • Per-session identity and per-user portal accounts with MFA (Req. 7, 8).
  • Idle session reaping (Req. 8.2.8).
  • Connect, disconnect, pair and file-transfer events as logging points (Req. 10).

What is still your work:

  • Shipping those events to tamper-evident, time-synced central logging, with retention, monitoring and alerting.
  • Certificate and key provisioning, rotation and protection (Req. 3, 4).
  • Patching, hardening and access control on the relay host and every endpoint host (Req. 5, 6, 7).
  • Network segmentation that positions the relay to minimize CDE scope.
  • Gating backstage behind MFA, authorizing it per technician, and logging its commands — it is privileged access to the host and squarely in scope.
  • The documentation, change control and SAQ or ROC with your assessor.

What this product does not do

Stated here rather than discovered during a rollout:

  • It does not capture the Windows secure desktop. UAC consent prompts and Ctrl-Alt-Del are on a protected desktop that requires the worker to attach to it explicitly — a documented next step. Sign-in and lock screens are handled; backstage works before login because it needs no desktop at all.
  • End-to-end encryption is negotiated, not yet mandatory. The plaintext fallback exists for older peers. Require it in policy for sensitive deployments.
  • There is no consent prompt on the client for an enrolled device. The portable client is inherently consensual — the user runs it and closes it. An installed service is not, by design. If you need per-session user approval on managed machines, that is a policy and process you build around the tool.
  • Endpoints are Windows only.

Operational advice

  • Leave TLS certificate validation enabled in the client's relay connection. If you have a self-signed certificate, fix the certificate — do not disable the check.
  • Prefer the portable client. Reserve the installed service, and especially backstage, for cases that genuinely need unattended, pre-login or SYSTEM access, and apply stronger controls to those.
  • Keep join tokens out of logs and tickets: the token is the session secret.
  • Rate-limit and monitor the relay: per-IP connection limits, maximum sessions, maximum message size.
  • Change every default. The installer generates its own secrets, but any value you set by hand during evaluation should not survive into production.

Running a security review and need something answered against the source rather than a brochure? sales@secure-desk.io.