IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 苹果藏在 iOS 14.3 中的新算法被发现,CSAM 检测技术再遭抗议! -> 正文阅读

[Python知识库]苹果藏在 iOS 14.3 中的新算法被发现,CSAM 检测技术再遭抗议!

还记得上周,苹果宣布即将推出 CSAM 检测系统时,遭到了 4000 多个组织及个人的公开反对,他们质疑苹果此举会破坏用户隐私和端到端加密机制。彼时,苹果给出的回答是:将利用一种名为 NeuralHash 的加密算法,不会直接查看用户相册。

本以为这个神秘的 NeuralHash 会在苹果力排众议真正推出 CSAM 检测系统时才能感受到,不曾想原来它早已藏在了 iOS 14.3 中!

近日,一位 Reddit 用户 Asuhariet Ygvar 通过逆向工程将隐藏在 iOS 14.3 中的 NeuralHash 完全“破解”,并在 GitHub 上分享了他用 Python 重建的整个 NeuralHash 算法,甚至在 macOS 和 Linux 上都可以尝试体验。

这还没完,在 NeuralHash 算法被公开的几个小时后,一件令苹果更为头疼的事发生了:一位英特尔实验室的研究人员 Cory Cornelius 发现 NeuralHash 存在“哈希冲突”的问题
在这里插入图片描述

一、隐藏在 iOS 14.3 中的秘密

据 Asuhariet Ygvar 在 Reddit 上的说法,NeuralHash 算法早就存在于 iOS 14.3,只不过藏在了模糊的类名之下因此难以发现。

在对隐藏的 API 进行挖掘时,Asuhariet Ygvar 发现了 NeuralHash,随后通过逆向工程将其模型(在 iOS 14.3 中名为 MobileNetV3)导出到 ONNX,并用 Python 进行重新构建。(注:ONNX 是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。)

经 Asuhariet Ygvar 研究,总体来说 NeuralHash 就是一种基于神经网络的图像感知哈希,具体步骤如下:

  • 将图像转换为 RGB 模式;

  • 将图像大小调整为 360x360;

  • 将 RGB 值标准化为 [-1, 1] 范围;

  • 用 NeuralHash 模型进行推理;

  • 将运算得到的 128 个浮点数向量与 96x128 矩阵相乘;

  • 通过单位阶跃函数将得到的 96 个浮点向量转化为二进制;

  • 将 1.0 和 0.0 的向量转换为比特,生成 96 位二进制数据。

相关代码及用法可前往其 GitHub 地址进行查看:https://github.com/AsuharietYgvar/AppleNeuralHash2ONNX。

说到这里,或许会有人提出质疑:苹果都没有发布过,他怎么就确定这是 NeuralHash 算法?

Reddit 上就有一位用户 @fourthie 在 Asuhariet Ygvar 的这则帖子下评论道:“能否详细解释一下你是如何知道你提取的模型与将用于 CSAM 检测的 NeuralHash 相同?”

对此,Asuhariet Ygvar 给出了 2 个理由:

  • 首先,模型文件的前缀“NeuralHashv3b-”与苹果文档中所提到的术语相同。

  • 其次,苹果文档中 Technology Overview -> NeuralHash 章节所描述的算法细节与 Asuhariet Ygvar 提取的模型完全一致。

例如,文档中提到:“其次,描述符通过哈希方案将 N 个浮点数转换为 M 位。这里,M 比表示 N 个浮点数所需的位数要小得多。”

这点可从以下 Asuhariet Ygvar 在 GitHub 上分享的代码得出:N=128,M=96。

在这里插入图片描述

此外,Asuhariet Ygvar 在 iOS 14.3 中发现的 NeuralHash 也能完美实现苹果文档中所描述的“无论调整图像大小或压缩图像,哈希值几乎不会改变”。

二、打脸苹果的 Bug

这两个强有力的理由赢得了许多人的信任,因此部分开发者立即着手研究 Asuhariet Ygvar 开源在 GitHub 上的 Python 脚本,理解其工作原理并试图搜寻漏洞的存在。

结果,苹果真的被“打脸”了:这个苹果此前反复强调安全的 NeuralHash 算法存在 Bug 并可被滥用

一位英特尔实验室的研究人员 Cory Cornelius 在 Asuhariet Ygvar 的 GitHub 下评论:你能验证下面这两张图存在哈希冲突吗?

在这里插入图片描述
在这里插入图片描述

Cory Cornelius 补充道,他根据 Asuhariet Ygvar 给出的 NeuralHash 用法进行操作,结果发现这两张迥然不同的图像的哈希值居然一模一样

$ 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

Asuhariet Ygvar 随后也证实了这个问题:“是的!我可以确认这两个图像在我的 iPhone 上生成了完全相同的哈希值,与你生成的一样。”

在这里插入图片描述

这种情况的出现,显然推翻了苹果在介绍 CSAM 检测系统文件所提到的描述“名为 NeuralHash 的哈希技术会分析图像并将其转换为特定于该图像的唯一编号”。

有开发者向 Cory Cornelius 提问能否因此制造哈希冲突,Cory Cornelius 给予了肯定回答:“我相信可以根据一些所需的哈希值,生成对应的灰度图像。”

三、苹果:这只是一个早期版本罢了

Cory Cornelius 的回答也就表示了 NeuralHash 算法不仅存在缺陷,并且还有被滥用的可能:如果有人借此创建出与色情图像或虐童图像的哈希值一致的“假图像”,并将其发送给苹果用户,那这些人岂不是都会被 CSAM 检测系统判定为可疑?

为此,有媒体向苹果询问了这个问题,苹果的回应却是:“用户在 GitHub 上分析的那个版本只是一个早期版本,并非是用于对 iCloud 照片进行 CSAM 检测的最终版本。”

此外,苹果还解释称,他们不仅依靠 CSAM 检测系统,还有“人工审查”这个双保险:苹果 CSAM 检测技术将在用户设备上运行,该系统依赖于国家失踪与受虐儿童中心 (NCMEC) 和其他儿童保护组织提供的已知 CSAM 照片的哈希数据库。当用户上传 iCloud 照片时,苹果系统会进行扫描确定是否有与CSAM 照片匹配的哈希值,如果匹配的次数超过 30,系统将其进行标记,并交由苹果团队人工审核

但苹果始终没有正面回应 NeuralHash 算法可制造“哈希冲突”的疑问,SIXGEN 网络产品总监 Ryan Duff 也表示:“看起来苹果的算法非常容易受到原像攻击。”

自本月苹果宣布即将推出 CSAM 检测系统以来,就不断被质疑和反对,许多隐私和安全专家都担忧这一系统恐会被滥用。而这几天 Asuhariet Ygvar 和 Cory Cornelius 的发现,又再次将人们抗议的声音推向了新高度,即使苹果及时回应似乎也无法缓和这持续了近半个月的反对浪潮。

那么你对苹果宣布推出的 CSAM 检测系统有什么看法?

参考链接:

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

  • https://www.vice.com/en/article/wx5yzq/apple-defends-its-anti-child-abuse-imagery-tech-after-claims-of-hash-collisions

  • https://github.com/AsuharietYgvar/AppleNeuralHash2ONNX

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-25 23:43:30  更:2021-08-25 23:43:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 23:48:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计