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