WireCanal is designed around defense in depth centered on fixed forwarding destinations, with fail-closed as a premise. The keystones are the fixed forwarding destination and the caller IP restriction that narrows the entrance — an entrance that is public, yet as good as not public.
WireCanal's most important layer is the fixed forwarding destination. The agent never connects to anything other than the destination you configured (loopback by default). This structurally prevents the accident where a tunnel turns into an open proxy inside your network and gets repurposed as a passageway to other systems.
"It never becomes an open proxy" is verified every time by mandatory pre-release regression tests. Even when fed unexpected destination requests, name-resolution swaps, and redirect chains, we keep machine-checking that it connects only to allowed destinations. We do not let the design philosophy end as a verbal promise.
WireCanal's public entrance (Edge) can be restricted to accept access only from the fixed IPs of legitimate callers. A public endpoint in form, effectively a leased line in practice. Caller token authentication adds a second layer on top. An entrance that is "public, yet as good as not public."

WireCanal practices defense in depth built on "fail-closed (when in doubt, shut it down)." Rather than boasting numbers, here are the core layers actually in operation, as they are. The centerpiece is the fixed forwarding destination.
The Agent connects only to the one allowed destination (loopback by default). It validates the destination at startup, re-resolves the name immediately before connecting and re-checks every resolved address, and never follows redirects. This structurally prevents the tunnel from being diverted into a passageway inside your network.
The public entrance can be limited to the fixed IPs of legitimate callers. Agent connections are matched against the fingerprint of the issued key, and anything that does not match is rejected immediately.
IP / country / BASIC / token / time window / path / automatic temporary suspension after repeated failures / stealth. Configurable from the dashboard, with every kind available on every plan.
The MCP tools and HTTP paths you expose are managed by whitelist. The default is deny-all. The allowlist stays in your company's hands: the dashboard can only "propose," and applying a change requires an approval operation on your side.
A built-in authorization server compliant with OAuth 2.1 + PKCE, RFC 9728 / 8414 / 8707, and short-lived signed tokens. The Authorization header verified at the entrance is never passed to the forwarding destination, so it never doubles up with your internal systems' own authentication.
In addition, WireCanal provides per-canal access logs (records of incoming access; the most recent 1,000–10,000 entries depending on your plan; available via API / CSV), tenant isolation (a dedicated subdomain and unique ID per canal, with routing decided by values that cannot be spoofed), and flow control and suspension (rate / size / timeout limits, per-canal pause, and immediate cut-off from your side).
Planned for the future: tamper detection for audit logs (hash chains), certificate-based device enrollment, and per-session human approval (available for individual consultation on Enterprise).
For each canal, you can apply 8 kinds of access protection to the public entrance. Every kind is available on every plan. Configure them from the "Access Protection" tab in the dashboard (grouped into caller / authentication / exposure / defensive behavior).
Any situation that cannot be decided — a caller whose country cannot be identified, malformed configuration, and so on — is resolved on the safe side: closed. Protection is enforced immediately after 443 termination (canal-gate), and for TCP canals the caller IP is checked at accept time, with unauthorized connections cut immediately.
AI services such as Claude and ChatGPT require OAuth-based authentication when connecting to remote MCP servers. WireCanal has a built-in authorization server compliant with the MCP Authorization specification (the authorization spec of the Model Context Protocol): just create a canal and choose the AI you will use, and you get a fully standards-compliant authenticated MCP endpoint. No need to stand up your own OAuth server. No advance client registration is required either (CIMD supported) — AI services can connect just by presenting a URL. Connection and operation have been verified on the actual Claude / ChatGPT / Grok screens.
client_secret_post). Only registered redirect URLs are accepted. Connection approval is granted explicitly by the canal owner on a consent screen and can be revoked at any time.OAuth is strictly "authentication at the entrance." The allowlist of which tools are visible remains, as always, in the hands of your local wirecanal.json (two-key). Even edits from the dashboard stop at "proposals," and applying them requires an approval operation on your side (see Choosing the tools your AI can see for a walkthrough with actual screens). For details, see the MCP & AI page.
Access logs: for each canal, you can review incoming access in the dashboard (and the public API) — the most recent 1,000 entries depending on your plan (10,000 on Premium / Enterprise). Who came, when, and from where can be traced after the fact. Even in stealth mode, the owner sees the true block reason recorded in the log. The list can be downloaded as CSV for your own aggregation and retention.
Credentials never forwarded: entrance authentication (MCP OAuth, or BASIC / token access protection) is verified by WireCanal at the entrance, and the Authorization header is never passed to the forwarding destination. Your internal systems can keep running locally without holding any authentication of their own, and nothing like "authentication doubled up / slipped through because of WireCanal" can happen.
Sign-up is free. No credit card required — create your first canal right now.
Sign up free and get started