• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于加密鎖的指揮信息系統(tǒng)軟件防護(hù)問題研究

      2015-11-01 10:09:26余祥李強(qiáng)何海洋
      指揮與控制學(xué)報(bào) 2015年4期
      關(guān)鍵詞:攻擊者校驗(yàn)代碼

      余祥 李強(qiáng) 何海洋

      指揮信息系統(tǒng)是以軍事科學(xué)為基礎(chǔ),以軍事指揮體系為構(gòu)建框架,以指揮控制人員為核心,以提高指揮控制效能為目標(biāo),采用計(jì)算機(jī)技術(shù)、信息技術(shù)等,將各種指揮控制手段與指揮人員有機(jī)地結(jié)合起來,實(shí)現(xiàn)指揮信息的采集、收集、傳遞、處理和顯示,實(shí)現(xiàn)指揮決策的科學(xué)化的人–機(jī)系統(tǒng)[1].指揮信息系統(tǒng)軟件的安全與否關(guān)乎整個指揮信息系統(tǒng)的安全,以至于整個指揮決策的成敗.指揮信息系統(tǒng)軟件一旦被破解,將給指揮機(jī)構(gòu)帶來巨大損失.因此,對指揮信息系統(tǒng)軟件采取一定的保護(hù)措施,防止或延遲敵方對被保護(hù)軟件的攻擊,是非常迫切的研究課題.軟件保護(hù)技術(shù)就是為了防止非法用戶通過逆向工程、篡改、反編譯等技術(shù)來非法使用軟件、敏感數(shù)據(jù)及軟件版權(quán)等,而對軟件采取的多種保護(hù)技術(shù)的綜合技術(shù)[2].軟件保護(hù)技術(shù)對軟件安全的作用日益突出,逐漸成為軟件安全性的最后一道防線.

      目前,對軟件的惡意攻擊主要通過3種方式:逆向分析(Reserve Analysis)、代碼篡改(Code Tamper)和軟件盜版(Software Piracy)[3].針對上述攻擊方式,許多軟件保護(hù)技術(shù)被提出用于保護(hù)軟件的安全,典型的技術(shù)包括以下幾種:

      混淆技術(shù):將原始程序P轉(zhuǎn)換成新的程序P’.P與P’相比具有相同的外部行為,并且代碼安全性能更強(qiáng)[4].攻擊者將P’恢復(fù)成P所耗費(fèi)的時(shí)間多于將P轉(zhuǎn)換成P’的時(shí)間.

      防篡改技術(shù):通過檢查軟件程序是否被非法修改,檢測篡改后,軟件中的防篡改算法會執(zhí)行相應(yīng)的反制措施.防篡改技術(shù)主要有兩種實(shí)現(xiàn)策略,一是采取相應(yīng)機(jī)制增加篡改程序的難度,提高篡改者攻擊程序的成本;二是檢測篡改事件并采取應(yīng)對措施[5],比如,導(dǎo)致程序非正常運(yùn)行等.

      軟件水印技術(shù):通常分為水印(watermark)和指紋(fingerprint)兩個方面.兩者統(tǒng)稱為軟件水印,即不被感知地嵌入在軟件中的一段具有標(biāo)識意義的信息[5].在必要的時(shí)候,可以從軟件中提取出這些特定的標(biāo)識信息證明軟件的版權(quán)或是追溯軟件非法擴(kuò)散的途徑.

      基于硬件的保護(hù)技術(shù):通過一些可信硬件給數(shù)據(jù)、代碼或可執(zhí)行文件提供一個安全的環(huán)境,使被保護(hù)的軟件免于被逆向分析,不被篡改,或阻止代碼剽竊事件的發(fā)生[4].目前最常用的方法就是將加密鎖與軟件進(jìn)行綁定并一起發(fā)布.

      隨著軟件攻擊技術(shù)的快速發(fā)展,單純利用一種軟件保護(hù)技術(shù)已難以實(shí)現(xiàn)軟件的有效保護(hù),為此,本文將混淆技術(shù)與加密鎖保護(hù)技術(shù)相結(jié)合,提出一種基于加密鎖的指揮信息系統(tǒng)軟件保護(hù)的方法,將軟件關(guān)鍵代碼進(jìn)行隔離,并替換為加密鎖中虛擬機(jī)執(zhí)行系統(tǒng)中的指令在加密鎖中執(zhí)行,同時(shí)利用加密鎖對軟件關(guān)鍵數(shù)據(jù)進(jìn)行加密并定時(shí)校驗(yàn),有效確保軟件安全.

      1 加密鎖保護(hù)原理

      加密鎖是為了防止軟件非法使用與程序進(jìn)行綁定的硬件設(shè)備,其設(shè)計(jì)思想是:如果一個程序只是一大堆比特的話,復(fù)制它是很容易的一件事情,但是復(fù)制物理設(shè)備的難度就會大許多,成本也會非常高.要想讓程序運(yùn)行,加密鎖就必須插在用戶的計(jì)算機(jī)上,這使得程序能夠周期地檢查它,確保正確的加密鎖一直被連在機(jī)器上面.程序會不斷地檢查加密鎖,如果沒有收到正確響應(yīng)的話,就會停止運(yùn)行或使用其它方式懲罰用戶,基于加密鎖的軟件保護(hù)的原理流程圖如1所示.

      圖1 基于加密鎖的軟件保護(hù)原理流程圖

      2 基于加密鎖的軟件保護(hù)方案

      本文在設(shè)計(jì)軟件保護(hù)方法時(shí),考慮到指揮信息系統(tǒng)軟件的重要性,通過加密鎖進(jìn)行內(nèi)嵌加密和代碼隔離的方法來保護(hù)軟件,同時(shí)在程序中調(diào)用加密鎖時(shí),采用一定的代碼混淆技術(shù)進(jìn)一步提高破解的難度,提高軟件的安全行.

      軟件保護(hù)后的運(yùn)行流程如圖2所示.軟件運(yùn)行時(shí),檢查加密鎖的插入狀態(tài),確認(rèn)加密鎖插入后,獲取加密鎖的序列號并從加密鎖中讀取存儲的密鑰,在軟件中進(jìn)行校驗(yàn),檢查加密鎖是否和軟件、計(jì)算機(jī)是一一對應(yīng)的關(guān)系,通過校驗(yàn)后,軟件設(shè)置定時(shí)器(一般在5s以內(nèi))繼續(xù)正常運(yùn)行,在運(yùn)行到代碼隔離的部分時(shí)調(diào)用加密鎖執(zhí)行隔離的關(guān)鍵算法并將結(jié)果返回給軟件以繼續(xù)運(yùn)行,定時(shí)器觸發(fā)后,繼續(xù)檢查加密鎖的有效性校驗(yàn),通過則繼續(xù)運(yùn)行,否則提示用戶插入正確的加密鎖并重試,直至通過校驗(yàn)或用戶放棄校驗(yàn)退出軟件.

      2.1 內(nèi)嵌加密

      內(nèi)嵌加密需要有軟件的源程序,通過在源程序中調(diào)用加密鎖API函數(shù)檢查加密鎖有效性的方式保護(hù)軟件.這種加密方式靈活性好,隱蔽性高,加密強(qiáng)度較高.然而要最大程度發(fā)揮其保護(hù)能力,需要取決于具體的實(shí)施過程.

      通過內(nèi)嵌加密將軟件、計(jì)算機(jī)和加密鎖進(jìn)行一一綁定,確保每臺運(yùn)行指揮信息系統(tǒng)軟件的機(jī)器只能在連接對應(yīng)的加密鎖的情況下才能正常運(yùn)行軟件.通過獲取計(jì)算機(jī)硬件特征信息(如CPU序列號、硬盤序列號或網(wǎng)卡MAC地址等)計(jì)算得出機(jī)器特征碼,并將此特征碼通過加密算法(如MD5算法或RSA算法)加密后存儲在加密鎖中作為密鑰,同時(shí)考慮到加密鎖自身具有全球唯一的序列號,在軟件中寫入加密鎖序列號的校驗(yàn)代碼,使加密鎖與軟件進(jìn)行一一綁定.如此相當(dāng)于在加密鎖中存儲了2個密鑰,一個是計(jì)算機(jī)的硬件特征信息,一個是加密鎖全球唯一序列號,通過加密鎖序列號的校驗(yàn)和計(jì)算機(jī)硬件特征信息的校驗(yàn),有效防止了一個加密鎖在多臺計(jì)算機(jī)上使用和一套軟件在多臺計(jì)算機(jī)使用的問題,進(jìn)一步提高了軟件的安全性.

      內(nèi)嵌加密中調(diào)用函數(shù)庫的程度決定了被保護(hù)軟件的整體安全水平.內(nèi)嵌加密可以調(diào)用加密鎖廠商提供的API函數(shù),并嵌入到軟件代碼中,也可以根據(jù)驅(qū)動程序自己編寫對應(yīng)的調(diào)用函數(shù).例如調(diào)用API函數(shù)庫中的加解密函數(shù)對軟件源代碼中的部分?jǐn)?shù)據(jù)實(shí)時(shí)進(jìn)行加解密,示例如下.

      圖2 軟件保護(hù)后運(yùn)行流程圖

      另外,也可以利用加密鎖中的存儲區(qū)進(jìn)行數(shù)據(jù)驗(yàn)證.在加密鎖中存儲運(yùn)行計(jì)算機(jī)的硬件特征信息,并在運(yùn)行過程中進(jìn)行校驗(yàn),校驗(yàn)不通過則軟件停止運(yùn)行.校驗(yàn)可以在源代碼的多處進(jìn)行,這樣與鎖的交互會增多,更體現(xiàn)加密鎖的效果.計(jì)算機(jī)的硬件特征信息可以在軟件發(fā)布前通過加密鎖廠商提供的工具寫入加密鎖,也可以在軟件第1次運(yùn)行時(shí)通過軟件寫入加密鎖,校驗(yàn)示例如下.

      2.2 代碼隔離

      代碼隔離最初是T Maude等人于1984年提出來的[6],是指從目標(biāo)程序中“切分”出關(guān)鍵代碼片段,通過隱藏程序解釋執(zhí)行過程到硬件中的一種軟件保護(hù)方法.通過代碼隔離即將軟件中最重要的算法移植到加密鎖內(nèi),可以將軟件與加密鎖捆綁為一個整體,從而有效地保護(hù)軟件.由于代碼隔離后對軟件運(yùn)行的速度會有一定的影響,因此,隔離的代碼應(yīng)該是軟件中的關(guān)鍵算法,這是整個加密方案的基礎(chǔ),且隔離的代碼算法的復(fù)雜度對加密強(qiáng)度有著決定性的影響.代碼隔離原理示意圖如3所示.

      圖3 代碼隔離原理示意圖

      具體步驟如下:

      1)將預(yù)移植到鎖內(nèi)的代碼寫成加密鎖可執(zhí)行的編譯語言代碼;

      2)使用加密鎖對應(yīng)的編譯器編譯改寫后的代碼,并將編譯生成的文件通過工具寫入到加密鎖中;

      3)在軟件源代碼中調(diào)用已寫入加密鎖中的算法.

      3 加密鎖中的代碼混淆

      不同的加密鎖對軟件的加密強(qiáng)度有影響,相同的加密鎖使用不同的處理方式也會使軟件的加密強(qiáng)度產(chǎn)生很大的差別.對調(diào)用加密鎖的代碼進(jìn)行一定的混淆處理可以有效地提高軟件的加密強(qiáng)度,增加破解的難度或延遲破解的時(shí)間.通過增加迷惑語句,同時(shí)根據(jù)加密鎖本身的特點(diǎn)使用一些編程技巧可以有效增加軟件攻擊者分析軟件調(diào)用加密鎖的難度,使程序難于理解.

      1)減少出錯提示信息:將出錯信息不直接顯示給用戶,而是通過間接的方式呈現(xiàn)出來.因?yàn)檫@些提示信息很可能導(dǎo)致攻擊者直接深入到軟件保護(hù)的核心.例如,當(dāng)發(fā)現(xiàn)到軟件遭受攻擊后,先不給出提示信息,而是在設(shè)置一個定時(shí)器并進(jìn)行一定的標(biāo)記,定時(shí)器觸發(fā)后使軟件停止工作,或者假裝軟件正常運(yùn)行,但實(shí)際上卻在數(shù)據(jù)中增加了無用信息.例如:

      2)加入復(fù)雜的循環(huán)和死循環(huán),增加軟件攻擊者分析程序執(zhí)行順序和結(jié)構(gòu)的難度,讓軟件攻擊者難以跟蹤,發(fā)現(xiàn)加密點(diǎn).例如:

      3)隨機(jī)地效驗(yàn)和讀寫加密鎖.使軟件攻擊者難以理解程序的結(jié)構(gòu)和執(zhí)行規(guī)律.隨機(jī)性是軟件加密的重要思想,通過隨機(jī)性打亂軟件的慣性處理流程,可以有效增加程序的復(fù)雜度,增加逆向分析軟件和復(fù)制或模擬加密鎖的難度.例如:

      4)把調(diào)用加密鎖和判斷程序是否繼續(xù)執(zhí)行的語句分開,即得到調(diào)用加密鎖的返回值后不立即對程序執(zhí)行狀態(tài)進(jìn)行判斷,而是在二者之間加入一段其他無關(guān)的代碼.

      5)加入無用的讀寫,效驗(yàn)加密鎖的語句或其他無效代碼.

      6)在加密鎖內(nèi)寫入讀出無效數(shù)據(jù).

      4 結(jié)論

      單一的軟件保護(hù)技術(shù)容易被攻擊者所破解,通過多種保護(hù)技術(shù)結(jié)合共同保護(hù)軟件可以有效地提高攻擊者的攻擊代價(jià),而以軟件為載體和以硬件為載體相結(jié)合的方法能夠在性能和成本上達(dá)到一個最佳的平衡.本文提出的基于加密鎖的指揮信息系統(tǒng)軟件保護(hù)方法,將機(jī)器碼加密和代碼隔離相結(jié)合,能有效提高軟件攻擊者的攻擊代價(jià),提高軟件的安全性.該方法已在多個項(xiàng)目軟件中得到了使用,自去年初以來軟件運(yùn)行良好,沒有發(fā)現(xiàn)軟件非法擴(kuò)散或被攻擊的情況,證明本方法在保護(hù)軟件安全方面起到了積極作用.

      指揮信息系統(tǒng)軟件保護(hù)不僅僅是一個技術(shù)問題,而且關(guān)系到指揮控制能否通暢以及最終作戰(zhàn)效能的發(fā)揮,其最終的解決不僅需要依靠技術(shù)手段,更需要嚴(yán)格的法規(guī)制度來保障.

      猜你喜歡
      攻擊者校驗(yàn)代碼
      基于微分博弈的追逃問題最優(yōu)策略設(shè)計(jì)
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      正面迎接批判
      愛你(2018年16期)2018-06-21 03:28:44
      爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
      有限次重復(fù)博弈下的網(wǎng)絡(luò)攻擊行為研究
      大型電動機(jī)高阻抗差動保護(hù)穩(wěn)定校驗(yàn)研究
      電測與儀表(2015年1期)2015-04-09 12:03:02
      基于加窗插值FFT的PMU校驗(yàn)方法
      兴海县| 阿拉善右旗| 天门市| 共和县| 塔河县| 白银市| 永年县| 景泰县| 肃南| 诸城市| 周至县| 磐安县| 康定县| 隆尧县| 安丘市| 瓦房店市| 临汾市| 镶黄旗| 天水市| 谢通门县| 高雄县| 沛县| 邛崃市| 南部县| 郓城县| 霍林郭勒市| 两当县| 兴安县| 武清区| 岚皋县| 肇东市| 栾城县| 施甸县| 五华县| 都匀市| 德惠市| 交口县| 延津县| 渭源县| 吉安市| 海南省|