隨著信息技術(shù)和互聯(lián)網(wǎng)的普及發(fā)展, 網(wǎng)站和網(wǎng)頁得到了廣泛應(yīng)用, 它給政府部門和企事業(yè)單位的生產(chǎn)、經(jīng)營、管理以及人們的工作和生活帶來極大的便利。與此同時, 網(wǎng)頁的非法復(fù)制、網(wǎng)頁的仿冒現(xiàn)象也日益嚴(yán)重, 是一個亟待解決的問題。網(wǎng)頁水印是近年來出現(xiàn)的網(wǎng)頁保護(hù)的一項技術(shù), 它通過某種方式在網(wǎng)頁中嵌入版權(quán)標(biāo)識信息或身份認(rèn)證信息 (水印) , 當(dāng)發(fā)現(xiàn)網(wǎng)頁遭到非法復(fù)制或仿冒時, 可以提取這些信息來證明網(wǎng)頁的版權(quán)歸屬, 鑒別網(wǎng)頁的真?zhèn)? 從而確認(rèn)非法復(fù)制和仿冒行為。除此之外, 網(wǎng)頁水印技術(shù)還可用于網(wǎng)頁防篡改、在網(wǎng)頁中隱藏和傳遞秘密信息等方面。
與傳統(tǒng)的圖像、視頻和音頻水印技術(shù)的研究相比, 網(wǎng)頁水印技術(shù)的研究目前還很少。網(wǎng)頁的構(gòu)造與圖像、音頻文件不同, 常用的圖像和音頻水印技術(shù)不適用于網(wǎng)頁水印。表示網(wǎng)頁的HTML代碼結(jié)構(gòu)簡單、冗余度少, 在網(wǎng)頁中嵌入水印難度較大?,F(xiàn)有的網(wǎng)頁水印嵌入方法主要是基于HTML語言對于一些信息的改變不敏感的原理, 通過改變這些不敏感的信息來實現(xiàn)水印信息的嵌入。比如, 通過改變標(biāo)簽名和屬性名的大小寫實現(xiàn)水印信息的嵌入, 通過改變空格的個數(shù)實現(xiàn)水印信息的嵌入,通過定義不存在的標(biāo)簽實現(xiàn)水印信息的嵌入,以及使用不同的代碼格式實現(xiàn)水印信息的嵌入等。
以上這些網(wǎng)頁水印的嵌入方法存在明顯的不足。改變大小寫或改變空格數(shù)的方法會使得HTML代碼的大小寫或空格數(shù)不斷變換, 很容易被識別, 水印的隱蔽性不好, 抗檢測能力很弱, 只要用一個簡單的過濾系統(tǒng)將HTML代碼中所有字母改成小寫或所有空格數(shù)改為一個, 便能輕松去除水印。對于使用不存在的標(biāo)簽的方法, 由于HTML代碼中的標(biāo)簽是固定的, 定義不存在的標(biāo)簽很容易被識別, 隱蔽性和抗攻擊能力也不強。最后一種方法雖然隱藏性好一些, 但是代碼嵌入點很少, 水印信息容量小。
針對上述問題, 本文提出一種基于空樣式的網(wǎng)頁水印的嵌入方法, 將水印信息轉(zhuǎn)換為HTML代碼中的樣式, 嵌入到網(wǎng)頁的HTML代碼中, 該水印具有很好的隱蔽性和抗攻擊性。
1、樣式與空樣式
網(wǎng)頁是一種存儲在Web服務(wù)器上, 通過網(wǎng)絡(luò)進(jìn)行傳輸, 被瀏覽器解析和顯示的文檔類型, 其內(nèi)容由HTML語言構(gòu)成。
網(wǎng)頁的樣式是指使得網(wǎng)頁頁面顯示達(dá)到一定效果的輔助代碼或文件, 它可以改變網(wǎng)頁中元素的外觀, 如改變按鈕的顏色、表格的大小等。網(wǎng)頁的樣式一般會用層疊樣式表CSS進(jìn)行封裝, 將一系列樣式封裝在一起并存儲在CSS文件中, HTML使用樣式名調(diào)用封裝的樣式, 以顯示樣式所定義的外觀。
樣式通常由樣式名和表示樣式內(nèi)容的定義構(gòu)成。如果一個樣式只有樣式名, 沒有內(nèi)容定義, 則可將其稱為空樣式。根據(jù)CSS規(guī)范, HTML中的元素不會匹配錯誤的或者不存在的樣式名, 因此上述調(diào)用不會進(jìn)行任何操作。同時, 上述調(diào)用不違反HTML的語法規(guī)范, 對網(wǎng)頁的運行不會產(chǎn)生任何影響。本方法利用HTML的這種特性, 將水印信息轉(zhuǎn)換為自定義的空樣式嵌入到HT-ML代碼中, 實現(xiàn)水印的嵌入與提取。
2、水印信息預(yù)處理
水印信息通常為一組帶有版權(quán)、歸屬權(quán)等信息的字符串, 由英文、中文或其他字符組成。為了便于水印信息的嵌入, 需要把水印字符串轉(zhuǎn)換成一定形式的編碼, 如常用的ASCII編碼。ASCII碼對于嵌入英文水印信息比較方便, 為了便于嵌入中文和其他字符, 使方法更具通用性, 本文采用UNICODE編碼。UNICODE編碼把包括中文、英文在內(nèi)的各種語言和符號用4位十六進(jìn)制數(shù)表示。
3、空樣式的設(shè)計
經(jīng)過預(yù)處理之后, 原始水印信息被轉(zhuǎn)換為由UNICODE編碼表示的十六進(jìn)制的碼串。下一步任務(wù)是將十六進(jìn)制的水印信息碼串轉(zhuǎn)換成HTML的空樣式并嵌入到網(wǎng)頁中。水印信息碼串包含數(shù)字0~9和字母a~f共16種碼元, 我們設(shè)計16個不同的空樣式一一對應(yīng)這16種碼元??諛邮降脑O(shè)計遵循以下兩個方面的原則:一方面, 樣式的名字與HTML代碼的內(nèi)容要有一定的聯(lián)系, 具有合理性和真實性, 讓人覺察不到它是空樣式, 從而使水印具有良好的隱蔽性;另一方面, 空樣式的名字不能與現(xiàn)有樣式的名字相同, 若命名相同, 則會導(dǎo)致水印信息提取出錯。
4、空樣式的嵌入
在設(shè)計好水印信息碼元對應(yīng)的空樣式后, 下一步任務(wù)是將空樣式嵌入到HTML代碼中。
在HTML代碼中, 網(wǎng)頁上要顯示的內(nèi)容通常包含在一個個的層級元素中。這種方式不是很好, 一方面會增加div, class這些與水印信息無關(guān)的字符串, 增大了網(wǎng)頁文件的大小;另一方面, 嵌入的語句有些明顯, 隱蔽性不夠好, 可能會被察覺出來。我們利用HT-ML的樣式可以疊加的特點, 將空樣式作為一個疊加的樣式嵌入到已存在的層級之中, 而不添加新的語句。
實現(xiàn)步驟
1、水印的嵌入
第1步水印信息預(yù)處理。將水印信息的每個字符轉(zhuǎn)換為對應(yīng)的UNICODE碼, 形成十六進(jìn)制的水印信息碼串。
第2步設(shè)計空樣式。根據(jù)網(wǎng)頁HTML代碼中樣式命名的特點, 設(shè)計16個空樣式, 每個空樣式對應(yīng)一種十六進(jìn)制的水印信息碼元, 形成一個空樣式表。
第3步將水印信息轉(zhuǎn)換成空樣式。根據(jù)空樣式表, 將十六進(jìn)制的水印信息碼串的每一個碼元轉(zhuǎn)換成對應(yīng)的空樣式。
第4步空樣式的嵌入。查找網(wǎng)頁HTML代碼中的樣式, 依次將每個空樣式疊加插入到原有的樣式之后。
2、水印的提取
第1步提取空樣式。根據(jù)空樣式表中的樣式名, 從網(wǎng)頁的HTML代碼中依次提取出每個空樣式。
第2步生成十六進(jìn)制水印信息碼串。對照空樣式表, 將提取的每個空樣式轉(zhuǎn)換成對應(yīng)的十六進(jìn)制的水印信息碼元, 從而形成十六進(jìn)制的水印信息碼串。
第3步生成原始水印信息。根據(jù)UNICODE編碼, 將十六進(jìn)制的水印信息碼串轉(zhuǎn)換成對應(yīng)的水印信息字符串。
性能評價
網(wǎng)頁水印的性能主要有隱蔽性、抗攻擊性以及水印嵌入容量等。隱蔽性是指阻礙人識別出網(wǎng)頁中存在水印信息的能力;抗攻擊性是指嵌入的水印在經(jīng)受攻擊后仍能被正常提取的能力, 網(wǎng)頁水印的攻擊手段主要有格式變換、水印檢測等;水印容量則是可以嵌入水印信息量的大小。
如前所述, 現(xiàn)有的幾種網(wǎng)頁水印方法將水印信息轉(zhuǎn)換為HTML代碼中的不同格式, 這種做法使得水印信息和HT-ML代碼嚴(yán)重分離, 水印的痕跡比較明顯, 容易被識別, 一些簡單的攻擊方式就能破解。與這些方法相比, 基于空樣式的網(wǎng)頁水印方法具有更好的隱蔽性和抗攻擊性。一方面, 空樣式名與原有樣式名非常相似, 不易引起注意和懷疑;另一方面, 樣式內(nèi)容的定義通常存放在CSS文件中, 水印的攻擊者根據(jù)HTML代碼難以區(qū)分其中的真實樣式和空樣式, 無法檢測到空樣式的存在。如果試探性地修改樣式名, 會有很大的風(fēng)險, 若改動了真實樣式名, 會對頁面的顯示產(chǎn)生影響, 因此較難用過濾系統(tǒng)去除網(wǎng)頁中的水印信息。
本文地址:http://m.cdrpkj.cn//article/2019/0308/5758.html