一种用于防止软件运行在非授权计算机上的保护装置的制作方法

文档序号:6554785阅读:353来源:国知局
专利名称:一种用于防止软件运行在非授权计算机上的保护装置的制作方法
技术领域
本发明涉及一种用于防止软件运行在非授权计算机上的保护装置,属软件保护领域。
背景技术
软件保护技术是防止非授权用户非法使用软件的技术,软件保护技术通过技术手段来达到保护软件不被非法使用的目的。
目前广泛使用的软件保护技术主要是使用序列号来进行保护,这种方式很容易被破解。多种加密的方法也被用于软件保护,不同的方法各有优劣。

发明内容
本发明的目的在于提供一种保护效果佳的用于防止软件运行在非授权计算机上的保护装置。
本发明的保护装置由钥匙器件(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日
发明者施霖 申请人:施霖
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1