天天看點

蘋果藏在 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 中的新算法被發現,CSAM 檢測技術再遭抗議!

一、隐藏在 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。

蘋果藏在 iOS 14.3 中的新算法被發現,CSAM 檢測技術再遭抗議!

此外,Asuhariet Ygvar 在 iOS 14.3 中發現的 NeuralHash 也能完美實作蘋果文檔中所描述的“無論調整圖像大小或壓縮圖像,哈希值幾乎不會改變”。

二、打臉蘋果的 Bug

這兩個強有力的理由赢得了許多人的信任,是以部分開發者立即着手研究 Asuhariet Ygvar 開源在 GitHub 上的 Python 腳本,了解其工作原理并試圖搜尋漏洞的存在。

結果,蘋果真的被“打臉”了:這個蘋果此前反複強調安全的 NeuralHash 算法存在 Bug 并可被濫用。

一位英特爾實驗室的研究人員 Cory Cornelius 在 Asuhariet Ygvar 的 GitHub 下評論:你能驗證下面這兩張圖存在哈希沖突嗎?

蘋果藏在 iOS 14.3 中的新算法被發現,CSAM 檢測技術再遭抗議!
蘋果藏在 iOS 14.3 中的新算法被發現,CSAM 檢測技術再遭抗議!

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 上生成了完全相同的哈希值,與你生成的一樣。”

蘋果藏在 iOS 14.3 中的新算法被發現,CSAM 檢測技術再遭抗議!

這種情況的出現,顯然推翻了蘋果在介紹 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

繼續閱讀