【摘 要】為了保護知識產權,防止盜版軟件的產生,本文主要介紹了軟件程序加密的軟加密、硬加密兩種方法以及加密的工作原理。
【關鍵詞】軟件;保護;加密
1 前言
保護知識產權,抵制盜版軟件,是目前中國軟件業所面臨的迫切問題。可是,盡管國家一再加大力度,打擊非法軟件出版物,扶持正版軟件,但實際效果并不理想。眼見著無孔不入的盜版軟件對軟件市場的侵害,更多的軟件商選擇了購買加密產品或者加密技術來保護自己的軟件。
2 加密方法
根據軟件的保護方式,加密方法主要分為硬加密和軟加密。
硬加密是在硬件加密鎖上固化一些重要的加密信息如加密密鑰、敏感數據、授權文件、自定義算法等,當軟件程序啟動時,計算機讀取硬件加密鎖上固化的加密信息進行檢測,檢測通過才能啟動軟件程序。硬件加密鎖從CPU類型來說分兩種,一種使用單片機作CPU,另一種智能卡芯片作CPU。單片機硬件本身容易被破解或復制,因此中高端的加密鎖越來越多地使用智能卡芯片作CPU,以防止硬件被破解。但智能卡加密鎖的破解也越來越多,一是因為芯片分析技術和儀器越來越先進;二是智能卡程序寫好后要交給芯片廠去制造,在這個環節程序有可能被泄漏出去,造成大批量復制。
硬加密需要硬件器件加密鎖固化加密信息,所以成本較高;缺少了硬件加密鎖,軟件程序啟動時無法讀取固化的加密信息,不能通過信息檢測,程序無法啟動,安全性高。
硬件加密雖然具有比較高的安全強度,但也有不少缺點:
適用于一次性永久授權;
存在硬件的生產、初始化、物流、安裝和維護的成本;
安裝驅動和客戶端組件會影響客戶的使用;
難以進行升級、跟蹤及售后管理。
軟加密是不依靠特別硬件來實現的對軟件的保護技術,一般采取序列號或許可證文件的授權方式。軟加密并不是對軟件的所有信息都進行加密設置,僅僅是在軟件安裝或運行時進行加密處理。
通常軟加密主要有三種實現方式。
第一種軟加密方式是軟件授權不與計算機硬件特征綁定,具體還分為兩種:一是采用與一個軟信息,如用戶名等綁定的方式,一般用于個人用戶授權;二是不綁定任何信息,只要序列號或授權文件驗證通過,軟件可以在任何機器上使用,通常用于大客戶批量授權。授權的驗證方式有直接比較、算法變換比較等方式。
第二種軟加密方式是軟件授權與系統的特征信息、計算機硬件的標識信息綁定,綁定的計算機硬件特征主要有CPU序列號、BIOS序列號、硬盤序列號、網卡MAC地址、計算機名、用戶名等信息。這些計算機系統的特征信息和計算機硬件的標識信息的集合統稱為計算機指紋。計算機指紋信息類似人的手指指紋信息一樣,任意兩臺計算機的系統的特征信息或硬件的標識信息是不相同的。如:磁盤的分區卷標,不同軟件系統的計算機中磁盤分區卷標不同;硬盤序列號,任意兩張硬盤的序列號是不一樣的。軟件程序初次安裝時,安裝軟件會讀取相應的計算機指紋信息,安裝軟件使用用軟件開發者在程序中設置的加密算法加密計算機指紋信息生成加密文件,并將加密文件寫入到計算機注冊表中。當下次啟動運行軟件程序時,軟件程序再次讀取相應的計算機指紋信息并采用同一種加密算法將其加密產生密文文件,然后與計算機軟件注冊表中的密文文件數據進行比較,如果兩個文件數據相同則繼續運行軟件程序,否則停止運行軟件。
第三種軟加密方式是軟件授權與互聯網上的授權服務器綁定,是云計算模式的授權方案,也稱云授權。云授權的安全強度非常高,甚至比加密鎖還要高。這是因為加密鎖隨軟件賣出去后是無法跟蹤和監測的,黑客可以花任意長的時間去破解它,而且一旦破解了可以大批量復制。而授權服務器有防火墻和完善的入侵檢測技術,任何非法的訪問和異常情況都可以監測得到,安全性要高的多。服務器授權也便于實現授權軟件的跟蹤管理、破解補救和升級更新。
軟加密的優點是:
無需依靠硬件加密,加密成本低;
易于管理和維護,有助于提高授權效率;
可以方便實現“先試后買”和“按需購買”,為開發商創造更多贏利模式。
3 兩種加密方法的區別
兩種加密方式最根本的區別就在于“軟”與“硬”上。“軟加密”主要是指通過特定的軟件算法進行加密,而硬加密作為物理加密技術,其主要是通過芯片對硬盤中的字符、數據進行加密。
其實,軟加密一般通過加密軟件的方法來實現加密功能,它并不對數據進行轉換運算。通過使用加密算法將計算機指紋信息生成密碼文件,這需要大量的加密運算,會占用大量的內存資源,加密速度比較慢。而硬加密需要將保護的數據轉換成不可識別的數據模塊。在現有的操作系統中進行加密,可直接對硬件加密鎖中加密文件進行讀取,無需大量的加密運算,加密速度相對較快。
第三,雖然硬加密比軟加密的加密成本高,但硬加密技術更安全、更可靠,比較適用于科研院所、部隊、機關、財務、各行業設計人員、個人及網絡用戶進行數據交換、移動辦公、保密數據存儲、備份等。同時,硬加密具有簡單、易用、智能化的特點,將會是未來加密技術的發展趨勢。
4 總結
軟件加密技術是軟件保護的主要安全保密措施,是最常用的安全保密手段。軟件加密可以有效的防止軟件被盜用,維護軟件開發者的知識產權,保護軟件開發者的經濟利益。
參考文獻:
[1]魏會君.軟件的加密保護技術探討[J].石油工業計算機應用.2002,2:40—41.
[2]魏會君.軟件的加密保護技術探討[J].石油工業計算機應用.2002,2:40—41.
[3]劉紅敏,尹志喜.計算機指紋生成技術研究[J].華北工學院學報.2004,25(1):46—48.
作者簡介:
姚衛國(1978~),男,陜西西安人,本科,講師,計算機控制技術。