我从未授权过一个会扫描我秘密信息的集成
一个家庭自动化项目因默认静默检查存储的密码是否出现在“Have I Been Pwned”泄露数据库中而遭到批评;它会把每个密码的 SHA‑1 哈希前五个字符发送给第三方服务。许多用户认为,即使是这种有限的数据共享,也违背了本地、注重隐私系统的预期,并且应当需要明确的 opt-in 同意,尤其是在信任、GDPR 和潜在信息泄漏方面引发担忧的情况下。争议还因维护者先前被认为轻蔑的回应而加剧——随后虽有道歉并推动更好的文档和 opt-in 模式——这使一些用户重新考虑对该平台的依赖。
功能与行为
- Home Assistant 的 supervisor 包含一个“pwned password”检查:它会用 SHA‑1 对秘密信息(例如 HA 配置中的密码)进行哈希处理,并仅将前 5 个十六进制字符发送到 Have I Been Pwned(HIBP),然后使用 k-匿名性在本地进行匹配。
- 这一行为已经存在多年,但最近的一次更改让警告显现出来,因此用户才注意到它。
- 有一个命令行标志可以禁用它,但此前未记录;现在有一个 PR 旨在将其改为默认需显式启用。
隐私、同意与预期
- 许多评论者表示,核心问题是隐私和同意,而不是密码学:
- 用户并不预期一个“本地、注重隐私”的家庭自动化系统会默认就把他们的秘密信息联系第三方服务。
- 一些人认为,任何未经请求的外发流量——“哪怕只是一个字节”——都是对信任的破坏,并违背了最小惊讶原则。
- 有人提到该项目自身的隐私表述以及“默认 opt-in 的云原则”,并表示这一功能与之相矛盾。
安全性与 k-匿名性之争
- 一派认为这种方案实际上是安全的:
- 只发送哈希的 5 个十六进制字符;中位桶大小很大。
- 攻击者本来就需要使用弱密码或已知密码;许多其他密码管理器也使用类似检查。
- 另一派则指出,有研究表明针对基于 k-匿名性的 HIBP 用法存在攻击:
- 前缀可能有助于暴力破解和密码猜测。
- 请求会泄露元数据(IP、某些密码可能存在的线索、软件使用情况)。
- 他们强调威胁模型未知,并主张尽量减少任何信息泄漏。
- 也有人认为,把这主要框定为安全问题具有误导性;它主要是隐私/信任以及“回传家”的问题。
法律与监管问题
- 一些评论者认为,由于 IP 地址以及将个人数据重新用于新目的,可能存在 GDPR 方面的问题。
- 也有人质疑仅凭哈希前缀是否属于 PII;总体是否合法被描述为不明确。
开发者回应与社区信任
- 最初维护者的回复被广泛描述为轻蔑、脱离语境且不必要地对抗(例如将用户担忧称为“威胁”,并建议他们自己 fork)。
- 之后的跟进包含了道歉、对该功能的澄清,以及改进文档的承诺;有人认为这是真诚的,也有人认为这是危机公关。
- 其他项目中的过往争议被提及,认为这加剧了人们对判断力和文化的担忧。
- 一些用户表示,这次事件让他们重新考虑是否采用或推荐 Home Assistant;另一些人仍然认为它优于以云为中心的替代方案,但也把这看作一次严重的信任失误。