“NeuralHash”有多獨特?
我今天正在閱讀有關一家大型科技公司計劃實施一個新系統來自動檢測和報告使用者照片中的 CSAM 的資訊。總體而言,他們 12 頁的技術摘要中描述的系統似乎設計得很好,並且可能盡可能接近真正的隱私,同時仍然允許內容監控。
話雖如此,當我的黑客聽到端到端加密的例外情況時,我不禁感到有點驚慌(並不是說他們的照片儲存被宣傳為端到端加密開始但是,他們的技術概述確實表明所有照片都使用使用者設備隨機生成的*門檻值可破解密鑰進行加密)。*因此,我來這裡是為了概述我認為對該系統的加密強度/隱私保證最現實的攻擊,並(希望)了解我為什麼錯了或我忽略了什麼。
假設這家公司曾經遭受過數據洩露:一開始不太可能發生這種情況,但並非聞所未聞。由於這次數據洩露,許多使用者的照片(加密格式)被洩露。如果採用真正的端到端加密,這不會是一個主要的隱私問題,因為所有照片都將使用只有最終使用者設備知道的密鑰進行加密,因此實際上不會被任何人解密網際網路。
然而,在這個新系統中,我的理解是照片,或者至少是它們的視覺衍生物(雖然我假設它類似於縮略圖,但我找不到定義),被加密兩次,外層被加密通過從照片的 NeuralHash 派生的密鑰。
NeuralHash 被描述為一種散列算法,能夠為同一圖像提供相同的散列,即使在該圖像經過裁剪、調整大小、顏色調整、壓縮等之後也是如此。
引用部分技術摘要:
散列的主要目的是確保相同和視覺上相似的圖像產生相同的散列,並且彼此不同的圖像產生不同的散列。例如,經過輕微裁剪或調整大小的圖像應被視為與其原始圖像相同並且具有相同的雜湊值。
這在理論上很好,因為這意味著使用者拍攝的所有(可能是唯一的)照片都將使用強大的、唯一的秘密進行加密,從而保證它們的私密性和安全性。
但是,當使用者儲存的照片不是唯一的時會發生什麼?例如流行網站的截圖、網際網路上流傳的模因等?如何阻止攻擊者生成流行表情包的 NeuralHash,派生密鑰,然後暴力破解洩露的數據,直到成功解密條目,從而驗證特定使用者的雲照片庫中的內容,並降低他們的隱私級別?
或者,再舉一個例子,假設攻擊者喜歡蘋果,並且非常非常想找到蘋果的照片。是什麼阻止他們讓 AI 生成幾百萬張蘋果的照片,對它們進行散列處理,派生密鑰,然後對可能的大洩漏進行暴力破解,直到找到匹配項?一個蘋果不可能有那麼多排列,不是嗎?可以肯定的是,您不會找到所有的蘋果照片,但我認為您至少能夠獲得一些可解密的匹配。
這家公司甚至在其一篇論文中透露,在匹配方面存在非零誤報的可能性,因此他們引入了門檻值秘密共享(即需要對他們的“已知壞消息”進行多次匹配) “在其內部加密級別被破壞之前的數據庫……更多關於下一個),將誤報的可能性降低到萬億分之一。給定的照片聲音在我的暴力範圍內,特別是如果您已經知道您正在尋找哪種類型的照片,那麼在任何情況下出現誤報匹配的可能性都大大低於萬億分之一。
最後一點,有一個門檻值加密的內層,它基本上要求在建構解密內層的密鑰之前解密多張照片的外層。但是再一次,根據門檻值大小(必須非常低,因為它需要小於某人可能擁有的 CSAM 的實際數量),這似乎不是一個大障礙:您只需要找到一個例如,在整個雲照片儲存庫中儲存了十個常見模因的使用者,您現在已經建構了該密鑰。根據該論文,相同的密鑰用於第一層加密的所有使用者照片。
歸根結底,我看到了這個系統在發生數據洩露時的安全和隱私保證,主要是:NeuralHash。
如果 NeuralHash 具有足夠高的誤報率,並且可以被逆向工程或被洩露或被公開(如果尚未公開),那麼這家大型科技公司能否真正向其使用者保證他們的私人照片將無條件保留私人的,只要他們不是 CSAM?我忽略了哪些加密保護措施,使像我上面描述的攻擊不可能發生?我錯過了什麼?你看到任何其他潛在的缺陷嗎?
更新:我不確定是否可以接受具體命名公司,所以我決定謹慎行事,不這樣做。話雖這麼說,我確實看到一些評論詢問來源,所以在這裡。我希望這有幫助!
版主補充(2021-08-19):Abhishek Bhowmick, Dan Boneh, Steve Myers: Apple PSI System - Security Protocol and Analysis中有技術細節。它是現在連結在本頁底部的幾個文件之一。
私有集合相交協議是互動式的。您與特定數據庫進行比較,然後在協議完成後,在交叉點中學到的唯一內容。如果交集是空的,那麼什麼都學不到。假設協議建構正確,保存的成績單將不允許以後學習任何內容。
然而,您重複蘋果公司聲稱它保護隱私的說法似乎是錯誤的。這裡的加密協議絕對不是為了使用者隱私的目的。使用者的隱私可以通過 Apple 向使用者發送不允許的雜湊列表和客戶端軟體告訴使用者是否匹配的明顯幼稚方案得到更好的保護:系統已經嚴重依賴於使用者的系統,否則會違反他們的利益使用者的系統可以對所有內容使用隨機的虛擬雜湊,因此 Apple 不妨發送列表。發送列表也將大大提高頻寬和 CPU 效率。
相反,私有交叉點的目的不是保護使用者的隱私:它是通過使使用者無法了解或證明有關數據庫內容的任何內容來保護 Apple 免於承擔責任。它保護 Apple 對您和廣大公眾的隱私。
正如您所建議的,數據庫可能包含流行的圖像嗎?或者將您辨識為特定宗教、種族或政治意識形態成員的圖像——準備好成為種族滅絕的目標?作為一個分享批評一個薄皮獨裁者的政治漫畫的人?對於不同的使用者或隨著時間的推移,該列表可能會有所不同嗎?破壞 Apple 基礎設施的黑客或國家行為者或列表創建者自己是否會秘密更改列表?絕對可以,而且密碼學已經到位,讓您發現或證明這些濫用行為在理論上是不可能的(不僅僅是計算上難以處理的)。
或者至少最明顯和最容易建構的 ECC PSI 方案具有資訊理論安全性,它們沒有提供足夠的技術細節來知道它們是否有。
私有集合交集的典型構造是讓您構造一個以圖像雜湊為根的多項式。Apple 會向您發送數據庫雜湊的 EC-elgamal 加密列表。加密是加法同態的:您可以獲取一個密文並添加另一個密文,結果是明文總和的有效加密。您還可以獲取密文並將其乘以您想要的任何值,結果是明文的有效加密乘以該數字。
您將在每個數據庫點評估您的圖像多項式,然後將結果乘以一個新的隨機數(每次評估都不同) - 您可以使用上述加法和乘法屬性來完成。如果有匹配項,您的評估將導致加密為零,而您的乘法將保留加密為零。當您將結果發回時,它們會“解密”並獲得零(匹配的地方)或隨機數。擴展這種方案以附加輔助數據是非常簡單的,Apple 只有在匹配時才知道這些輔助數據——這大概是他們獲取解密數據的方式。
在任何情況下,這種作弊都必須實時完成——而不是在記錄數據之後,至少在正確建構私有集合交集的情況下。