打碼圖片也能破解?這位大佬做的解碼工具太暴力了!_風聞
差评-差评官方账号-2022-02-19 07:22
本文原創於微信公眾號:差評 作者:世超
最近國外一家技術公司的大佬 Dan Petro 發佈的一條帖子,在國外的程序員圈子裏引起了不小的轟動。
並且這條帖子應該可以説和各位息息相關了, 他在自己的帖子中告誡網友們,用像素化給圖片打碼,是一個非常不好並且不安全的方法。
你打碼的信息,很容易被修復,然後造成隱私泄露。

主要原因呢,就是這位大佬開發了一個用於破解像素打碼的小工具,並且作為一款開源軟件,上傳到了 GitHub 上。
每個用户都可以免費下載到這個小工具,用來破譯網上打了馬賽克的圖片。

我知道你們看到這種傳播“ 火種 ”的行為,都要激動的立馬去 GitHub 下載這個工具,然後掏出自己珍藏的學習資料。

但是很遺憾,這玩意不是用來去除靜態圖像馬賽克的。
目前的去除圖片上馬賽克的技術,都是通過 AI 去數據庫中模擬對比相似的內容,再拼湊出像素運動的規律模擬還原。
也就是讓 AI 來 “ 畫 ”,再壓縮回馬賽克狀態跟原圖比一比,最後把相似的版本拿出來展示。
但 Dan 開發的這個工具,主要是用來破譯打在英文字母上的馬賽克的,而且成功率賊高。
並且 Dan 還在自己的帖子中,詳細的講明白了,自己開發這款 Unredacter 解碼工具的原理。

其實吧,這個破解馬賽克的過程並沒有差友們想象中的這麼神秘。
差友們隨便打開一個打碼工具,然後給下面這串英文打上馬賽克,大概就能夠得到這麼一張普通至極的“ 低清打碼圖片 ”了。

在你打碼的過程中,算法會把圖像劃分為一個個固定像素大小的色塊,再把每一小塊的像素塊,進行一個“ 塗抹 ”處理。
讓一張清晰的圖片,變成很多個深淺不同的黑白灰色塊。
就拿下面這張圖片舉個例子吧:如果大家要給下面這張圖片打碼,算法會把圖像分為多個由 8×8 個像素組成的方塊,然後把方塊裏所有像素的顏色勻一勻,塗抹成不同灰度。

雖然説碼是打上了吧,但是這種常規的方式,卻依舊在打碼後的圖片上,留下足夠破譯圖片信息的線索。
因為馬賽克打碼的算法,就是固定的這麼兩步操作:首先分割圖片,然後用一個平均值“ 塗抹 ”每一個方塊。
所以理論上,只要我們瞭解打碼這種簡單粗糙的算法邏輯,就能夠倒推過來,破譯打碼的圖片。
只要判斷出每個方塊的大小,再逐個對比鍵盤上所有字符打碼前後的效果,就可以找個那個字符。
直接來看看這款強大的解碼工具的效果吧:

其實早在 Dan 開發 Unredacter 解碼工具之前,市面上早就有用這種邏輯解碼的工具了,但是由於一些技術問題,這些解碼工具的正確率並不高。
比如像字符溢出的問題:在解碼的過程中,是不能保證文本字符和這些像素塊 1:1 完全對齊的,比如這種字符正好卡在了兩個方塊中間的尷尬情況。
而這也給解碼工作造成了很多困擾。

還有字體不一致問題,雖然這些在電腦上的英文字母,用肉眼看起來都一樣,但是由於不同的渲染引擎,會讓這些顯示在電腦屏幕上的字母,都會略有不同。

上面兩個字體就是由兩種不同的渲染引擎生成的,他們在字符長度上有一些細小的區別,這些區別在打碼過程中會產生一個連鎖反應。
但是如果你要做解碼破解,它們會帶來無窮的麻煩。類似的技術問題還有很多。
Depix 這個解碼工具,在這些技術細節上並沒有給出一個很好的解決方案。
所以效果嘛,也就只能算是馬馬虎虎了。
我唱出來了。。。 ▼

由於 Depix 解析出來的字母,實在是太過模糊,所以網上有很多程序員懷疑用這種思路設計出來的解碼工具是否可靠。
甚至還有一位叫做 Jumpsec Lab 的程序員更是跳出來質疑,並且向全網發起了一項挑戰:
他給出了一張已經被碼到面目前非的圖片,説只要有人能夠破譯這張圖片,就可以聯繫他。

而 Dan 正是看到了這個挑戰,才決定自己開發一個解碼工具,在 Depix 的基礎上做一些技術細節上的修正。
Dan 在自己開發的 Unredacter 解碼工具中把這些問題都解決了,他也成功破譯了 Jumpsec Lab 的這個挑戰,解析出來的字母可以説是非常清晰了。

可以説放到今天,用馬賽克打碼是極其的不靠譜。
聊了這麼多用馬賽克打碼的漏洞,相信一定會有好奇的小朋友要問了:
那麼有沒有更加安全的打碼方式呢?
當然有了,就是直接用大黑條,或者是一道“ 聖光 ”給糊上就可以了,保證不會有任何多餘的信息泄露!

以上就是 Dan 在自己的帖子中分享的關於馬賽克不安全的一些論證和技術,反正世超看完之後是大受震撼。
其實馬賽克這項技術已經被我們使用了很多年了。
互聯網技術的發展,其實很大程度上都是靠着:出現新技術,然後破解技術。這種無休止的攻防對抗下前進的。
而現在也已經有越來越多破譯馬賽克的手段了,誰知道會不會在未來的某一天,即使打在靜態圖片上的馬賽克可能被去除呢?
希望大家在給自己的圖片打碼時也能多個心眼,以防隱私泄露帶來不必要的麻煩。
圖片和信息來源:
Never, Ever, Ever Use Pixelation for Redacting Text
https://github.com/bishopfox/unredacter
谷歌圖片
