軟件加密方法

軟件行業(yè)的加密是軟件廠商為了保護(hù)軟件開發(fā)的利潤而采取的一種軟件保護(hù)方式。當(dāng)前,軟件加密方法多種多樣,從實現(xiàn)形式上經(jīng)歷了兩個階段:不依賴硬件的加密(軟加密)方案和依賴特定硬件的加密(硬加密)方案。

軟件加密方法

一、不依賴硬件的加密方法

不依賴硬件的加密方法是一種低成本的加密方式。它的特點(diǎn)是不需要有輔助的硬件存在,直接在軟件中設(shè)立密碼。相關(guān)的方法有序列號法、密碼表加密法、許可證法。

1、序列號法加密法

序列號法是用戶在購買正版軟件的時候供應(yīng)商提供給他們正確的密碼,從而使他們順利安裝和使用購買的軟件的方法。但是,由于電腦軟件的易復(fù)制性,盜版軟件只需復(fù)制軟件及安裝序列號,一樣能夠完成安裝并順利運(yùn)行,在軟件功能上沒有任何缺損。于是,這種類型的“鑰匙”其實成了一種象征性的擺設(shè),沒有什么加密強(qiáng)度可言。

2、密碼表加密法

密碼表加密法是程序在運(yùn)行時提出一些提示問題,用戶需要按提示問題回答,如果回答錯誤則程序停止運(yùn)行。正常情況下,只有輸入正確的密碼,軟件才認(rèn)為是合法使用者。這種加密方法運(yùn)行簡單,使用廣泛。但是,因為密碼表的特征字串很容易被復(fù)制,盜版者可以把整個密碼表輸入到計算機(jī)中存成一個文件,同軟件的盜版一同公布出來,所以很容易被盜版者利用。

3、許可證加密法

從某種角度上說,這種方式是序列號加密的一個變種。用戶從網(wǎng)上下載的或購買的軟件并不能直接使用,軟件在安裝時或運(yùn)行時會對計算機(jī)進(jìn)行一番檢測,并根據(jù)檢測結(jié)果生成一個計算機(jī)的特定指紋,這個指紋可以是一個小文件,也可以是一串誰也看不懂的數(shù),需要把這個指紋數(shù)據(jù)通過Internet、E-mail、電話、傳真等方式發(fā)送到開發(fā)商那里,開發(fā)商再根據(jù)這個指紋給用戶一個注冊碼或注冊文件,用戶得到這個注冊碼或注冊文件后,按軟件要求的步驟在計算機(jī)上完成注冊后方能使用。

這個方法的買賣也是完全通過網(wǎng)絡(luò)來進(jìn)行的,而且用戶購買的軟件被限制了,只能在自己的計算機(jī)上運(yùn)行,換到其他的計算機(jī)上,這個注冊碼或注冊文件可能不再有效。同時用戶更換某些硬件設(shè)備也可能造成注冊碼的失效,而且用戶得到軟件后在完成注冊工作前會有一段時間無法使用。對于軟件開發(fā)商來說服務(wù)與管理的工作量無疑也是非常巨大的。將來PIII處理器內(nèi)部有了特定的序列號,將會減少這種加密方法的硬件依賴性,但估計普及起來還有很長的一段時間。

二、依賴特定硬件的加密

硬加密的原理是將加密信息固化在某個硬件電路中,然后將它作為一個軟件的附加設(shè)備銷售給用戶。當(dāng)運(yùn)行該軟件的時候,將該固化的電路設(shè)備接到計算機(jī)的輸出端口,軟件根據(jù)是否檢測到對應(yīng)的“密鑰”來決定是否運(yùn)行該軟件或者屏蔽某些功能。在這一類加密保護(hù)中有軟盤加密、加密卡、軟件鎖等。

1、軟盤加密

