亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于硬件特征信息嵌入認證的軟件保護

        2012-07-25 11:06:00李志偉
        計算機工程與設(shè)計 2012年7期
        關(guān)鍵詞:計算機特征用戶

        李志偉

        (空軍第一航空學(xué)院 航空軍械工程系,河南 信陽464000)

        0 引 言

        計算機軟件產(chǎn)品作為軟件設(shè)計者技術(shù)與智慧的結(jié)晶,知識產(chǎn)權(quán)的保護一直受到人們的高度重視。從技術(shù)層面來講,軟件保護的方法很多,既有軟件方法,也有硬件方法[1],然而不管是采用哪種方法,都是通過一定的技術(shù)手段實現(xiàn)對軟件用戶合法身份的認證,防止軟件被盜用,確保軟件開發(fā)者和合法用戶的正當權(quán)益,推動軟件產(chǎn)業(yè)的健康發(fā)展。

        為了進一步探討軟件保護更加合理、有效的方法,在對當前常用軟件保護方法研究分析的基礎(chǔ)上,從簡便、實用的角度出發(fā),提出了一種基于硬件特征信息嵌入認證的軟件保護方法,并通過具體的程序?qū)嵗炞C了軟件認證的實現(xiàn)過程。

        1 常用的軟件保護方法

        通常情況下,軟件保護的方法主要有三大類,一是不依賴任何硬件的軟加密保護方法,二是采用硬件設(shè)備實施的硬加密保護方法,三是采用軟件與硬件相結(jié)合的加密保護方法。

        1.1 軟加密保護方法

        軟加密保護方法的基本原理是,通過在軟件中插入加密模塊來保證軟件不被非法使用。

        常用的軟加密保護方法有:密碼表法、軟件自校驗法、鑰匙盤法、序列號法[2]等。前兩種方法對軟件的保護強度相對較弱,主要用于早期的軟件加密保護;后兩種方法由于不能限制軟件在多臺計算機上安裝,近年來其應(yīng)用范圍也受到了一定的限制。

        該方法的優(yōu)點是采用純軟件方法,不依靠任何特殊硬件設(shè)備的支持,因此加密成本較低,靈活性較強,易于移植,易于使用,易于升級[3]。缺點是加密處理需要額外占用計算機系統(tǒng)資源,加大了系統(tǒng)開銷,易降低軟件運行速度,此外,加密軟件本身存在的安全漏洞 (如密鑰駐留內(nèi)存),也可能對某些敏感數(shù)據(jù)的安全性造成威脅。

        1.2 硬加密保護方法

        硬加密保護方法的基本原理是,利用計算機硬件或某些信息存儲模塊來實施對軟件系統(tǒng)的加密保護。

        常用的硬加密保護方法主要有3種:一是將加密信息固化到加密模塊上,如軟件狗、USB鑰匙盤等,軟件在每次啟動時,先檢測硬件上的相應(yīng)信息,如果檢測通過,則啟動軟件系統(tǒng),否則終止軟件運行。二是對于某些需要通信連接的軟件,可以在通信鏈路上使用專用的加密盒進行加密[4]。三是采用計算機接口卡,將軟件的核心代碼或主要模塊通過加密處理寫入到存儲芯片中,并將其固化到該卡上,在計算機硬盤上只存放軟件的引導(dǎo)部分。

        該方法的主要優(yōu)點是加解密處理對計算機系統(tǒng)資源的占有率較低,幾乎不影響軟件運行速度;硬件加密設(shè)備可以安全地封裝起來,能夠有效地防止各種跟蹤、攻擊工具對軟件的破譯,提高軟件的安全性。缺點是增加了軟件開發(fā)的額外成本,且對用戶的使用造成了某些不便。

        1.3 軟硬件結(jié)合加密保護方法

        軟硬件結(jié)合加密保護方法很多,目前,比較常用的是動態(tài)注冊碼法[5]。

        該方法的基本原理是,利用用戶計算機硬件系統(tǒng)本身的一些特征信息,如CPU ID、聲卡ID、BIOS信息、網(wǎng)卡的MAC地址、硬盤序列號等 (這些信息也被稱為計算機指紋),通過身份認證實現(xiàn)對軟件的加密保護。

        其設(shè)計思路是,在軟件安裝完成后,由軟件本身動態(tài)采集用戶計算機系統(tǒng)的特征信息,然后通過某種加密算法進行處理,產(chǎn)生一組用戶代碼信息,用戶可以通過約定的通訊方式與開發(fā)者建立聯(lián)系,由軟件開發(fā)者對用戶的身份進行確認,并根據(jù)用戶提供的計算機特征信息代碼產(chǎn)生一組與之對應(yīng)的軟件注冊碼并提供給用戶,用戶采用該注冊碼對軟件進行注冊,獲得使用許可。

        通過這種方法獲得的用戶注冊碼,由于是根據(jù)計算機的硬件特征信息 (具有絕對唯一性)動態(tài)生成的,因此可以確保軟件只在一臺計算機上使用[6],對保護軟件的合法權(quán)益具有重要意義。然而,由于身份認證是通過軟件注冊完成的,這便給軟件的安全帶來了很大的漏洞。一旦軟件注冊機被破譯,或者軟件被更改而跳過注冊,則軟件便得不到保護。為了克服上述缺點,下面提出了一種將計算機硬件特征信息嵌入到程序內(nèi)部,通過身份認證實現(xiàn)對軟件高強度保護的具體方法。

        2 硬件特征信息嵌入認證軟件保護

        2.1 設(shè)計原理

        基于計算機硬件特征信息嵌入認證的軟件保護方法,其設(shè)計原理仍然是利用用戶計算機系統(tǒng)硬件的特征信息[7],但與動態(tài)注冊碼方法的最大區(qū)別是,在程序設(shè)計時即把與這些特征信息有關(guān)的一些檢測、處理等直接寫入到程序內(nèi)部,以此省去用戶在使用軟件時的注冊環(huán)節(jié),消除軟件注冊接口漏洞,降低軟件被破譯的可能性,從而最大限度地保護軟件的知識產(chǎn)權(quán)。

        由此可見,該方法設(shè)計的關(guān)鍵是,用戶計算機硬件特征信息的采集和嵌入。

        2.2 用戶計算機硬件特征信息采集

        用戶計算機硬件特征信息采集通常由用戶自己完成,用戶利用開發(fā)者提供的信息采集軟件,在需要安裝的計算機上運行后便可檢測、產(chǎn)生出特征信息密碼文件。采集流程如圖1所示。

        圖1 用戶計算機硬件特征信息采集

        為了使軟件在應(yīng)用過程中既能方便用戶,又能保護軟件開發(fā)者的利益,硬件特征信息采集軟件設(shè)計時需要注意如下幾個方面的問題:

        (1)信息采集應(yīng)盡量考慮一些固定不變的信息,避免采用雖然唯一,但是有可能變化的一些信息,如網(wǎng)絡(luò)IP地址 (與網(wǎng)絡(luò)連接位置或用戶設(shè)置有關(guān))、硬盤的邏輯序列號(每次格式化后產(chǎn)生的號都不一樣)等。

        (2)盡量避免對軟件運行時不需要支持的硬件設(shè)備特征信息進行采集,例如,軟件運行時不需要網(wǎng)絡(luò)連接,則可以不把網(wǎng)卡的MAC地址作為必測信息,以免由于軟件身份認證給本來合法的用戶造成不便。

        (3)為了安全起見,檢測到的計算機特征信息通常需要進行加密處理 (加密算法可采用安全性較好的通用算法或開發(fā)者自行設(shè)計的算法),使得用戶看到的只是一組普通的字符序列或密碼文件,解密程序由開發(fā)者自行研制、自行保管。

        (4)加密、解密算法必須安全、合理,并確保對密文解密后能夠正確還原。

        2.3 硬件特征信息的嵌入

        為了減少開發(fā)者的工作量,軟件可以設(shè)計成通用形式以適應(yīng)所有許可用戶,具體方法是在軟件中插入一個特征信息表,存放經(jīng)過許可認證的用戶計算機特征信息。

        當開發(fā)人員收到用戶提供的計算機特征信息密碼文件后,首先進行解密,還原出用戶計算機硬件的原始特征信息,并將其插入到軟件中已有的特征信息表中,以便軟件在運行時進行信息比對,實現(xiàn)身份認證。信息嵌入流程如圖2所示。

        圖2 硬件特征信息的嵌入

        說明:①在設(shè)計硬件特征信息表時,同一臺計算機的各個特征參數(shù)可以相互綁定,以提高軟件身份認證的強度。②可以通過一些散列算法對每組特征參數(shù)分散存儲,以提高破譯者對軟件跟蹤、攻擊的難度。

        3 實驗與分析

        3.1 特征信息采集程序設(shè)計

        對于計算機硬件特征信息的采集,在進行程序設(shè)計時需要考慮對計算機資源和操作系統(tǒng)底層服務(wù)的操作,最直接的方法是利用匯編語言進行程序設(shè)計。然而在Windows 95以后的32位操作系統(tǒng)中,都提供了豐富的Win32應(yīng)用程序編程接口 (application programming interface,API)函數(shù),可以執(zhí)行Windows提供的所有服務(wù)。根據(jù)不同的功能類別,這些函數(shù)分別封裝在不同的動態(tài)鏈接庫中,因此,對于硬件特征信息的采集,也可以通過高級語言調(diào)用相應(yīng)動態(tài)鏈接庫中API函數(shù)的方法來實現(xiàn),該方法簡捷方便,適用于目前流行的大多數(shù)高級語言。以聲卡的信息采集為例,在用Visual Basic進行程序設(shè)計時,首先要通過Declare語句聲明調(diào)用指定的動態(tài)鏈接庫,然后便可直接在程序中調(diào)用其中的API函數(shù)[8-9]。下面程序說明了聲卡相關(guān)信息的采集過程,采集結(jié)果存放在數(shù)組SoundInfo中。

        Private Declare Function waveOutGetNumDevs Lib"Winmm.dll"()As Long

        Private Declare Function waveOutGetDevCaps Lib"Winmm.dll"Alias"waveOutGetDevCapsA"(ByVal uDeviceID As Long,lpCaps As Waveoutcaps,ByVal uSize As Long)As Long

        Private Type Waveoutcaps

        Wmid As Integer

        Wpid As Integer

        Vdriverversion As Long

        Szpname As String*32

        Wchannels As Integer

        End Type

        Private Sub CollectInfo()

        Dim Consequencd As Long

        Dim Returncaps As Waveoutcaps

        Dim Pname As String

        Dim Channel As String*2

        Dim SoundInfo (3)

        Consequence=waveOutGetDevCaps (0,Returncaps,Len (Returncaps))

        If Consequencd=0Then

        Pname=LeftMYM (Returncaps.Szpname,InStr(Returncaps.Szpname,ChrMYM (0))-1)

        Channel=StrMYM (Returncaps.Wchannels)

        SoundInfo(1)="產(chǎn)品名稱:"&Pname

        SoundInfo (2)="產(chǎn)品Id:"&Returncaps.Wpid

        SoundInfo (3)="驅(qū) 動 程 序Id:" & Returncaps.Wmid

        End If

        End Sub

        3.2 軟件保護程序設(shè)計

        基于計算機硬件特征信息嵌入認證的軟件保護方法,是在進行程序設(shè)計時即把認證程序嵌入到系統(tǒng)中,在系統(tǒng)運行過程中自動完成身份認證。

        當軟件運行時,首先采集當前計算機的硬件特征信息,然后將其與軟件中內(nèi)嵌的特征信息表中的信息進行比對,檢查是否匹配,如果匹配成功,則通過計算機身份認證,繼續(xù)運行程序,否則即可判斷該計算機為未被授權(quán)用戶,終止程序運行。軟件認證保護設(shè)計流程如圖3所示。

        圖3 軟件認證保護設(shè)計流程

        說明:程序設(shè)計時,可在多個關(guān)鍵模塊設(shè)置身份認證,以進一步提高軟件保護強度。

        3.3 實驗結(jié)論

        從上述應(yīng)用設(shè)計可以看出,基于硬件設(shè)備特征信息嵌入認證的軟件保護技術(shù),不但利用了Windows操作系統(tǒng)的底層服務(wù)功能,而且利用了軟件的加密、解密算法,從而使軟件保護更加有效。經(jīng)過近年來的多個軟件系統(tǒng)應(yīng)用驗證,該方法具有如下幾個方面的特點:

        (1)由于計算機硬件特征信息嵌入到了程序內(nèi)部,身份認證是在程序運行過程中自動完成的,沒有經(jīng)過其它通信接口,因此被跟蹤、破譯的可能性較小,軟件保護強度較高。

        (2)由于將用戶計算機硬件特征信息與應(yīng)用軟件進行了綁定,提交給用戶的最終軟件只有在經(jīng)過認證的計算機上才能運行,因此即使軟件被完整地移植到了未經(jīng)許可的其它計算機上,也將因無法完成身份認證而不能執(zhí)行,最大限度地保護了開發(fā)者的知識產(chǎn)權(quán)。

        (3)軟件加密、解密算法的應(yīng)用使得用戶計算機硬件特征信息只對開發(fā)者是透明的,軟件保護更為有效。

        3.4 安全性分析

        軟件保護的安全性涉及到許多方面,包括反調(diào)試、反跟蹤、反靜態(tài)分析等[10]。

        就上述軟件保護方法而言,其安全性主要取決于3個方面:一是特征信息提取設(shè)計,二是特征信息認證設(shè)計,三是加密、解密算法設(shè)計。其中最有可能出現(xiàn)安全漏洞的環(huán)節(jié)是用戶提取的特征信息密碼文件被破譯。然而在程序設(shè)計時,由于這些特征信息已經(jīng)被嵌入到了程序內(nèi)部,因此,即使這些特征信息被破譯,也無太大的實際意義,對于提交給用戶的最終軟件來說,其安全性仍無任何影響。

        另外,在特征信息嵌入、認證過程中采用了一些加密、解密算法,就安全性而言,目前業(yè)界公認且常用的算法主要有DES、AES、MD5[11-12]等,設(shè)計時可以采用其中任意一種或其它安全性較好的算法,當然,開發(fā)者也可以根據(jù)情況自己設(shè)計一種算法[13]。由于該算法只掌握在開發(fā)者自己手里,因此只要設(shè)計合理,則同樣具有很高的安全性。

        4 結(jié)束語

        基于硬件設(shè)備特征信息嵌入認證的軟件保護,設(shè)計方法簡單,成本低,通用性強,保護強度高,既不需要加密鎖等額外硬件開銷,也不需要鑰匙盤或口令等復(fù)雜操作,極大地方便了用戶。

        該軟件保護方法既適用于單機版軟件,也適用于網(wǎng)絡(luò)版軟件,尤其是行業(yè)或部門統(tǒng)一配發(fā)的軟件系統(tǒng)。當然,對于網(wǎng)絡(luò)版軟件,既可以利用計算機硬件特征信息配合網(wǎng)絡(luò)特征信息[14-15]實施軟件保護,也可以根據(jù)應(yīng)用的具體特點,單獨利用網(wǎng)絡(luò)特征信息實施軟件保護,因此軟件工程實踐中,該軟件保護方法還具有更強的擴展應(yīng)用能力。

        [1]HU Wei,MU Dejun,LIU Hang,et al.Design and implementation of hardware-encrypted mobile hard disk drive [J].Computer Engineering and Applications,2010,46 (22):62-64 (in Chinese).[胡偉,慕德俊,劉航,等.移動硬盤硬件加密的設(shè)計與實現(xiàn) [J].計算機工程與應(yīng)用,2010,46 (22):62-64.]

        [2]LIU Xuehui,WANG Guoliang,F(xiàn)ENG Liping.Software encryption based on disk serial number [J].Radio Engineering,2007,37 (6):6-7 (in Chinese).[劉學(xué)輝,王國良,馮麗萍.基于磁盤序列號實現(xiàn)軟件加密 [J].無線電工程,2007,37(6):6-7.]

        [3]LIU Wei,HU Ping.File encryption system design based on file system filter driver [J].Microelectronic and Computer,2009,26 (4):114-117 (in Chinese). [劉偉,胡平.基于文件系統(tǒng)過濾驅(qū)動的文件加密系統(tǒng)設(shè)計 [J].微電子學(xué)與計算機,2009,26 (4):114-117.]

        [4]HU Xiangdong,WEI Qinfang.Applied cryptography [M].Beijing:Publishing House of Electronics Industry,2011 (in Chinese).[胡向東,魏琴芳.應(yīng)用密碼學(xué) [M].北京:電子工業(yè)出版社,2011.]

        [5]SUN Yongqing,GU Yujie,ZHAO Ge.Software encryption and protection based on dynamic register code [J].Computer Engineering,2007,33 (12):183-184 (in Chinese). [孫永清,顧雨捷,趙戈.基于動態(tài)注冊碼的軟件加密保護 [J].計算機工程,2007,33 (12):183-184.]

        [6]XU Xu,PAN Zhigang.Solution to creating software activation serial number based on “current hardware ID for current machine”[J].Journal of Zhejiang University of Science and Technology,2010,22 (4):273-277 (in Chinese). [許旭,潘志剛.一種基于 “一機一碼”的軟件激活序列號生成方案 [J].浙江科技學(xué)院學(xué)報,2010,22 (4):273-277.]

        [7]SONG Guangjie,ZHANG Minghui,LI Jingjiao.Research of embedded network communications based on hardware encryption [J].Application of Electronic Technique,2010,36 (1):148-150(in Chinese).[宋光杰,張明慧,李晶皎.基于硬件加密的嵌入式網(wǎng)絡(luò)通信的研究 [J].電子技術(shù)應(yīng)用,2010,36(1):148-150.]

        [8]LI Zhiwei.Study on class based software reuse technology in VB environment [J].Computer Engineering and Design,2010,31 (5):1152-1155 (in Chinese). [李志偉.VB環(huán)境下基于類的軟件復(fù)用技術(shù)研究 [J].計算機工程與設(shè)計,2010,31 (5):1152-1155.]

        [9]LI Zhiwei.The transplant of database system applications based on ODBC [J].Computer Engineering and Design,2009,30(12):2985-2988 (in Chinese).[李志偉.基于 ODBC的數(shù)據(jù)庫系統(tǒng)應(yīng)用程序的移植 [J].計算機工程與設(shè)計,2009,30(12):2985-2988.]

        [10]LEI Jin’e,TIAN Wei,LI Peiwu.Architecture research and design based on FPGA for software protection [J].Computer Engineering and Design,2009,30 (7):1580-1582 (in Chinese).[雷金娥,田偉,李沛武.基于FPGA的軟件保護體系結(jié)構(gòu)研究與設(shè)計 [J].計算機工程與設(shè)計,2009,30(7):1580-1582.]

        [11]LE Deguang,CHANG Jinyi,LIU Xiangnan,et al.Implementation of MD5fast decryption algorithm based on graphic processing unit[J].Computer Engineering,2010,36 (11):154-158(in Chinese).[樂德廣,常晉義,劉祥南,等.基于GPU的MD5高速解密算法的實現(xiàn) [J].計算機工程,2010,36 (11):154-158.]

        [12]QIAN Min,CHEN Xiangning.Enhanced recognition of USB token [J].Computer Engineering,2007,33 (5):138-139(in Chinese).[錢敏,陳相寧.USB身份鎖的強化識別 [J].計算機工程,2007,33 (5):138-139.]

        [13]YU Huifang,WANG Caifen,WANG Zhicang,et al.Certificateless multi-proxy signcryption scheme [J].Computer Engineering and Design,2010,31 (5):973-975 (in Chinese).[俞惠芳,王彩芬,王之倉,等.無證書的多代理簽密方案[J].計算機工程與設(shè)計,2010,31 (5):973-975.]

        [14]LIU Guoliang,ZHANG Zhibin,XU Dixin,et al.Analysis and realization of software serial number online validation based on SSL [J].Computer Applications and Software,2010,27(1):280-282 (in Chinese).[劉國良,張智斌,徐迪新,等.基于SSL的軟件序列號網(wǎng)上驗證分析與實現(xiàn) [J].計算機應(yīng)用與軟件,2010,27 (1):280-282.]

        [15]GAO Guozhu,WU Haiyan.Design and applying of web application security detecting system [J].Computer Engineering and Design,2010,31 (17):3760-3762 (in Chinese). [高國柱,吳海燕.Web應(yīng)用安全監(jiān)測系統(tǒng)設(shè)計與應(yīng)用 [J].計算機工程與設(shè)計,2010,31 (17):3760-3762.]

        猜你喜歡
        計算機特征用戶
        計算機操作系統(tǒng)
        基于計算機自然語言處理的機器翻譯技術(shù)應(yīng)用與簡介
        科技傳播(2019年22期)2020-01-14 03:06:34
        如何表達“特征”
        不忠誠的四個特征
        當代陜西(2019年10期)2019-06-03 10:12:04
        信息系統(tǒng)審計中計算機審計的應(yīng)用
        抓住特征巧觀察
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        如何獲取一億海外用戶
        亚洲精品国产电影| 亚洲免费视频一区二区三区| 美女被强吻并脱下胸罩内裤视频| 久久亚洲av成人无码电影| 欧美精品一区二区蜜臀亚洲| 中文字幕少妇AV| 国产精品国产三级在线专区| 最新中文字幕一区二区| 亚洲精品无amm毛片| 四虎影视国产在线观看精品| 亚洲国产av一区二区三| 亚洲av男人的天堂一区| 亚洲av永久无码精品三区在线| 日本一区二区精品88| 蜜桃一区二区免费视频观看| 中美日韩在线一区黄色大片| 国产大屁股熟女流白浆一区二区| 无码少妇丰满熟妇一区二区| 精品日韩欧美一区二区在线播放| 精品午夜一区二区三区久久| 麻豆国产精品久久天堂| 四虎国产成人永久精品免费| 1717国产精品久久| 成人国产在线播放自拍| 国产女主播强伦视频网站| 久久精品亚洲国产av网站| 国产国产人免费人成免费视频| 天天躁人人躁人人躁狂躁| 色婷婷亚洲十月十月色天| 麻豆最新国产av原创| 性色av无码中文av有码vr| 在线观看av手机网址| 一区二区三区一片黄理论片| 亚洲中文字幕久久精品蜜桃| 99re久久精品国产| 亚洲国产精品亚洲高清| 日韩精品久久中文字幕| 国产精品人妻一码二码尿失禁 | 日本大片免费观看视频| 久久国产精彩视频| 日本精品啪啪一区二区|