明敏 發自 凹非寺
量子位 報道 | 公眾號 QbitAI
微軟號稱“永不會被逆向”的影象加密演算法,現在被MIT一位碩士小哥輕鬆破解了。
只用幾行程式碼,原本被加密為一串數字的圖片便“原形畢露”,可以看清其大致輪廓。
要知道,谷歌、Facebook、Twitter等大平臺對影象加密,用的都是微軟這一方法。
如今這麼輕鬆就能逆向?讓人細思極恐啊。
而無獨有偶,此前蘋果號稱不會被逆向的影象加密演算法,也曾被“破解”。
前不久,Facebook搞出了讓使用者上傳果照保護隱私的“清奇方法”,用到的也是類似原理。
這不禁讓人深思,Facebook上傳的果照,還安全嗎……
目前這一方法已經在GitHub上開源。
利用洩露編譯碼破解
小哥破解的是微軟在2009年時提出的影象加密演算法PhotoDNA,是業內最具代表性、最早出現的技術之一。
這一方法是微軟與達特茅斯學院Hany Farid教授共同研發,以識別刪除網路上流傳的兒童受害的照片。
透過將圖片資料打亂混合、重新建立一個雜湊值(hash values),它可以給每張照片匹配一個獨特的“數字指紋”。
由此,系統只需將已經標記為兒童被侵害圖片的雜湊值與其他圖片的值對比,一旦找到相同的數字串,便可判別其為非法圖片。
這種手段一方面可以很好保護使用者的隱私,同時還能快速甄別出網路上流傳的違規圖片。
但其關鍵就在於:該方法不可逆向,否則所有圖片資訊其實都在“裸奔”。
為此,微軟一直未透露PhotoDNA的演算法細節。
不過隨著前段時間蘋果NeuralHash演算法被逆向,一個可計算PhotoDNA雜湊值的編譯庫也被洩露了。
在此基礎上,MIT的這位小哥提出了名為“Ribosome (核糖體)”的逆向方法。
它將PhotoDNA看作一個黑盒,然後用機器學習的方法攻擊雜湊函式。
因為編譯庫已經被洩露,所以可以生成影象與雜湊值對應的資料集。
在這一資料集上訓練神經網路後,該方法便能根據雜湊值來逆向影象了。
小哥表示,PhotoDNA的雜湊值是144元素的位元組向量,他使用了類似於DCGAN和Fast Style Transfer的神經網路,在縮小卷積步長後使用殘差塊,從而轉換出100×100的影象來。
在開源專案中,小哥已經上傳了4個預訓練模型。
現在只需透過一行訓練命令,就能實現從雜湊值到影象的轉換。
python infer.py [--model MODEL] [--output OUTPUT] hash
具體結果如何?
小哥在不同資料集上都試驗了一下,可以看出大部分情況下都能還原出影象輪廓。
而且先驗越好,結果就會越好。比如在CelebA人臉資料集中,還原人臉的效果明顯最好(第二行第一個),而它在還原別的影象時,也會傾向於給出類似於人像的結果(如第一行第一個)。
不過此方法也有失敗的時候,比如Reddit資料集中,有些生成影象會存在偽影。
One More Thing
事實上,除了微軟之外,還有不少科技巨頭都在用雜湊演算法來加密影象。
比如我們前文提到的蘋果。
前段時間,他們推出了一種叫做NeuralHash的加密技術來遠端掃描使用者照片,以此來控制色情、虐童照片的傳播。
彼時蘋果一再強調該技術的安全性和隱私性。
但是不到半個月的時間,該方法就被一位程式設計師破解,還被另一位英特爾的工程師發現了bug。
前段時間,Facebook聲稱要讓使用者上傳果照保護隱私,用到的也是這種方法。
Facebook表示,他們會將你自己上傳果照的雜湊值標記,如果在網上發現了相同的數值,就會對該圖片做刪除處理。
但隨著這類方法不斷被成功逆向,其安全係數或許還有待人們考證。
網友們還開了個腦洞,認為Ribosome輸出的結果足以再用在解析度提升的模型上。
難道說還原高畫質影象也不是難題了???
不過,大家馬上想到此前曾把奧巴馬的低解析度照片還原成白人面孔的演算法。
嗯,這麼看來,從雜湊值得到原畫影象,似乎還無法實現(doge)。
所以這一波破解等於是洩露,但沒有完全露?
參考連結:
[1]https://www.anishathalye.com/2021/12/20/inverting-photodna/
[2]https://github.com/anishathalye/ribosome
[3]https://www.reddit.com/r/MachineLearning/comments/rkrcyh/p_inverting_photodna_with_machine_learning/
— 完 —
量子位 QbitAI · 頭條號簽約
關注我們,第一時間獲知前沿科技動態