摘要:軟件加密隨著計算機技術的迅速發展,其技術已經涵蓋了數學、軟件、硬件、乃至網絡等多學科的內容。尤其是隨著互聯網的產生和普及,軟件加密開始從傳統形式向網絡化發展,“激活”和“驗證”的軟件加密形式從商業軟件向共享軟件擴張普及。該文闡述了軟件加密技術隨互聯網的發展歷程,介紹了不同時期軟件加密的基本方法和工作原理,指出了軟件加密向網絡化發展的趨勢。
關鍵字:互聯網;軟件加密;網絡化;激活
中圖分類號:TP309文獻標識碼:A文章編號:1009-3044(2008)33-1318-02
Software Encryption Technology in the Development of Internet
SONG Ran-xin
(Yang-En University, Quanzhou 362014, China)
Abstract: With the development of the computer technology, software encryption has included math software hardware network and many other subjects. In particular,with the development of internet,software encryption has changed from traditional method to network. The method of \"Activatation\" and \"Authentication\" is spreading form Business software to Shareware.The article introduces the history of software encryption with the development of internet and the basic tenets of encryption in different stages,it points that the trend of software encryption is network.
Key words: Internet; software encryption; network; activate
1 引言
軟件加密,這個計算機領域并不陌生的詞匯,隨著計算機相關技術的不斷發展,時至今日,已經發展成一個相當大的概念,其方法,手段和內容多種多樣,技術更是涵蓋了數學、計算機軟件、硬件、網絡等多方面的內容。隨著互聯網的迅速發展和普及,軟件加密技術越來越緊密地和互聯網聯系了起來。那么,軟件加密在互聯網的發展帶動下產生了怎樣的變化?軟件加密又將向著什么的趨勢發展下去呢?下面,將就這兩個問題具體展開論述。
2 軟件加密在互聯網的發展帶動下產生的轉變
互聯網發展過程中的軟件加密技術隨操作系統的更新大致上可以劃分為兩個階段[1]:
2.1 Windows 98--Windows 2000時期
這個時期互聯網的發展促使軟件加密形式發生改變。
隨著Windows和家用PC的普及,計算機發展步入了互聯網時代,此時,各種軟件基本都能在網絡上找到,一種新的軟件銷售形式應運而生,也是現在軟件大多采用的形式,那就是共享軟件(Shareware)。一般軟件從網絡上下載以后就可以使用,但是會有一些諸如時間和功能等的限制,當用戶試用一段時間后,覺得滿意,再付費購買。
共享軟件的出現改變了軟件的銷售形式,這種從傳統的銷售到網絡銷售的模式變化直接導致了軟件加密模式的變化,軟件的加密形式從早期的捆綁磁盤和加密狗加密轉變為軟件的注冊機制[3]。軟件注冊機制的基本流程就是用戶決定購買軟件后,通過匯款或網上支付來購買軟件,軟件開發商會根據用戶提供的姓名等信息通過網絡發送給用戶一個注冊碼或者注冊文件來解除共享軟件的使用限制。
此時的共享軟件的加密方式大多都是圍繞注冊碼或注冊文件展開,為防止軟件被非法復制使用,即有人將自己的注冊信息共享給他人,一種改良的軟件注冊機制——許可證加密方式出現了,把原來的“一人一碼”改為“一機一碼” [3],原理是,軟件通過檢測當前計算機的一些軟硬件信息,生成特征碼,用戶付費注冊時將此特征碼和個人信息交給軟件開發商以獲取根據這些信息生成的注冊信息。這種注冊方式雖然一定程度上解決了軟件被非法使用的問題,但是同時也會給用戶帶來很多不便,每當用戶升級變更硬件或更換計算機時,原來的特征碼就會發生變化,注冊信息也就隨之失效,這時就需要重新向開發商提交并索要一次注冊信息,對于開發商來說,也無疑中成倍的增加了軟件維護所帶來的費用。
2.2 Windows XP--Windows Vista時期
這個時期軟件加密技術向網絡化發展。
隨著互聯網的高速發展,網絡已經走進了千家萬戶,網絡的普及使得計算機軟件都具備了相關的網絡功能,如產品更新,服務支持等。軟件加密技術也毫不例外的和網絡有了更多的聯系。在微軟公司的新一代操作系統Windows XP中,把“激活”這種新的軟件加密機制應用并推廣了起來[3]。所謂激活技術(見圖1),其實是對傳統的許可證加密方式的網絡化改良:用戶輸入一個和產品綁定的序列號,軟件通過檢測相應的計算機環境信息并根據輸入的序列號生成驗證碼,然后提交給開發商所設立的遠程驗證服務器上,服務器會自動驗證序列號的合法性,并根據提交上來的驗證碼,發送給用戶一個合法的授權文件,使其獲得全部的功能。激活過程完全由軟件自身和網絡完成,不再需要用戶發送,并且激活過程也是即時的。為了防止用戶將序列號共享他人,服務器在驗證序列號合法性的同時會進行次數檢測,即一個合法的序列號最多能和幾組特征碼綁定。當多出指定的次數時,這個序列號將變為不合法。
微軟公司成功地將“激活”這一網絡軟件加密形式應用在了WindowsXP軟件中,在隨后的Office XP 、Office 2003 和Windows Vista中也都延續了這種網絡保護機制。Adobe公司也在旗下最新的軟件產品如PhotoShop、Acrobat中使用了“激活”這一技術。可以說,“激活”這一基于網絡驗證的軟件加密形式,在商業軟件的保護中取得了廣泛的認可和成功。
在這些商業軟件的帶動下,共享軟件的加密方式也逐步向網絡靠攏,越來越多的共享軟件開始采用“激活”的網絡保護機制。有些則對激活機制進行了部分精簡改良,形成了一種更適合小型共享軟件發展的網絡保護機制——驗證。所謂驗證,其實就是在傳統的軟件注冊機制上加上了網絡驗證功能。當用戶以“一人一碼”的注冊方式注冊成功后,軟件自身會不定期或者在進行自身更新時,向遠程驗證服務器提交軟件注冊信息及相關環境信息進行驗證,檢查是否有過多用戶使用同一授權文件,從而扼制軟件的非法復制和傳播。

