一種用於防止軟體運行在非授權計算機上的保護裝置的製作方法
2023-09-16 20:29:25 2
專利名稱:一種用於防止軟體運行在非授權計算機上的保護裝置的製作方法
技術領域:
本發明涉及一種用於防止軟體運行在非授權計算機上的保護裝置,屬軟體保護領域。
背景技術:
軟體保護技術是防止非授權用戶非法使用軟體的技術,軟體保護技術通過技術手段來達到保護軟體不被非法使用的目的。
目前廣泛使用的軟體保護技術主要是使用序列號來進行保護,這種方式很容易被破解。多種加密的方法也被用於軟體保護,不同的方法各有優劣。
發明內容
本發明的目的在於提供一種保護效果佳的用於防止軟體運行在非授權計算機上的保護裝置。
本發明的保護裝置由鑰匙器件(5)、保護器件(3)和織入器件(1)構成,該保護裝置的保護步驟如下步驟1織入器件(1)使用公知的算法生成非對稱加密算法的公鑰(2)、私鑰(4)對,並將公鑰(2)和私鑰(4)分別寫入保護器件(3)和鑰匙器件(5)中;步驟2保護器件(3)是完成保護功能的軟體代碼,其中包含有非對稱加密算法的公鑰(2)和非對稱加密算法的軟體代碼。保護器件(3)將被織入器件(1)織入到被保護的軟體代碼(6)中,在被保護軟體代碼(6)運行在計算機上的時候時為其提供保護;步驟3鑰匙器件(5)用於存放非對稱加密算法的私鑰(4)和運行非對稱加密算法;步驟4織入器件(1)選擇在被保護的軟體代碼(6)中織入保護器件(3)的織入點的位置和織入方法,在被保護軟體代碼(6)中的多個關鍵點織入保護器件(3),使得保護器件(3)與被保護軟體代碼(6)成為一體不可分割或很難分割,在被保護軟體代碼(6)中織入保護器件(3)以後,生成發布前代碼(7);步驟5發布前代碼(7)經過編譯或不經過編譯以後形成發布軟體(8),發布軟體(8)包括了編織在一起的被保護軟體代碼(6)和保護器件(3)代碼;步驟6鑰匙器件(5)與保護器件(3)在發布軟體(8)的運行環境中連接在一起,在發布軟體(8)的運行環境中,鑰匙器件(5)與保護器件(3)之間的身份認證使用公知的非對稱加密算法的身份認證算法進行相互之間的身份認證,非對稱加密算法的公鑰(2)保存在保護器件(3)中,有公鑰(2)參與的運算過程在保護器(3)件中完成。非對稱加密算法的私鑰(4)保存在鑰匙器件(5)中,有私鑰(4)參與的運算過程在鑰匙器件(5)中完成;步驟7發布軟體(8)運行到織入點處的保護器件(3)時,保護器件(3)將隨機地與鑰匙器件(5)進行相互之間的身份認證,如果身份認證通過,發布軟體(8)繼續運行,否則終止運行。
本發明的鑰匙器件(5)使用現有USB接口的智能鑰匙,智能鑰匙內包含能夠提供非對稱加密算法(如RSA算法)的智慧卡晶片。智慧卡晶片能夠保證存儲在其內部的加密算法的私鑰(4)的安全。有私鑰(4)參與的加密操作全部在智慧卡晶片內部完成,私鑰(4)不能夠被智慧卡晶片以外的設備讀取。
本發明的織入器件(1)把保護器件(3)織入被保護軟體代碼(6)中的算法有很多種,算法越好保護器件(3)與被保護軟體代碼(6)越難於分割。一種可選的織入方法是在被保護軟體代碼(6)的關鍵函數入口處織入保護器件(3)。對於不同的程序設計語言可能有不同的編織算法,有的編織算法是對軟體的源程序代碼進行操作,有的算法可以對目標代碼進行操作。如果是使用對軟體的源程序代碼進行操作的編織算法,在編織完成並生成發布前代碼以後,需要將發布前代碼(7)進行編譯,生成發布軟體(8)。如果使用對目標代碼進行操作的編織算法,編織生成的發布前代碼(7)即為發布軟體(8)。
本發明具有保護效果佳、不易被破解等優點。
圖1為保護裝置結構連接示意圖。
圖2為織入器件(1)生成密鑰對流程圖。
圖3為織入器件(1)生成發布前代碼流程圖。
圖4為保護器件(3)運行時校驗流程圖。
具體實施方法用於防止軟體運行在非授權計算機上的保護裝置由鑰匙器件(5)、保護器件(3)和織入器件(1)構成,該保護裝置的保護步驟如下1.使用織入器件(1)生成公鑰(2)、私鑰(4)對;2.使用織入器件(1)將公鑰(2)存入保護器件(3)中,將私鑰(4)存入鑰匙器件(4)中;3.使用織入器件(1)將被保護軟體代碼(6)與保護器件(3)編織在一起,形成發布前代碼(7);4.發布前代碼(7)經過編譯或不經過編譯以後形成發布軟體(8),發布軟體(8)包括了編織在一起的被保護軟體代碼(6)和保護器件代碼,將發布軟體代碼分發給軟體用戶;5.將鑰匙裝置分發給授權的軟體用戶,鑰匙裝置和發布軟體(8)通過不同的途經分發給授權用戶;6.被授權的軟體用戶同時擁有發布軟體(8)和鑰匙裝置,在使用軟體時,必須將鑰匙裝置插入運行軟體的計算機的相應I/O接口;7.發布軟體(8)運行時將與鑰匙器件(5)進行相互之間的身份認證,如果身份認證通過,發布軟體(8)繼續運行,否則終止運行。
本發明經使用表明,完全達到設計要求。
權利要求
1.一種用於防止軟體運行在非授權計算機上的保護裝置,該保護裝置由鑰匙器件(5)、保護器件(3)和織入器件(1)構成,其特徵在於保護裝置的保護步驟如下步驟1.織入器件(1)使用公知的算法生成非對稱加密算法的公鑰(2)、私鑰(4)對,並將公鑰(2)和私鑰(4)分別寫入保護器件(3)和鑰匙器件(5)中;步驟2.保護器件(3)是完成保護功能的軟體代碼,其中包含有非對稱加密算法的公鑰(2)和非對稱加密算法的軟體代碼。保護器件(3)將被織入器件(1)織入到被保護的軟體代碼(6)中,在被保護軟體代碼(6)運行在計算機上的時候時為其提供保護;步驟3.鑰匙器件(5)用於存放非對稱加密算法的私鑰(4)和運行非對稱加密算法;步驟4.織入器件(1)選擇在被保護的軟體代碼(6)中織入保護器件(3)的織入點的位置和織入方法,在被保護軟體代碼(6)中的多個關鍵點織入保護器件(3),使得保護器件(3)與被保護軟體代碼(6)成為一體不可分割或很難分割,在被保護軟體代碼(6)中織入保護器件(3)以後,生成發布前代碼(7);步驟5.發布前代碼(7)經過編譯或不經過編譯以後形成發布軟體(8),發布軟體(8)包括了編織在一起的被保護軟體代碼(6)和保護器件(3)代碼;步驟6.鑰匙器件(5)與保護器件(3)在發布軟體(8)的運行環境中連接在一起,在發布軟體(8)的運行環境中,鑰匙器件(5)與保護器件(3)之間的身份認證使用公知的非對稱加密算法的身份認證算法進行相互之間的身份認證,非對稱加密算法的公鑰(2)保存在保護器件(3)中,有公鑰(2)參與的運算過程在保護器(3)件中完成。非對稱加密算法的私鑰(4)保存在鑰匙器件(5)中,有私鑰(4)參與的運算過程在鑰匙器件(5)中完成;步驟7.發布軟體(8)運行到織入點處的保護器件(3)時,保護器件(3)將隨機地與鑰匙器件(5)進行相互之間的身份認證,如果身份認證通過,發布軟體(8)繼續運行,否則終止運行。
全文摘要
一種用於防止軟體運行在非授權計算機上的保護裝置,屬軟體保護領域。由鑰匙器件、保護器件和織入器件構成。鑰匙器件用於存放非對稱加密算法的私鑰和運行非對稱加密算法。保護器件包含有非對稱加密算法的公鑰和非對稱加密算法的軟體代碼,它將被織入器件織入到被保護的軟體代碼中以保護軟體。織入器件使用公知的算法生成非對稱加密算法的公鑰、私鑰對,並將公鑰和私鑰分別寫入保護器件和鑰匙器件中。織入器件選擇在被保護的軟體代碼中織入保護器件的織入點位置和織入方法,並完成織入操作,生成發布前代碼。發布前代碼運行到織入點處的保護器件時,保護器件將隨機地與鑰匙器件進行相互之間的身份認證並決定是否運行。具有加密效果佳等優點。
文檔編號G06F21/00GK1897005SQ20061001091
公開日2007年1月17日 申請日期2006年5月23日 優先權日2006年5月23日
發明者施霖 申請人:施霖