HTML標簽信息隱藏研究思考

時間:2022-10-25 08:01:00

導語:HTML標簽信息隱藏研究思考一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

HTML標簽信息隱藏研究思考

摘要:通過仔細分析html標簽的各種性質,提出了幾種新的基于標簽的隱藏信息的方法。在此基礎上,提出并實現了一個基于HTML標簽的信息隱藏模型。該模型具有隱藏容量高、隱蔽性、魯棒性和安全性較好,并且具有彈性,能自動調節隱藏算法的參數,使得在滿足容量的前提下,盡量提高隱蔽性。

關鍵詞:超文本標記語言;信息隱藏;數字水??;模型;標簽;文本

隨著電子圖書版權保護、電子商務和電子政務中對電子公文的認證和保護的迫切需求,在文本中嵌入信息或水印的研究正受到重視。根據文本的作用,文本可分為:普通文本,如.txt文檔、Word文檔或PDF文檔等;特殊文本,如HTML中的標簽、C語言源程序的語句。這些文本其作用是供瀏覽器解析或CPU執行的。目前針對Word、PDF等普通文本,提出了很多隱藏信息或水印的方法,主要有:①替換法[1,2],如字符替換、單詞替換、句子結構替換;②改變格式法[3~5],通過改變格式特征如字體、字號、顏色、字間距或行間距等進行信息隱藏;③基于語義的方法[6];④基于二值圖像的方法[7];⑤插入空白符合法[8]等。利用WWW訪問HTML網頁是一種非常方便的獲取信息的手段,而利用HTML網頁隱藏信息進行秘密通信,或對HTML網頁嵌入水印用于保護網頁的知識版權或網站的認證,這方面的研究卻很少見[10]。

1基于HTML超文本的信息隱藏方法

1.1HTML文件結構簡介

超文本文檔分文檔頭和文檔體兩部分。其基本結構是:

HTMLHEAD頭部信息/HEADBODY文檔主體,正文部分/BODY/HTML

超文本文件不同于一般的純文本文件,它是由標簽和數據兩部分組成。標簽是用于控制數據顯示格式和效果的,由瀏覽器解析執行的命令,相當于程序的指令;數據即是文件中包含的能夠在瀏覽器上顯示出來的文字、圖片和動畫等多媒體資料。標簽用“”和“”括起來,有單標簽和雙標簽兩種類型。單標簽只需單獨使用,格式是:標簽名稱,如BR標簽表示換行的意思;雙標簽必須是起始標簽和結束標簽成對出現,格式是:標簽內容/標簽,如HTML——/HTML標簽。大部分標簽還可以具有屬性和屬性值,帶屬性的標簽的格式是:標簽名稱屬性名稱=“屬性值”。

1.2基于HTML文件的信息隱藏方法

根據超文本文件的結構便知道,在超文本文件中隱藏信息主要有兩種策略,即在數據元素中隱藏信息和在標簽中隱藏信息。在數據元素中隱藏信息的方法依賴于數據的類型是文字、圖像、聲音、腳本語言程序等而不同。如果元素類型是文本的話,則可應用基于普通純文本的隱藏方法,如替換法。標簽雖然是純文本,但由于是程序指令,有固定的諸多語法規則和約束,不能隨便照搬基于普通純文本的隱藏方法,而是需要特殊考慮。標簽只是控制數據在瀏覽器上的表現形式,而不會顯示出來。如果能夠基于標簽隱藏信息,其隱蔽性將會比較好。

目前已提出的基于超文本文件的隱藏方法有[9,10]:①在網頁結束標記/HTML后或者在每行的行尾插入空格或Tab鍵隱藏信息,插入一個空格代表0,插入一個Tab代表1。像著名的水印軟件Wbstego、Stegano、InvisibleSecret等都是利用這種方法。之所以可以這樣隱藏信息,是因為瀏覽器會對HTML文件中多余的空格忽略掉,從而插入空格或Tab后不改變顯示的結果。可以通過連續插入任意多個符號使得隱藏的容量可以任意大,這是其優點;其缺點是每插入一個字節的信息,文件大小需增加八個字節;另外,雖然隱藏信息后的文件瀏覽的結果不會改變,用記事本這樣的編輯軟件打開也不容易看出差別(但仔細看還是能看出這些不必要的空白符號的存在),但是當文件以二進制格式打開時其多余的空格符號一覽無遺,同時,這種方法也經不起“網頁減肥茶”之類的軟件處理[12]。②修改標記名稱字符的大小寫,用大寫表示1,小寫表示0來隱藏信息。例如以大寫標記名稱HTML代表1,以小寫的標記名稱html代表0。這樣,一個標記可隱藏1bit信息。方法2克服了方法1的缺點,具有較好的隱蔽性和抗攻擊性[10]。

2幾種新的基于超文本的信息隱藏方法

2.1隱藏方法

前面的基于修改標簽名稱字母大小寫的方法雖然克服了方法①的缺點,具有較好的隱蔽性和抗攻擊性。但是,其隱藏容量比較小,不能滿足隱藏長文本,特別是隱藏圖像的需求。

