当前位置: 首页 > 编程日记 > 正文

明文存密码成惯例?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也不是一个很好的安全解决方案,但显然有很多开发人员并不这样认为。

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

相关文章:

pthreads 的学习

多线程学习参考的网站: http://www.ibm.com/developerworks/cn/linux/l-pthred/ 初探线程——pthread_create http://www.cnblogs.com/huangwei/archive/2010/05/19/1739593.html 转载于:https://www.cnblogs.com/nemo2011/archive/2012/05/02/2479163.html

Oracle不加IP无法登录,Oracle 无法通过IP连接问题

1.安装目录:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN2.listener.ora(里面的localhost或127.0.0.1改成机器名)# listener.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora# Generated by Oracle…

巧用gh-pages分支发布自己的静态项目

大家都知道可以通过github pages 发布自己的静态博客,然后通过 username.github.io 可以访问。例如我的博客可以通过 nqmysb.github.io 访问,不过我的已经绑定域名 https://liaocan.top ,所以会直接跳转到域名显示。但是我们通常有很多其他的…

【读书笔记】iOS-网络-解析响应负载

Web Service可以通过多种格式返回结构化数据, 不过大多数时候使用的是XML与JSON。也可以让应用只接收HTML结构的数据。实现了这些Web Service或是接收HTML文档的应用必须能解释这种结构化数据并将其转换为对于应用上下文有意义的对象。 一,XML 使用原生解…

What Are Words(一诺千金)

曲名:What Are Words(一诺千金)Anywhere you are, I am near Anywhere you go, Ill be there Anytime you whisper my name, youll see How every single promise I keep Cause what kind of guy would I be If I was to leave when you need…

oracle 插入 基准测试,oracle proc 插入操作性能优化实践

场景:student 表中 10万条数据。从 student 表中取出所有数据,插入到 student_his 表中优化方法:1.批量插入(效果明显)2.批量查询(效果不明显)3.批量提交(效果不明显)4.预编译 sql 语句(效果不明显)效果:10万条数据,普…

240个jquery插件

240个jquery插件 http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/File upload Ajax File Upload.jQUploader.Multiple File Upload plugin.jQuery File Style.Styling an input type file.Progress Bar Plugin. Form Validation jQuery Valida…

sql 优化 tips

