[{"content":"远程桌面「由于数据加密错误」排障经验 归档：2026-10-17 ｜ 环境：Windows Server 2012 + win10 客户端 根因：服务器开启了系统级 FIPS 加密策略，迫使 RDP 使用 3DES；新版客户端不支持该算法，自行断开。\n一、结论 关闭服务器端的系统级 FIPS 加密策略即可恢复。此开关位于操作系统层，优先级高于组策略、高于注册表，能覆盖所有 RDP 应用层加密设置。\n二、修复步骤 方法 A（图形化）\nsecpol.msc → 本地策略 → 安全选项 → 「系统加密: 使用符合 FIPS 140-1 的算法进行加密、哈希和签名」 → 改为「已禁用」 方法 B（注册表）\nHKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\FIPSAlgorithmPolicy → Enabled = 0 ⚠️ 改完重启服务器（实际操作中使用图形化更改后，未重启，设置生效）。\n本次环境保留的约束：会话安全层固定为 RDP、NLA 保持禁用。\n三、故障机理 服务器启用系统级 FIPS ↓ TermService 强制使用 FIPS140-1 3DES 加密 ↓ 客户端自称支持 FIPS → 服务器选中该加密方式 ↓ 新版 Windows 客户端实际不支持 RDP 标准安全层的 3DES ↓ 无法解密服务器返回的数据 → 客户端主动断开 ↓ 报错「由于数据加密错误，这个会话将结束」 老版本客户端（Win7 / Win2008 / 服务器自带 mstsc）不触发这套协商，因此可以正常远程。\n四、排查要点 1. 交叉测试 测试 目的 服务器本机 mstsc → 127.0.0.1 判断服务器端服务是否完好 用一台旧版 Windows 去连 判断是否为客户端协议代差 在客户机上开Win7 虚拟机去连 同机同网卡，排除网络/防火墙/MTU 三个维度的成败组合，能直接指向「服务器 / 网络 / 客户端」中的哪一端，避免盲目改配置。\n2. 事件日志 事件查看器 → 应用程序和服务日志 → Microsoft → Windows → TerminalServices-LocalSessionManager → Operational 事件 ID 含义 21 登录成功（证明认证已通过） 36（错误） 会话状态机转换失败，含关键 ErrorCode 40 会话断开 本次 Event 36 为 错误代码 0x800708CA。更下层细节看 RemoteDesktopServices-RdpCoreTS → Operational。\n3. 抓包（关键） # 抓包 tshark -i \u0026lt;接口\u0026gt; -f \u0026#34;tcp port 3389\u0026#34; -w out.pcapng -a duration:600 # 关键：看谁发 RST（判断服务端/客户端责任） tshark -r out.pcapng -Y \u0026#34;tcp.flags.reset==1\u0026#34; -T fields -e frame.number -e ip.src -e _ws.col.Info # 关键：看服务器实际下发的加密方式 tshark -r out.pcapng -V | grep -iE \u0026#34;encryptionMethod|encryptionLevel|failureCode\u0026#34; 抓包所见 处理方向 failureCode: TLS not allowed by server 服务器被锁 SecurityLayer=0，需业务放开或走兼容绕行 encryptionMethod: FIPS140-1 3DES 关闭系统级 FIPS（本次根因） RST 由服务器发出 查 Licensing / 会话数 / TermDD RST 由客户端发出 查客户端加密能力、系统更新、凭据缓存 五、关键配置速查 项目 注册表路径 取值 系统级 FIPS HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\FIPSAlgorithmPolicy\\Enabled 0=关 / 1=开（本次元凶） 会话安全层 ...\\Control\\Terminal Server\\WinStations\\RDP-Tcp\\SecurityLayer 0=RDP / 1=协商 / 2=SSL 加密级别 同路径 MinEncryptionLevel 1=低 / 2=兼容 / 3=高级 / 4=FIPS NLA 同路径 UserAuthentication 0=禁用 / 1=启用 证书绑定 同路径 SSLCertificateSHA1Hash 证书指纹二进制 ⚠️ MinEncryptionLevel = 2（客户端兼容）有陷阱：服务器会挑选客户端自称支持的最强加密，而新版客户端支持 FIPS，容易意外落到 3DES。要强制 128 位应选 3（高级）。\n组策略路径\n远程桌面会话主机 → 安全 → 远程(RDP)连接要求使用指定的安全层 远程桌面会话主机 → 安全 → 设置客户端连接加密级别 远程桌面会话主机 → 连接 → 选择 RDP 传输协议 secpol.msc → 安全选项 → 系统加密: 使用符合 FIPS 140-1 的算法… 六、经验教训 先定性再动手。 本次改了七八项 RDP 配置全部无效，真正有效的只有一项；开启抓包后在几分钟内就锁定了方向。 配置写了什么 ≠ 实际生效什么。 系统级 FIPS \u0026gt; 组策略 \u0026gt; 注册表，必须用抓包或行为反推真实生效值。 抓包第一个看\u0026quot;谁发的 RST\u0026quot;。 一条字段即可定性责任方。 不要忽略操作系统级开关。 应用层策略被更底层的全局安全策略覆盖时，现象会极具迷惑性。 ","permalink":"https://azluck.top/posts/rdp-data-encryption-error-troubleshooting/","summary":"\u003ch1 id=\"远程桌面由于数据加密错误排障经验\"\u003e远程桌面「由于数据加密错误」排障经验\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003e归档：2026-10-17 ｜ 环境：Windows Server 2012 + win10 客户端\n\u003cstrong\u003e根因：服务器开启了系统级 FIPS 加密策略，迫使 RDP 使用 3DES；新版客户端不支持该算法，自行断开。\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e","title":"远程桌面「由于数据加密错误」排障"},{"content":"","permalink":"https://azluck.top/tags/","summary":"tags","title":"标签"},{"content":"这是什么 一个自建的小站，记录网络安全、运维折腾和自建工具的过程。\n技术栈 服务器：阿里云 ECS 2 核 2 GiB，Ubuntu 24.04 LTS 博客：Hugo 静态生成，PaperMod 主题 工具箱：纯前端 JavaScript，计算全部在浏览器本地完成 反代：Nginx，博客走 443（HTTPS），工具箱走 8443 关于我 网络安全方向，高校信息化从业者。喜欢把重复的活儿做成能一键用的工具。\n","permalink":"https://azluck.top/about/","summary":"关于这个站点","title":"关于"}]