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

你知道信息安全里面也有“隱身術”嗎?沒錯,它就是隱寫術!
隱寫術是關於信息隱藏,即不讓計划接收者之外的任何人知道信息的傳遞事件(而不只是信息的內容)的一門技能。
按照載體對象分類可以分為文本隱寫術、圖像隱寫術、音頻隱寫術、視頻隱寫術,本文主要介紹的是圖像隱寫術,先詳細分析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 顯示軟件版本號。
以上是今天的全部內容,大家看懂了嗎?