1992 年的一種演算法,是微信用來審查敏感圖片的關鍵技術!

程式碼示意圖,非文中所述 WeChat 審查程式碼。

中國政府實行嚴格的言論審查機制,中國人廣泛使用的通訊軟體 — 微信嚴守政府規範,對用戶內容進行審查。有個問題是,採用人工審查無法即時封鎖敏感訊息,使用機器學習又耗費大量運算空間,微信是如何即時審查用戶對話的?

答案是:MD5 雜湊演算法(MD5 Hash Algorithm)

雜湊演算法廣泛用於資料驗證

根據德國之聲的 報導 ,多倫多大學在 7 月 15 日發表名為《未閱先焚 2:Wechat 如何實現實時審查用戶對話中的敏感圖片》的 報告 。報告指出,微信的審查包括識別圖片中的敏感文字,以及與黑名單畫面中相似的圖片;為了實現及時與自動審查,微信採用了 MD5 雜湊演算法(中國稱其為 MD5 哈希演算法)。

雜湊演算法是一種從資料中建立小的數字「指紋」的方法。透過雜湊函式,可以將訊息或資料壓縮成摘要,使得資料量變小,並將資料的格式固定下來,具有不可逆的特性。常見的應用包含資料保護、傳輸、錯誤校正與檔案驗證等等。

雜湊和加密很像,但差別在於加密有密鑰,可以還原加密的檔案,但是雜湊沒有,所以經由雜湊演算法處理過的資料無法還原。雜湊演算法常被用來做資料驗證。傳送訊息時,資料傳送者會附上透過某個雜湊演算法算出的雜湊值,而接收資料的人會透過相同的雜湊演算法,計算接收資料的雜湊值,如果不一樣,代表接收到的資料並不是原始的資料。

微信透過雜湊演算法,達到即時審查的目的

由於具有驗證的功能,因此微信採用 MD5 雜湊演算法,去比對傳送的內容是否與敏感內容相符。圖片上傳後,該演算法讓圖片產生一個雜湊值,與敏感圖像的雜湊值進行比對,如果驗證通過,圖片就可以發佈。

使雜湊演算法的好處是運算快速,可以即時比對;缺點是不靈活,圖片內容只要有些微變化就會造成雜湊值改變,通過微信的審查機制。

因此微信也有非即時事後審查機制,防堵這些漏網之魚。根據多倫多大學的實驗,修改雜湊值的敏感圖片第一次可以發送成功,但幾秒之後再發送就會失敗。

六四天安門、孟晚舟事件、中美貿易戰都會被禁

在研究中,多倫多大學將審查圖片的主題分類。研究者建立一個測試圖庫,實驗發現,共有 212 張敏感圖會被過濾,其中新聞事件類有 60 張,內容包含文革、六四天安門、華為孟晚舟事件、中美貿易戰等等;至於社會抗爭類的有 25 張,例如劉曉波的照片。

雜湊演算法是廣泛應用的演算法,微信採用的 MD5 雜湊演算法早在 1992 年就被 提出 了,是種簡易的資料驗證方式。為了達成封鎖資訊的目的,除了人工審查,中國也大量採用科技審查;但除了高檔的機器學習之外,20 年前簡易的演算法也可以達成目的。然而追求自由的心已存在於人類歷史五千年,任何一種演算法都擋不了。

參考資料來源:
1.《德國之聲》:〈“ 未阅先焚”:微信聊天如何审查图片
2.《風傳媒》:〈 未閱先焚:中美貿易戰、范冰冰逃稅案都被禁!Wechat 如何在幾秒內屏蔽敏感圖片
3.《Just for noting》:〈 加密和雜湊有什麼不一樣?
(本文提供合作夥伴轉載。首圖來源:Max Pixel CC Licensed)

延伸閱讀

如何用 Python,寫出 Siri 和 Alexa 的自然語言處理演算法?
工程師好用資源來了!超完整 Python 查詢表,程式碼複製貼上不用自己寫
【工程師精選乾貨】100 行 Python,神經網路輕鬆搞定


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

點關鍵字看更多相關文章: