写点什么

Stack Overflow 泄露用户电子邮件信息

  • 2020-02-24
  • 本文字数:1224 字

    阅读完需:约 4 分钟

Stack Overflow泄露用户电子邮件信息


作为全球最知名的开发者问答网站,Stack Overflow发生信息泄露事件,涉及大多数用户。


2 月 23 日,一位名叫 Gajus Kuizinas 的开发者在 Medium 上披露,Stack Overflow 用户的电子邮件信息被泄露。


据了解,Gajus Kuizinas 正在为开发者服务工具GitSpo开发一个“Google Alerts”。他写道,“虽然我没彻底搞清楚它是什么,但是 GitSpo 增长迅速,并受到开发者们的欢迎。”具体说来,GitSpo 从不同的社交网络收集数据,比如 Twitter、LinkedIn、Stack Overflow 和 GitHub 等。一旦有开源项目在一些网站被提及,比如 Twitter、Reddit 和 Hacker News,GitSpo 就会给开发者发送提醒。


在这个事情推进过程中,Gajus Kuizinas 注意到一件事:Stack Overflow 默认用户配置文件正使用 Gravatar。


作为一项在全球范围内使用的头像服务,Gravatar允许你将头像和电子邮件相关联。只要你在 Gravatar 的服务器上传自己的头像,那你到任何一个支持 Gravatar 的网站留言时,这个网站都会根据你提供的电子邮件地址为你显示匹配的头像。


通过对用户的电子邮件进行哈希处理,它能找到用户头像,比如 Gajus Kuizinas 的电子邮件地址是 gajus@gajus.com,任何知道这个电子邮件的人都可以生成一个 Gravatar URL,然后加载 Gajus Kuizinas 的头像。


如下图所示(Gravatar URL):



据了解,这项服务于 2007 年推出,并在某种程度上快速增长,因为它是 WordPress 站点留下评论的默认头像。这个主意非常聪明,仅上传一次头像,你就可以在许多地方使用。



一旦更新你的 Gravatar,你的头像就会在所有网站获得更新。


Gajus Kuizinas 指出,不幸的是,它们选择的哈希算法(MD5)并不是特别安全。早在 1996 年以后,MD5 就被证实存在弱点,可以被破解。2004 年,证实 MD5 算法无法防止碰撞,因此不适用于安全性认证。


MD5 算法会通过哈希处理电子邮件,最后生成 Gravatar 图像,比如 md5(‘gajus@gajus.com’) === ‘74a5bd659b3a8af09a336a932eebe3b1’。Gajus Kuizinas 认为,即使在那时,使用 MD5 来散列 private data 依然是个糟糕的选择。现在,有包含超过 90 万亿个哈希值的 MD5 数据库。


为验证问题,Gajus Kuizinas 进行了一场实验。他选择 1000 个 Stack Overflow 配置文件的哈希值,并使用一种 MD5"解密“服务,结果该服务成功分析出 721 封电子邮件,成功率高达 72%。



Gajus Kuizinas 评论,“然而,有趣的用例不是获取电子邮件。众所周知,很多开发者的电子邮件地址是半公开的,比如可以从 GitHub 上找到开发者的电子邮件地址。由于 GitSpo 拥有所有公共 GitHub 用户和存储库的索引,因此我能添加关联的电子邮件地址,对其进行哈希处理,并与 Stack Overflow 匹配,最后成功找到 1000 个。“


而更严重的问题在于,Stack Overflow 不是唯一使用 Gravatar 服务的网站,还有一些其他知名网站,比如 WordPress、HootSuite、TechDirt 和 Disqus 等。


最后,作者提醒,最好不要依赖 Gravatar 作为新用户加入系统的服务。


参考文章:


Stack Overflow is leaking user emails


2020-02-24 15:362775
用户头像
万佳 前InfoQ编辑

发布了 681 篇内容, 共 393.1 次阅读, 收获喜欢 1805 次。

关注

评论

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

该不该签竞业协议?

石云升

程序员 话题讨论 28天写作 职场经验 3月日更

区块链电子合同应用平台-助力企业数字化转型

13530558032

阿里面经最新分享:Java面试指南/成长笔记(金三银四程序员必备)

比伯

Java 编程 程序员 架构 面试

进程调度算法

鲁米

算法

Git 常用记录

Leo

git 大前端

【回溯算法】借助最后一道「组合总和」问题来总结一下回溯算法 ...

宫水三叶的刷题日记

面试 LeetCode 数据结构与算法

饿了么刚给我确认了p7的职位,对自己的经历,做一个面试总结。

Java架构之路

Java 程序员 架构 面试 编程语言

如何写 Go 代码

Rayjun

Go 语言

说完列表说字典,说完字典说集合,滚雪球学 Python

梦想橡皮擦

28天写作 3月日更

5个身份和访问管理的最佳实践

龙归科技

数字身份 身份认证 身份安全 统一身份认证

【金三银四】这才是打开Java面试的正确方式,吃透这份【Java面试手册】offer稳了

Java 编程 面试

Elasticsearch Index Types and Mappings

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

互联网信贷风险与大数据 风险管理&信贷准入

张老蔫

28天写作

智慧党建系统开发,智慧组工平台建设

13530558032

正则表达式.01 - 元字符

insight

正则表达式 3月日更

该死的端口占用!教你用 Shell 脚本一键干掉它!

星安果

Shell 脚本 shell脚本编写 端口 端口占用

聊聊交易中台系统设计与思考

架构精进之路

中台 七日更

2021年阿里巴巴Java百亿级并发系统设计笔记(全彩版)

Java架构追梦

Java 阿里巴巴 面试 架构师 百亿级并发

LARAVEL SMTP 服务泄露,laravel env暴露

kaer

laravel 信息安全 漏洞 ENV SMTP

【LeetCode】下一个更大元素 II Java题解

Albert

算法 LeetCode 28天写作

程序员之禅(四)

每天读本书

读书笔记 每天读本书

《不看后悔》38个JVM精选问答,让你变成专家

Java 架构 面试 JVM虚拟机原理

mock 请求分发

blueju

JavaScript React Mock umi umijs

Spark性能调优-RDD算子调优篇(深度好文,面试常问,建议收藏)

五分钟学大数据

大数据 spark 28天写作 3月日更

架构大作业1

J

总结近期腾讯+阿里+百度Java岗高频面试题,提问率高达98%,看到这篇文章基本offer稳了

Java架构之路

Java 程序员 架构 面试 编程语言

微信团队分享:微信直播聊天室单房间1500万在线的消息架构演进之路

JackJiang

微信 架构设计 即时通讯

架构大作业2

J

区块链药品溯源解决方案-区块链技术监管医药溯源

13530558032

Flutter 2 来了

SamGo

flutter

两会热词“区块链”,打开传统溯源的一扇大门!

源中瑞-龙先生

区块链 两会

Stack Overflow泄露用户电子邮件信息_安全_万佳_InfoQ精选文章