图像哈希碰撞与苹果的NeuralHash系统

苹果的NeuralHash系统是一个图像识别算法,它接受一张图片作为输入,并返回一个96位的唯一标识符(哈希值),理论上,如果两张图片“相同”(除了一些细微的扰动,比如JPEG伪影、缩放或裁剪),它们的哈希值应该匹配。然而,如果两张不同的图片有相同的NeuralHash,那么苹果的系统可能会错误地指控人们交易儿童性虐待材料(CSAM)。

发现,在现实世界中有两对不同的图片对具有相同的NeuralHash。在GitHub上创建了一个跟踪NeuralHash碰撞的项目。虽然从数学上讲,对于超过96位的图片进行编码到96位的空间中,必然会有碰撞,但苹果声称他们的系统足够强大,以至于在测试1亿张图片时,只发现了3个误报。

昨天,研究人员从最新的操作系统中提取了苹果用于哈希图片的神经网络,并将其提供给人们进行测试。很快,人们就创建了具有相同NeuralHash的对抗性图片。苹果澄清说,他们有一个独立的服务器端网络,在标记图片进行人工审查(然后升级到执法机构)之前,会用一个独立的网络验证所有匹配。

昨天讨论了使用OpenAI的CLIP模型作为概念验证,以减轻对苹果审查员的分布式拒绝服务攻击(DDoS)或对单个用户的攻击,这些用户用看似无害但实际上在苹果系统中看起来像CSAM的图片来陷害他们。

虽然系统的抗对抗性攻击能力是一个重要的研究领域,但更感兴趣的是独立验证苹果在现实世界图片上声明的误报率。苹果声称他们的系统“确保每年误报给定账户的机会不到一万亿分之一”——这现实吗?

为了测试这一点,决定在公开可用的ImageNet数据集中搜索不同语义图片之间的碰撞。为所有143万张图片生成了NeuralHashes,并寻找自然发生的碰撞。通过利用生日悖论和一种让能够在n(log n)时间内而不是naive的n^2时间内搜索的碰撞搜索算法,能够在几个小时内比较超过2万亿对图片的NeuralHashes。

发现了很多(8272)真正重复的图片(它们的文件内容逐位匹配),还有595个实际的碰撞,但经过手动检查,大多数都是算法正确执行的例子(它成功地检测到了轻微的扰动,如重新编码、调整大小、小裁剪、颜色变化、水印等)。

这些图片(正确地)有相同的哈希值,尽管一张的分辨率明显较低。这些图片的NeuralHash(正确地)匹配,尽管有箭头叠加。这些图片有相同的哈希值,尽管水印不同。这些图片由相同的哈希值表示,尽管一张的纵横比被拉伸了。

在ImageNet数据集中,有2个实际的碰撞例子是在语义上不同的图片之间。这张钉子和滑雪板的图片共享相同的哈希值,尽管它们是不同的!这两张斧头和线虫的图片不同,但共享相同的NeuralHash!这是一个误报率,每2万亿对图片中有2个(1,431,168^2)。假设NCMEC数据库有超过20,000张图片,这代表了比苹果之前报告的略高的比率。但是,假设数据集中少于一百万张图片,它可能在正确的范围内。

此外,发现的碰撞看起来与CSAM数据库中可能存在的碰撞不同——它们都有纯色背景。实际目标域中的图片的误报率可能更低,因为它们可能更接近训练数据。

已经开始了,用于记录已知的现实世界NeuralHash碰撞。截至发布时,不知道野外还有其他确切的匹配,但是在Twitter上发现了一些只变化2-3位的匹配。

请提交一个PR,如果在野外找到了任何(带有它们的出处,最好有证据证明它们在NeuralHash权重泄露导致人工生成碰撞泛滥之前就存在)。

结论:苹果的NeuralHash感知哈希函数比预期的表现得更好,ImageNet图片对的误报率可能与苹果在他们的1亿测试图片和未知数量的NCMEC CSAM哈希之间发现的相似。应该进行更多的研究,以确定实际的误报率,并计算无辜用户被标记的实际概率(毕竟,苹果现在有超过15亿用户,所以谈论的是大量用户的利益,这增加了即使是低概率事件显现的可能性)。

应该进一步探索人工创建的恶意图片的替代攻击向量(无害图片的NeuralHash与NCMEC数据库中的CSAM图片之一匹配)。自从昨天发布帖子以来,人工图片的质量已经显著提高——目前还不清楚,制作一张既能欺骗客户端NeuralHash又能欺骗苹果服务器端备份算法的图片有多难(同时对人工审查员看起来也是真实的)。如果系统的弹性取决于数据库哈希和服务器端模型权重保持秘密,那将不好。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485