咱們在影視做品中常常會看到一門功夫叫隱身術,是一種使身體隱形從而看不見的幻術。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 顯示軟件版本號。
以上是今天的所有內容,你們看懂了嗎?