Linux 系统安全技术全解析
1. 密码文件与密码哈希理解
早期的 Linux 系统将用户密码存储在/etc/passwd文件中,这些密码经过哈希处理。哈希是一种单向数学过程,一旦生成哈希值,就无法从哈希值还原出原始密码字符。当用户输入账户密码时,Linux 系统会对输入的密码重新进行哈希处理,然后将结果与/etc/passwd文件中的原始哈希值进行比较。如果匹配,用户就会通过身份验证并被允许进入系统。
然而,将密码哈希值存储在/etc/passwd文件中存在问题。该文件的文件系统安全设置如下:
# ls -l /etc/passwd -rw-r--r--. 1 root root 1644 Feb 2 02:30 /etc/passwd可以看到,所有用户都可以读取这个文件。虽然密码是经过哈希处理的,但恶意用户创建了彩虹表。彩虹表是一个包含潜在密码哈希值的字典,例如,流行密码 “Password” 的哈希值为:
$6$dhN5ZMUj$CNghjYIteau5xl8yX.f6PTOpendJwTOcXjlTDQUQZhhy V8hKzQ6Hxx6Egj8P3VsHJ8Qrkv.VSR5dxcK3QhyMc.由于/etc/passwd文件中的密码哈希值很容易被访问,因此迟早会在彩虹表中匹配到哈希密码,从而暴露明文密码。 <