关于帐号密码安全问题

最近几年里出了不少帐号密码泄露的安全问题,各个提供互联网服务的企业对这个问题也更加重视。一方面,对于帐号密码的泄露情况,可能比人们担心的要普遍和严重,zack觉得自己的常用的几个密码,有人有心去查的话,定然是已经泄露的。另一方面,zack觉得有许多人对这个问题的理解是有误区的,主要存在于以下几个方面。

加密Hash算法的优劣问题

MD5 is bad. 这是最容易被提及的一个问题,这固然有其具体算法上的原因。但让其逐渐不再流行的根本问题在于它曾经太流行,因此已经存在了比较庞大的关于此hash算法的彩虹表。尽管许多hash算法从理论上说要构建彩虹表需要的时间巨大,但问题在于,计算这些hash的运算能力也在提升,因此从理论上来说,构建任何hash算法的彩虹表也是有可能的。

使用Salt增加安全性

使用Salt一方面是为了增加一点点解密的难度,还有一方面的原因是为了避免相同密码以相同的Hash值存储。在密码的解密过程中,先尝试破解重复频率高的Hash值也是常见的策略。加Salt值的方法,其实在最早制作Unix系统的基于DES的加密方法里就已经阐述了比较“标准”的过程。PHP 5.5之后的版本里,也提供了类似的接口。需要自己做接口的话,也就参照这两个流程就OK了。

密码只要足够安全,信息就足够安全

这其实是不好等同的概念,密码被加密,只是增加了解密的难度,这和密码信息的泄露没有太绝对的关系。无论是明文或是加密过的密码,一旦泄露,都是一样的风险。密码加密从本质上说,是保障帐号安全的重要措施之一,但并不等同于全部。设置多个复杂密码也是一样的,并不是绝对的安全,而是主要增加了暴力破解的难度,以及一个密码被破解之后的风险。限制错误密码的尝试次数,同样也是避免暴力破解的常用基础手法。

信息安全其实包含了太多的要素,对于个人来说,zack觉得关键是保护好与个人相关的关键信息。其实也许很多人都没意识到比如信用卡号,身份证号都是极其容易泄露,并且可以被利用做很多事情的信息。手机号码在如今也将成为一个大问题,因为现在很多在运营商处购买的合约电话号码,都附带了太多个人信息,这与当年只是随便买个手机卡号已经大不相同。因此,选择值得信任的服务平台很重要,对于无法把握可信程度的平台,最好就不要轻易提供任何与个人重要信息相关的内容。