别辜负信任 如何让密码存储足够安全

来源: 51CTO
2012/12/13 18:36:55
作为软件开发者,其中最重要的一个责任就是保护用户的个人信息,如果用户没有相关技术知识,他们在使用我们服务的时候,别无选择只能信任我们

分享到: 新浪微博 腾讯微博
本文关键字: 密码 存储 安全

作为软件开发者,其中最重要的一个责任就是保护用户的个人信息,如果用户没有相关技术知识,他们在使用我们服务的时候,别无选择只能信任我们。可惜的是,当我们调查关于密码处理的时候,我们发现有各种不同的处理方式,而这些方式有很多都不安全。虽然不可能构建一个完全安全的系统,但我们可以通过一些简单的步骤让我们的密码存储足够安全。

不应该:

首先让我们看看当我们构建一个需要用户认证的系统的时候不应该怎么做。

●在不得已的时候不要自己存储用户的认证信息。我们可以考虑使用OAuth的提供者例如Google、Facebook。如果构建企业内部的应用,可以考虑使用已有的内部认证服务,例如企业LDAP或者Kerberos服务。无论是面向公众的还是面向内部的应用程序,用户会喜欢这个应用,因为他不需要多记住一个ID和密码,同时也少了受黑客攻击的危险。

●如果你必须存储认证信息,不要存储明文密码。这句话就不解释了。

●不要使用可逆的加密方式,除非你在某种状况下真的需要查出来明文密码。因为在进行用户身份验证的时候并不需要明文密码去比对。

●不要使用过时的哈希算法,例如md5,在现在这个社会,有人可以通过构建一个超大的md5库来反向的查询出明文。换句话说md5哈希基本上没什么用,你要是不相信可以拿这个密文(569a70c2ccd0ac41c9d1637afe8cd932)去md5hacker上看看,几秒内就可以查出明文了。

应该:

说完了不应该做的,就说说应该做的:

●选择一个单向(不可逆)的加密算法。就像我上面说的一样,仅仅存储加密后的用户密码,用户每次认证就使用相同的算法加密后比对就可以了。

●选择一个你的应用可以承受的最慢的加密算法。任何现代的加密算法都支持在加密的时候接受参数从而使加密时间延长,而解密也自然就更难。(例如PBKDF2,可以通过制定迭代的次数来实现)。为什么慢了好呢?因为用户几乎不会关心他为了认证自己的账户额外的花销了100ms。但是黑客就不同了,当他进行上10亿次的尝试计算的时候,就有他喝一壶的了。

●选择一个流行的算法。美国国家标准与技术研究院推荐使用PBKDF2加密密码。

责编:chrislee2012
vsharing 微信扫一扫实时了解行业动态
portalart 微信扫一扫分享本文给好友
著作权声明:kaiyun体育官方人口 文章著作权分属kaiyun体育官方人口 、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
最新专题
网络安全热点透析

随着移动互联、大数据、云计算、物联网等技术的日益发展,在这些热点技术为个人生活带来便利的同时,也为企业发展..

数据安全医药行业解决方案

采用身份鉴别、访问控制、数据加密以及权限控制等多种安全防护技术手段,保障数据库中医药数据只能被合法用户合规..

    畅享
    首页
    返回
    顶部
    ×
    畅享IT
      信息化规划
      IT总包
      供应商选型
      IT监理
      开发维护外包
      评估维权
    客服电话
    400-698-9918
    Baidu
    map