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