軟體水印

軟體水印(Software WaterMarking)是數字水印技術的分支,是近年來出現的軟體產品著作權保護技術,可以用來標識作者、發行商、所有者、使用者等信息,並攜帶有著作權保護信息和身份認證信息,可以鑑別出非法複製和盜用的軟體產品。

技術介紹

根據軟體水印的提取技術來分,可分為靜態水印和動態水印。靜態水印存儲在可執行程式代碼中,比較典型的是把水印信息放在安裝模組部分,或者是指令代碼中,或者是調試信息的符號部分。對於Java 程式,水印信息也可以隱藏在類檔案(包括常量池表、方法表、行號表)的任何部分中。

靜態水印又可以進一步分為靜態數據水印和靜態代碼水印。區別於靜態水印,動態水印則保存在程式的執行狀態中,而不是程式原始碼本身。這種水印可用於證明程式是否經過了迷亂變換處理。

動態水印主要有3 類:Easter Egg 水印、數據結構水印和執行狀態水印。其中,每種情況都需要有預先輸入,然後根據輸入,程式會運行到某種狀態,這些狀態就代表水印。

評價標準

在保證嵌入水印後的軟體,與原軟體在功能一致的前提下,衡量軟體水印技術好壞的標準主要有以下3個:

(1) 隱藏信息量(adatote):表示程式代碼中嵌入的水印數據量。

(2) 隱蔽性 (staeh)h:表示嵌入數據對於觀察者的不可察覺程度。

(3) 彈性 (r esilecn)e:表示嵌入數據對攻擊的免疫程度。

對水印的攻擊:攻擊者必須在保證攻擊後的軟體功能不變的前提下對水印進行一系列操作。水印需要具備一定的彈性以抵禦這些攻擊。主要的攻擊方式有以下4類:

(1) 去除攻擊(subtractiveattack):將水印信息從軟體中去除。

(2) 變形攻擊(disotrtiveattack):對水印程式進行模糊變換,使攻擊後的軟體不能提取出水印,或者使提取的水印不再具有著作權證明作用。

(3) 添加攻擊(addilivealtack):往軟體中添加新的水印使原水印無法提取,或者使提取的水印不再具有著作權證明作用。

(4) 共謀攻擊(collusiveattack):通過比較幾個不同軟體,找出嵌入的水印,從而破壞它。

軟體水印技術是近幾年來國際學術界才興起的一個前沿研究領域,處於迅速發展階段,而軟體水印又是其中的一個重要組成部分,因此作為軟體安全領域中的新生事物,具有很高的技術含量和很強的生命力,而成為保護軟體所有權的有力武器。

相關詞條

熱門詞條

聯絡我們