时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

Dropbox 是如何安全地存储用户密码的

  • 2016-12-25
  • 本文字数:970 字

    阅读完需:约 3 分钟

不久前,来自 Dropbox 的 Devdatta Akhawe 在官网博客上公开了Dropbox 为保护用户密码安全所采取的措施。

存储密码明文是一件很拙劣的事情,相信不会有人这么做的。早在1976 年,计算机行业就推行了单向散列机制,我们存储的是密码的散列值,而不是密码本身。这种方式虽然杜绝了密码被反向破解出明文,但却阻止不了不怀好意的人对其进行暴力破解。暴力破解虽然耗费时间,但被“猜”出密码是迟早的事。SHA 散列算法速度很快,一个商用CPU 每分钟可以算出几百万个SHA256 散列值,而有些GPU 群集每秒钟可以算出几十亿个

加密和破解是一场你追我赶的长期斗争。Dropbox 作为一个应用范围很广的云存储解决方案,他们又是如何保证用户的密码安全的呢?

Dropbox 的加密机制构建在三层加密基础之上,从里到外就像洋葱一样层层叠加。他们先是使用 SHA512 散列算法对明文密码进行散列,然后针对散列值进行 bcrypt 再散列。为什么在 bcrypt 之前要先做 SHA 散列呢?有些 bcrypt 实现会把散列值长度截至 72 字节,从而降低了密码的熵值,而有的则允许变长密码,这样容易受到 DoS 攻击。使用 SHA512 散列可以得到固定长度的 512 字节散列值,避免了上述的两个问题。

在 SHA 散列之后是 bcrypt 散列。bcrypt 散列算法是一种加盐(salt)散列算法,每个密码都有不同的“盐”,并且是分开存储的。bcrypt 速度比较慢,这样就很难通过硬件加速来加快破解速度。而且 bcrypt 散列使用了成本因子 10(每个因子相当于每一步计算需要耗费 100 毫秒的时间),这样就更是加大了暴力破解的难度。

经过 bcrypt 散列之后,散列值会再次经过 AES256 算法的加密,这次加密会使用到秘钥,也就是所谓的“胡椒粉”(pepper)。胡椒粉也是被单独存储的,所以就算密码被偷了,没有这些胡椒粉,那些不怀好意的人也拿它们没办法。

经过 SHA512、bcrypt 和 AES256 的三层加固,用户就可以高枕无忧了。不过之前说过,加密和破解是一场永不停止的战争,所以 Dropbox 在保护用户密码安全这项工作上永不停息。三层加固只是其中的一个环节,他们还部署了应对在线暴力破解的防护层。另外,他们还在积极地研究更多能够给用户的安全锦上添花的解决方案。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-12-25 18:002640
用户头像

发布了 322 篇内容, 共 156.4 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

数实融合·绽放新机,Techo Day技术回响日邀您“云相聚”

腾讯云数据库

数据库 tdsql

阿里云正式开源PolarDB-X数据库,壮大云原生分布式数据库生态

Lily

老凡尔赛了!当亚马逊云科技大佬“转行”讲起脱口秀

亚马逊云科技 (Amazon Web Services)

数字化转型 设计师

docker 安装kafka

大可大大大

阿里云多个智物新品集体出道,持续加速产业智能化

Lily

翻车了,字节一道 Fragment面试题

小松漫步

面试 大厂面试 Android;

每秒创建百万文件,百度沧海·文件存储CFS推出新一代Namespace架构

百度大脑

人工智能

SimpleDateFormat线程不安全了?这里有5种解决方案

华为云开发者联盟

安全 线程 变量 SimpleDateFormat

模块一作业

周文

「架构实战营」

QCon看点|亚马逊云科技可持续软件工程实践分享

亚马逊云科技 (Amazon Web Services)

软件工程 S3 云端

会计CRM系统软件提高公司管理效率

低代码小观

企业 企业管理 管理会计综合实训平台 CRM 管理系统

同为aPaaS平台,华为云开天aPaaS与AppCube有何不同?

海比研究院

aPaaS

收藏!490家专精特新数智企业全名单:听听“小巨人”企业怎么说?

海比研究院

DeFi平台挖矿系统需求开发(现成案例)

官方线索|把梦想当作热爱,用技术创造价值!

搬砖人

1024我在现场

金九银十,面试必备!耗时一周整理的牛客网上最火Java面试八股文

Java 程序员 架构 面试 大厂

2021Android进阶学习资料,动脑学院vip课程百度云

android 程序员 移动开发

2021Android面试笔试总结!html5移动开发即学即用网盘

android 程序员 移动开发

架构设计第一周学习总结

周文

总结思考

付费云存储,微信的登云梯还是蜀道难?

海比研究院

云存储

阿里云隐私增强计算产品DataTrust助力产业间实现数据价值高效协同

Lily

2021Android大厂面试题来袭,Android性能优化推荐书

android 程序员 移动开发

Week 1命题作业

小朱

架构实战营

达摩院求解器升级 覆盖黑盒优化难题

Lily

腾讯云,五轮面试,六个小时,灵魂拷问,含泪拿下 60W offer

进击的王小二

java面试 大厂面试 java

DeFi去中心化DAPP系统软件开发案例(现成)

Android架构之网络优化

轻口味

android 10月月更

纵观移动云对象存储发展历程,也少不了 Apache APISIX 的能力加持

API7.ai 技术团队

API网关 企业案例 移动云 Apache APISIX

10天拿到腾讯Android岗offer,内容太过真实

android 程序员 移动开发

第 21 章 -《Linux 一学就会》- 结构化命令case和for、while循环

学神来啦

阿里云混合云Apsara Stack 2.0发布,加速政企数智创新

架构 操作系统 公有云 科技

Dropbox是如何安全地存储用户密码的_语言 & 开发_薛命灯_InfoQ精选文章