微軟圖像加密算法被破解,谷歌等大廠都在用,MIT碩士小哥開源逆向所用方法
微軟號稱“永不會被逆向”的圖像加密算法,現在被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個預訓練模型。
現在只需通過一行訓練命令,就能實現從哈希值到圖像的轉換。
pythoninfer.py[--modelMODEL][--outputOUTPUT]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/
本文來自微信公眾號“量子位”(ID:QbitAI),作者:明敏,36氪經授權發布。