通過仔細分析HTML超文本標記語言的語法規則后,發現還有以下一些資源可以用于隱藏信息。

(1)標記屬性名稱像標記名稱一樣對字母大小寫不敏感??梢酝ㄟ^修改標記屬性名稱的大小寫來隱藏信息。比如,用標記屬性名稱字母全部大寫代表1,全部小寫代表0。例如divALIGN="center"代表1,divalign="center"代表0。這樣,一個屬性名稱可隱藏1bit信息。

(2)標記屬性可以賦值,而屬性的值是用“”括起來的字符串,屬性值字符串中的字母對大小寫不敏感。可以通過修改屬性值字符串的大小寫來隱藏信息。比如用屬性值字母的全部大寫代表1,全部小寫代表0。例如divalign="center"代表0,divalign="CENTER"代表1。這樣,一個字符串屬性值可隱藏1bit信息。

(3)HTML中,屬性值默認是用雙引號括起來的,但是也可以用單引號括起來??梢詫傩灾低饷娴碾p引號“”用單引號‘’替換來隱藏信息。比如,用雙引號時代表1,單引號時代表0。例如divalign="center"代表1,而divalign=′center′代表0。這樣,一對屬性值引號可隱藏1bit信息。2.2隱藏性能分析

3.1信息隱藏模型

前面可以看到,基于HTML標簽的隱藏方法,單一的隱藏方法容量是比較小的,只能隱藏少量的字符信息。為了滿足實際的信息隱藏的需要,必須考慮綜合采用多種隱藏方法,并采取其他一些措施在安全性、容量、隱蔽性和魯棒性之間取得折中。基于此,本文建立了一個基于HTML標簽的信息隱藏模型,如圖1所示。該模型包括秘密信息的嵌入和秘密信息的提取兩部分,考慮了隱蔽性、魯棒性、安全性和容量要求。

信息在嵌入之前必須進行預處理,預處理的主要目的是進行壓縮、加密和糾錯編碼處理。

這里,筆者采用的是無損壓縮方法。一種廣泛運用的無損壓縮方法是Huffman編碼,它是基于信源字符統計分布的不均勻性,對出現概率大的字符分配較短的碼字,而對很少出現的字符給較長的碼字,從而實現平均碼字較短。已經證明,Huffman碼是一種最優前綴碼[11]。如果隱藏的信息是英語片段,則可以根據26個字母的概率分布,對各字符進行Huffman編碼;如果嵌入的是圖像則進行JPEG壓縮處理;對于有些秘密信息,如中文字符串或已經壓縮的圖像,則不進行壓縮預處理。

保證只有合法接收者能夠提取隱藏信息是非常重要的,采取的措施是對壓縮后的數據進行加密處理,可以根據安全性的需求選用經典的或目前廣泛使用的加密技術。在該實驗中,選用的是32位密鑰長度的DES加密。密鑰必須通過另外的安全信道傳遞給接收方。

本文原文

為了具有一定的魯棒性,模型中對加密后的數據要進行糾錯編碼,以防即使一部分數據受到攻擊也能提取出隱藏的信息。如果嵌入的是短文本,則可以使用簡單的三次重復編碼,例如,要嵌入的信息是01011,則重復編碼的結果是000111000111111;但是如果嵌入的文本較長,則可以采用(7,4)漢明碼以便有足夠的嵌入空間;如果嵌入的是圖像,則可以不進行糾錯編碼,因為圖像中即使有部分數據錯誤也不會有太大關系。如果容量夠的話,在嵌入之前,要對糾錯編碼后的數據復制一份,即使得最后嵌入的數據是兩份。

在嵌入數據之前,還要分析載體網頁的隱藏容量,并與嵌入信息的容量進行對比,以便確定合適的隱藏算法參數。接下來,可以根據嵌入的位置逐位地進行嵌入。

3.2模型性能分析

首先,在提高隱藏容量方面,模型采用了三方面的措施:①對隱藏信息進行壓縮預處理;②綜合采用前面的多種隱藏方法;③修改隱藏算法的參數。

通過壓縮預處理,可以使隱藏容量大大提高。例如,普通英文文本,采用ASCII碼,每個字符需要8bits表示;如果采用Huffman碼壓縮,則可能作到平均每字符2bits左右。

幾種主要的隱藏方法的隱藏比是差不多的,因此,通過綜合運用多種隱藏方法可以大大提高隱藏容量。例如綜合運用方法1和2是單獨使用方法1或2的容量的兩倍左右。綜合運用所有方法的隱藏容量是隱藏容量最高的方法的四倍以上。

修改隱藏算法的容量參數也是提高隱藏容量的好辦法。對于字母大小寫替換法,如果平均每個標志符的長度為n,則采用每個字母的大小寫均修改的辦法,可以將隱藏容量提高到原來的n倍。

