混进iOS 14.3!网友爆出苹果CSAM检测技术出现哈希冲突_程序员大咖的博客-程序员宅基地

技术标签: python  机器学习  计算机视觉  深度学习  人工智能  

????????关注后回复 “进群” ,拉你进程序员交流群????????

来源丨新智元


  新智元报道  

来源:Reddit

编辑:Priscilla 好困

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

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

 

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

 

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

 

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

 

 

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

 

 

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

 

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

网友发现算法早已存在

昨日,Reddit用户AsuharietYgvar表示:

 

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

 

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

 

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

 

 

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

 

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则列举了这就是苹果所采用的算法的证据。

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

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

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

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

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

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

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

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

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

 

哈希冲突

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

 

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

 

哈希值同为59a34eabe31910abfb06f308

 

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

 

 

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

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

 

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

  1. 相同的输入一定得到相同的输出;

  2. 不同的输入大概率得到不同的输出。

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

这也就产生了哈希冲突。

 

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

 

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

 

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

 

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

 

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

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

 

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

 

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

 

 

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

 

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

 

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

 

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

 

解释?狡辩?

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

 

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

 

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

 

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

 

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

 

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

 

 

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

 

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

 

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

 

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

 

参考资料:

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

https://github.com/AsuharietYgvar/AppleNeuralHash2ONNX

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

点击????卡片,关注后回复【面试题】即可获取

在看点这里好文分享给更多人↓↓

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Px01Ih8/article/details/119860479

智能推荐

iOS tableView分区头自定义_ios tableview 自定义区头-程序员宅基地

// 设置分区高度 也可以使用代理方法_tableView.sectionHeaderHeight = 30;// tableView代理方法 设置分区高度(可以根据不同分区设置不同高度等实现自定义)- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)sectio..._ios tableview 自定义区头

Springboot+thymeleaf+IDEA——如何引入模版文件,fragment ,th:include_idea 加载 th:fragment-程序员宅基地

文章目录Springboot+thymeleaf+IDEA——如何引入模版文件,fragment ,th:include1、创建模版文件2、如何引入模版文件Springboot+thymeleaf+IDEA——如何引入模版文件,fragment ,th:include1、创建模版文件新建一个HTML5 文件<!DOCTYPE html ><html lang="en"..._idea 加载 th:fragment

linux信号系列文终结篇:信号的捕捉(含mysleep的实现)-程序员宅基地

高能预警本文主要介绍了信号捕捉的概念和方法,并用相关函数实现了与系统sleep函数功能类似的mysleep程序。本文主要内容有:1.信号捕捉的概念及其在内核中的实现机制2.信号捕捉相关函数介绍3.mysleep的实现(1.0版)拓展知识: 竞态条件(mysleep 2.0版)————>全文阅读大概需要8min(我真的发四)<——信号捕捉本系列文第一篇和第二篇中都讲到了进程对信号递达后的三种处理方式

Win2008安装11g报错:"orandce11.dll.dbl and orancds11.dll.dbl 文件找不到"-程序员宅基地

前几天在安装oracle 11g 64bit 时遇到了这个问题:解决的方法就是: 1.打开注册表,找到HKEY_LOCAL_MACHINE/Software/G...

gulpfile 编译运行_gulpfile.js 文件配置-程序员宅基地

1 //--本地服务器2 var gulp = require('gulp'),3 browserSync = require('browser-sync').create(),4 //SSI = require('browsersync-ssi'),5 reload =browserSync.reload,6 wat..._gulp 编译js

项目管理的49个过程_项目管理49个过程组-程序员宅基地

启动过程组:定义一个新项目或现有项目的一个新阶段,授权开始该项目或阶段的过程。规划过程组:明确项目范围,优化目标,为实现目标制定行为方案的过程。执行过程组:完成项目管理计划中确定的工作,以满足项目要求的过程。监控过程组:跟踪,审查和调整项目进展与绩效,识别必要的计划变更并启动相应变更的过程。收尾过程组:正式完成或结束项目、阶段或合同所执行的过程。 1.制定项目章程 批..._项目管理49个过程组

随便推点

Expo大作战(一)--什么是expo,如何安装expo clinet和xde,xde如何使用-程序员宅基地

简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网我猜去全部机翻+个人修改补充+demo测试的形式,对expo进行一次大补血!欢迎加入expo兴趣学习交流群:597732981【之前我写过一些列关于expo和rn入门配置的东i西,大家可以点击这里..._expo大作战(一)

c语言 大数加法运算程序,求用C编个大数加减法运算程序-程序员宅基地

该楼层疑似违规已被系统折叠隐藏此楼查看此楼只写过加法的,杭电的A + B Problem (II)(AC):#include #include #include #define N 3000int main(void){int n, i, j, k, p, q, a, b, t, up;char s[N];scanf("%d ", &n);for (i = 0; i < n; i+..._编写程序实现大整数的加法和减法运算

mysql字段创建时间和更新时间_`create_time` timestamp(0) null default comment '创-程序员宅基地

设计mysql表时,希望create_time为创建时的时间,update_time为更新时的时间,`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_T..._`create_time` timestamp(0) null default comment '创建时间',

UPC——Contest2969 - 2021秋组队训练赛第十四场_WTcrazy _的博客-程序员宅基地

C题Hakase and Nano博弈论// #pragma GCC optimize(3, "Ofast", "inline")#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int, int> pii;typedef pair<long long, long long> pll;const int N = 1e6 + 10;const int

2021年NBA季后赛第三轮晋级预测_2021年6月23日nba预测-程序员宅基地

2021年NBA季后赛第三轮晋级预测1、西部球队晋级预测如下:太阳VS快船,快船晋级。2、东部球队晋级预测如下:老鹰VS雄鹿,雄鹿晋级。3、之前预测2021年NBA季后赛第二轮,预测掘金、篮网、76人晋级,结果太阳、雄鹿、老鹰晋级。4、预测纯属个人观点。..._2021年6月23日nba预测

A Game of Thrones(44)-程序员宅基地

27.EDDARD(0)It’s the Hand’s tourney that’s the cause of all the trouble, my lords,” the Commander of the City Watch complained to the king’s council. “The king’s tourney,” Ned corrected,...