当前位置: 首页 > news >正文

明文存密码成惯例?Facebook 6 亿用户密码可被 2 万员工直接看

近日,外媒发布了一份互联网安全的调研报告,报告中称Facebook曾将6亿用户的账号密码使用明文存储,且可以被Facebook内部员工随意搜索查看。据Facebook方面的消息人士称,纯文本存档的用户密码可追溯到2012年,在这期间有超过2万名员工搜索过这些信息。

不久,Facebook负责工程、安全和隐私的副总裁Pedro Canahuati在facebook Newsroom上发文证实确有此事:“2019年1月进行例行安全审查时,我们发现了一些用户密码以可读的格式存储在内部存储系统中。”

Pedro Canahuati强调目前这一安全问题已被解决,且这些密码没有被除Facebook以外的任何人看到,Facebook内部也没有发现任何滥用或不正当访问的行为。

根据2018年生效的《欧盟数据保护条例》:网络公司要在72小时内通知受隐私泄露影响的民众,并且公司要安全地存储用户密码。针对此次事件,Facebook也表示要将实际情况通知给数亿Facebook Lite用户、数千万Facebook用户以及数万Instagram用户。

Facebook的加密新措施

何为密码?百度百科的解释为使用者希望将正常的、可识别的信息转变为无法识别的信息。明文存储密码事实上已经失去了其为密码的意义。

该事件发生之后,Facebook如何来存储密码呢?据Pedro Canahuati称:“在最佳实践方面,Facebook会在创建帐户时会屏蔽密码,公司中的任何人都无法看到这些密码;在安全方面,将使用Hash+Salt来为密码加密,同时也会采用scry.pt算法和加密密钥,将真正的密码不可逆地替换成为一组随机字符。”

另外,针对共享、重用、密码被盗等情况,Facebook也建立了相应的安全措施:

  • 使用各种信号来检测可疑活动。例如,当输入了正确密码,但检测到密码是在无法识别的设备上输入,或者不是常用地登录,或是不在常用常用地登录,那么Facebook将会提出一个额外的验证问题,以证明此人是真正的帐户所有者。
  • 用户会接收到有关无法识别登录的警报。
  • 监测在不同服务中重用密码的情况。Facebook会密切关注来自其他组织的数据泄露通知和公开发布的被盗凭证数据库,检查被盗的电子邮件和密码组合是否与Facebook上使用的相同凭证相匹配,如果找到匹配项,会在下次登录时通知用户更改密码。
  • 为了减少对密码的依赖,Facebook引入了向帐户注册物理安全密钥的功能,因此下次登录时,用户只需要轻敲计算机USB驱动器中的一个小型硬件设备。这项措施对高风险用户来说尤其重要,例如记者、活动家和公众人物等等。

明文存密码成惯例?

2017年到2018年,有人进行了一项研究:计算机科学的学生是否会编写安全存储密码的代码。实验结果表明,在没有明确提示的情况下,没有任何一个学生实现了安全的密码存储。当研究者询问为什么没有实现安全存储密码呢?大多数学生表示,因为这只是个小实验,如果他们是为企业写代码,肯定会实现安全存储。

世上从不缺少“较真”的人,随后就有人进行了另一项实验。研究人员在网络上找到了43位自由职业程序员,让他们为Web应用程序的用户注册进行代码编写,并评估了他们是如何实施的密码存储。研究结果表明,有26个开发人员最初选择了将密码保存为明文。

当研究人员要求这43位开发人员重新写代码以实现安全地存储密码,他们选择的加密方案如下:

  • 8个人选择了Base64
  • 3个人选择了AES
  • 3个人选择了3DES
  • 10个人选择了MD5
  • 1个人选择了SHA-1
  • 5个人选择了SHA-256
  • 5个人选择了PBKDF2
  • 7个人选择了Bcrypt
  • 1个人选择了HMAC/SHA1

在使用MD5、SHA-1、SHA256和HMAC-SHA1这四种加密算法的开发人员中只有3个人加了salt散列。另外,Base64也不是一个很好的安全解决方案,但显然有很多开发人员并不这样认为。

从上面这两个例子中不难看出,无论是在校学生还是已经工作的技术人员,明文存储密码似乎正在成为“惯例”,而且即便开发人员有了加密意识,在加密方式和技术方面可能也会有所欠缺,无法完成高级别的加密。

相关文章:

  • 用grunt搭建自动化的web前端开发环境-完整教程
  • 强化学习遭遇瓶颈!分层RL将成为突破的希望
  • [改善Java代码]不同的场景使用不同的泛型通配符
  • Java 混淆那些事(二):认识 ProGuard GUI
  • yii2权限控制rbac之rule详细讲解
  • Solr简单介绍
  • 可视区域懒加载
  • 如何自学编程?学习方法在这里!
  • asp.net MD5 加密
  • js base
  • 「译」Node.js Streams 基础
  • SAP到SAP的升级 --- SAP行业新的金矿
  • EZOJ #257
  • iOS开发-开发总结
  • 2019年4月上旬值得一读的10本技术书籍(Python、大数据、深度学习等)!
  • Angular4 模板式表单用法以及验证
  • Apache Spark Streaming 使用实例
  • Git 使用集
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • php的插入排序,通过双层for循环
  • Sequelize 中文文档 v4 - Getting started - 入门
  • sessionStorage和localStorage
  • Swoft 源码剖析 - 代码自动更新机制
  • tensorflow学习笔记3——MNIST应用篇
  • 前端工程化(Gulp、Webpack)-webpack
  • 项目管理碎碎念系列之一:干系人管理
  •  一套莫尔斯电报听写、翻译系统
  • ionic异常记录
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • #define
  • (4)事件处理——(7)简单事件(Simple events)
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (一)WLAN定义和基本架构转
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Core引入性能分析引导优化
  • .NET NPOI导出Excel详解
  • .net 设置默认首页
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .net程序集学习心得
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .ui文件相关
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [Android]使用Android打包Unity工程
  • [bzoj2957]楼房重建
  • [bzoj4240] 有趣的家庭菜园
  • [C#]winform部署yolov5-onnx模型
  • [C#]winform利用seetaface6实现C#人脸检测活体检测口罩检测年龄预测性别判断眼睛状态检测