王丹 張文波
摘 要:密碼學是一門古老而又年輕的學科。說它古老,是以為早在幾千年前,人類就已經(jīng)有了通信保密的思想,并先后出現(xiàn)了易位法和置換法等加密方法。因特網(wǎng)的飛速成長為共享軟件的快速發(fā)展提供了前所未有的機遇,面向各個領(lǐng)域的軟件都孕育而生。而軟件又因其數(shù)字產(chǎn)品的獨特屬性又使得其復制品可以做到和原品一模一樣。每一天,全世界由于軟件被盜版而造成的損失不小于9000萬美元。軟件的盜版問題,已經(jīng)成讓軟件業(yè)面臨著生死存亡的重大考驗,而加密手段也就成了唯一的選擇。在軟件產(chǎn)品的研制成功、推向市場之前,如何進行軟件版權(quán)保護,防止非法用戶盜版,直到現(xiàn)在依然是開發(fā)商不斷攻關(guān)的課題。該文介紹了軟件加密的背景和方式。論述了通過硬件信息的方法對共享軟件進行加密的原理及方法。
關(guān)鍵詞:軟件加密 硬件信息 算法 注冊碼
中圖分類號:TP309 文獻標識碼:A 文章編號:1674-098X(2012)12(a)-00-01
1 軟件加密的背景和現(xiàn)狀
軟件加密方法是20世紀80年代初期在Commodore64,Amiga這樣的單機游戲上首先開始試驗運行的。隨著PC機和DOS系統(tǒng)的興起,軟件產(chǎn)業(yè)得到了極速的突破,大量的游戲軟件、各種各樣的商業(yè)軟件、辦公軟件相繼問世,而軟件加密的理念也隨之繼承。這一時期的加密辦法主要是軟盤加密,主要因為在那個時代,軟盤是軟件流通的唯一載體。
Windows 95的出現(xiàn)終結(jié)了DOS一統(tǒng)天下的時代。光盤驅(qū)動逐漸成為了計算機的標準配置。光盤加密是軟盤加密技術(shù)的一種延續(xù),雖然加密技術(shù)有所不同,但原理同軟盤加密是一致的。常見的光盤加密的方法有SecuROM電子指紋技術(shù)、Sony的Key2Audio技術(shù)等。
隨著Windows XP的普及,計算機開始進入我們現(xiàn)在的互聯(lián)網(wǎng)時代。當國家和地區(qū)的差異不再受到限制以后,一種新的經(jīng)營模式也應運而生,那就是共享軟件。共享軟件是一種先使用后購買的銷售模式,軟件從網(wǎng)站上下載以后直接就可以使用,當用戶在使用這個軟件一段時間并覺得該軟件不錯以后,再決定是否購買。這個新的模式直接導致了軟件加密模式的改變,軟件注冊機制就成為了共享軟件的主要加密手段。其流程就是用戶決定購買軟件后通過匯款或者網(wǎng)上支付方式進行購買此軟件,而軟件開發(fā)商會通過網(wǎng)絡(luò)發(fā)給該用戶一個注冊碼,在用戶使用了注冊碼后,才能使用這個軟件所有功能。
還有一種辦法就是硬件加密,因為硬件是很不容易被盜版的,由于它本身的生產(chǎn)成本很高并且復制有很大的技術(shù)難度。所以這個加密辦法的目的只有一個,那就是利用硬件的不可復制性,來保證軟件的不可盜版。方法是在并口、串口等接口上安裝硬件電路,同時有一套使用于各種語言的接口軟件和工具軟件。這種辦法,今天被稱為“加密狗”。
2 軟件加密后的使用效果
(1)無法運行:在密碼沒有被通過的情況下,直接退出運行狀態(tài)。(2)次數(shù)或時間限制:一般共享軟件會有15 d或30 d的試用期,過了這個期限不能再使用了。(3)功能限制:如果沒有注冊,在使用時軟件只可以使用一小部分功能。(4)水?。菏褂脮r,處理完成的文件一般會帶有軟件開發(fā)商的標志,如影片或圖片上都有商標一類的水印。
3 加密方案整體設(shè)計
3.1 基于硬件信息對軟件加密法的研究
用戶從網(wǎng)上下載一個軟件后,安裝時會從用戶的機器上取得該機器的一些硬件信息(如硬盤序列號、BOIS序列號等),然后把這些信息和用戶的序列號、用戶名等進行計算,從而將軟件和硬件綁定。用戶需要把這一序列號用Email、電話等方法提供給軟件提供商,軟件開發(fā)商利用注冊機產(chǎn)生該軟件的注冊號發(fā)送給用戶即可以使用。
用戶在使用這種方法時,如果想在另一機器上安裝并且運行,必須再付一份費用并把軟件在這一機器上運行時的序列號,寄給軟件出版商購買注冊密碼。
這種方法的優(yōu)點是:(1)不同機器注冊碼不同。用戶獲得一個密碼只能在一臺機器上注冊使用軟件。優(yōu)于目前大部分軟件所采用的注冊方式,即只要知道注冊碼,可在任何機器上安裝注冊。(2)不需要任何光盤或軟盤。(3)可以根據(jù)軟件供應商的想法自主選擇控制軟件運行在什么機器、運行次數(shù)等。(4)讓軟件在未注冊前運行的功能為演示軟件,只能運行一段時間或部分功能。注冊后才會成為正式軟件。(5)解密者很難探尋到生成注冊碼的規(guī)律。(6)方便使用,價格低廉。
3.2 設(shè)計框架
基于硬件信息對軟件進行加密,就是要在注冊過程中收集相關(guān)的硬件物理信息,比如網(wǎng)卡的硬盤信息、MAC地址等。由于網(wǎng)絡(luò)的普及性,所有的計算機主板上都裝有網(wǎng)卡,網(wǎng)卡上的MAC地址是全球唯一性的。根據(jù)這些信息計算出來的注冊碼只能在一臺計算機上使用,從而有效地防止了非法注冊。
實現(xiàn)這一技術(shù)需要四個模塊:(1)硬件信息偵測模塊:此模塊用于讀取計算機硬件物理信息。(2)注冊狀態(tài)監(jiān)視模塊:此模塊用于判斷該用戶是否是已注冊的合法用戶。(3)注冊接口模塊:此模塊用于向用戶提供注冊接口。(4)遠程注冊模塊:此模塊的主要功能是根據(jù)用戶的硬件信息通過加密算法生成用戶注冊密碼。
具體加密流程如下:(1)運行應用軟件,硬件信息偵測模塊啟動并讀取用戶硬件信息。(2)硬件信息偵測模塊把讀取的硬件信息傳送給注冊狀態(tài)監(jiān)視模塊,注冊狀態(tài)監(jiān)視模塊根據(jù)獲得的硬件信息與注冊表中的注冊標志進行比較,判斷該用戶是否是已經(jīng)注冊的用戶。如果是則軟件正常運行,否則激活注冊接口模塊提醒用戶必須注冊。(3)用戶把硬件信息作為軟件授權(quán)號通過郵箱或其他方式提交給開發(fā)者。開發(fā)者接收到用戶發(fā)送來的授權(quán)號,用遠程注冊模塊得出用戶注冊密碼,并發(fā)送給用戶。該用戶接收到開發(fā)者發(fā)送來的注冊碼,通過應用軟件的注冊接口模塊注冊軟件。
4 結(jié)語
信息傳輸?shù)陌踩潜WC計算機網(wǎng)絡(luò)正常發(fā)展的關(guān)鍵問題。實踐證明,數(shù)據(jù)加密技術(shù)是解決網(wǎng)絡(luò)上信息安全傳輸?shù)闹匾侄?。如今軟件加密技術(shù)已經(jīng)衍生出各種各樣的結(jié)構(gòu)和理論,基于硬件信息對軟件加密只是電子注冊方法中的一種,現(xiàn)在已經(jīng)被廣泛的運用于共享軟件的注冊中。硬加密開始風行,并且成為廣泛采用的加密手段。軟件狗、加密卡等也成為了解密技術(shù)飛速發(fā)展的產(chǎn)物。但是加密與解密的斗爭將伴隨的軟件的飛速發(fā)展一直繼續(xù)持續(xù)下去。軟件加密技術(shù)必然在這場沒有硝煙的博弈中不斷得到發(fā)展。
參考文獻
[1] 陳愛民.計算機的安全與保密[M].北京:電子工業(yè)出版社,1992:223-241.
[2] 王曉華.共享軟件加密的一些誤區(qū)[J].電腦編程技巧與維護,2005.
[3] 飛天誠信.軟件加密原理與應用[M].北京:電子工業(yè)出版社,2005.