在使用 Windows 7 mstsc 连接到 Windows Server 2008(远程桌面)时,我发现了一个无法解释的问题。
mstsc 首先要求输入用户名密码。如果我提供了错误的信息,mstsc 会告诉我“用于连接的凭据不起作用”。

只有在我提供正确的证书之后,mstsc 才会警告我服务器的证书不受信任。

我认为 mstsc 应该在验证“服务器是否接受我的用户名/密码”之前提示“服务器证书不受信任”。
所以我的问题是:如果我连接的服务器是伪造的(由攻击者托管),我的凭据是否可能会被泄露?
即使我的凭据在这种情况下永远不会被泄露,在要求用户名/密码之前,mstsc 提示服务器证书问题不是更好吗?至少,这可以消除普通用户密码被盗的担忧。
这里发生的事情有点复杂,但是如果您阅读 NLA 和 CredSSP,您将获得更好的了解。
http://technet.microsoft.com/en-us/library/cc749211%28WS.10%29.aspx
http://en.wikipedia.org/wiki/Network_Level_Authentication
基本上,要回答您的问题...不,伪造的服务器不会损害您的凭据。他们必须做的第一件事就是将您的 DNS 欺骗到不正确的 IP,但即使如此,RDP 现在的工作方式(假设我们正在谈论 Win7 或 Vista 客户端和 Win2008 或更新的服务器)凭据是加密且未公开(警告是在 Technet 文章底部解释的 NTLM)。
以下摘录可能对 Technet 文章有所帮助:
与 Windows Server® 2003 终端服务器中的体验不同,凭据提示出现在客户端计算机上,而不是服务器上。最重要的是,客户端凭据提示位于安全桌面上。因此,即使是终端服务客户端也看不到凭据,这是一个重要的通用标准要求。此外,在验证服务器身份之前,不会委派从提示中获得的凭据(取决于策略配置)。最后,在对客户端进行身份验证之前,终端服务器不会为用户建立会话(这会消耗服务器上的大量内存和 CPU 处理时间),从而降低了服务器拒绝服务攻击成功的机会。
编辑:让我们添加一个例子来澄清......
示例 #1 - 用户可以访问远程服务器并使用正确的密码
在此示例中,您将输入用户名和密码,它将在本地对域进行身份验证以验证它是有效的用户名/密码,然后尝试连接到远程服务器。此时,如果它是第一次连接,您可能会收到“无法验证远程计算机的身份”,您可以选择是否信任它。
示例 #2 - 用户可以访问远程服务器并使用不正确的密码
在这里您会看到您发布的图片...凭据无效。请输入新凭据。这是在客户端本地完成(根据 kerberos 票证或 DC 进行验证),而无需连接到远程服务器。
示例 #3 - 用户无法访问远程服务器,但使用正确的用户名和密码
在这里,您将在本地进行身份验证,因为它是一个有效的帐户和密码,但是一旦您连接到服务器以传递凭据,您将获得:

希望有帮助...
| 归档时间: |
|
| 查看次数: |
1641 次 |
| 最近记录: |