聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

金磊 發自 凹非寺

量子位 | 公眾號 QbitAI

講個恐怖的故事。

早上跟同事在微信上閒談,聊起了一位女同事最近的變化。

結果他反手就把文字打上

馬賽克

,截圖丟進了群裡:

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

還欠欠兒地補了一刀:

@XXX,他說你壞話了呦~

萬萬沒想到,這位同事氣勢洶洶地走了過來,竟然直接點出了“秘密文字”的內容。

當時的我是這樣的:

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

見狀,這位老師補充道:

都什麼年代了,以為打馬賽克我就認不出來了?分分鐘還原好吧!

……

好奇如我,馬上對這個技術展開了一番“調查”。

(PS:聊天原圖在文末揭曉)

如何還原打了馬賽克的文字?

還別說,國外一家公司的首席研究員Dan Petro(下文簡稱Dan),這兩天就釋出了這麼一篇帖子。

他直接點出了重點:

打馬賽克(畫素化),是一種非常不好、不安全,而且會洩露敏感資料的方法。

為了驗證他的說法,Dan親自下場寫了一個名為

Unredacter

的工具。

然後現場演示了一下,這個工具是如何一點一點把打了馬賽克的文字還原的:

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

從上面的示例中,不難看出,即便原文打了厚厚的一層馬賽克,在這個工具面前依舊像“裸奔”一樣。

或許你會說,這玩意兒操作起來會很複雜吧?

不不不。

非常之簡單,僅僅是2個步驟:

用npm install安裝依賴項

用npm start來啟動

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

還有還原打了馬賽克的圖片

但一個非常現實的問題就是,Depix還原的文字,從視覺效果上並不是很好:

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

Depix還原出來的文字,有些地方的還是糊糊的。

因此,國外Jumpsec Lab的一位研究員指出了這個問題,並且還附上了一道比較有意思的挑戰:

如果你破解了密碼,請聯絡我們。

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

這樣的挑戰便引起了Dan極大的興趣,這也就是他開發Unredacter的原因。

於是,在Unredacter的加持下,Dan順利攻破了這項挑戰:

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

而後Dan聯絡上了這位研究員,在郵件的回覆中,也證實了Dan的結果是正確的:

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

不僅如此,Dan還介紹說,像類似用塗抹方式來打的馬賽克,無論是在GiMP、Photoshop或者其它編輯器中,結果都是一樣的。

因此,他的破解方法應當是具備一定的通用性。

當然,生活中我們或多或少都會有“打碼”的需求,既然馬賽克不安全,那有沒有更好的方式呢?

Dan對此的答覆是:

用黑色條來遮擋。

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

還有還原打了馬賽克的圖片

其實“還原馬賽克”這件事,AI界早就有所研究。

例如杜克大學提出的

PLUSE

便是其中之一,還登頂了CVPR。

但它修復的並不是文字,而是人像,例如:

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

從原理角度來看,它本質上是

生成對抗網路

(GAN)。

PLUSE主要是根據模糊的馬賽克畫素,“畫”出新的一張張不存在的人臉,再壓縮回馬賽克狀態跟原圖比一比,把相似的版本拿出來展示。

當然,這項技術也並非完美,也有翻車的時候。

例如網友就拿馬里奧試了試,結果……

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

Emmm……這“味道”,不一般。

One More Thing

最後,來揭曉一下開頭故事的答案。

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

著實是個慘痛的教訓了……

聊天截圖厚碼也不安全,大神寫了演算法分分鐘給你還原

專案地址:

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