写点什么

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:362722
用户头像
万佳 前InfoQ编辑

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

关注

评论

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

web前端开发培训学习后的就业方向

小谷哥

开源无国界,从openEuler Maintainer到Spark Committer的贡献开源之路

openEuler

spark 开源 openEuler

国产分布式数据库发展趋势与难点

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库 企业号十月PK榜 企业号十月 PK 榜

流程引擎的架构设计

京东科技开发者

架构设计 报表 workflow BPM 流程引擎

使用Mask R-CNN模型实现人体关键节点标注

华为云开发者联盟

人工智能 华为云 mask 企业号十月 PK 榜

web丨nft元宇宙链游项目系统开发模式逻辑详细(成熟源码)

I8O28578624

React组件之间的通信方式总结(下)

beifeng1996

React

华为云确定性运维,为政务云平台稳定可靠运行保驾护航

华为云开发者联盟

云计算 华为云 政务云 企业号十月PK榜

全网首发“Java面试考点大全”,25+专题梳理:JVM+多线程+Spring全家桶+MySQL+Redis等

Geek_0c76c3

Java 数据库 开源 程序员 开发

带你认识JDK8中超nice的Native Memory Tracking

华为云开发者联盟

开发 华为云

自制操作系统系列(三):加载其他文件执行

操作系统

腾讯云继续加码布局云原生,将披露全新产品战略

科技热闻

PriorityQueue源码-成员变量解析

知识浅谈

Priority Queue 10月月更

SAST + SCA: 结合使用安全升级

SEAL安全

SCA 安全测试 攻击 SAST 应用安全测试

前端技术培训后的职业规划

小谷哥

React循环DOM时为什么需要添加key

beifeng1996

React

数据中台选型前必读:数据中台与大数据平台有什么区别

雨果

数据中台 大数据平台

资源成本降低80%!Serverless云函数的弹性架构实践

极客天地

单刷 3 届 Hackathon,朝着理想中的数据库出发丨TiDB Hackathon 选手访谈

PingCAP

TiDB

聚焦六大典型应用场景,博云金融行业容器解决方案更新发布!

BoCloud博云

云计算 云原生 容器云

阿里内部最新发布的并发图册+JDK源码速成笔记,终于解脱束缚了

Geek_0c76c3

Java 源码 程序员 JVM 开发

32天高效突击:狂刷《Java权威面试指南(阿里版)》,offer拿到手软

Geek_0c76c3

Java 数据库 开源 程序员 架构

react高频面试题自测

beifeng1996

React

给 SAP BTP 创建的 Java 应用添加 Custom Event Handler 支持创建功能

汪子熙

spring 云原生 Cloud SAP 10月月更

【LeetCode】合并两个有序链表Java题解

Albert

算法 LeetCode 10月月更

量化与科技的相遇!亚马逊云科技揭开神秘的量化私募

Lily

深度解析:智能合约DAPP(bsc)币安链系统项目开发解决方案

I8O28578624

数字化背景下,低代码发展的动力和阻力

飞算JavaAI开发助手

分享一个好问题:企业为什么要区分数据中台和数据平台?

雨果

数据中台 大数据平台

java培训机构口碑排名哪家比较好?

小谷哥

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