鑰匙盤的方式是最常見的軟盤加密方式。所謂鑰匙盤方式就是通過BIOS的INT13中斷對軟盤格式化一些特殊的磁道,有的還在特殊磁道里寫入一定信息,軟件在運(yùn)行時要校驗這些信息。這種軟盤就好象一把“鑰匙”一樣,所以被人習(xí)慣稱為鑰匙盤。如KV3000等殺毒盤和早期的計算機(jī)等級考試安裝盤就采用了這種加密方式。它們的主要特點(diǎn)是在軟磁盤的特殊位置做標(biāo)記,在軟件運(yùn)行中計算機(jī)要讀取這些特殊標(biāo)記,以驗證軟件的合法性。由于記錄這種特殊標(biāo)記的位置不能被平常的拷貝命令或拷貝軟件所讀取,所以,鑰匙盤類的軟件不能被輕易復(fù)制,這樣,加在軟件中的“鎖”就變得比較安全有效了。

2、加密狗

加密狗是插在計算機(jī)并行口上的軟硬件結(jié)合的軟件加密產(chǎn)品。加密狗一般都有幾十或幾百字節(jié)的非易失性存儲空間可供讀寫,有的內(nèi)部還增添了一個單片機(jī)。軟件運(yùn)行時通過向并行口寫入一定數(shù)據(jù),判斷從并行口返回密碼數(shù)據(jù)正確與否來檢查加密狗是否存在。加密狗包括加密代碼程序和“密鑰”(亦稱加密盒)兩部分。加密代碼程序檢查“密鑰”是否存在,是否正確,在無誤的情況下,去執(zhí)行正常功能的應(yīng)用程序?!懊荑€”中存放了“密碼”,用硬件電路實現(xiàn)加密。

3、采用BIOS序列號

隨著技術(shù)的高速發(fā)展,獲取CPU信息和硬盤信息的加密方式越來越不適用。在計算機(jī)的升級之中,主板是面臨淘汰的可能性最小的硬件,因此,主板序列號將作為主板有唯一的標(biāo)志,被運(yùn)用到軟件的加密中。主板序列號其實就是BIOS序列號,因為每臺計算機(jī)的主板都有唯一的標(biāo)志———BIOS序列號,所以完全可以將這個序列號作為軟件的認(rèn)證信息。

三、各種加密方法的比較

1、依賴硬件的加密與不依賴硬件的加密的比較

依賴特定硬件的加密軟件不容易被復(fù)制,因此,依賴特定硬件的加密比不依賴特定硬件的加密可靠。

2、“硬件指紋”與“軟件指紋”的比較

“軟件指紋”是指在傳統(tǒng)的磁盤加密方法中,以軟件的方式在磁盤的磁道上產(chǎn)生特殊的格式作為指紋,因此,“軟件指紋”的產(chǎn)生受到磁盤機(jī)的轉(zhuǎn)速、兼容性等不穩(wěn)定因素的影響較大。另外,磁盤是一種容易損壞的介質(zhì),必須細(xì)心地保存指紋盤?!坝布讣y”是指指紋以硬件的形式存在,具有很高的可靠性。

3、加密狗與磁盤的比較

采用加密狗加密軟件,由于指紋和軟件是分離的,可以對軟件進(jìn)行備份,以防止原盤損壞。而磁盤加密方法把指紋放在磁盤上,不能備份,如果原盤損壞,軟件就不能繼續(xù)使用。

采用加密狗加密時,軟件以不加密的形式存放,可以大批地快速復(fù)制,而采用磁盤加密方法,必須在每張盤上逐個制作指紋,而且指紋盤的質(zhì)量難以保證,所以,加密狗加密法比磁盤加密法可靠。

無論是不依賴硬件的加密法還是依賴硬件的加密法,都是為了防止軟件盜版而采取的一種主動的自我保護(hù)行為。加密技術(shù)的發(fā)展,也集中體現(xiàn)了計算機(jī)軟硬件技術(shù)的前沿水平。發(fā)展加密技術(shù),不僅僅是保護(hù)軟件不被盜版,更重要的是培育一個勞而有獲的健康的軟件市場。

小知識之軟件加密

軟件加密就是用戶在發(fā)送信息前,先調(diào)用信息安全模塊對信息進(jìn)行加密,然后發(fā)送,到達(dá)接收方后,由用戶使用相應(yīng)的解密軟件進(jìn)行解密并還原。采用軟件加密方式有以下優(yōu)點(diǎn):已經(jīng)存在標(biāo)準(zhǔn)的安全API(Application Programming Interface,應(yīng)用程序編程接口)產(chǎn)品、實現(xiàn)方便、兼容性好。