
破解密码
|
319
身份验证过程是这样的,创建密码时对输入值进行哈希化处理,并存储该哈
希值。原始密码基本上是比较短的。它不会超过生成哈希值所需的时间。要
进行身份验证,用户输入用户名和密码。输入的值经过哈希化处理,然后将
生成的哈希值与存储的哈希值进行比较。如果值匹配,则用户成功通过身份
验证。但是由于存在冲突的可能性,因此这意味着你不需要知道或猜测原始
密码。你只需要提供一个可以生成与原始密码相同哈希值的值。这就是生日
悖论的实际应用,用它处理概率和哈希值长度。
这意味着我们的工作将会稍微容易一点,因为不一定要重新创建原始密码。
但是,这取决于哈希算法的深度。不同操作系统将以不同的方式存储密码。
Windows
使用安全账户管理器(
Security Account Manager
,
SAM
),
Linux
使用可插拔验证模块(
pluggable authentication module
,
PAM
)来处理身份验
证。这些可以使用标准的、基于文本的密码和
shadow
文件进行身份验证。
安全账户管理器
(
SAM
)
自从
Windows XP
问世以来,
Microsoft
就一直在使用
SAM
。
SAM
在
Windows
中是由注册表维护的,并且受到未授权用户的访问保护。但是授权
用户可以读取
SAM
并查找哈希化的密码。要获取破解的密码,攻击者需要获
得系统级或者管理员权限。
密码以前是用
LanManager
(
LM
)哈希存储。
LM
哈希存在很多问题。创建
LM
哈希的过程是通过填写密码或截断密码并将小写转换成大写来获取
14
字
节的值。然后将