李乃龍
摘 要:伴隨著互聯網技術和信息軟件技術的發展,各類辦公和生活軟件走進了人們的生活,并且在衣食住行等各個領域廣泛應用。各類服務軟件特別是財務金融軟件的應用,在方便人們工作生活,為廣大使用者帶來便利和幫助的同時,信息安全和數據保密問題也是日益凸顯,數據泄露、信息竊取的事件層出不窮,如何保護用戶隱私、實現軟件的使用安全成為人們討論的熱點。為此,軟件加密近年來逐漸成為行業關注的焦點,越來越多的軟件開發商和終端客戶關注軟件加密技術的發展,論文就軟件加密當前的現狀、分類和發展進行探討。
關鍵詞:信息安全;軟件加密;現狀研究;方式分類
中圖分類號:TP274+.2 文獻標識碼:B
Abstract: With the development of Internet technology and information software technology, various office and life software have entered people's lives, and are widely used in various fields such as clothing, food, housing and transportation. The application of various service software, especially financial and financial software: on the one hand, it facilitates people's work and life, brings convenience and help to the majority of users; on the other hand, information security and data confidentiality during the use of software is also Increasingly, the incidents of data leakage and information theft are also endless. How to protect user privacy and how to implement software security has become a hot topic. To this end, software encryption has become the focus of the industry in recent years. More and more software developers and end customers pay attention to and care about the development of software encryption technology. This paper studies the status quo, methods and development of software encryption.
Key words: information security; software encryption; current research
1 引言
近些年,軟件產業發展迅速,各種應用軟件產品層出不窮,已經成為人們日常生活中不可或缺的一部分。各類軟件特別是財務金融軟件的應用,在方便人們工作生活,為廣大使用者帶來了便利和幫助的同時,也讓人們深刻認識到軟件在使用過程中出現的信息安全和數據保密問題,有關數據泄露、信息竊取的事件也是屢見不鮮,保護用戶隱私、做好軟件加密已經被提上日程。
所謂軟件加密并不是需要對整個軟件加密,而是只需要在軟件安裝或者運行時進行環節加密。開發商作為軟件的研發者和運營者,通常會使用加密技術來保護其軟件,實現信息安全。另外,通過軟件加密,可以實現軟件部分授權內容的按需購買。加密技術根據是否需要專用的硬件設備,可以分為基于硬件的加密和基于軟件的加密。基于硬件的加密是指通過專用的硬件設備綁定實現加密,目前常用的硬件加密方式是加密鎖,俗稱加密狗。基于軟件的加密是指不需要專用的硬件設備,一般采用與終端設備軟硬件信息綁定的數字許可證,也稱電子授權。
所謂硬件加密是一種純客戶端技術,缺乏上層管理和有效統計功能,同時會帶來生產、物流、驅動安裝等諸多不便,不僅成本高,而且無法實現軟件的網絡化發行和銷售。另外,此種方式容易通過硬件復制實現破解,對軟件的安全性帶來隱患,目前基于硬件的軟件加密方式正在逐漸走向衰落。
2 軟件加密方式分析
2.1 基于硬件的加密
基于硬件的加密方式主要是指加密鎖加密,用戶所需的各類重要數據和信息,如加密密鑰、敏感數據、授權文件、自定義算法等都可以存儲在加密鎖中。常用的加密鎖按照接口形式可以分為并口加密鎖和USB口加密鎖。早期,比較普遍使用的是并口加密鎖,后來因為插拔不方便和與其他連接的設備存在插口沖突,目前已經逐漸被淘汰。當前,開發商使用的加密鎖基本都是USB接口,根據CPU類型分為:單片機作CPU的加密鎖和智能卡芯片作CPU的加密鎖。因為單片機硬件本身容易被破解或復制,所以中高端的加密鎖基本都在使用智能卡芯片作CPU。伴隨著智能卡加密鎖的廣泛應用,行業中對其進行破解技術也不斷出新,芯片分析技術和儀器越來越先進、智能卡程序寫好后要交給芯片廠去制造可能被泄漏、同一品牌的加密鎖所使用的CPU程序是相同的等因素都導致了加密鎖容易被破解,導致信息泄露和內容被復制。加密鎖的不足和缺點:一是適用于傳統的一次性永久授權,無法方便實現試用版本和按需購買;二是無法實現基于互聯網的電子化發行、升級、跟蹤和管理;三是硬件的存在帶來了生產、物流、安裝和維護成本;四是一旦被破解,就可以大批量復制,難以補救。
2.2 基于軟件的加密
基于軟件的加密方式主要是電子授權技術,具體還分為注冊碼和許可證文件兩種:注冊碼也稱為序列號或授權碼,通過對軟件用戶計算機軟硬件信息的某種變換得到,可用的軟硬件信息包括CPU序列號、BIOS序列號、網卡號、硬盤序列號、計算機名稱等。使用的變換算法有自定義算法或標準的加密算法等。用戶在軟件安裝過程或第一次使用前,需要輸入注冊碼進行驗證。驗證通過后,軟件就可以正常使用了。注冊碼保護方式的優點是使用簡單,缺點是安全性不高、無法實現復雜的授權需求。許可證文件和注冊碼綁定的計算機軟硬件信息相同,相比注冊碼只能使用一兩個軟硬件信息,許可證文件可以使用多個軟硬件信息,實現復雜的授權需求。典型的許可證文件實現方法是使用非對稱算法的私鑰對許可證文件進行簽名,而公鑰嵌在軟件代碼中。因為加解密過程不對稱,私鑰又存在授權服務器上,所以很難通過分析授權文件進行破解。
電子授權保護方式的優點是不需要額外的硬件設備、安裝驅動和客戶端組件,可以實現軟件的電子化發行。缺點則是對不能聯網的用戶,需要手工提取計算機信息來獲得注冊碼,然后再手工導入造成不便。另外,國內提供電子授權產品的開發商相對不足,限制了電子授權保護技術的廣泛應用。
總體而言,基于軟件的電子授權加密目前發展勢頭良好,已經廣泛應用于各類軟件系統中,伴隨著互聯網技術的快速發展,已經越來越多的把人工智能、大數據和云計算等技術理念進行融合,這種加密方式能夠實現軟件電子化發行,操作簡便,易于管理。電子授權方式既無法被復制,又需要網絡激活和驗證,所以具有非常好的保護效果。基于軟件的電子授權加密方式順應了無硬件化、網絡化和信息化的發展趨勢,未來可期。
3 軟加密方式的探究
軟加密方式具有其獨特的加密優勢和專屬特性,通過網絡通訊和服務器認證技術,可以獲得更加理想的安全應用效果。在軟件安全系統首次運行時實現服務器端的“備案”,在存儲客戶端硬件特征時實現獲取開發商授權。服務器認證既可以獲得首次運行的激活,還可以后續再次核查和升級授權內容。另外,還可以采用客戶端與服務器實時連接的驗證方式,保證安全系統指紋始終依附在服務器上,達到更高的安全的要求。
軟加密技術的優勢特點有三個。
一是雙因素驗證。早期的硬加密和軟加密,在安全驗證上都是單因素的,即基于加密鎖或本機硬件指紋。在集成了服務器認證之后,加密方式變為既與本機硬件指紋相關,又與服務器相關的雙因素。雙因素驗證極大的提高了系統整體安全性,盜版者無法通過破解其中的單因素來竊取,使軟加密的安全性超過傳統硬加密成為現實。
二是追蹤破解。沒有哪個保護技術是絕對可靠、無懈可擊的,但運行的軟件代碼總是可以被跟蹤和分析。雙因素驗證的軟加密方式有助于實現對破解應用的追蹤。除非通過逆向工程的辦法把所有與服務器通訊相關的代碼完全替換,否則服務器將有可能對軟件的破解拷貝進行追蹤。
三是利于補救。軟加密的另一個優勢是可以方便快捷的推出被破解版本的補救方案,并且其補救措施的成本幾乎是零。在發現原有版本被破解后,開發者可以在平臺上為產品增加新的功能模塊,同時可以升級原有的功能算法和應用程序代碼,推出升級補丁,反饋客戶完成升級和軟件加密保護。
4 結束語
軟件加密行業的發展趨勢與互聯網技術和軟件行業的發展趨勢密切相關。隨著人工智能、云計算和區塊鏈等技術的快速發展,軟件產品的提供方式正在向著網絡化和平臺化的方向轉變。就目前的發展態勢而言,基于硬加密的加密鎖已經接近飽和,不久的將來會被其他先進技術替代。基于軟加密的電子授權方式具有獨特的加密優勢,并且隨著時代的需要不斷的進行著迭代和升級,正在經歷從早期的注冊碼形式向功能豐富的許可證文件形式轉變,驗證方式也從離線手工驗證發展為自動網絡驗證,特別是在授權管理思想提出后,電子授權技術已經從單一的軟件授權認證發展為認證、管理和統計等多種功能,未來發展前景良好,已經成為軟件加密技術的大勢所趨。
參考文獻
[1] 鄭羽.加密與解密實戰入門[M].北京:電子工業出版社,2006.
[2] 史子榮.軟件加密技術從入門到精通[M].北京:清華大學出版社,2007.
[3] 鄧安文.密碼學——加密演算法[M].北京:水利水電出版社,2006.
[4] Matt Robshaw.快速軟件加密法[M].湖北辭書出版社,2006.
[5] 武新華,安向東,等.加密解密全方位學習[M].北京:中國鐵道出版社,2005.43-51.
[6] 于溪.加密與解密點通點睛[J].齊魯電子音響出版社,2007.12-52.
[7] 徐秀花,衛勐.軟件加密和破解技術[J].北京印刷學院學報,2010.04.
[8] 趙曉敏,趙常林.計算機網絡安全技術研究[J].雞西大學學報,2007年4月第七卷 第二期.
[9] 周黎明.計算機網絡的加密技術[J].計算機與信息技術,2007年 第22期.
[10] 劉學會,祁新安.加密技術、加密方法以及應用[J].計算機與信息技術,2007年第20期.
[11] 鐘靜.電子商務技術及應用[M].北京:電子工業出版社.
[12] 谷大武.高級加密標準(AES)[M].北京:清華大學出版社.