Oracle Password HASH 算法评估

今天收到邮件通知.Oracle 针对最近的一篇安全论文 An Assessment of the Oracle Password Hashing Algorithm 作出了响应. 这篇给 Oracle 带来麻烦的论文的作者是 SANS 的Joshua Wright 与 伦敦 Royal Holloway College 的 Carlos Cid.SANS在安全领域有很大的影响力. Oracle也不得不头疼. 论文中提到的安全问题主要有以下三个:

  • 弱的密码”盐”(salt) 如果一个用户名字为 Crack, 密码为 password,另一个用户为 Crac , 密码为 kpassword, 通过检查数据字典可以发现,密码居然是一样的! 因为Oracle是在 Hash 之前对用户名字加上密码的整个字符串进行处理的 (我们例子中的用户名字和密码拼在一起是一样的字符串).这给密码带来了不稳定性.
  • 密码不区分大小写 这一点算不上什么发现.Oracle 的密码向来是不区分大小写的.不过这次和Oracle的其他问题一起提出来,是有一点分量的.应用了 Oracle 10g 的 Enterprise User Security 密码是区分大小写的.
  • 弱 Hash 算法 .这部分的信息可以参考此前我介绍过的 Oracle 密码加密方式.因为算法的脆弱性,使得遭受离线字典破解密码的可能性大大增加.

两位作者在论文中也提到了相关的防范方法. 结合 Oracle Metalink 上的建议. 做个简单总结如下:

  • 对 Web 应用的用户权限加以控制.
  • 限制对 Password hashes 信息的访问. SELECT ANY DICTIONARY 权限应该仔细控制
  • 审计在 DBA_USERS 视图上的 Select 操作
  • 加密 TNS 传输内容
  • 增加密码长度(至少12位).应用密码有效期策略.密码应该字母数字混合以便增加复杂度等.

值得一提的是论文中提到一个工具 RainBowCrack ,作者 Zhu ShuangLei 似乎是华人 ?!


2 thoughts on “Oracle Password HASH 算法评估

Leave a Reply

Your email address will not be published. Required fields are marked *