Skip to content
Back to Blog安全

远程桌面安全吗?一个诚实的威胁模型

GoDesk Editorial Team10 分钟阅读
远程桌面安全吗?一个诚实的威胁模型

远程桌面协议在互联网上处理按键、屏幕和凭证。本文介绍威胁模型、加密技术,以及在信任任何远程桌面工具之前需要验证的五个事项。

“远程桌面安全吗”这个问题的答案取决于你指的是哪种远程桌面。暴露于公共互联网的原生 Windows RDP 是企业 IT 中最常被利用的攻击面之一 — 每年都出现在 Verizon 的 DBIR 勒索软件部分。一个现代的基于中继的客户端,如 GoDesk、AnyDesk 或 TeamViewer,具有端到端加密,而采取的安全态度从根本上有所不同。本文诚实地阐述了威胁模型:实际保护的是什么,未被保护的是什么,以及在安装任何远程桌面工具之前你需要验证什么。

简而言之: 传输加密(AES-256-GCM)和密钥交换(X25519 + ED25519 签名)现在是基本要求 — 大多数知名工具都具备这些。有趣的变体在于 中继能看到什么,无人值守访问是如何处理的,是否强制执行 2FA,源代码是否可审计。如果你只想要行动项目,请跳到最后的 5 项检查清单。

威胁模型:你实际上在防御什么?

对远程桌面而言,三类对手是重要的:

  • 网络攻击者(被动或主动中间人攻击)。 在同一 Wi-Fi 上的人,运行恶意 VPN 退出节点的人,进行 TLS 整体拦截的国家行为者。他们想要读取或修改客户端和主机之间的流量。
  • 凭证攻击者。 试图远程登录无人值守访问密码的人。暴力破解、凭证填充、泄漏数据库查找。
  • 供应商/中继攻击者。 远程桌面公司本身,或是某个已被攻击者入侵的人。根据定义,他们处于中间 — 他们实际上能看到什么?

第四类 — 终端妥协(任一设备上的恶意软件) — 会击败任何制造的远程桌面工具。如果本地 PC 被攻陷,没有加密协议能拯救你。我们在这里不会涵盖这一点,因为它超出了协议本身的范围。

传输加密:AES-256-GCM

GoDesk(继承自 RustDesk)用 AES-256-GCM 加密两台客户端之间的每个字节,这是一种经过身份验证的加密模式,保护机密性(没有窃听)和完整性(没有篡改)。GCM 是 TLS 1.3 使用的同样密码模式,是你的银行使用的同样模式,也是 Signal Protocol 在对称层中使用的同样模式。截至 2026 年,没有已知的针对 AES-256-GCM 的实际攻击。

会话密钥为 256 位,按会话生成,从不重用。即使密钥在事后被恢复,也只是那一个会话被攻击 — 过去和未来的会话是独立的。

密钥交换:X25519 + ED25519

两台客户端如何在不让中继得知会话密钥的情况下达成一致? X25519,一种基于 Curve25519 的椭圆曲线迪菲-赫尔曼算法。每一方生成一个临时密钥对,通过中继交换公钥,然后利用自己的私钥和另一方的公钥独立计算出相同的共享秘密。中继只能看到公有值,而没有一个私钥这些值毫无用处。

为了防止主动中间人攻击(恶意或被攻陷的中继在传输中交换公钥),主机的公有身份用 ED25519 签名。在你第一次连接到主机时,GoDesk 会显示主机的密钥指纹 — 这就是首次使用信任(TOFU)模型,跟 SSH 一样。在随后的连接中,客户端会验证指纹是否匹配;如果中继试图进行中间人攻击,指纹会发生变化,客户端将拒绝连接。

X25519 + ED25519 是 WireGuard、Signal、age 和现代 SSH 所使用的相同原语集合。它被广泛审计,且被认为是当前最佳实践。

中继实际看到的内容

这是区分远程桌面工具的一个重要问题。有些产品在中继处终止 TLS 并重新加密到客户端 — 这意味着供应商在技术上可以解密你的会话。其他工具,包括 GoDesk/RustDesk,直接通过中继传递端到端密文;即使供应商完全访问中继日志,也无法解密你的会话。

工具中继仅看到密文吗?源代码可审计吗?是否支持自托管中继?
GoDesk / RustDesk是 (AGPL-3.0)
AnyDesk是(根据他们的文档)否(专有)仅限企业级
TeamViewer是(根据他们的文档)否(专有)仅限 Tensor 企业版
Chrome Remote Desktop通过 Google 基础设施路由;Google 持有 ChromeOS 特定流程的密钥部分(扩展是开放的)
原生 Windows RDP(通过 WAN)不可用 — 如果暴露则直接连接不可用
VNC(RealVNC,TightVNC)普通版默认情况下通常未加密混合

关于表格的两点说明。首先,“供应商声称中继仅看到密文”是我们对专有产品信任的内容 — 在没有源代码访问的情况下,你无法验证这一点。第二,经典的 VNC 在开放互联网中的表现是这个列表中最糟糕的选项:许多 VNC 变体默认情况下没有传输加密,并且凭证通过一个已经被破解多年的挑战响应发送。请勿在互联网上运行普通 VNC。

身份验证:密码与 2FA

