
摘要:為了能在云平臺上保護軟件版權,研究了軟件水印算法的類型,對靜態水印算法和動態水印算法的優缺點進行了分析。研究-常見的攻擊軟件水印的方式,提出了相應的防御措施。分析了軟件水印算法的評價指標,并闡述了如何選擇適用于云平臺的軟件水印算法。并在前面研究的基礎上提出了如何在云平臺中應用軟件水印的方法和步驟。
關鍵詞:軟件版權;軟件水印;云平臺
中圖分類號:TP312 文獻標識碼:A
文章編號:1009-3044(2020)20-0098-02
Research on the Application of Soft,vare Watermark in Cloud Platform
YAN Hui
(Guangdong Baiyun University, Guangzhou 510450,China )
Abstract:ln order to protect software copyright on cloud platform, the types of software watermarking algorithms are studied. and theadvantages and disadvantages of static and dynamic watermarking algorithms are analyzed. This paper studies the common ways ofattacking software ,~'atermark, and puts fonvard the corresponding defense measures. This paper analyzes the evaluation index ofsoftware watermarking algorithm, and expounds how to select software watermarking algorithm suitahle for cloud platform. And onthe basis of the previous research. the method and steps of how to apply software watermark in cloud platform are proposed.Key words:software copyright; software watermark; cloud platform
1背景
軟件是計算機系統的重要組成部分,軟件由計算機程序和相關的文檔來組成。軟件是一種智力產品,記錄在相應的介質上,軟件很容易被復制,這種特點使得軟件侵權現象非常嚴重。軟件侵權會損害軟件企業的切身利益,對分銷商和服務商也會產生相應的損害,甚至會危害到政府的稅收。
對計算機軟件的侵權行為一般有兩種形式:一種是復制程序的基本要素或結構;另一種是按一定的規則、順序只復制軟件的部分代碼。這兩種行為都構成了軟件的侵權。
目前主要從法律和技術兩個方面對軟件版權進行保護。法律方面,制定相應的法律法規,加強相關的法律監管,如我國修訂了《中華人民共和國著作權法》、制定了《計算機軟件保護條例》來保護軟件版權。技術方面,一般通過加密、序列號等方式來防止軟件盜版、阻止非法軟件運行。
軟件水印是近年來興起的一種軟件保護技術,可以用來標識作者、開發時間、使用者等相關信息,攜帶有版權保護信息和身份認證信息,可以鑒別出非法復制和盜用的軟件產品。目前對水印的研究多以理論研究為主,集中在研究軟件水印算法并比較算法的優劣等方面,較少應用于實踐。如果能研究出應用型較強的軟件水印算法,通過在軟件中嵌入水印,在使用時提取出水印,即可鑒別該軟件的版權歸屬,防止軟件侵害行為的發生。
隨著云計算的發展,很多軟件轉移到云平臺上存儲和運行,而云平臺上的安全威脅也會影響到軟件的版權保護。軟件水印技術作為信息安全領域的重要組成部分,研究如何在云平臺應用軟件水印技術來保護軟件版權具有積極的意義。
2軟件水印算法
2.1軟件水印算法的類型
近年來,國內外研究人員對軟件水印展開了廣泛的研究,包括軟件水印算法的研究、軟件水印在軟件版權保護、軟件安全運行方面的研究。目前對軟件水印算法的研究結果包括各類軟件水印算法的設計、實現和改進,根據是否需要執行程序,可將軟件水印算法分為靜態水印算法和動態水印兩大類。
靜態水印算法的主要思路是直接將水印信息隱藏在程序中,不需要運行程序即可提取出水印信息。根據軟件水印嵌入到程序中的位置,又可以分為數據水印和代碼水印兩種。數據水印通常做法是將水印信息轉換為字符串之后嵌入到程序中的某個位置,插入的水印信息即可用來識別軟件的版權。數據水印算法比較容易實現,但是容易被攻擊者識別,被刪除之后就起不到版權保護的作用了。代碼水印通常是通過特定的程序結構來嵌入軟件水印,例如在函數名中嵌入水印片段,通過特定的函數調用次序,來生成軟件水印。這種方法也比較容易被攻擊者識別,如果攻擊者改變了函數名或者改變了函數調用次序,那么軟件水印就會失效。綜合來說,靜態水印算法的實現比較簡單,也比較容易提取軟件水印,但是容易被攻擊者識別并破解,魯棒性不強。
動態水印算法將水印信息通過特定的算法結合密鑰嵌入在程序代碼中,需要運行程序,在程序執行的過程中動態地生水印,通過水印提取算法,才能將水印信息提取出來。動態水印算法常見的有基于動態圖的、基于改進動態圖的、基于R-Tree的等等。動態圖軟件水印,將水印信息隱藏在某種拓撲結構中,通過代碼的執行來表示水印信息,需要對程序的行為或者狀態進行分析來識別水印。動態路徑算法是利用程序執行路徑來嵌入水印,通過程序的分支結構來表示水印的片段。動態水印算法的實現相對復雜,抗攻擊性較強,但是通用性較差。
2.2對軟件水印的攻擊及防御措施
對軟件水印的攻擊類型主要有以下幾種:
1)刪除水印:攻擊者發現軟件水印之后,在不影響軟件運行的情況下將其刪除,則軟件版權失去保護,無法證明軟件的版權;
2)添加水印:攻擊者將白己的水印信息嵌入軟件中,在軟件中存在兩種水印,從而混淆了軟件的版權信息;
3)水印扭曲:攻擊者通過在不影響軟件運行的情況下,對程序進行修改,從而使得軟件水印失效。
針對軟件水印的攻擊,目前常見的防御措施有代碼混淆技術和防篡改技術來對抗攻擊。
2.3軟件水印算法的評價指標
用來評價軟件水印算法的指標主要有隱蔽性、可靠性、性能等方面。在程序中嵌入的軟件水印應該能夠被正確提取和識別,不容易被攻擊者發現并修改,并且算法不應該太復雜,要求容易實現且時間復雜度不能太高,否則會降低軟件的性能。
2.4選擇適用于云平臺的軟件水印算法
現在,云平臺的發展很迅速,許多應用程序都存儲、運行在云平臺中。怎么保護云環境中的軟件、識別非法軟件及阻止非法軟件的運行是目前亟待解決的問題。而Java技術在云計算中的應用是比較廣泛的,常見的應用于Java程序的軟件水印算法有基于字節碼的水印算法、基于函數調用的水印算法、基于虛方法的水印算法等。在選擇適用于Java程序的軟件水印算法時,除了要考慮軟件水印算法的可靠性、隱蔽性、性能等指標之外,還需要考慮在云平臺上如何驗證軟件版權及阻止非法軟件運行。因此,構建能夠對軟件水印進行檢測的JVM組件也是一個重要的研究方向。
3在云平臺中應用軟件水印
要在云平臺中應用軟件水印,其實施過程主要包括嵌入軟件水印、提取軟件水印、驗證軟件水印等過程,如圖1所示。
3.1嵌入水印信息
首先確定原始水印信息,可包括廠商名、作者名、版本號、日期等版權信息。然后通過加密算法將原始水印信息進行加密,成為加密后的水印信息。再通過嵌入算法將加密后的水印信息嵌入到原始程序P中,得到嵌入水印后的程序P。嵌入水印的過程可使用以下公式來表示:embed(P,W,K)->P。其中,P代表原始程序,W代表水印信息,K代表密鑰。
3.2部署
將程序P部署在云平臺中,由相應的JVM組件支持軟件水印的提取和識別。
3.3提取水印信息
云平臺上運行程序P時,通過提取算法將嵌入在程序P中的加密水印信息進行提取,然后通過解密算法對其進行解密,得到解密后的水印信息。提取水印的過程可使用以下公式來表示:recognize(P,K)->P。其中,P表示嵌入水印后的程序,K表示密鑰,P表示提取水印后的程序。
3.4驗證水印信息
在云平臺上,將解密后的水印信息與軟件的版權信息進行對比,看信息是否一致。如果兩者信息一致,則該軟件的版權明確;如果兩者信息不一致,則該軟件的版權不明確,可在云平臺中暫停該軟件的使用,達到保護軟件版權的目的。
4結束語
本文研究在云平臺中軟件水印的關鍵技術,包括軟件水印算法的研究、如何在軟件中嵌入水印、在云平臺中提取軟件水印并驗證等這幾個方面的內容。通過軟件水印的應用,對于保護軟件版權、促進軟件行業的健康發展、保護國家經濟利益等方面具有具有一定的應用價值及社會意義。
參考文獻:
[1]賀國盛.云平臺下基于軟件水印的Java安全運行技術研究[D].成都:電子科技大學,2018.
[2]余志偉.云平臺中水印感知的Java安全運行環境關鍵技術研究[D].北京:清華大學,2013.
[3]王葉茂,車生兵.軟件水印及其研究現狀概述[J].計算機應用與軟件,2015,32(4): 6-10.
[4]孫光,樊曉平,蔣望東,等.云計算環境約束下的軟件水印方案[J].網絡與信息安全學報,2016,2(9): 12-21.
[5].李宏宇.云環境下的軟件保護方案[J].電腦開發與應用,2013, 26(3): 49-52.
[6]李奎,陳建平,施佺,等.一種Java軟件水印植入虛方法的永假式構造[J].計算機科學,2013,40(12): 211-214.
[7]劉嘉怡,燕雪峰.一種基于動態圖編碼的軟件水印方案[J].計算機科學,2017,44(9): 131-135.
[8]余志偉.云平臺中水印感知的Java安全運行環境關鍵技術研究[D].北京:清華大學,2013.
【通聯編輯:謝媛媛】
收稿日期:2020-05-08
基金項目:2019年度廣東白云學院校級科研項目(項目編號:2019BYKYK02)
作者簡介:顏慧(1979-),女,廣西橫縣人,講師,碩士,主要研究方向為軟件工程。