![Windows 远程桌面在检查证书之前先要求输入用户名/密码是否安全?](https://linux22.com/image/714697/Windows%20%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%9C%A8%E6%A3%80%E6%9F%A5%E8%AF%81%E4%B9%A6%E4%B9%8B%E5%89%8D%E5%85%88%E8%A6%81%E6%B1%82%E8%BE%93%E5%85%A5%E7%94%A8%E6%88%B7%E5%90%8D%2F%E5%AF%86%E7%A0%81%E6%98%AF%E5%90%A6%E5%AE%89%E5%85%A8%EF%BC%9F.png)
当连接到客户端的远程桌面时:(在我的情况下是 Windows 8.1 RD 客户端连接到 Windows 10 Enterprise 1709/16299.98)
在检查服务器的证书之前,我们需要先在客户端输入并传输用户名/密码。
1\如果用户名/密码不正确,RD 客户端只会报告 CREDENTIAL 不起作用,然后要求重新输入。
2\如果用户名/密码正确,RD 客户端将发出警告,警告客户端服务器证书由不受信任的组织颁发(大多数用户情况下,服务器本身自动颁发)。
那么,这对于保护用户名/密码免受中间人攻击是否正确?或者它只是使用用户名/密码作为对称加密的密钥?
答案1
它不安全。这就是微软创建远程凭据保护和受限管理模式的原因。这也是使用网络级身份验证的缺点之一。
https://docs.microsoft.com/en-us/windows/security/identity-protection/remote-credential-guard
如果目标系统受到威胁或属于 MITM 实体,您只需向他们提供您的凭证哈希。
答案2
有一个很多的授权、认证和握手甚至在提交任何客户端数据之前,都会继续执行。在协议的不同版本中,情况发生了很大变化。如果您需要特殊行为,请使用适当的版本。
好消息是:您的密码绝不会通过不安全的连接发送,也不会被用作任何事物的密钥。无论如何这都是不可能的,因为身份验证机器永远无法访问它。
2\如果用户名/密码正确,RD 客户端将发出警告,警告客户端证书
你确定这不是服务器的身份验证证书显示吗?此证书确保你发送凭据的服务器是你首先连接的服务器(或网关或代理服务)(根据证书上的名称 [CN] 判断)。