Skip to content
Back to BlogSecurity

Is Remote Desktop Secure? An Honest Threat Model

GoDesk Editorial Team10 min read
Is Remote Desktop Secure? An Honest Threat Model

Remote desktop protocols handle keystrokes, screens, and credentials over the internet. Here is the threat model, the cryptography, and the five things to verify on any remote desktop tool before you trust it.

"Is remote desktop secure" has different answers depending on which remote desktop you mean. Native Windows RDP exposed to the public internet is one of the most-abused attack surfaces in corporate IT, it shows up in Verizon's DBIR ransomware section every year. A modern relay-based client like GoDesk, AnyDesk, or TeamViewer with end-to-end encryption is a fundamentally different security posture. This article walks through the threat model honestly: what is actually protected, what is not, and what you should verify before installing any remote desktop tool.

TL;DR: Transport encryption (AES-256-GCM) and key exchange (X25519 + ED25519 signatures) are now table stakes, most reputable tools have them. The interesting variation is in what the relay can see, how unattended access is handled, whether 2FA is enforced, and whether the source code can be audited. Skip to the 5-item checklist at the end if you just want the action items.

The threat model: what are you actually defending against?

Three classes of adversary matter for remote desktop:

  • Network attacker (passive or active MITM). Someone on the same Wi-Fi, someone running a malicious VPN exit node, a state actor doing wholesale TLS interception. They want to read or modify traffic between client and host.
  • Credential attacker. Someone trying to log into the unattended-access password remotely. Brute force, credential stuffing, leaked database lookup.
  • Vendor/relay attacker. The remote desktop company itself, or someone who compromised them. They sit in the middle by definition, what can they actually see?

A fourth class, endpoint compromise (malware on either machine), defeats every remote desktop tool ever made. If your local PC is owned, no encryption protocol saves you. We will not cover that here because it is out of scope for the protocol itself.

Transport encryption: AES-256-GCM

GoDesk (inheriting from RustDesk) encrypts every byte between the two clients with AES-256-GCM, an authenticated encryption mode that protects both confidentiality (no eavesdropping) and integrity (no tampering). GCM is the same cipher mode TLS 1.3 uses, the same one your bank uses, the same one Signal Protocol uses for the symmetric layer. There are no known practical attacks against AES-256-GCM as of 2026.

The session key is 256 bits, derived per-session, and never reused. Even if a key were somehow recovered after the fact, only that one session is compromised, past and future sessions are independent.

Key exchange: X25519 + ED25519

How do the two clients agree on a session key without the relay learning it? X25519, an elliptic-curve Diffie-Hellman over Curve25519. Each side generates an ephemeral keypair, exchanges public keys through the relay, and independently computes the same shared secret using their own private key plus the other side's public key. The relay sees only the public values, which are useless without one of the private keys.

To prevent an active man-in-the-middle (a malicious or compromised relay swapping the public keys mid-flight), the host's public identity is signed with ED25519. The first time you connect to a host, GoDesk shows you the host's key fingerprint, this is the trust-on-first-use (TOFU) model, the same as SSH. On subsequent connections, the client verifies the fingerprint matches; if a relay tried to MITM you, the fingerprint would change and the client would refuse to connect.

X25519 + ED25519 is the same primitive set used by WireGuard, Signal, age, and modern SSH. It is widely audited and considered current best practice.

What the relay actually sees

This is the question that separates remote desktop tools meaningfully. Some products terminate TLS at the relay and re-encrypt to the client, that means the vendor can technically decrypt your session. Others, including GoDesk/RustDesk, route end-to-end ciphertext through the relay; the vendor cannot decrypt your session even with full access to relay logs.

ToolRelay sees ciphertext only?Source auditable?Self-hostable relay?
GoDesk / RustDeskYesYes (AGPL-3.0)Yes
AnyDeskYes (per their docs)No (proprietary)Enterprise tier only
TeamViewerYes (per their docs)No (proprietary)Tensor enterprise only
Chrome Remote DesktopRoutes through Google infrastructure; Google holds keys for ChromeOS-specific flowsPartial (extension is open)No
Native Windows RDP (over WAN)N/A, direct connection if exposedNoN/A
VNC (RealVNC, TightVNC) plainOften unencrypted by defaultMixedYes

Two notes on the table. First, "vendor claims relay sees ciphertext only" is something we have to take on faith for proprietary products, without source access you cannot verify it. Second, classic VNC over the open internet is the worst option on this list: many VNC variants ship with no transport encryption by default, and credentials are sent in a challenge-response that has been broken for years. Do not run plain VNC over the internet.

Authentication: passwords vs 2FA

