徐少華
摘要:本文主要對當(dāng)前軟件工程防篡改技術(shù)水平進行分析,找到問題根本,進一步提高軟件防篡改技術(shù)水平,并做好有效的保障。
[關(guān)鍵詞]計算機信息技術(shù) 防篡改技術(shù) 軟件工程 保障
目前,計算機中的軟件工程篡改軟件技術(shù)不斷提高,而軟件防篡改技術(shù)水平卻停滯不前,也就加大了防篡改技術(shù)升級的難度。軟件工程具有自我保護技術(shù),對軟件正常運行中出現(xiàn)的漏洞會進行自動檢測修復(fù),保障軟件信息的安全,不會受到破壞。軟件篡改技術(shù)主要是對軟件的原始代碼進行篡改,一般是通過病毒的方式侵入軟件代碼,修改代碼的正常順序。加強防篡改技術(shù)實質(zhì)是阻礙病毒入侵修改代碼,保障原有代碼的正常程序,是軟件可以正常運行。
1 軟件層面的防篡改技術(shù)
1.1 校驗和
校驗和作為軟件防篡改技術(shù)的基本操作方法,主要的作用是檢測軟件運行開始和結(jié)束后的文件是否出現(xiàn)差異和錯誤,從而推斷該軟件文件是否被篡改。但校驗和的操作需要使用計算機,對軟件文件內(nèi)容作初期的核對、保存,該軟件在以后的運行中,可以對軟件文件再進行一次校驗和。和之前保存的文件相對比,確認是否一致,如果出現(xiàn)差異,則表示該軟件文件已經(jīng)被篡改。校驗和的操作方法相對比較簡單普遍,而且不夠隱藏,容易被入侵者發(fā)現(xiàn)并處理掉,進而修改軟件代碼。而且一些強大的入侵者可以躲避軟件監(jiān)控,修改修改校驗碼。校驗和操作方法在軟件防篡改技術(shù)中風(fēng)險較大,應(yīng)用范圍不廣。
1.2 軟件哨兵
軟件哨兵的主要功能是對軟件代碼進行升級加密,是可以融入到軟件的一種程序,但涵蓋的范圍較小。在軟件程序中融入軟件哨兵程序的數(shù)量并不受限,可以添加到軟件的不同位置,所展現(xiàn)的效果也是不一樣的。軟件篡改技術(shù)在修改軟件代碼時,必須清除或躲避軟件哨兵,如果沒有完全清除,仍然會被軟件哨兵發(fā)現(xiàn)入侵,并進行阻止對抗入侵者。軟件哨兵不僅是一個程序,還可以為該軟件添加監(jiān)測代碼,實時監(jiān)控是否有入侵者,并做好阻止準(zhǔn)備。
另外,軟件哨兵還可以對已侵害的軟件代碼進行修復(fù)完善,有效的預(yù)防軟件被篡改情況,因此,軟件哨兵的安裝已經(jīng)普及到計算機用戶中,確保計算機軟件的安全。
1.3 密碼技術(shù)
軟件工程在建設(shè)防軟件篡改技術(shù)中,最為重要的是核心組織軟件代碼的保護,密碼技術(shù)是在軟件哨兵的基礎(chǔ)上更加全面的加密功能,阻止入侵者篡改軟件代碼的效果更強,對入侵者具有攻擊性。密碼技術(shù)的原理是編制一套加密算法將軟件代碼轉(zhuǎn)變?yōu)闊o法讀取的格式從而使入侵者無法篡改軟件代碼也不可獲取相關(guān)的信息數(shù)據(jù)。這種加密算法是參考公鑰算法中的數(shù)字簽名技術(shù),使軟件加密具有獨立性。在編譯軟件程序源代碼時,利用私鑰技術(shù)設(shè)置程序?qū)S泻灻押灻统绦虼a結(jié)合到一起,入侵者在進行篡改代碼之前必須有個檢驗,簽名不符合,就無法進行篡改。簽名和程序如果綁定成功,將是一套獨一無二的軟件代碼,不可替代。
2 硬件層面的防篡改技術(shù)
軟件層面的防篡改技術(shù)可以有效的保護軟件工程中的代碼,另外硬件層面也可以對軟件工程進行保護,但具體事件需要相應(yīng)的軟件進行輔助配合。硬件技術(shù)主要是利用軟件衛(wèi)士方法和軟件的網(wǎng)盤中硬加密技術(shù)解決軟件被篡改問題。硬件防篡改技術(shù)主要是根據(jù)軟件所存儲的硬盤位置,對不同位置進行區(qū)域保護,可以在本質(zhì)上阻礙入侵者修改軟件源代碼。但也要不斷完善加強硬件方面的軟件防篡改技術(shù)水平,進一步阻止軟件被篡改的風(fēng)險。目前社會上一些軟件企業(yè)建立了一一個組織,共同研發(fā)一個高度安全的硬件運算平臺,不斷加固強化軟件防篡改技術(shù)。另外企業(yè)還建立了嚴謹?shù)能浖Y(jié)構(gòu)模式,從而保障軟件環(huán)境的安全性,該模式有自動的監(jiān)測程序,可以有效的檢測出入侵者,并自行修復(fù)和完善軟件漏洞,而且計算機一旦安裝這種模式,除了用戶者其他人沒有權(quán)限進行修改和訪問。這個硬件運算平臺是當(dāng)前最有效的保護軟件工程正常運行的方法。
3 新時代的防篡改技術(shù)
3.1 迷糊化技術(shù)
迷糊化技術(shù)的原理是對原始軟件進行初步模糊的分類整理,編制成一套新的程序,原來的程序和改編后的程序之間已經(jīng)不能被分析,但最后執(zhí)行的結(jié)果是一樣的。這種迷糊化技術(shù)可以打亂入侵者篡改軟件代碼的思路,并且也可以有效的防止入侵者逆反式的篡改軟件代碼。
3.2 應(yīng)用水印技術(shù)
水印技術(shù)現(xiàn)在已經(jīng)廣泛應(yīng)用到我們的生活中,軟件工程利用水印技術(shù)的特點在軟件防篡改技術(shù)上設(shè)置獨有的標(biāo)識。這個標(biāo)識涵蓋該軟件的開發(fā)者、用戶和合作商等信息,并對程序的版權(quán)和身份驗證進行加密,對軟件程序設(shè)立專屬的標(biāo)志可以準(zhǔn)確的辨別出入侵者所竊取的盜版。對入侵者篡改的位置可以清晰的標(biāo)識出來,而且水印也會被破壞,水印出現(xiàn)問題,整個軟件程序就會停止運行,更加有效、精準(zhǔn)的檢測入侵者篡改程序。在廣泛應(yīng)用水印技術(shù)的期間,軟件工程防篡改技術(shù)得到了明顯的成效。首先,水印技術(shù)充分展現(xiàn)了驗算法的作用,將水印法和加密法有效的結(jié)合在一起運算。入侵者如果要對軟件代碼進行篡改,需要攻擊兩道防線,第一道是水印,第二道是加密運算,雙重保護防線增加了入侵者篡改軟件代碼的難度。其次利用動態(tài)圖,在動態(tài)圖中會有相應(yīng)的函數(shù)部分,函數(shù)是根據(jù)動態(tài)圖的環(huán)境和標(biāo)準(zhǔn)制定的,如果動態(tài)圖被入侵者篡改或復(fù)制,則函數(shù)的數(shù)值會發(fā)生改變,并于原來的不相符,導(dǎo)致動態(tài)圖終止運行,進而降低了動態(tài)圖被篡改的風(fēng)險。
4 結(jié)語
總而言之,提高軟件工程中的軟件防篡改技術(shù)要通過硬件技術(shù)和軟件技術(shù)兩方面共同配合完成。另外面對不同類型的軟件程序,要找到適合各軟件特點的防篡改技術(shù)方法進行處理。軟件防篡改技術(shù)對我國軟件工程的發(fā)展和保護有著重要的作用和深遠的影響,面對當(dāng)前計算機信息技術(shù)的高速發(fā)展,應(yīng)打好基礎(chǔ)做好軟件程序的安全保障,減少病毒對軟件程序的破壞,使軟件程序可以正常運行。
參考文獻
[1]沈海波,石航達。軟件代碼的防篡改技術(shù)[M].武漢科技學(xué)院學(xué)報,2011(05).
[2]肖錦然.軟件工程保護中的軟件防篡改技術(shù)[M].高新技術(shù)產(chǎn)業(yè)發(fā)展,2012(11).