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