网站如何安全地存储和传输用户密码

不同角度对安全的定义

密码系统安全性应满足的条件

测量密码系统安全性的基本标准

除了一次性加密算法,理论上还没有绝对安全的密码系统。在实际应用中,只要能够证明所采用的密码系统是计算安全的,就有理由相信加密算法是安全的。[1]

安全地存储密码

OpenID的理念是用第三方来完成用户验证。

目前国外的网站如谷歌、雅虎等,国内的如腾讯等都已经提供OpenID服务。

如果我们开发一个网站并选择谷歌的OpenID服务,那么用户就可以用Gmail的账号和密码登录,接下来用户认证的事情将由谷歌完成。

优点:

  • 没必要自己存储用户名和密码,也就没必要考虑存储密码的安全性问题,从而减少开发的成本。
  • 用户不用在网站上注册新的用户名和密码。这样既免去了填写资料的麻烦,也减去了记住一对新的用户名和密码的负担。

常用的几种单向的哈希算法:

  • MD5(已被破解,不建议在产品中使用)
  • SHA系列(SHA1、SHA256、SHA384、SHA512等)

只使用哈希算法还是不够安全:

  • 猜测密码,找有没有相同的哈希值(类似离线攻击)

  • 彩虹表(事先计算好大量密码与对应的各种哈希算法的哈希值)

为了应对彩虹表,我们可以先往明文密码加盐,然后再对加盐之后的密码用哈希算法加密。

需要注意的是:我们要确保往每个密码里添加随机的唯一的盐,而不是让所有密码共享一样的盐。(否则可以针对这个盐生成彩虹表)

破解方法:

  • 穷举法。由于哈希算法的快速高效,任何6位的纯数字密码即使加盐之后也能在数秒之内破解。随着计算能力的提高,黑客们低成本并且高效地破解高级别密码愈发存在可能。
  • 通过历次密码泄露事件收集大量常用密码。这些常用的密码即使加盐也很容易破解。

为了应对暴力破解法,我们需要非常耗时的哈希算法。BCrypt算法应运而生。

BCrypt最大的特点是我们可以通过参数设置重复计算的次数。显然,重复计算的次数越多耗时越长。

PBKDF2同样也可以通过参数设定重复计算的次数从而延长计算时间。[3]

安全地传输密码

非对称加密的模式是:

  • 乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的
  • 甲方获取乙方的公钥,然后用它对信息加密
  • 乙方得到加密后的信息,用私钥解密。

即使黑客拿到了公钥,没有私钥也是没有办法解密,不考虑彩虹表的情况,完全可以长期使用一对秘钥。[6]

GPG加密

GPG全称 GNU Privacy Guard,是非对称加密。

如果你想给谁发送加密信息,首先你要得到他的公钥,然后通过该公钥加密后传给他,对方利用自己的私钥就可解密并读取文件了。[4]

RSA算法

对称加密的模式是:

  • 甲方选择某一种加密规则,对信息进行加密
  • 乙方使用同一种规则,对信息进行解密[6]

对称加密两种常用算法:

  • 分组密码:每次只对固定长度的比特块进行加密,比如DES;
  • 流密码:将提供的大量比特作为输入并可连续运行,从而加密;[5]

客户端和服务端进行通信,采用对称加密,如果只使用一个秘钥,很容易破解;如果每次用不同的秘钥,海量秘钥的管理和传输成本又会比较高。[6]

基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护。

特点:

  • 内容加密:采用混合加密技术,中间者无法直接查看明文内容。
  • 验证身份:通过证书认证客户端访问的是自己的服务器。
  • 保护数据完整性:防止传输的内容被中间人冒充或篡改。[7]

其它可能的攻击方式及相应的防范措施

这里只考虑从网站服务器上破解用户密码的方法。

通过代码在网站的用户验证环节试探用户的用户名和密码。

攻击之前需要获取网站的网站协议(http,https,ftp,pop3,…)、完整的登录url(一般不可见)、登录失败信息(Login failed,请检查用户名、密码,…)。

攻击流程:比如要攻击用户’Admin’的密码:使用程序循环模拟用户登录行为,从字典中依次选取密码,组装后向网站发送登录请求(request),接收网站的反馈信息(response)并加以分析,如果没有返回登录失败信息,说明攻击成功。

现有的软件工具:

  • 获取网站基本信息:BurpSuite
  • 表单密码破解:hydra

防范措施:

  • 验证码、滑块拼图、限制失败登陆次数等。无法彻底杜绝。[2]

将获取的哈希密码保存到本地,利用自己的计算机对密码进行离线破解。

必须要先判断密码的加密方式。之后将字典中的密码进行依次加密、比对。[2]

现有的软件工具:

  • John the Ripper
  • hashcat

防范措施:

  • 优化哈希密码的存储技术,采取特殊的加密方式等。

原文链接:https://www.cnblogs.com/wr786/p/12112042.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/18453

(0)
上一篇 2023年6月30日
下一篇 2023年7月2日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml