有沒有辦法從 steghide 中清除資訊圖片?
最近我了解了 steghide 應用程序(一個允許使用隱寫術的命令行工具,將資訊隱藏在其他資訊中的藝術*,*在實踐中用於 JGP 和 WAV 文件,主要使用 gzip 壓縮和 AES 加密)。
興奮地,我把敏感數據藏在了我的桌面背景中,把原來的桌面背景刪掉了。
經過更多研究,我意識到使用的預設算法(128 位 AES)被認為是弱的(無論如何,對於我的標準。領先於遊戲,使用 4096 位 RSA 和 256 位 AES 做事)。
有沒有辦法清除這個 JPG 文件中儲存嵌入文件的無關位?
我不完全確定如何使用密碼片語(除了加密)來使用 steghide 將文件隱藏在可恢復的位置,但我假設如果你知道密碼片語,你可以找到文件的確切位位於。有沒有辦法找到這些位並以與粉碎文件相同的方式覆蓋它們,但保持原始圖像相同(人眼)?還是我骨瘦如柴?
正如您所說,隱寫術將數據隱藏在源的不太重要的資訊中(因為目標是將數據隱藏在影響它們的其他數據中)。
純隱寫術決不能保護隱藏的資訊,它只是一種隱藏的工具。
您將在 4x4 灰度點陣圖(每像素 0-255 值)中隱藏消息“AB”的圖像。
例如:
Convert message in bit : "AB" > hex -> 65 66 -> 01000001 01000010 Do the same thingh with your image (0 is black 255 is white, grey between) : ____ |####| 0 0 0 0 00000000 00000000 00000000 00000000 | # |--> 255 0 255 255 --> 11111111 00000000 11111111 11111111 | # | 255 0 255 255 11111111 00000000 11111111 11111111 |__#_| 255 255 0 255 11111111 11111111 00000000 11111111 Foreach bit of your messaage, sobstitute the less significant bit of the corresponding byte of the picture so : Message Original Picture Resulting Picture 0 00000000 00000000 1 00000000 00000001 0 00000000 00000000 0 00000000 00000000 0 11111111 11111110 0 00000000 00000000 0 11111111 11111110 1 11111111 11111111 0 11111111 11111110 1 00000000 00000001 0 11111111 11111110 0 11111111 11111110 0 11111111 11111110 0 11111111 11111110 1 00000000 00000001 0 11111111 11111110 Original Picture | Picture with Message 00000000 00000000 00000000 00000000 | 00000000 00000001 00000000 00000000 11111111 00000000 11111111 11111111 | 11111110 00000000 11111110 11111111 11111111 00000000 11111111 11111111 | 11111110 00000001 11111110 11111110 11111111 11111111 00000000 11111111 | 11111110 11111110 00000001 11111110
如您所見,以這種方式(在點陣圖中)儲存的消息對人類感知圖像的方式沒有太大影響(之前和之後的像素非常相等)。我描述的算法非常幼稚,但每個隱寫算法的原理都是相同的。
在您的情況下,不是點陣圖而是JPEG(一種表示圖像的複雜方式,因為有壓縮算法而復雜),並且有密碼和加密。加密有兩個原因,保護消息(僅隱寫不能保證任何機密性)並在不太重要的位上產生類似雜訊的分佈(通常不太重要的位具有這樣的分佈,但隱藏的消息可能會偏離結果圖片中的分佈,因此攻擊者可以辨識哪些圖片隱藏了一條消息)。
如果您確定圖像不會隱藏秘密數據,您就不必嘗試找到它們。主要是因為每個隱寫算法都是特殊的並且以不同的方式儲存資訊(唯一的限制是想像力),其次是因為如果隱寫正確完成(使用健壯的加密),您將無法區分雜訊和隱藏數據。
因此,在我看來,唯一可行的方法是嘗試以破壞側通道的方式操縱候選圖片(可能包含隱藏數據但也可能是正常圖片的圖片)。
在我的幼稚實現中,清理操作可能是使用 JPEG 進行壓縮,JPEG 非常接近點陣圖(對人眼而言),但不太重要的位將被剔除(由於壓縮)並與它們一起隱藏資訊。
在您的特定情況下,我認為拍攝照片並使用 JPEG 再次壓縮(使用更大的壓縮係數)也應該有效。請記住,每種隱寫算法都是特殊的,因此可能會以冗餘方式儲存隱藏數據,從而對您的清理工作更具彈性(請參閱水印技術:數字水印)。