999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

李志偉

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

0 引 言

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

為了進一步探討軟件保護更加合理、有效的方法,在對當前常用軟件保護方法研究分析的基礎上,從簡便、實用的角度出發,提出了一種基于硬件特征信息嵌入認證的軟件保護方法,并通過具體的程序實例驗證了軟件認證的實現過程。

1 常用的軟件保護方法

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

1.1 軟加密保護方法

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

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

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

1.2 硬加密保護方法

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

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

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

1.3 軟硬件結合加密保護方法

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

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

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

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

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

2.1 設計原理

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

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

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

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

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

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

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

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

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

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

2.3 硬件特征信息的嵌入

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

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

圖2 硬件特征信息的嵌入

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

3 實驗與分析

3.1 特征信息采集程序設計

對于計算機硬件特征信息的采集,在進行程序設計時需要考慮對計算機資源和操作系統底層服務的操作,最直接的方法是利用匯編語言進行程序設計。然而在Windows 95以后的32位操作系統中,都提供了豐富的Win32應用程序編程接口 (application programming interface,API)函數,可以執行Windows提供的所有服務。根據不同的功能類別,這些函數分別封裝在不同的動態鏈接庫中,因此,對于硬件特征信息的采集,也可以通過高級語言調用相應動態鏈接庫中API函數的方法來實現,該方法簡捷方便,適用于目前流行的大多數高級語言。以聲卡的信息采集為例,在用Visual Basic進行程序設計時,首先要通過Declare語句聲明調用指定的動態鏈接庫,然后便可直接在程序中調用其中的API函數[8-9]。下面程序說明了聲卡相關信息的采集過程,采集結果存放在數組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)="產品名稱:"&Pname

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

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

End If

End Sub

3.2 軟件保護程序設計

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

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

圖3 軟件認證保護設計流程

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

3.3 實驗結論

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

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

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

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

3.4 安全性分析

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

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

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

4 結束語

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

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

[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).[胡偉,慕德俊,劉航,等.移動硬盤硬件加密的設計與實現 [J].計算機工程與應用,2010,46 (22):62-64.]

[2]LIU Xuehui,WANG Guoliang,FENG Liping.Software encryption based on disk serial number [J].Radio Engineering,2007,37 (6):6-7 (in Chinese).[劉學輝,王國良,馮麗萍.基于磁盤序列號實現軟件加密 [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). [劉偉,胡平.基于文件系統過濾驅動的文件加密系統設計 [J].微電子學與計算機,2009,26 (4):114-117.]

[4]HU Xiangdong,WEI Qinfang.Applied cryptography [M].Beijing:Publishing House of Electronics Industry,2011 (in Chinese).[胡向東,魏琴芳.應用密碼學 [M].北京:電子工業出版社,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). [孫永清,顧雨捷,趙戈.基于動態注冊碼的軟件加密保護 [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].浙江科技學院學報,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).[宋光杰,張明慧,李晶皎.基于硬件加密的嵌入式網絡通信的研究 [J].電子技術應用,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環境下基于類的軟件復用技術研究 [J].計算機工程與設計,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的數據庫系統應用程序的移植 [J].計算機工程與設計,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的軟件保護體系結構研究與設計 [J].計算機工程與設計,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高速解密算法的實現 [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].計算機工程與設計,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的軟件序列號網上驗證分析與實現 [J].計算機應用與軟件,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應用安全監測系統設計與應用 [J].計算機工程與設計,2010,31 (17):3760-3762.]

猜你喜歡
計算機特征用戶
計算機操作系統
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
如何表達“特征”
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
抓住特征巧觀察
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 五月婷婷激情四射| 亚洲一级毛片免费观看| 波多野结衣第一页| 91视频青青草| 午夜无码一区二区三区| 精品91在线| 久久婷婷人人澡人人爱91| 四虎影视永久在线精品| 男女男免费视频网站国产| 国产黄网站在线观看| av大片在线无码免费| 在线免费观看AV| 亚洲中文字幕无码mv| 重口调教一区二区视频| 中字无码精油按摩中出视频| 一级毛片无毒不卡直接观看| 全部免费毛片免费播放| 国产网友愉拍精品视频| 波多野结衣二区| 亚洲va在线观看| 国产在线观看人成激情视频| 亚洲 日韩 激情 无码 中出| 国产高清国内精品福利| 亚洲日本韩在线观看| 国产欧美日韩综合一区在线播放| 国产精品私拍99pans大尺度| 欧美激情网址| 精品亚洲麻豆1区2区3区| 萌白酱国产一区二区| 欧美成人二区| 18禁不卡免费网站| 国产成年无码AⅤ片在线| 91精品国产一区自在线拍| 国产精品视频系列专区| 久久鸭综合久久国产| 免费人成又黄又爽的视频网站| 亚洲不卡av中文在线| 亚洲一区二区精品无码久久久| 欧美人人干| 国产视频久久久久| 亚洲综合色婷婷| 欧美成人免费午夜全| 国产迷奸在线看| 一本大道视频精品人妻| 制服丝袜无码每日更新| 欧美成在线视频| 一级黄色网站在线免费看| 午夜国产小视频| 欧美午夜性视频| 香蕉视频在线观看www| 国产91成人| 人妻丰满熟妇av五码区| 一级高清毛片免费a级高清毛片| 亚洲欧美另类久久久精品播放的| 欧美成一级| 国产免费精彩视频| 久久精品无码中文字幕| 欧美亚洲第一页| 欧美亚洲一二三区| 国产福利拍拍拍| 一级毛片免费不卡在线| 国产成人8x视频一区二区| 在线日本国产成人免费的| AⅤ色综合久久天堂AV色综合| 操操操综合网| 国产人人射| 91激情视频| 中文字幕 日韩 欧美| 妇女自拍偷自拍亚洲精品| 在线人成精品免费视频| 亚洲欧美综合在线观看| 亚洲国产精品一区二区高清无码久久 | av在线无码浏览| 中文字幕亚洲精品2页| www.狠狠| 亚洲免费黄色网| 免费视频在线2021入口| 岛国精品一区免费视频在线观看| 免费又黄又爽又猛大片午夜| 91在线丝袜| 亚洲精品第一页不卡| 亚洲另类国产欧美一区二区|