软件保护概述
軟件保護技術從狹義的角度來說,即如何防止合法軟件被盜版,主要包括基于硬件的保護方式和基于軟件的保護方式。關于軟件保護技術的研究,實際上是一項綜合的技術,目前一些軟件保護產品供應商宣稱自己的產品是不可破解的,往往是一種營銷的策略,并沒有提供確切的數據和評測報告。還有一些供應商利用智能卡芯片本身具有很高的安全性,來誤導軟件開發商以為采用智能卡芯片的軟件保護產品也一定具有同樣的安全性,其實這些都是一些錯誤,片面的觀點。軟件保護產品和其他安全產品相比具有一定的特殊性,它所涉及的內容非常的廣泛,從上層的應用軟件、操作系統、驅動、硬件、網絡等等,是一個綜合的技術范疇,不能夠單一的由某個方面來以偏概全的斷定其安全與否。
1 基于硬件的保護方式
???????? 基于硬件的軟件保護策略可以包含多種功能,主要有認證過程、數據加密、訪問控制、唯一的系列號、密鑰產生、可靠的數據傳輸和硬件識別。這些手段主要的目的是防止硬件被復制,有一些產品也支持許可證策略。基于硬件的保護可以具有很好的安全性。主要包括以下幾種典型方式:
?????? 1.1 加密狗、加密鎖(Special-purpose Dongles)
加密狗是一種智能性加密產品,又被稱為加密鎖。它是一個可以安裝在并口、串口或USB接口上的硬件電路。在安全性上和基于軟件的保護方式相比,具有更高的安全性,但是對于使用被保護軟件的最終用戶而言,就不得不被迫接收在自己的機器上安裝相應的保護硬件和驅動程序,易用性上存在一定問題。同時和基于軟件的保護方式相比,價格也比較高。
???? ?
?????? 1.2 光盤、軟盤保護
被保護軟件的部分密鑰可以放在可移動的軟盤或光盤當中,只有當軟盤或光盤存在的時候,被保護軟件才可以運行,游戲軟件經常采用此種方式。
其基本原理是,例如Macrovision SafeDisk工具,它是在光盤的光軌上隱藏一個密鑰,而一般的光盤刻錄機無法復制此密鑰,通過此方法達到不可以復制光盤的目的,軟盤使用的技術類似。
存在問題:如果一旦原盤被劃壞或者毀壞,用戶就無法繼續使用軟件,同時這種保護方式可以被黑客很容易的分析或跟蹤找到判斷代碼處,通過修改可執行文件,跳過此段代碼,達到破解的目的。而且有的加密光盤可用工作在原始模式(RAW MODE)的光盤拷貝程序來原樣拷貝,比如用Padus公司的DiscJuggler和Elaborate Bytes公司的CloneCD等拷貝工具,所以此種保護技術的安全性并不是很高,但是由于其具有價格優勢,目前還是有一些軟件開發商使用此種技術來保護自己的軟件。
2 基于軟件的保護方式
???????? 基于軟件的保護技術和基于硬件的保護技術相比,在價格上具有明顯的優勢,但是在安全性上和硬件相比還是相差很大,一般正式的商業軟件都使用基于硬件的保護方式。基于軟件的軟件保護方式一般分為:注冊碼、許可證文件、許可證服務器、應用服務器模式、軟件老化等。
?????? 2.1 注冊碼 (License Key)
軟件開發商對一個唯一串(可能是軟件最終用戶的相關信息,例如:主機號、網卡號、硬盤序列號、計算機名稱等),使用對稱或非對稱算法以及簽名算法等方法產生注冊碼。然后需要用戶進行輸入(可以在軟件安裝過程或單獨的注冊過程)。當輸入注冊碼后,被保護軟件運行時進行解密,并和存儲在軟件中的原始串進行比較。存在問題:密鑰隱藏在程序代碼中,比較容易泄漏,同時黑客可以使用逆向工程,分析或跟蹤找到判斷代碼處,通過暴力破解的方法進行破解。
?????? 2.2 許可證文件(License File)
和使用注冊碼類似,但是許可證文件可以包含更多的信息,通常是針對用戶的一些信息。文件中可以包含試用期時間,以及允許軟件使用特定功能的一些信息。被保護軟件在運行時,將每次檢查許可證文件是否存在。典型的方法是使用非對稱算法的私鑰對許可證文件進行簽名,而公鑰嵌在軟件代碼中。存在問題:可以通過修改系統時鐘來延長使用試用期許可證,當許可證到期時,還可以重新安裝操作系統,繼續使用。同時黑客可以使用逆向工程,分析或跟蹤找到判斷代碼處,通過暴力破解的方法進行破解。
?????? 2.3 許可證服務器(License Server)
主要適用于網絡環境中,可以為多套被保護軟件提供服務,例如一個網絡許可證,可以限制并發最大用戶數為10。當客戶端被保護程序運行時,將占用一個用戶數,退出時將釋放出用戶數,如果超過最大用戶數,服務器將禁止多余的被保護程序運行。存在問題:一般必須面向企業級用戶,黑客可以使用逆向工程,分析或跟蹤找到判斷代碼處,通過暴力破解的方法進行破解。
????? 2.4 應用服務器模式(Application Server Model)
所有程序代碼存儲在受信任的服務器端,最終用戶不需要安裝代碼。典型應用為最終用戶不需要安裝軟件,只需要使用瀏覽器訪問服務器來使用被保護軟件。一般游戲軟件都是采用這種方式進行保護的。目前這種保護方式朝著兩個方向進行發展,一個是瘦客戶端程序,另一個是胖客戶端程序。存在問題:此種程序受到服務器性能和網絡帶寬,以及擴展性,成本等因素的影響。
???? ?
?????? 2.5 軟件老化(Software Aging)
這是一種極端的軟件保護方式[21],依賴于軟件的定期升級更新,每次更新都將使老版本的軟件功能不能繼續使用,例如不兼容的文件格式。盜版者必須給他的用戶經常升級。存在問題:經常升級造成很大的不便,如果可以自動化的進行此項工作,可以節省一部分精力。如果最終用戶需要共享數據,將依賴于每個人都有最新版本的軟件。這種保護方式并不適用于所有領域,例如:Microsoft Word可能工作的很好,但是如果是單用戶的游戲程序將不適合。
總結
- 上一篇: Zip4j 压缩包加密压缩与解压
- 下一篇: CMM概括