在我的 RHEL6 上,linux 配置为使用 MD5 密码散列,那么 Linux 使用 MD5 进行密码散列是否被认为是安全的?
答案1
虽然 MD5 在实际应用中仍然保持了其原像抗性(给定哈希值,很难获取消息),但它在用于身份验证时有一个很大的缺陷:它的速度太快。
短密码很容易被发现,使用彩虹表(包含许多常用密码及其各自哈希值的列表)或简单的暴力攻击(尝试所有可能的密码)。现代台式计算机在这方面非常擅长。使用 GPU 并行尝试多个密码的商业程序每秒可以尝试数十亿个密码。
这个问题可以通过选择一个足够长和/或复杂的密码轻松解决。较慢的算法可以用较弱的密码达到相同的安全级别。
此外,攻击者需要影子权限或对硬盘的物理访问权才能读取/etc/shadow
(存储哈希值的位置)的内容。这意味着任何能够读取哈希值的人都不需要破解您的密码即可访问您的计算机。因此,如果您只在那台计算机上使用密码,则无需担心。