在提高隱蔽性方面,模型使用兩種策略:①仔細選用隱藏算法的參數,在滿足隱藏容量的要求下,調整隱藏參數,以增強隱蔽性,如盡量使插入的空格數少,盡量使字母的大小寫變換的頻度減少。②隨機選擇嵌入位置,而不是從頭至尾連續嵌入。嵌入位置是通過隨機發生器產生。這里的隨機種子就是加密密鑰。

在魯棒性方面,模型采用了兩種策略,即對小信息嵌入時進行重復嵌入和進行糾錯編碼。

在安全性方面,本文使用了加密策略,即在對隱藏的信息進行壓縮后進行加密處理,加密的結果再送到糾錯編碼模塊。

4系統實現

本文對待隱藏的信息封裝成幀。格式如下:

(10)使用基本的算法容量參數,逐個使用表1中方法在(9)所確定的標簽中,按順序隱藏數據幀中的幀頭;隱藏完幀頭后,按照(6)中確定的算法容量參數,逐個使用表1中方法在(9)所確定的標簽中,按順序隱藏數據幀中的數據比特流。

(11)如果數據幀中尚有未隱藏的bit,則重復上面的(9)和(10),直到隱藏完為止。

從網頁中提取隱藏信息的過程正好相反。為了使得接受方在收到幀頭前,能夠使用合適的算法容量參數解隱藏,故約定對幀頭采用基本的容量參數進行隱藏和解隱藏。對幀頭采用基本容量參數也可

提高幀頭的隱蔽性,以防攻擊。

圖2(a)是載體網頁——廣東水電學院的首頁,右上是使用模型隱藏了文字“HappyNewYear”后的HTML片段。可以看出此時的隱蔽性很好,幾乎看不出HTML文本有什么特別。圖2(b)是秘密信息Lena圖像,大小是2KB,即16000bits,由于隱藏的數據量較大,故需要將所有隱藏方法的容量參數調節到最大,并且不進行重復隱藏。右邊是隱藏Lena圖像后的HTML代碼片段,可以看出,此時的隱秘性下降。

實驗證實,對于局部的HTML代碼使用刪除空格或標簽字符大小寫隨機替換的攻擊,有較好的抗攻擊性能。這是由于,對于小信息量的隱藏采用了糾錯和重復隱藏措施并且隱藏的位置是隨機的;而對于圖像隱藏,則由于圖像本身具有一定的容錯性。

5結束語

本文首先介紹利用HTML隱藏信息的研究情況;然后提出一些新的可行的基于HTML標簽的信息隱藏方法,并在此基礎上給出一個基于HTML標簽的信息隱藏模型。該模型由于是基于標簽,其隱蔽性較好。該模型綜合了基于標簽的多種隱藏方法,具有較大的隱藏容量;同時,該模型還具有糾錯、加密等容錯和安全措施。該模型是一個基于HTML信息隱藏的較好的解決方案?;谖谋镜男畔㈦[藏算法的一個很難克服的問題是魯棒性不如圖像等載體,不過,信息隱藏更關心的是容量、隱蔽性和安全性,而且HTML網頁是保存在服務器上并通過網絡傳遞到用戶的瀏覽器的,敵手要改變網頁還需要克服其他安全屏障。該基于HTML標簽的算法和模型還是很有實用價值的。

參考文獻:

[1]肖湘蓉,孫星明.基于內容的英文文本數字水印算法設計與實現[J].計算機工程,2005,31(22):29-31.[2]眭新光,羅慧.一種安全的基于文本的信息隱藏技術[J].計算機工程,2004,30(19):104-105.

[3]曹衛兵,戴冠中,夏煜,等.基于文本的信息隱藏技術[J].計算機應用研究,2003,20(10):39-41.

[4]劉豪,孫星明,劉晉飚.基于字體顏色的文本數字水印算法[J].計算機工程,2005,31(5):129-131.

[5]劉玉玲,孫星明.通過改變文字大小在Word文檔中加載數字水印的設計與實現[J].計算機工程與應用,2005(12):110-112.

[6]MIKHAILATALLAHJ,VICTORR,CHRISTIANFH.Naturallanguagewatermarkingandtamperproofing:proc.ofthe5thInternationalInformationHidingWorkshop[C].Berlin:[s.n.],2002:196-212.

[7]王欣,張旭東.一種針對漢字文本圖像的數字水印技術[J].計算機工程與應用,2005(25):57-60.

[8]白劍,徐迎暉,楊榆.利用文本載體的信息隱藏算法研究[J].計算機應用研究,2004,21(12):147-148.

[9]ERICC.Hidinginplainsight:steganographyandtheartofcovertcommunication[M].[S.l.]:WileyPublishingInc,2003.

[10]眭新光,羅慧.一種新的基于超文本的信息隱藏方法[J].計算機工程,2005,31(12):136-138.[11]LONGD,JIAW,LIMing.Optimalmaximalandmaximalprefixcodesequivalenttohuffmancodes:proceedingsof2002IEEEInternationalConferenceonAcoustics,Speech,andSignalProcessing(ICASSP)[C].[S.l.]:[s.n.],2002:2525-2528.