二次授權(quán)序列算法在網(wǎng)絡(luò)軟件加密技術(shù)中的應(yīng)用

軟件是智力勞動(dòng)的結(jié)晶,也是軟件研發(fā)人員工作的成果,如何通過(guò)有效的技術(shù)保護(hù)它不讓人無(wú)償?shù)恼加芯哂兄匾囊饬x。加密是一種應(yīng)用非常廣泛的軟件保護(hù)方法,常用的是通過(guò)注冊(cè)碼的方式來(lái)對(duì)軟件進(jìn)行保護(hù)。在各種不同的加密算法中,根據(jù)密鑰的公開(kāi)性可以將其分成對(duì)稱加密算法和非對(duì)稱加密算法(又稱公開(kāi)密鑰算法)。本文利用一種二次授權(quán)序列生成的加密算法,實(shí)現(xiàn)了在軟件內(nèi)對(duì)注冊(cè)碼進(jìn)行簽名驗(yàn)證,并成功通過(guò)測(cè)試,達(dá)到了軟件保護(hù)的目的。

一、軟件保護(hù)技術(shù)研究現(xiàn)狀

目前采用的軟件保護(hù)方法可以分為三大類:軟加密、硬加密、網(wǎng)絡(luò)加密,軟加密即用純軟件的方法來(lái)實(shí)現(xiàn)軟件的加密,主要有密碼方式、軟件自校驗(yàn)方式和鑰匙盤方式。硬加密則是利用硬件和軟件相結(jié)合來(lái)實(shí)現(xiàn)軟件的加密,其典型產(chǎn)品包括加密卡、軟件狗和微狗等。隨著Internet應(yīng)用的普及,Internet上的安全技術(shù)、加密技術(shù)也得到了很大的發(fā)展,加密過(guò)程中結(jié)合使用Internet通信技術(shù),授權(quán)號(hào)碼產(chǎn)生過(guò)程中的信息傳遞基于Internet網(wǎng)絡(luò)。但是,在這種傳統(tǒng)的網(wǎng)絡(luò)加密方式中,授權(quán)使用的軟件序列號(hào)只在安裝軟件時(shí)認(rèn)證一次,并且相對(duì)固定,容易被盜。

二、軟件系統(tǒng)的安全需求

對(duì)于軟件系統(tǒng)而言,其安全性是指系統(tǒng)資源和信息資源不受非系統(tǒng)授權(quán)的偽造、篡改、泄露,避免任何內(nèi)部或外部非法的侵入、盜用、欺騙。通常而言,信息系統(tǒng)安全包括實(shí)體安全、軟件安全、數(shù)據(jù)安全和運(yùn)行安全,為便于解析軟件系統(tǒng)安全引入了Mylnfo通用信息平臺(tái),其構(gòu)架如圖1所示。

二次授權(quán)序列算法在網(wǎng)絡(luò)軟件加密技術(shù)中的應(yīng)用

此構(gòu)架基本上反映了常見(jiàn)信息平臺(tái)的真實(shí)情況。從圖1可以看出,Mylnfo以組件形式構(gòu)建了相關(guān)的核心服務(wù)和業(yè)務(wù)服務(wù)層,形成了以關(guān)鍵技術(shù)提供平臺(tái)式的基礎(chǔ)服務(wù),涉及到的安全需求主要有:

(1)安全的通信機(jī)制保證信息不至于在通訊途中被偵聽(tīng)、篡改、偽造、截?cái)啵?/p>

(2)合理的用戶登陸,擁護(hù)授權(quán)管理,以確保只有合法的用戶才能夠正常操作使用信息系統(tǒng),同時(shí)操作定義將會(huì)被局限在該用戶被系統(tǒng)許可的權(quán)限范圍內(nèi);

(3)完備的認(rèn)證機(jī)制既實(shí)現(xiàn)靜態(tài)的信息安全,也實(shí)現(xiàn)執(zhí)行時(shí)動(dòng)態(tài)的信息安全,并有利于跟蹤用戶實(shí)時(shí)操作,實(shí)現(xiàn)角色訪問(wèn)控制;

(4)后臺(tái)的數(shù)據(jù)安全基于現(xiàn)有關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)的可操作性數(shù)據(jù)安全封鎖,定義一系列數(shù)據(jù)安全規(guī)范并加以實(shí)施,以實(shí)現(xiàn)關(guān)鍵數(shù)據(jù)即使不慎泄露仍具有保密性,在未被解密之前竊取者無(wú)法獲取有利用價(jià)值的敏感信息;

(5)代碼的信息隱藏包括客戶端的腳本級(jí)代碼的規(guī)范安全和服務(wù)器端動(dòng)態(tài)頁(yè)面代碼的適度封裝,從而實(shí)現(xiàn)系統(tǒng)的外部安全和內(nèi)部安全;

(6)關(guān)鍵的日志追蹤,對(duì)于已經(jīng)發(fā)生的事件,在需要的時(shí)候可以實(shí)現(xiàn)日志回溯,并記錄攻擊者的頻率信息;實(shí)施主動(dòng)防范等。

三、二次授權(quán)序列生成算法

