我的实验
- 所以我用两台计算机建立了一个简单的网络。两台计算机都在同一个工作组中。
- 我在计算机 1 中创建了一个本地用户“A”,密码为“A”。
- 然后我在计算机 2 上创建了一个名为“A”的本地用户,并使用相同的密码“A”。
我的观察
- 我注意到的是,当我在计算机 2 上以“A”身份登录时,我被允许在计算机 1 上以“A”身份访问网络。例如,浏览“A”共享文件夹时。
我的想法
- 具有讽刺意味的是,尽管他们的名字相同,但他们实际上是两台不同计算机上的两个不同的本地用户!
- 对我来说,这可能是一个安全隐患。如果碰巧某人在计算机 2 上有相同的用户名和密码,从而错误地获得了计算机 1 的访问权限,该怎么办?
我的问题:
- 这种用户名和密码共享叫什么?
- 为什么同一网络上的两台 Windows PC 之间的名称和身份验证相同?
- 我们如何启用/禁用两台计算机之间共享相同的本地用户名和密码?
我还意识到这在 DCOM 调用期间也有效。
感谢您的回答
答案1
--- 这是一个非常高层次的总结概述,不要指望这里有任何技术性的东西 ---
让我们开始吧:
这种用户名和密码共享叫什么?
“按设计”......或者更具体地说,“直通身份验证”。
为什么同一网络上的两台 Windows PC 之间的名称和身份验证相同?
因为这就是它被设计用来做的事情。当 Windows 尝试访问网络资源,并且该资源需要身份验证时,它会发送其当前的用户名和密码。然后接收计算机验证此信息并返回成功或失败。(这真的非常简单,它没有实际上广播你的密码,但我要 KISS)。
我们如何启用/禁用两台计算机之间共享相同的本地用户名和密码?
老实说,这不是您想要的。主要是因为用户只需在凭据框中输入用户名和密码,然后获得与以前相同的访问权限。相反,您应该对共享/资源应用安全性,以确保只有您希望访问的人才能访问。
答案2
登录后,Win box 将获取您的密码并将其 LM 和 NT 哈希存储在内核内存中,以便在工作组和 NT4 域上实现此 SSO 功能。(在 Active Directory 域上,输入密码时获得的 Kerberos TGT 也会被存储。)用户空间程序不能直接使用这些哈希,但它们可以要求内核使用存储的密码/票证连接到 SMB 服务器,或者代表应用程序/服务执行 NTLM 质询-响应操作或 Kerberos 身份验证,以用于其他协议(如 IMAP 或 HTTP)。此外,Windows 使用 MD4 哈希进行本地身份验证和 NTLM,但这并不重要——如果需要,它也可以将纯文本密码保存在内存中。希望这能解释。