江湖高手專用的「隱身術」:圖片隱寫技術

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

 

你知道信息安全裏面也有「隱身術」嗎?沒錯,它就是隱寫術!linux

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

按照載體對象分類能夠分爲文本隱寫術、圖像隱寫術、音頻隱寫術、視頻隱寫術,本文主要介紹的是圖像隱寫術,先詳細分析JPEG文件格式,而後研究隱藏文件的方法及原理,文章閱讀用時約5分鐘。github

基礎知識算法

JPEG文件shell

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

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

.jpeg/.jpg是最經常使用的圖像文件格式,具備如下特色:編輯器

一、支持有隕壓縮ide

二、不支持透明

三、不支持動畫

四、非矢量

 

文件格式判斷

針對這類文件格式咱們不能僅僅看文件後綴名

如下兩個文件後綴名不同,但都是同一個文件

 

咱們能夠經過十六進制編輯器打開文件而後查看文件標誌來判斷

 

常見隱寫方法

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、F五、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、F五、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 顯示軟件版本號。

以上是今天的所有內容,你們看懂了嗎?

相關文章
相關標籤/搜索