本文在借鑒現(xiàn)有的軟件保護(hù)方法的基礎(chǔ)上,結(jié)合MD5數(shù)據(jù)加密算法,提出了一種二次授權(quán)序列的軟件保護(hù)方法,在軟件使用前授權(quán),在使用過(guò)程中進(jìn)行授權(quán)”判別,從而達(dá)到保護(hù)軟件版權(quán)的目的。

基于網(wǎng)絡(luò)軟件系統(tǒng)基本上開(kāi)放式的源碼現(xiàn)狀,要求對(duì)軟件的使用進(jìn)行相關(guān)的預(yù)先授權(quán)t以保障軟件開(kāi)發(fā)者的版權(quán)。實(shí)際授權(quán)時(shí),可以生成兩串加密序列,其中一個(gè)為使用授權(quán)序列,另一個(gè)為注冊(cè)信息序列。結(jié)合現(xiàn)有的加密工具包,分別提出一種生成算法。

(1)使用授權(quán)序列生成算法(25位序列號(hào))

①預(yù)定義基本映射字符集[0123456789ABCDEFG I-UKLMNPQRTUVWXY],共32個(gè)字符,其中字母I,O,S,Z由于易與1、O、5、2混淆而排斥在字符集外;

②獲取唯一標(biāo)志機(jī)器的指紋信息序列(Machine Fingerprint Serial,MFS)、如硬盤序列號(hào)、網(wǎng)卡MAC地址、CPU序列號(hào)等信息的有規(guī)則序列化;

③隨機(jī)函數(shù)在[0—31]間生成隨機(jī)數(shù),二一映射為BMCS中相應(yīng)的字符,如此循環(huán)9次生成字符的序列,記為C9;

④令報(bào)文M=C9+MFS,再HashMD5(M),MD5散列后得到128bit的位串,即32個(gè)16進(jìn)制字符,記為H32;

⑤Haslhmls (Hn),得256bit串,即64個(gè)16位字符,記為H6I;

⑥將H甜每4位依次取出,記為H4,實(shí)現(xiàn)操作Dec(Hex (Oxh4))MOD32→BMCS,即將每4位字符視為16進(jìn)制數(shù)并轉(zhuǎn)化為10進(jìn)制數(shù)再模32取余,將余映射為BMCS中的某一字符,如此可生成16位的字符序列,記為C16;

⑦C9+C16,得25位的序列號(hào),記為C25。

校驗(yàn)算法:

重復(fù)上述步驟①-⑦,從注冊(cè)表中取得的已注冊(cè)使用授權(quán)序列C25,相同則校驗(yàn)通過(guò),否則視為非合法授權(quán)。

(2)注冊(cè)信息序列生成算法

①預(yù)設(shè)16進(jìn)制字符集[0123456789ABCDEF] (Hexadecimal Code Set,HCS),隨機(jī)生成8位HCS集的序列,記為H8;

②預(yù)定義運(yùn)算O,算出O (H8+MFS)值作為加密密鑰,用RC4加密成16位16進(jìn)制字符,記為H16;

③Hasbmd5(H8+H16)=H32;

④Hashsha256(H32)-H64;

⑤對(duì)H64每8個(gè)字符一取,記為H8,并將其前4個(gè)字符轉(zhuǎn)換作映射:Dec(Hex(Left(H8,4)))MOD16_HCS,可得8個(gè)字符的MAC;校驗(yàn)值,記為M8;

⑥拼合H8+ H16+ H8,即得32個(gè)字符的注冊(cè)信息序列。

還原算法:

a、判別注冊(cè)信息序列是否合法,即重復(fù)上述步驟③一⑤,比較MAC值與M8是否相同,不同則為非法的注冊(cè)信息,還原出錯(cuò);

b、相同則取中間的H16,用O(H8+MFS)作為密鑰進(jìn)行解密;

c、將解密后的字符序列二進(jìn)制化,并根據(jù)預(yù)置編碼規(guī)則還原為注冊(cè)信息。

上述的算法可作為基礎(chǔ)參考,算法關(guān)鍵模塊必須進(jìn)行反跟蹤技術(shù)處理,以防止暴力破解。

四、應(yīng)用實(shí)例

上述安全策略,均以Mylnfo信息系統(tǒng)平臺(tái)為藍(lán)本。該信息平臺(tái)的設(shè)計(jì)開(kāi)發(fā)方案中最大的著眼點(diǎn)就是確保整個(gè)系統(tǒng)的安全性。目前Mylnfo平臺(tái)已經(jīng)作為一個(gè)整體的信息系統(tǒng)移植到某企業(yè)的綜合信息管理中,取得了很好的應(yīng)用效果。在使用過(guò)程中,由于安全措施到位,整個(gè)系統(tǒng)運(yùn)行平穩(wěn)、高效、安全,達(dá)到了預(yù)期的開(kāi)發(fā)需求。

小知識(shí)之Myinfo

Myinfo是一款集新聞信息搜索、跟蹤、個(gè)性定制、新聞編輯、信息發(fā)布等于一體的個(gè)性化軟件,它比RSS訂閱方式范圍更廣,可以搜索采集任何網(wǎng)站,它比搜索引擎分類更加詳細(xì)、準(zhǔn)確 ,它是目前唯一免費(fèi)個(gè)性化信息搜索采集軟件。