圖1 軟件“激活”機制示意圖
3 軟件加密的網絡化發展
互聯網的廣泛應用催生了共享軟件這種軟件形式,共享軟件的銷售特點促使了軟件加密由傳統的捆綁加密形式向軟件注冊機制發展,隨著互聯網的發展,網絡的大范圍推廣解決了傳統注冊機制的缺點和所帶來的一系列問題。在商業軟件的帶動下,軟件加密技術開始向網絡化發展。
3.1 軟件加密網絡化的可行性
網絡化的加密技術已經成功并廣泛地應用在商業軟件領域中,那么,網絡化的軟件加密形式對于從事共享軟件開發的個人和團隊來說是否可行呢?
軟件加密的網絡化部署需要一定的軟硬件基礎環境,如軟件中網絡注冊功能和遠程服務器端驗證功能的實現及遠程服務器建立和設置還有相應的互聯網絡支持等。
其中基于軟件網絡功能部分,在現在的主流編程語言中都提供了較好的支持。下面提供一個具有簡單功能的驗證程序的實現方法:
服務器端:采用ASP+Access數據庫實現Web服務器程序(見表1),為方便架設,可以用Netbox等軟件將服務器端封裝成一個獨立的Web服務器執行程序。

表1 網絡驗證程序服務器端程序列表
客戶端:采用indy控件中的idhttp組件,構造Http頭,向指定的服務器發送用戶名和密碼,然后從服務器端的數據庫中獲取對應的注冊信息。
實現加密網絡化的另一個主要問題在于解決驗證服務器的建立和相應的網絡支持。
互聯網的普及使著大多數軟件都具備了相應的網絡功能,為了支持這些網絡功能,都設立了專用的服務器提供網絡服務,如產品在線更新、技術支持等,這使得網絡化的加密形式,諸如“激活”和“驗證”等有了堅實的硬件和網絡應用部署基礎。借由這些提供用戶網絡服務的服務器,軟件作者就可以方便地實施部署自己的網絡化加密。同時,加密的網絡化也促使軟件加密和軟件程序中的網絡功能模塊結合在一起,相輔相成,如:只有經過驗證的正版注冊的用戶才享有軟件的更新,在軟件檢查更新的同時校檢用戶的注冊信息等。另外,軟件在進行網絡校檢和認證的過程中,傳輸的只是較小的一部分數據信息,因此,對于服務器性能和網絡帶寬不會有太高的要求同時也不會造成明顯的負擔。即便是對于租用的服務器來說,也不會帶來過多額外的費用。
因此,網絡化的加密形式對于較小規模的共享軟件開發團隊來說是完全可行的,相比傳統的軟件加密形式使得軟件較容易遭到破解而產生損失,網絡化的加密形式所帶來的收益足可以應付其所帶來的額外開支。
3.2 軟件加密網絡化的優勢
優勢一:減少軟件支持帶來的開發成本
使用網絡化加密技術的軟件,只需要一次性地將用戶的注冊信息輸入到服務器端,以后用戶如果因為各種個人行為,如升級硬件、更換主機等,導致注冊信息發生改變,都只需通過軟件自身到服務器端去獲取信息,不再需要人工參與,有效地減少了維護用戶注冊所帶來的開發成本。
優勢二:有效地對軟件實施保護,防止軟件被輕易破解
軟件的加密和破解是矛與盾的關系,他們在互相斗爭中發展進步[1],傳統的軟件加密技術,由于軟件保護都在本地實現,因此較容易被破解。然而,網絡化的加密技術,將軟件保護分為兩部分,一部分在本地,另一部分則在遠程服務器,即使本地部分遭到破解,那軟件也會相應損失其部分的功能,而遠程服務器部分(網絡部分)在一般情況下是不可能被破解的,因此,從很大程度上來講,網絡化的加密技術可以有效地防止軟件被完全破解,從而防止軟件的非法使用,維護軟件作者的個人收益。
4 結束語
軟件加密正借由著互聯網的高速發展一步步地向網絡化邁進,隨著越來越多的商業和共享軟件開始應用網絡化的加密技術,網絡化的加密形式也將不斷地進行發展、豐富、整合、和完善。相信不久的將來,將會有更多方式的新型網絡加密形式涌現出來,網絡化的軟件加密形式也將逐步形成一個完整、獨立的加密體系,被越來越多的軟件開發者所應用并推廣開來。
參考文獻:
[1] 看雪.加密與解密——軟件保護技術及完全解決方案[M]. 北京:電子工業出版社,2001:1-2.
[2] 段鋼.加密與解密[M].2版.北京:電子工業出版社,2003:1-3.
[3] 飛天誠信.軟件加密原理與應用[M].北京:電子工業出版,2004:2-5.