講個恐怖的故事。早上跟同事在微信閑談,聊起了一位女同事最近的變化。結(jié)果他反手就把文字打上馬賽克,截圖丟進了群里:
還欠欠兒地補了一刀:“@XXX,他說你壞話了呦~”萬萬沒想到,這位同事氣勢洶洶地走了過來,竟然直接點出了“秘密文字”的內(nèi)容。當(dāng)時的我是這樣的:
見狀,這位老師補充道:
都什么年代了,以為打馬賽克我就認不出來了?分分鐘還原好吧!
…… 好奇如我,馬上對這個技術(shù)展開了一番“調(diào)查”。(PS:聊天原圖在文末揭曉)
如何還原打了馬賽克的文字?
還別說,國外一家公司的首席研究員 Dan Petro(下文簡稱 Dan),這兩天就發(fā)布了這么一篇帖子。
他直接點出了重點:
打馬賽克(像素化),是一種非常不好、不安全,而且會泄露敏感數(shù)據(jù)的方法。
為了驗證他的說法,Dan 親自下場寫了一個名為 Unredacter 的工具。然后現(xiàn)場演示了一下,這個工具是如何一點一點把打了馬賽克的文字還原的:
從上面的示例中,不難看出,即便原文打了厚厚的一層馬賽克,在這個工具面前依舊像“裸奔”一樣?;蛟S你會說,這玩意兒操作起來會很復(fù)雜吧?不不不。非常之簡單,僅僅是 2 個步驟:
用 npm install 安裝依賴項
用 npm start 來啟動
雖然在 Dan 之前,已經(jīng)有類似的工具存在了,例如 Depix。但一個非常現(xiàn)實的問題就是,Depix 還原的文字,從視覺效果上并不是很好:
Depix 還原出來的文字,有些地方的還是糊糊的。因此,國外 Jumpsec Lab 的一位研究員指出了這個問題,并且還附上了一道比較有意思的挑戰(zhàn):如果你破解了密碼,請聯(lián)系我們。
這樣的挑戰(zhàn)便引起了 Dan 極大的興趣,這也就是他開發(fā) Unredacter 的原因。于是,在 Unredacter 的加持下,Dan 順利攻破了這項挑戰(zhàn):
而后 Dan 聯(lián)系上了這位研究員,在郵件的回復(fù)中,也證實了 Dan 的結(jié)果是正確的:
不僅如此,Dan 還介紹說,像類似用涂抹方式來打的馬賽克,無論是在 GiMP、Photoshop 或者其它編輯器中,結(jié)果都是一樣的。因此,他的破解方法應(yīng)當(dāng)是具備一定的通用性。
當(dāng)然,生活中我們或多或少都會有“打碼”的需求,既然馬賽克不安全,那有沒有更好的方式呢?Dan 對此的答復(fù)是:用黑色條來遮擋。
還有還原打了馬賽克的圖片
其實“還原馬賽克”這件事,AI 界早就有所研究。例如杜克大學(xué)提出的 PLUSE 便是其中之一,還登頂了 CVPR。但它修復(fù)的并不是文字,而是人像,例如:
從原理角度來看,它本質(zhì)上是生成對抗網(wǎng)絡(luò) (GAN)。PLUSE 主要是根據(jù)模糊的馬賽克像素,“畫”出新的一張張不存在的人臉,再壓縮回馬賽克狀態(tài)跟原圖比一比,把相似的版本拿出來展示。
當(dāng)然,這項技術(shù)也并非完美,也有翻車的時候。例如網(wǎng)友就拿馬里奧試了試,結(jié)果……
Emmm…… 這“味道”,不一般。
One More Thing
最后,來揭曉一下開頭故事的答案。
著實是個慘痛的教訓(xùn)了……
項目地址:
https://github.com/bishopfox/unredacter
參考鏈接:
[1]https://bishopfox.com/blog/unredacter-tool-never-pixelation
[2]https://labs.jumpsec.com/can-depix-deobfuscate-your-data/
[3]https://arxiv.org/abs/2003.03808
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。