江湖高手專用的“隱身術”:圖片隱寫技術


我們在影視作品中經常會看到一門功夫叫隱身術,是一種使身體隱形從而看不見的幻術。

 

你知道信息安全里面也有“隱身術”嗎?沒錯,它就是隱寫術!

隱寫術是關於信息隱藏,即不讓計划接收者之外的任何人知道信息的傳遞事件(而不只是信息的內容)的一門技能。

按照載體對象分類可以分為文本隱寫術、圖像隱寫術、音頻隱寫術、視頻隱寫術,本文主要介紹的是圖像隱寫術,先詳細分析JPEG文件格式,然后研究隱藏文件的方法及原理,文章閱讀用時約5分鍾。

基礎知識

JPEG文件

JPEG是Joint Photographic Experts Group(聯合圖像專家小組)的縮寫

JPEG本身只有描述如何將一個影像轉換為字節的數據串流(streaming),但並沒有說明這些字節如何在任何特定的儲存媒體上被封存起來。

.jpeg/.jpg是最常用的圖像文件格式,具有以下特點:

1、支持有隕壓縮

2、不支持透明

3、不支持動畫

4、非矢量

 

文件格式判斷

針對這類文件格式我們不能僅僅看文件后綴名

以下兩個文件后綴名不一樣,但都是同一個文件

 

我們可以通過十六進制編輯器打開文件然后查看文件標志來判斷

 

常見隱寫方法

Exif信息

Exif文件是JPEG文件的一種,遵從JPEG標准,只是在文件頭信息中增加了拍攝信息和索引圖

儲存在APP1(0xFFE1)數據區中

我們可以直接使用十六進制編輯器分析查看

 

也可以使用MagicEXIF軟件,這款軟件可以幫助我們快捷的修改查看Exif信息。

下載地址:http://www.magicexif.com/

 

圖種

這個是先將torrent文件壓縮為rar文件或者zip文件都行

然后打開命令行輸入

copy/b 圖片文件名稱+壓縮文件名稱 生成的文件名稱
 例子:copy /b time.jpg+kanmengou.zip 3.jpg

 

 

生成的文件正確預覽沒任何問題,修改文件后綴為zip,或者rar就能看見隱藏的tor文件。

 

JSteg隱寫算法

基於DCT系數的變換進行數字隱寫,主要思想是將秘密消息嵌入在量化后的DCT系數的最低比特位上。但對原始值為O、1的DCT系數不進行嵌入。提取秘密消息時,只需將載密圖像中不等於0、l的量化DCT系數的LSB取出即可。

JSteg隱寫過程:

(1)部分解碼JPEG圖像,得到二進制存儲的AC系數,判斷該AC系數是否等於1或0,若等於則跳過該AC系數,否則,執行下一步。

(2)判斷二進制存儲的AC系數的LSB是否與要嵌入的秘密信息比特相同,若相同,則不對其進行修改,否則執行下一步。

(3)用秘密信息比特替換二進制存儲的AC系數的LSB,將修改后的AC系數重新編碼得到隱秘JPEG圖像。

JSteg加密軟件下載地址:

鏈接:https://pan.baidu.com/s/1FRXUuPgUPcEGR_mHc_cCkg 密碼:2js5

使用說明如下:

 

 

其他

還要很多高級加密算法,比如JPHide、OutGuess、Invisible Secrets、F5、appendX、Camouflage,這里不再一一介紹。

檢測

接下來我們將介紹如何去識別這些隱寫術。

JPEGsnoop

JPEGsnoop是一個免費的,便攜的詳細圖像解碼器,負責審查任何文件類型的包含JPEG壓縮圖像。

下載地址:

https://www.impulseadventure.com/photo/jpeg-snoop.html

解析jpeg圖片的EXIF信息

 

查看DQT的數據

 

分析起來很方便。

 

Stegdetect

Neils Provos開發的隱寫工具Stegdetect,通過統計分析技術評估JPEG文件的DCT頻率系數,它可以檢測到通過JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage等這些隱寫工具隱藏的信息,並且還具有基於字典暴力破解密碼方法提取通過Jphide、outguess和jsteg-shell方式嵌入的隱藏信息。

項目地址:

https://github.com/abeluck/stegdetect

這是Linux環境下的項目,我們編譯一下。

root@linux:~/tools/stegdetect# ./configure
root@linux:~/tools/stegdetect# make

使用說明:

 ./stegdetect -tj -s 10.0 hidetime.jpg
 hidetime.jpg : jsteg

選項

-q 僅顯示可能包含隱藏內容的圖像。
-n 啟用檢查JPEG文件頭功能,以降低誤報率。如果啟用,所有帶有批注區域的文件將被視為沒有被嵌入信息。如果JPEG文件的JFIF標識符中的版本號不是1.1,則禁用OutGuess檢測。
-s 修改檢測算法的敏感度,該值的默認值為1。檢測結果的匹配度與檢測算法的敏感度成正比,算法敏感度的值越大,檢測出的可疑文件包含敏感信息的可能性越大。
-d 打印帶行號的調試信息。
-t 設置要檢測哪些隱寫工具(默認檢測jopi),可設置的選項如下:
 j 檢測圖像中的信息是否是用jsteg嵌入的。
 o 檢測圖像中的信息是否是用outguess嵌入的。
 p 檢測圖像中的信息是否是用jphide嵌入的。
 i 檢測圖像中的信息是否是用invisible secrets嵌入的。
-V 顯示軟件版本號。

以上是今天的全部內容,大家看懂了嗎?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM