部落格

模糊後的截圖安全嗎?我們試著把它還原回來

作者 InSnap · 發佈於 · 模糊, 馬賽克, 隱私, 遮蔽, 截圖

模糊後的截圖安全嗎?我們試著把它還原回來

我們用 InSnap 對一組真實的 ID 做馬賽克與模糊,再以 OCR 與反卷積嘗試讀回。哪些強度守得住、哪些會外洩,以及該改用什麼遮蔽方式。

輕微的模糊並不安全;在我們的測試中,強的模糊與馬賽克守住了,但只針對我們所用的那種攻擊。我們用 InSnap 自己的馬賽克與模糊程式碼,對一段真實字串做了模糊與像素化,然後嘗試把它讀回來。模糊強度低時,文字能被讀回;使用預設值時則不行。

這並不代表模糊適合用來藏密碼。它只說明了一個樣本的危險邊界在哪裡,而一個執著的攻擊者擁有的工具比我們用的多。凡是絕對不能外洩的內容,請直接遮住或裁掉。

我們的測試方法

我們使用 InSnap 本身就有的一段字串:設定中的裝置編號(A1B2-C3D4-E5F6-7890),以一般介面文字大小、Retina(2 倍)截圖的方式呈現。

  1. 用 InSnap 自己的馬賽克,強度分別為 5、8、10、15 與 25;模糊則為 1、2、3、5、8 與 12。預設值是馬賽克 15、模糊 3。
  2. 把遮蔽後的那一行裁切出來,就像截圖分享出去時那樣。
  3. 用 InSnap 的 OCR 讀取。這就是「分享出去」時的結果。
  4. 對模糊的結果,嘗試把它還原。我們使用維納反卷積(Wiener deconvolution),這是標準的影像復原方法,並把精確的模糊大小告訴攻擊者。我們也在把模糊裁切圖存成品質 85 的 JPEG 後重做一次。

馬賽克沒有對應的還原步驟。它的每個區塊只保留一個平均值,所以唯一的途徑是猜測候選文字,而我們沒有嘗試這種做法。

還原被遮蔽文字的讀回結果

得到的結果

處理方式強度分享出去時讀取的結果還原嘗試之後
馬賽克5 到 25(預設 15)什麼都讀不出來不適用
模糊1完整字串完整字串
模糊2什麼都讀不出來字串的 65%,還原後的圖用肉眼大致可以辨認
模糊3(預設)什麼都讀不出來什麼都讀不出來
模糊5、8、12什麼都讀不出來什麼都讀不出來

品質 85 的 JPEG 幾乎沒有改變結果:模糊 1 仍然完整還原,模糊 2 得到類似的部分還原,模糊 3 及以上則沒有。

有兩件事特別值得注意。模糊 1 根本不算遮蔽,分享出去的文字直接就讀得到。另外,模糊 2 對 OCR 看起來讀不出來,但還原處理卻把大部分字元找回來了。OCR 的能力是攻擊者能讀到的下限,而不是上限。

這代表什麼,又不代表什麼

  • 只有一個樣本。 字較大、字串較短、背景單純,都比較容易還原;小字放在雜訊多的背景上比較難。請把確切的強度數字當作示意,而不是門檻值。
  • OCR 是很弱的讀取器。 人或專門設計的工具可以做得更好,模糊 2 那一列就是例子。
  • 我們沒有攻擊馬賽克。 像 Depix 這類工具,會用已知字型中的候選字元去比對,嘗試還原像素化文字,據報導對方框平均值式的像素化也有效。「OCR 讀不出任何東西」並不等於「無法還原」。
  • 預設值守住了,調弱的設定沒有。 風險在於:為了讓截圖看起來好看,把滑桿調低。

改用什麼

你要遮蓋的內容建議做法
密碼、權杖、API 金鑰、卡號實心遮蓋,或把該區域裁掉
姓名、電子郵件、訂單資料實心遮蓋。低風險或虛構的資料,使用預設強度或更高的馬賽克可以接受
人臉使用強的馬賽克或模糊,或裁掉

在 InSnap 中,選擇形狀,畫一個矩形,把樣式設為填滿,並選一個不透明的顏色:底下的文字不會出現在匯出的圖片中。裁切則會把像素完全移除。智慧擦除會用周圍的背景取代該區域;它在平色與漸層背景上效果很好,而且是 Pro 的一部分。完整流程(包括一次模糊指南的所有步驟)請見如何安全地模糊或隱藏截圖中的敏感資訊。

InSnap 中的馬賽克與模糊

遮蔽完成後,把畫面放大到 100% 再讀一次結果。如果你還猜得出某個字元,攻擊者也猜得出來。

常見問題

截圖中的文字模糊後安全嗎?

單靠模糊並不安全。在我們的測試中,輕微的模糊分享出去仍可讀,而且較弱的設定可以部分還原。實心填色或裁切會移除像素,這是保護機密唯一可靠的選擇。

馬賽克比模糊安全嗎?

在我們的測試中,每一個馬賽克強度都讓 OCR 讀不出來,而且馬賽克無法用反卷積還原。但像素化的文字仍可能被以已知字型猜測候選字元的方式攻擊,所以它不是保護密碼或金鑰的安全遮蔽方式。

有人能用軟體把模糊還原嗎?

有時可以。如果模糊很輕,即使圖片已存成 JPEG,軟體仍可能把它銳化回來。較強的模糊會破壞更多細節,但你不能拿這點來保護機密。

如果一定要用模糊,該用多大的強度?

請用你能用的最高強度,並在 100% 下檢查結果。凡是敏感的內容,請改用填滿的形狀或裁切。

下一張截圖,只要一個快速鍵。

macOS 14.4+(Apple 晶片與 Intel)· Windows 10+(64 位元)