对于无人值守访问(你在主机上设置密码,以便后续连接时无需有人接受提示),密码是整个防御。两种失败模式:

  1. 弱密码: 4 位数的 PIN 在几秒钟内就可以暴力破解。一个 6 字符的字母数字密码在获得网络访问时可以在几小时内暴力破解。使用 12 个以上字符来自密码管理工具。GoDesk 强制要求至少 6 个字符,并对常见密码发出警告;我们建议对任何互联网可达的无人值守主机使用 16 个字符以上。
  2. 没有第二因素: 如果密码泄漏,那就是整个身份验证。如果你的工具支持此功能,请启用 2FA — GoDesk 在收费版本中支持 TOTP。AnyDesk 和 TeamViewer 也有类似的提供。

对于交互式支持会话(有人提供一次性代码),威胁要小得多,因为会话是时间有限的,代码会过期。经典攻击是将受害者社会工程化为向骗子读取代码 — 微软的“技术支持”骗局正是利用了这个向量,而无论加密有多强大都无法解决。

无人值守访问风险

无人值守访问是最有用且风险最高的功能。根据定义,你正在主机上保留一个凭证,一旦泄漏,任何人都能远程登录而无需提示。推荐实践:

  • 每个主机使用唯一密码。不要在多台设备上重复使用密码。
  • 在支持的地方启用 2FA。
  • 设置空闲超时,以便未活动的无人值守会话会断开。GoDesk 的默认设置为 4 小时。
  • 使用访问白名单 — 限制传入连接到你控制的特定设备 ID。GoDesk 在安全设置中支持此功能。
  • 定期查看连接日志。意外连接是一个红旗。

为什么暴露在互联网的原生 RDP 的问题尤为严重

RDP 本身并不不安全 — 微软已显著增强协议的安全性,最近的版本使用 TLS 保护的 CredSSP。问题在于运营层面。RDP 监听一个众所周知的端口(3389),通常仅通过 Windows 密码进行身份验证,是不断暴力扫描的目标。一旦攻击者进入,他们就获得了一个登录的交互式 Windows 会话 — 这是进行勒索软件部署的最有效的立足点。这就是为什么 CISA 和 FBI 特别提到暴露的 RDP 是前三大勒索软件初始访问向量。像 GoDesk、AnyDesk 和 TeamViewer 这样的工具通过永不向公共互联网暴露监听服务来完全避免这个问题。

任何远程桌面工具的 5 项检查清单

无论你选择哪个工具,在信任其处理任何重要内容之前,请验证以下五件事:

  1. 使用 AES-256 或 ChaCha20-Poly1305 的端到端传输加密。 任何更低的要求(没有加密、RC4、普通 VNC)都不合格。检查文档,而不是营销页面。
  2. 具有前向保密的密钥交换(某种类型的迪菲-赫尔曼)。 X25519 是现代默认选项。ECDH P-256 是可接受的。静态 RSA 密钥交换是一个红旗。
  3. 记录的中继模型:供应商看到密文还是明文? 阅读他们的安全白皮书。如果他们无法回答,请离开。
  4. 无人值守访问的双因素认证。 如果你的工具不提供 2FA,请勿在可通过互联网访问的主机上启用无人值守访问。
  5. 可以阅读的源代码或第三方审计。 开源(如 GoDesk/RustDesk 在 AGPL-3.0 下)是最有力的证据。否则,SOC 2 Type II 报告或已发布的渗透测试是可接受的。

结论

“远程桌面安全吗”是错误的问题。正确的问题是:哪种 远程桌面,以何种方式 部署。具有 AES-256-GCM 传输、X25519 密钥交换、经过中继的端到端加密和无人值守访问 2FA 的现代基于中继的工具,其安全性大致与信任的其他互联网协议相当。暴露在转发端口上的 RDP 和弱密码则截然不同。阅读 GoDesk 的完整安全架构,了解协议级细节,或者下载客户端,自己审计 — 源代码在 GitHub 上。

常见问题

GoDesk 团队能否读取我的远程桌面会话?
不可以。会话密钥通过 X25519 进行端到端协商,位于你两台客户端之间。我们的中继仅转发 AES-256-GCM 密文。即使拥有完整的中继服务器访问权限,我们也无法解密你的流量。

开源比闭源更安全吗?
源代码的可用性是必要的,但不充分。AGPL-3.0 意味着独立审计师可以验证协议是否与文档相符;闭源工具则需要相信供应商。两者如果实现良好都可以安全;只有一种是可验证的。

我应该担心首次使用信任指纹模型吗?
只有在你在不信任的网络上设置连接时。在偏执的设置中,在第一次连接时验证主机指纹的外部证件(通过电话而不是聊天读取)。此后,客户端会在本地固定指纹。

RustDesk / GoDesk 中是否存在已知的 CVE?
RustDesk 项目确实在这些年中出现了一些已披露的问题,主要集中在可选的自托管服务器组件上 — 每次都快速修补。截止到 2026 年 5 月,桌面客户端本身没有高危的远程代码执行 CVE。请查看 GitHub 的安全建议页面以获取当前列表。

GoDesk 支持哪些 2FA 方法?
通过任何标准身份验证器应用(Authy、1Password、Google Authenticator)在 Lite 和 Pro 版本下支持 TOTP。硬件密钥(WebAuthn)支持在路线图上。