For unattended access (where you set a password on the host so you can connect later without someone accepting the prompt), the password is the entire defense. Two failure modes:

  1. Weak password: A 4-digit PIN is brute-forceable in seconds. A 6-character alphanumeric password is brute-forceable in hours given network access. Use 12+ characters from a password manager. GoDesk enforces a minimum of 6 characters and warns on common passwords; we recommend 16+ for any internet-reachable unattended host.
  2. No second factor: If the password leaks, that is the entire authentication. Enable 2FA if your tool supports it, GoDesk supports TOTP for paid tiers. AnyDesk and TeamViewer have similar offerings.

For interactive support sessions (where someone reads you a one-time code), the threat is much lower because the session is bounded in time and the code expires. The classic attack here is social-engineering victims into reading the code to scammers, Microsoft's "tech support" scams use exactly this vector, and no amount of cryptography fixes it.

Unattended access risk

Unattended access is the most useful feature and the highest-risk feature. By definition, you are leaving a credential on the host that, if leaked, lets anyone log in remotely without prompting. Recommended practices:

  • Use a unique password per host. Do not reuse the password across machines.
  • Enable 2FA where supported.
  • Set an idle timeout so dormant unattended sessions disconnect. GoDesk defaults to 4 hours.
  • Use the access whitelist, limit incoming connections to specific device IDs you control. GoDesk supports this in the security settings.
  • Watch the connection log periodically. Unexpected connections are a red flag.

Why native RDP exposed to the internet is uniquely bad

RDP itself is not insecure, Microsoft has hardened the protocol significantly, and recent versions use TLS-protected CredSSP. The problem is operational. RDP listens on a well-known port (3389), is usually authenticated only by a Windows password, and is the target of constant brute-force scanning. Once an attacker is in, they have a logged-in interactive Windows session, the most useful possible foothold for ransomware deployment. That is why CISA and the FBI specifically call out exposed RDP as a top-3 ransomware initial-access vector. Tools like GoDesk, AnyDesk, and TeamViewer avoid the problem entirely by never exposing a listening service to the public internet.

The 5-item checklist for any remote desktop tool

Whatever tool you pick, verify these five things before trusting it with anything you care about:

  1. End-to-end transport encryption with AES-256 or ChaCha20-Poly1305. Anything less (no encryption, RC4, plain VNC) is disqualifying. Check the docs, not the marketing page.
  2. Forward-secret key exchange (Diffie-Hellman of some flavor). X25519 is the modern default. ECDH P-256 is acceptable. Static RSA key exchange is a red flag.
  3. Documented relay model: does the vendor see ciphertext or plaintext? Read their security whitepaper. If they cannot answer this, walk away.
  4. Two-factor authentication for unattended access. If your tool does not offer 2FA, do not enable unattended access on internet-reachable hosts.
  5. Source code or third-party audit you can read. Open source (like GoDesk/RustDesk under AGPL-3.0) is the strongest evidence. Failing that, a SOC 2 Type II report or a published pentest is acceptable.

Conclusion

"Is remote desktop secure" is the wrong question. The right one is: which remote desktop, deployed how. A modern relay-based tool with AES-256-GCM transport, X25519 key exchange, end-to-end encryption past the relay, and 2FA on unattended access is roughly as secure as any other internet protocol you trust daily. RDP exposed on a forwarded port with a weak password is not. Read GoDesk's full security architecture for the protocol-level details, or download the client and audit it yourself, the source is on GitHub.

FAQ

Can the GoDesk team read my remote desktop sessions?
No. The session key is negotiated end-to-end via X25519 between your two clients. Our relay only forwards AES-256-GCM ciphertext. We could not decrypt your traffic with full relay-server access.

Is open source actually more secure than closed source?
Source availability is necessary but not sufficient. AGPL-3.0 means an independent auditor can verify the protocol matches the documentation; closed-source tools require trusting the vendor. Both can be secure if implemented well; only one is verifiable.

Should I be worried about the trust-on-first-use fingerprint model?
Only if you are setting up the connection over a network you do not trust. For paranoid setups, verify the host fingerprint out-of-band (read it over a phone call, not chat) on first connection. After that, the client pins the fingerprint locally.

Are there any known CVEs in RustDesk / GoDesk?
The RustDesk project has had a handful of disclosed issues over the years, mostly in the optional self-hosted server components, patched promptly in each case. The desktop client itself has had no high-severity remote-code-execution CVEs as of May 2026. Check the GitHub security advisories page for the current list.

What 2FA methods does GoDesk support?
TOTP via any standard authenticator app (Authy, 1Password, Google Authenticator) on Lite and Pro tiers. Hardware-key (WebAuthn) support is on the roadmap.