王瑩瑩,李旋
(公安部第三研究所,上海 200031)
隱寫術(shù)是不讓計(jì)劃外的任何接收者知道信息傳遞事件和隱藏的信息內(nèi)容的一門科學(xué)與技術(shù),通過將秘密數(shù)據(jù)隱藏在像圖像這樣的載體文件中,可以實(shí)現(xiàn)信息隱寫,隱寫是一種不可見的通信方式。隱藏秘密數(shù)據(jù)后,載體文件應(yīng)該看起來是正常社交通信,以便隱藏嵌入數(shù)據(jù)的存在。通常隱寫術(shù)主要分為三類:(1)圖像中的隱寫術(shù);(2)音頻中的隱寫術(shù);(3)視頻中的隱寫術(shù)。
然而,隨著研究的深入,文字等其它隱寫術(shù)也已經(jīng)被提出。在圖像隱寫術(shù)中,秘密消息以無法注意到的圖像質(zhì)量(或者大小)變化的方式隱藏在圖像內(nèi)部。在音頻隱秘術(shù)中,秘密消息隱藏在諸如歌曲或音樂之類的音頻文件中,而不會(huì)改變其原始質(zhì)量。在視頻隱寫術(shù)中,秘密消息隱藏在視頻文件中,而不會(huì)影響視頻的原始質(zhì)量。在文本隱寫術(shù)中,秘密消息隱藏在文本文件中,而不會(huì)更改其含義。圖像隱寫技術(shù)可以分為兩大類,如圖1所示的空間域技術(shù)和頻域技術(shù)。在空間域技術(shù)中,通過對(duì)圖像的不同像素進(jìn)行一些操作,秘密消息被隱藏在圖像內(nèi)部。在頻域技術(shù)中,通過應(yīng)用像離散小波變換這樣的變換將圖像變換為另一種形式,然后通過應(yīng)用任何常用的嵌入技術(shù)來隱藏消息。隱藏秘密消息的圖像稱為隱秘圖像[1~3]。
本文針對(duì)圖像隱寫術(shù),對(duì)其研究,以期分析出圖像隱寫的通用檢測方法。在本文的第2章節(jié)中,說明了圖像隱寫的方法和分析介紹;在第3章節(jié)中,通過實(shí)驗(yàn)的方法對(duì)基于圖像隱寫的圖像進(jìn)行檢測分析;最后在第4章節(jié)中得出結(jié)論。
目前針對(duì)圖像隱寫的方法多樣,在空間域中有不同類別的方法:(1)基于拼貼的隱寫;(2)最低有效位(LSB)隱寫;(3)基于RGB的隱寫;(4)像素值差分隱寫;(5)基于映射的隱寫;(6)基于調(diào)色板的隱寫;(7)擴(kuò)頻隱寫;(8)基于代碼的隱寫;(9)其他。本文后續(xù)章節(jié)將對(duì)基于拼貼的隱寫和LSB隱寫進(jìn)行介紹,其他的隱寫方法本文不做解釋和分析。
Shahreza[4]提出了一種稱為拼貼隱寫術(shù)的新型隱寫術(shù),其中信息通過更改外觀而不是其特征而隱藏在圖像內(nèi)部。在這種方法中,將多個(gè)對(duì)象的圖像放在一起以形成新圖像。然后,通過更改每個(gè)對(duì)象的位置和類型,信息將隱藏在圖像中。在基于拼貼隱寫術(shù)中,最簡單實(shí)現(xiàn)的隱寫方式是圖像附加,即把隱藏圖像附加在載體信息的后面,從而不改變載體信息的像素等特征將隱藏信息添加進(jìn)去,然而這種方法的問題在于會(huì)改變圖像的大小,而且使用簡單的文件分析工具(如Binwalk等)即可將隱藏信息分析出來,同樣基于拼貼的圖像隱寫都存在數(shù)據(jù)幀分析以及圖像異或等運(yùn)算問題。
目前,最流行的圖像隱寫方法是最低有效位(LSB)替換。通過直接替換最低有效位,將消息嵌入到封面圖像中。通過在每個(gè)像素中使用多達(dá)4個(gè)最低有效位可以增加隱藏容量。當(dāng)覆蓋載秘樣本值的LSB與消息位完全相等時(shí),載秘信息不進(jìn)行任何更改。否則,樣本值不對(duì)稱地變化。這種不對(duì)稱性可以通過簡單的隱寫分析程序捕獲。
圖1 原圖1.jpg
與圖像隱寫種類繁多一樣,隱寫分析方法也種類頗多,主要包括通用的隱寫分析方法和專用的隱寫分析方法。通用隱寫分析方法一般包括特征提取和訓(xùn)練分類器兩個(gè)步驟。其中,隱寫分析中的特征是對(duì)正常圖像和載密圖像具有區(qū)分能力的統(tǒng)計(jì)量。而分類器則是機(jī)器學(xué)習(xí)中常用的SVM、集成分類器(Ensemble Classifier)等可訓(xùn)練優(yōu)化的類別判別工具。兩個(gè)步驟中,特征表達(dá)是研究中的關(guān)鍵問題,其對(duì)檢測性能起到?jīng)Q定性的作用。
在傳統(tǒng)的方法中,特征表達(dá)主要依賴于人工設(shè)計(jì),且特征設(shè)計(jì)的基本思想是找到隱寫操作前后圖像中具有明顯差異的統(tǒng)計(jì)量;而專用的隱寫分析方法則針對(duì)具體的隱寫技術(shù),如針對(duì)最低有效位隱寫,它直接用秘密信息位替換載體圖像像素(或 JPEG 壓縮域的量化系數(shù))的最低位。
在空域中,通過分析像素最低位的某些異常特性可以很容易對(duì)其進(jìn)行檢測。因?yàn)閳D像最低位并不總是0和1的均勻隨機(jī)分布,在某些區(qū)域呈現(xiàn)與內(nèi)容有關(guān)的結(jié)構(gòu),LSB 替換會(huì)破壞這種結(jié)構(gòu)。本文后續(xù)章節(jié)將使用實(shí)驗(yàn)的方法對(duì)LSB隱寫進(jìn)行分析[5]。
3.1.1 拼接隱寫
如第2章節(jié)所述,基于拼接的隱寫是將多個(gè)對(duì)象的圖像放在一起以形成新圖像,本節(jié)以信息附加的方法將隱藏信息直接附加在載體文件的尾部,因未改變載體文件的外在特征,因此該隱寫方法不易在通信中被發(fā)現(xiàn)。該拼接隱寫實(shí)驗(yàn)步驟如下:
(1)選擇一張JPG格式的圖像,如圖1所示,命名為1.jpg,將需要被隱藏的圖像(或文件)命名為2.jpg;
(2)使用二進(jìn)制的文件拼接命令,Copy /b 1.jpg+2.jpg 3.jpg,將2.jpg文件以二進(jìn)制的形式添加到1.jpg文件的文件尾,并生成了一張名為3.jpg的新圖像,如圖2所示。
新生成的圖像3.jpg和圖像1.jpg除了在文件大小上存在差異之外(差異取決于待隱藏文件的大?。?yàn)闆]有對(duì)圖像像素做任何改動(dòng),因此外觀上無法察覺其是否帶有隱藏信息。通過本實(shí)驗(yàn),就把一張圖像文件隱藏進(jìn)了另一張圖像中,這是基于拼接的隱寫,這是拼接隱寫的簡單實(shí)現(xiàn)方式。
圖2 帶有載秘信息的圖像3.jpg
3.1.2 拼接隱寫分析
緊接上節(jié)的示例,當(dāng)拿到一張圖像時(shí),需要分析或檢測其是否已拼接隱寫的方式進(jìn)行了信息隱藏,可以有四種分析方法:一是查看該圖像的屬性,若圖像大小明顯大于一張正常圖像的大小,或者使用圖像讀取工具通過像素等尺寸信息,得出與圖像的實(shí)際大小不符,則可能使用了拼接隱寫;二是使用binwalk文件分析工具,對(duì)圖像進(jìn)行分析,查看該圖像是否還有其他文件,若含有其他文件,則可能使用了拼接隱寫;三是使用StegSlove圖像分析工具,通過分析文件格式以及對(duì)圖像幀進(jìn)行分析,對(duì)圖像進(jìn)行檢測;四是使用WinHex數(shù)據(jù)處理軟件,根據(jù)文件頭、文件尾以及偏移等信息對(duì)圖像進(jìn)行判斷。下面以第三和第四種分析方法為例,檢測上一節(jié)中的圖像3.jpg是否以圖像拼接的方式隱藏了信息以及發(fā)現(xiàn)隱藏信息的內(nèi)容的分析方法。
(1)Stegsolve
Stegsolve軟件是一個(gè)圖像分析工具,該軟件功能豐富,后面在分析LBS隱寫時(shí)還會(huì)用到該軟件,該軟件的特點(diǎn)就是對(duì)圖像中的信息進(jìn)行分析挖掘。該軟件是一個(gè)jar包,不需要安裝即可以使用該軟件,但是在使用之前需要先配置Java環(huán)境變量等系統(tǒng)的基本信息。打開該軟件后,選擇打開需要被分析的圖像文件,使用在Analyse主菜單下的File Format文件類型菜單,對(duì)圖像文件進(jìn)行類型分析,可生成一個(gè)文件類型的報(bào)表,報(bào)表的內(nèi)容涵蓋該圖像文件的類型、文件頭、大小等信息,圖像信息顯示完后,在End of Image下方,顯示了一個(gè)額外的附加信息,同樣通過內(nèi)容,可發(fā)現(xiàn)另外一張圖像,該圖像即為被隱藏的圖像。再使用該軟件Analyse主菜單下的Frame Browser功能,可以看到該圖像包含2個(gè)數(shù)據(jù)幀,數(shù)據(jù)幀2則為被隱藏的信息,如圖3所示的第一幀和第二幀。
(2)WinHex
WinHex是一款功能強(qiáng)大的以16 進(jìn)制編輯器為核心,用來進(jìn)行計(jì)算機(jī)取證、數(shù)據(jù)恢復(fù)、低級(jí)數(shù)據(jù)處理、以及 IT 安全性等各種緊急情況的高級(jí)工具。同樣,基于其豐富的功能,可以使用該工具進(jìn)行圖像分析,分析出隱藏在文件中的信息。使用WinHex軟件打開需要被分析的圖像文件,找出該圖像文件的結(jié)束符,本實(shí)驗(yàn)分析的jpg文件結(jié)束符是FF D9,在該結(jié)束符后,還有一部分信息,從結(jié)束符可以看出該部分仍然以FF D9結(jié)束,如圖4所示。選中該區(qū)域,選擇編輯菜單,將該部分內(nèi)容另存為新文件,并保存為jpg格式,即可得到隱藏的文件,如圖5所示。
圖3 使用Stegsolve軟件檢測結(jié)果
圖4 使用WinHex檢測結(jié)束符圖
圖5 使用WinHex檢測分析結(jié)果
圖6 像素的三原色
圖7 像素中紅色分量的最低位變化
至此,以拼接隱寫的方式在圖像后添加文件進(jìn)行隱寫的方法和主要的分析檢測手段做了簡要介紹,其他格式的隱藏信息以及載秘文件的不同存在方式,可以使用以上介紹的方式進(jìn)行檢測、分析[6,7]。
3.2.1 LSB隱寫簡介
LSB (Least Significant Bit),即最低有效位,通過直接替換最低有效位,將消息嵌入到圖像中,在每個(gè)像素中使用多達(dá)4個(gè)最低有效位可以增加隱藏容量。通常圖像中的像素是由紅綠藍(lán)三種顏色組成,由這三種顏色可以組成其他各種顏色,如圖6所示。以bmp格式的圖像為例(因bmp格式的圖像未經(jīng)過壓縮),在bmp格式圖像的儲(chǔ)存中,每個(gè)顏色會(huì)有8bit,LSB隱寫就是修改了像素中的最低的1bit(當(dāng)最低位不夠用的時(shí)候,可依次使用高位,但載秘圖像會(huì)因此變得失真),因此就可以把信息隱藏進(jìn)來。例如,如果需要把字符‘A’隱藏進(jìn)來,如圖7所示,就可以把A轉(zhuǎn)成16進(jìn)制的0x61再轉(zhuǎn)成二進(jìn)制的01100001,再修改紅色通道的最低位為這些二進(jìn)制串,將A寫進(jìn)紅色通道的最低位中[8]。
3.2.2 LSB隱寫方法
在使用LSB隱寫方法進(jìn)行信息隱寫時(shí),可以借助LSB-Steganography工具,該工具的做法是將數(shù)據(jù)存儲(chǔ)在每一個(gè)顏色像素(RGB)的第一比特位上。除此之外,如果無法在每一個(gè)像素的第一個(gè)比特位中存儲(chǔ)有效載荷所有的數(shù)據(jù),該工具就會(huì)使用到第二個(gè)比特位,以此類推。
LSB-Steganography工具最基本的指令是LSBSteg.py encode -i -o -f,-i代表輸入文件,即載體文件;-o代表輸出文件,即含有有效載荷的載秘文件;-f代表有效載荷。使用該條指令即可完成文件的隱寫。此外,該工具還提供了隱寫信息的提取功能,使用的指令是上條指令的逆過程LSBSteg.py decode -i -o,使用該指令即可在文件操作的路徑下生成隱寫文件。
本節(jié)的第一個(gè)實(shí)驗(yàn)中以bmp后綴圖像為例,使用隱寫指令,將00.txt文件中的內(nèi)容(內(nèi)容為this is secret)寫進(jìn)in.bmp圖像中,生成out.bmp圖像,可以使用解碼指令檢查隱寫的正確性,如圖8所示。從圖中可以看出有效載荷被成功的編碼和解碼了。
本節(jié)第一個(gè)實(shí)驗(yàn)中將文件內(nèi)容寫入到了圖像的最低位中,為了進(jìn)一步驗(yàn)證該方法的有效性以及寫入信息的多樣性,在本節(jié)的第二個(gè)實(shí)驗(yàn)中嘗試將一張圖像寫入至另一張圖像的最低有效位中,寫入方法與第一個(gè)實(shí)驗(yàn)類似,將圖像2.bmp寫入1.bmp中,生成3.bmp,因1.bmp的大?。?.2MB)遠(yuǎn)大于2.bmp(44KB),因此,圖像被寫入后,不會(huì)存在嚴(yán)重的失真,即通過觀察,難以察覺圖像的不同[9,10]。
3.2.3 LSB隱寫檢測方法
在上節(jié)中,介紹了LSB隱寫的手段和實(shí)現(xiàn)方法,那么當(dāng)獲取到一張疑似使用了LSB隱寫的圖像時(shí),應(yīng)怎樣檢測出該圖像的最低位、次低位甚至其他位是否會(huì)有信息被寫入。此處,可以繼續(xù)使用Stegsolve軟件,該軟件能夠?qū)D像按位進(jìn)行提取,首先選擇需要被檢測的圖像,在Analyse主菜單下選擇Data Extract,在該頁面中可以選擇按行或者列進(jìn)行像素提取,可選擇像素的排序方式,如RGB或者BGR等等,選擇待提取的像素位,使用預(yù)覽或者保存就可以展示已選擇出的像素位的信息,針對(duì)前一節(jié)的第一個(gè)實(shí)驗(yàn)的實(shí)驗(yàn)后生成的圖像,選擇合適的提取方式(需要進(jìn)行不同組合方式的嘗試),即可將隱寫信息提取出來,如圖9所示[11,12]。
針對(duì)上節(jié)中第二個(gè)實(shí)驗(yàn)得出的圖像繼續(xù)使用上述分析方法,還無法找出被隱寫的圖像2.bmp,此時(shí)可以將圖像3.bmp的最低有效位使用Save Bin功能菜單,如圖10所示,將最低有效位保存到文件(文件4),用前面介紹的WinHex軟件分別打開圖像2.bmp和文件4,可以看出文件4從偏移量00000008到偏移量0000AEF1處與圖像2.bmp一致,如圖11所示。因此可以猜測該部分即是被隱寫到圖像1.bmp的圖像2.bmp,借助3.1.2中的圖像分析方法,將文件4該部分偏移量另存為5.bmp,則可還原出被隱藏的圖像2.bmp。此處為了更直觀的展示文件4即是還原出來的圖像2.bmp,在使用WinHex軟件時(shí)與圖像2.bmp進(jìn)行了對(duì)比,在實(shí)際檢測過程中,無法提前拿到圖像2.bmp,可通過分析文件4的文件頭以及文件尾等信息確定文件格式,且文件4的特征明顯,為BMP文件。
圖8 LSB-Steganography信息隱藏和提取
圖9 LSB隱寫分析和檢測
圖10 Stegsolve隱寫信息提取
圖11 WinHex二進(jìn)制文件比對(duì)
本文介紹了圖像隱寫技術(shù)以及圖像隱寫的分析檢測方法,針對(duì)目前圖像隱寫的特點(diǎn),總結(jié)出圖像隱寫常用的使用工具和方法,通過實(shí)驗(yàn)對(duì)真實(shí)的隱藏圖像進(jìn)行分析,能夠很好地分析出圖像中的隱藏信息,歸納出針對(duì)特定隱寫算法的有效的檢測方法,解決了圖像隱寫術(shù)在測試過程中遇到的問題,對(duì)圖像隱寫的測試進(jìn)行了探索。