Windows 密码是如何处理?

Windows 密码是如何处理?

我正在寻找有关 Windows 如何处理用户密码的有用信息:

  • 使用了哪些算法(哪种哈希,它们是否使用盐,...)?
  • 密码存储在哪里?
  • 是否存在已知的漏洞?

特别有趣的是 Windows XP、Vista 和 7。

我无法用 Google 找到有用的信息,大多数页面都在讨论重置或破解工具,但我对理论很感兴趣。

答案1

使用了哪些算法(哪种哈希,是否使用盐,...)

存储了两个哈希值:LM 哈希为了兰曼,以及MD4哈希(也称为 NTLM 的“NT 哈希”)。

通常仅使用 MD4 哈希。它没有被加盐,因为 SAM 数据库仅可供群组AdministratorsNT AUTHORITY\SYSTEM内部账户访问。

LM 哈希仅出于兼容性原因而存储。(请参阅下文。)它非常不安全(它的历史始于 OS/2 和 MS-DOS),并且(我认为)几分钟内就会被破解。Windows 仅在登录旧服务器时使用它;但是,如果存储了它,可以使用 LiveCD 或类似工具提取它。

在 Windows 7 中,LM 哈希存储被禁用。在早期版本中,您可以在安全策略中手动禁用它(secpol.msc→ 本地策略 → 安全选项 →网络安全:不要存储 LAN 管理器哈希)。


密码存储在哪里?

安全账户经理数据库- 注册表的一部分,存储在 下%SystemRoot%\system32\config\

自 Windows 2000 以来,SAM 数据库另外加密默认情况下。<afaik>密钥分散在(同一个)注册表文件中,但仍然可以恢复。</afaik>但如果您愿意,您可以移动加密密钥到软盘驱动器,或者使用额外的密码。(启动时会要求您输入密码。)这可以通过使用系统密钥syskey.exe

(SYSKEY 支持在 NT 4.0 SP3 中添加,但直到 W2000 才默认禁用。)


是否存在已知的漏洞?

破解 LM 哈希?比你想象的还要难。 MD4似乎更安全,但一定要阅读维基百科文章。


在 Windows 9x 系列上 -不要指望任何事物比ROT26更好

相关内容