注:本文僅從個人對有關軟件保護技術的淺顯認識,試圖面向那些對此領域感興趣的初學者,帶來一些啟發(fā)性的參考思路。謬誤之處在所難免,還望大家批評指正,非常感謝!
前言
對于一個軟件產品進行技術保護的目的,就是要給那些嘗試破解,逆向分析被保護軟件產品的研究者帶來最大限度技術性阻礙,利益損失。以使它們的破解,逆向行為變得需要消耗大量時間,精力等代價,得不償失。
就作者本人以往的經驗,總體來看,一般軟件保護技術的進步總是遜色于相關破解技術的發(fā)展?,F有公認的具有一定強度的軟件保護技術,大都直接涉及一定的數學理論,并且基于許多數學上的難題,形成一定強度的加密算法。研制一套好的軟件保護系統(tǒng),不是一件輕而易舉的工作。一般的軟件制作者是很難同時具有良好的數學基礎和軟件開發(fā)經驗的。況且,目前許多大型軟件(例如winxp采用了橢圓算法)依然在較短的時間內被攻破。
網絡聚合了人類的集體智慧,隨著并行處理技術的不斷成熟,計算網絡幾何級數的增長,不斷復雜化,精確化,快速化,促進了人們的交流更加直接,快速,使得那些被認為安全性很高的加密算法(特別是依據數學難題的那些算法)可能被攻破的時間遠遠小于被預計的期限。目前,是我們應該對軟件保護技術進行更多的思考和嘗試的時候了。
建立一個軟件保護系統(tǒng)不但要要有可靠的理論基礎,而且需要耗費繁雜的資源(時間,精力,資金,技術,人才等等),而任何一個具有一定數學基礎,編程能力的破解者都有可能找到這個系統(tǒng)的漏洞而摧毀它。防御遠比進攻代價要大。
在此,本文作者嘗試探討如何利用當前較新的軟件保護理論,結合我們自己的特長,所能掌握的資源,盡最大可能使我們自己開發(fā)的軟件產品得到一定程度的安全保障。
登陸|注冊歡迎登陸本站,認識更多朋友,獲得更多精彩內容推薦!