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