混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突

来源:Reddit

编辑:Priscilla 好困

【新智元导读】苹果计划推出在iOS 15中应用的CSAM检测系统备受争议。近日,一位Reddit用户发现CSAM算法竟被悄悄地「埋在了」iOS 14.3里。而算法公开几小时后,一位英特尔实验室的研究员就发现了其存在的缺陷:哈希冲突。


苹果偷偷将CSAM检测技术算法放进iOS14.3里!


前段时间,苹果宣布计划推出CSAM检测技术,能够扫描所有存储在iCloud上的照片,找出符合虐待儿童、儿童色情内容的照片(CSAM)。


该功能本该在今年9-10月份上线,却被Reddit网友发现CSAM检测技术的算法NeuralHash已经混进了现在的系统里


即便苹果的初衷是好的,但在大多数人眼里,苹果是在监视用户的一举一动。


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突


新闻一发布,GitHub上就有超过6000多家组织和个人签署联名信,强烈谴责苹果这项侵犯个人隐私的新技术。


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突


而德国有关部门也致信库克,希望苹果能够重新考虑CSAM检测计划。


但现在苹果却想要试图蒙混过关了吗?!


网友发现算法早已存在


昨日,Reddit用户AsuharietYgvar表示:


在iOS 14.3里,NeuralHash就已经隐藏在混淆类名里了。


Ygvar对隐藏的API进行了一些挖掘和逆向工程,成功将MobileNetV3模型导出到ONNX


还在Python中重建了整个NeuralHash算法,甚至可以在Linux上测试NeuralHash。


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突


苹果的NeuralHash是一种基于神经网络的图像感知哈希方法,并且可以不受对图像大小的调整和压缩的影响。


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突

https://github.com/AsuharietYgvar/AppleNeuralHash2ONNX


哈希算法的步骤:

  1. 将图像转换为RGB。
  2. 调整图像大小为360x360。
  3. 将RGB值归一化为[-1, 1]范围。
  4. 对NeuralHash模型进行推理。
  5. 计算96x128矩阵与所产生的128个浮点的向量的点积。
  6. 对产生的96个浮点数向量应用二进制步骤。
  7. 将1.0和0.0的向量转换为比特,得到96位二进制数据。


AsuharietYgvar则列举了这就是苹果所采用的算法的证据。


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突


首先,模型文件的前缀是NeuralHashv3b-,与苹果的文件中的术语相同。

(https://www.apple.com/child-safety/pdf/CSAM_Detection_Technical_Summary.pdf)


其次,苹果对算法描述的细节也与Ygvar的发现相同:


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突

「第二,描述符被传递到一个哈希方案,将N个浮点数转换为M位。这里,M远远小于 这里,M远远小于表示N个浮点数所需的比特数。」


从下面这两段代码中可以看到,N=128,M=96。


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突

混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突


此外,如果调整图片的大小或压缩图片,这个脚本产生的哈希值几乎没有变化,这又和苹果的文件中描述的一样。


值得注意的是,不同设备生成的哈希值会有几位的差异


这是由于神经网络基于浮点计算,精度在很大程度上取决于硬件。


对于NeuralHash这种有200多层的网络来说,会导致大量的累积误差


哈希冲突


公开代码后的短短几小时内,英特尔实验室的研究人员Cory Cornelius就发现了两张毫无关联的照片竟然有一样的哈希值


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突


$ python3 nnhash.py NeuralHash/model.onnx neuralhash_128x96_seed1.dat beagle360.png

59a34eabe31910abfb06f308

$ python3 nnhash.py NeuralHash/model.onnx neuralhash_128x96_seed1.dat collision.png

59a34eabe31910abfb06f308


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突

哈希值同为59a34eabe31910abfb06f308


随后AsuharietYgvar也证实了这个发现。


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突


哈希是将任意长度的数据映射到有限长度的域上,并使输出作为这段数据的特征。


同时,哈希算法所计算出来的哈希值(Hash Value)具有不可逆(无法逆向演算回原本的数值)的性质。


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突


通常来说,哈希算法具有以下特点

  1. 相同的输入一定得到相同的输出;
  2. 不同的输入大概率得到不同的输出。


但是由于通过哈希函数产生的哈希值是有限的,当输入数据量达到一定的程度时,就会导致不同的数据在经过哈希函数处理之后产生相同的值。


这也就产生了哈希冲突。


然而,早在8月8日,有技术人员就指出,NCMEC采用的PhotoDNA感知哈希算法存在缺陷


也就是说,如果有人利用被NCMEC标注的图片的哈希值改变其他图片,那么任何存储这些图片的人都将拥有儿童色情制品。


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突

https://www.hackerfactor.com/blog/index.php?/archives/929-One-Bad-Apple.html


微软表示「PhotoDNA的哈希值是不可逆的」。


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突

https://www.microsoft.com/en-us/photodna


而实际上,PhotoDNA哈希值可以投射到26x26的灰度图像中,只是有点模糊,但细节足以识别人和物。


而且逆向PhotoDNA哈希值并不比解开26x26的数独题更复杂,这是一项非常适合计算机的任务。


同样,Cory Cornelius发现苹果的NeuralHash也能被同样的手法欺骗。


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突


利用模型得到狗图像的哈希值,然后让模型去改变灰度图像,使其输出与狗图像相同的哈希值。


根据鸽巢原理可知,这是一个第二次原像攻击问题


对此,加州大学伯克利分校的高级研究员Nicholas Weaver表示:「这只是用一些垃圾图像骚扰苹果的响应团队而已」。


而SIXGEN公司网络产品总监Ryan Duff说:「看起来苹果的算法相当容易受到原像攻击」。


解释?狡辩?


苹果在一份白皮书中解释,CSAM检测技术将在用户的设备上运行。


检测技术会扫描用户上传到iCloud上的照片,将图像转换成哈希值后,与已知CSAM照片的哈希数据库进行比对。


如果两者哈希值匹配次数超过30次,系统就会标记这个图像,由团队审查。


而英特尔实验室研究人员发现两张图片哈希值相同后,苹果作出的解释是:


GitHub分析的版本只是一个通用版本。


如果照片30次的哈希值比对都一样,CSAM检测技术还有另一个非公开的算法。


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突


「非CSAM图像被对抗性干扰,令NeuralHash与设备上加密但CSAM数据库相匹配,导致超过了匹配阈值,这个可能性很低,但这个独立的哈希就是为了避免出现这种可能性。」


照这么说,Ygvar逆向出来的代码发生哈希冲突也没有关系,苹果还有「双保险」


但是,苹果似乎没有get到重点:


CSAM检测技术已经悄悄地安排上了。


混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突



参考资料:

https://www.reddit.com/r/MachineLearning/comments/p6hsoh/p_appleneuralhash2onnx_reverseengineered_apple/

https://github.com/AsuharietYgvar/AppleNeuralHash2ONNX

展开阅读全文

页面更新:2024-03-06

标签:冲突   英特尔   苹果   神经网络   浮点   灰度   向量   算法   模型   图像   发现   照片   网友   数据   用户

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top