索引就是排序 outer join笛卡儿积, inner join看情况。 可以用临时表加update的方式把outer join 替换成inner join提高性能。用union代替where中的or 和join(不同表时)join的列有索引,select 中的列能被索引覆盖到,消除执行计划中的lookup(lookup有时会…

第24课 《前端之路,以不变应万变》

今天的内容有些借鉴于业内大佬的内容,由于本人技术实在太渣,几乎没有可以用来演讲的素材。抱歉 大家好,我是来自存勖科技的Rocken。我今天演讲的内容是:前端的未来。大家都知道,前端所依托的基础直到上世纪九十年代才出…

php hasattribute,PHP DOMElement hasAttribute()用法及代码示例

DOMElement::hasAttribute()函数是PHP中的内置函数,用于了解具有特定名称的属性是否作为元素的成员存在。用法:bool DOMElement::hasAttribute( string $name )参数:该函数接受单个参数$name,该参数保存属性的名称。返回值:如果成…

搭建turnserver

参考文件: http://blog.csdn.net/kl222/article/details/20145423 为什么要搭建TURN服务器? 因为我们编写的sip客户端再和南瑞的sip服务器进行通信的时候,中间经过一个安全平台,这个安全平台具有NAT和防火墙功能。RTP和RTCP包传递…

【Android开发】:在任意目录执行NDK编译

2019独角兽企业重金招聘Python工程师标准>>> 文以简单的例子讲述如何在任意目录把自己写的C代码使用NDK提供的交叉编译该工具来编译成Android可使用的静态库/动态库。 1. 准备环境 首先,你得安装了Android的NDK编译工具,假设你的NDK的根目录在…

SurfaceView 间取得焦点

在SurfaceView中我们的onKeyDown虽然重写了view的函数, 但一定需要我们在初始化的时候去声明焦点 //添加这个来取得按健事件this.setFocusable(true);this.setFocusableInTouchMode(true);this.requestFocus();如果这些方法,会造成按键无效,提…

Oracle字符串转BooIean,利用Java的多线程技术实现数据库的访问.pdf

利用Java的多线程技术实现数据库的访问.pdf第 卷第 期 计算机应用22 12 Voi .22 , No . 12年 月2002 12 Computer Appiications Dec . , 2002文章编号: ( )1001 - 9081 2002 12 - 0121 - 03利用Java 的多线程技术实现数据库的访问刘 巍,唐学兵(武汉大学 …

Linux音频设备驱动

在Linux中,先后出现了音频设备的两种框架OSS和ALSA,本节将在介绍数字音频设备及音频设备硬件接口的基础上,展现OSS和ALSA驱动的结构。17.1~17.2节讲解了音频设备及PCM、IIS和AC97硬件接口。17.3节阐述了Linux OSS音频设备驱动的组…

japid-controller自动绑定的数据类型

参考文献:http://www.playframework.org/documentation/1.2.3/controllers 当参数名和HTTP请求中的参数名(即界面中的name)相同时,后台Controller可以直接获取该变量的值。变量分两大类: 1. Simple types 所有的基本数…

NAT,Easy IP

R3配置 [V200R003C00] #snmp-agent local-engineid 800007DB03000000000000snmp-agent #clock timezone Indian Standard Time minus 05:13:20clock daylight-saving-time Day Light Saving Time repeating 12:32 9-1 12:32 11-23 00:00 2005 2005 #drop illegal-mac alarm #…

linux用户在哪个文件夹,LINUX中用命令成功建立一个用户后信息会记录在哪个文件中...

LINUX中用命令成功建立一个用户后信息会记录在哪个文件中发布时间:2007-07-28 10:14:57来源:红联作者:MPiops增加用户帐号后新建用户的命令十分简单,在命令行下使用 useradd 命令:useradd david该命令做了下面几件事:1)在 /etc/passwd 文件中…

iOS开发—block介绍

- (void)viewDidLoad {[super viewDidLoad];NSLog("我在玩手机");NSLog("手机没电了");[self chargeMyIphone:^{NSLog("出门逛街");}];NSLog("我在看电视"); }-(void)chargeMyIphone:(void(^)(void))finishBlock {double delayInSecon…

Sap Byd Soap使用 SSL 客户端证书

1.修改通讯安排为使用SSL客户端证书2.设置客户端证书上传证书,或者上传并下载证书3.用SoapUI 测试系统选择下载来的证书,或者自己创建的通讯证书,并输入密码配置好后就可以测试系统了4.关于验证失败.byd 系统 有时候,系统生效会比较慢,如果不行,请等待3分钟,还是不行,从头在试下…

IOS开源项目汇总

扫描wifi信息:http://code.google.com/p/uwecaugmentedrealityproject/http://code.google.com/p/iphone-wireless/ 条形码扫描:http://zbar.sourceforge.net/iphone/sdkdoc/install.html tcp/ip的通讯协议:http://code.google.com/p/cocoaas…

linux命令face,linux下配置face_recognition

1、如linux下已有python2.7,但需要更新一下python 2.7至python2.xsudo add-apt-repository ppa:fkrull/deadsnakes-python2.7sudo apt-getupdatesudo apt-get upgrade2、部署步骤安装Boost, Boost.Pythonsudo apt-get install build-essential cmakesudo apt-get install libgt…

微服务系列(五):事件驱动的数据管理

编者的话|本文来自 Nginx 官方博客,是「Chris Richardson 微服务」系列的第五篇文章。第一篇文章介绍了微服务架构模式,并且讨论了使用微服务的优缺点;第二和第三篇描述了微服务架构模块间通讯的不同方面;第四篇研究了…

js基础知识温习:Javascript中如何模拟私有方法

本文涉及的主题虽然很基础,在很多人眼里属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。 公有方法 公有方法就是能被外部访问并调用的方法。 // 在对象中 var R…

格式化测试数据,组装用于插入表中的sql语句

最近闲的蛋疼,每每在写测试例子的时候,万恶的测试数据需要手工书写insert语句的向表中插入,很费事,于是就像写个脚本来实现自动生成插入语句 测试数据: 100 北京 20120203123 100 天津20120203123 101 湖南20120203nul…

linux内核功能有,好消息!LINUX内核2.6.18终于支持实时功能了

LINUX内核2.6.18终于支持实时功能了,这是个好消息。当LINUX实时功能加强后,它在嵌入式系统的应用就会更广泛了。在这一版发布前,为了使嵌入式系统的LINUX具有实时特性,需要给标准和LINUX系统加上具有实时功能的补丁。实际上,就算是…

Asp.Net 构架(HttpModule 介绍)

Http 请求处理流程 和 Http Handler 介绍 这两篇文章里,我们首先了解了Http请求在服务器端的处理流程,随后我们知道Http请求最终会由实现了IHttpHandler接口的类进行处理(应该记得Page类实现了IHttpHandler)。从 Http 请求处理流程 一文的最后的一幅图中…

.net下WinDbg使用说明

加载调试文件 .loadby sos mscorwks #.Net 3.5版本及以下 .loadby sos clr #.Net 4.0 WinDbg的基本命令 !threads #显示所有线程 !dumpheap #显示托管堆的信息 !dumpheap -stat #统计堆栈内存 !clrstack #显示调用栈 !dumpobj #显示一个对象的内容 !dumparray #显示数组…

【系列】EOS开发3 EOS提供的程序和工具

上一篇文章使用了nodeos命令来启动eos服务,这一篇文章,就来介绍一下eos提供的相关程序和工具。 nodeos EOSIO的核心守护进程,它可通过插件配置来启动一个节点。 cleos 这是一个命令行工具,它跟nodeos开放的REST API接口进行交互。…

Linux qgis 编译,QGIS简介与源代码编译

QGIS(http://qgis.org)是一个集成了很多个开源的空间数据处理库的桌面GIS软件,支持Python脚本。QGIS基于QT和SIP进行开发,支持Windows\Linux\MacOS等操作系统,可以访问MySQL/PostGRE等数据库的空间数据,可以连接到OpenstreetMap拉…