【发布时间】:2015-01-18 20:53:20
【问题描述】:
使用LOGON32_LOGON_NETWORK_CLEARTEXT 有多安全?
我们有以下场景:
Web 服务器 A 正在使用 Win32 LogonUser。然后它需要在服务器 B 上调用一个 asmx 方法。
如果使用的登录类型是 LOGON32_LOGON_INTERACTIVE,则效果很好。然而,客户拒绝这样做,因为它需要交互式访问。
如果我们使用 LOGON32_LOGON_NETWORK 这不允许令牌委托给远程服务器,我们会得到 401(正如预期的那样,根据 MSDN)。
尝试使用 DuplicateToken 将令牌“升级”为交互式失败。此尝试基于这篇文章,其中指出:
"当您请求交互式登录时,LogonUser 返回一个主 允许您在模拟时创建进程的令牌。什么时候 您请求网络登录,LogonUser 返回一个模拟令牌 可用于访问本地资源,但不能用于创建 过程。 如果需要,您可以将模拟令牌转换为 主令牌通过调用 Win32 DuplicateToken 函数。"
但似乎如果我们使用this old thread 中所述的 LOGON32_LOGON_NETWORK_CLEARTEXT,则委托有效。但它的使用安全性如何?根据 MSDN:
"此登录类型在身份验证中保留名称和密码 包,它允许服务器连接到其他网络 冒充客户端时的服务器。服务器可以接受明文 来自客户端的凭据,调用 LogonUser,验证用户是否可以 通过网络访问系统,并且仍然与其他人通信 服务器。”
以这种格式使用的凭据对嗅探器是否可见(我们使用的是 Windows 集成安全性,有时使用 SSL,但并非总是如此)。
请指教。
【问题讨论】: