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