用于保护软件应用防止盗版的方法和系统的制作方法

文档序号:6553607阅读:358来源:国知局
专利名称:用于保护软件应用防止盗版的方法和系统的制作方法
技术领域
本发明涉及软件保护领域.
背景技术
术语软件盗版在此指软件的非法拷贝、发行或使用。
尽管现在大多数计算机用户意识到未授权使用和复制软件是非法的,
但是许多人仍对^4t件视为有价值的知识产权的重要性显示出"fi4漠视。
根据BSA (商业软件联盟)第七年度全#件盗版研究,2003年商业软件 应用市场由于盗版而造成的^损失超过290亿美元。
下面是一些常见的软件盗版类型
随意复制(Softlifting):购买一个许可的软件拷贝,然后违^J午可 条款将其加栽到若干计算机上(例如与朋友、同事和其他人共享软件);
上栽和下载使保留版权的软件的未授权的拷贝对通过调制解调器连 接到在线服务提供商和/或Internet的最终用户可用;
软件仿冒以故意4吏其看起来合法的形式非法复制和销售保留版权的 软件;
OEM非捆绑销售用来与特定附属硬件捆绑在一起的单机软件;
硬盘预装在个人计算机的硬盘上安装未被授权的软件拷贝,通常用 于亂良最终用户从该特定硬件经销商购买硬件。
租用未被授权的软件销售,用于临时性使用;以及
窃用改变计算机应用的防护盾,以便能够实现未授权使用该应用。
软件盗版的一种解决方案是HASP"1,由Aladdin Knowledge Systems Ltd.制造。它是用于保护软件应用(例如防止盗版)的产品家族,也用于 数字版权管理(DRM)。 HASP家族目前包括以下产品
-HASP HL ,其为基于硬件的许可和软件保护系统;
-Privilege ,其为基于软件的许可、软件保护和软件发行系统;
-Privilege Trialware Toolkit,用于创建安全的、受控的软件共享 (trialware); 以及
-HASP DocSeal ,其为用于保护知识产权和HTML文件中的敏感信息的基 于硬件的系统。
例如,HASPH1^以令牌(还公知为"软件狗")的形式被分发插入计 算机的USB端口或类似端口 (例如并行口)。它是用来加密和解密用于软 件保护的数据的基于硬件的加密引擎。在运行期间,HASP Hl^接收来自 受保护的应用的加密的字符串并以一种不能被模仿的方式解密它们。从 HASP Hl^返回的解密数据被受保护的应用所使用,以便影响程序执行的 模式所述程序执行的模式可以是加栽和运行,可以是仅仅执行某些组件, 或者可以是根本不执行。HASP的芯片上加密引擎使用128位AES加密算 法、通用API、单个许可容量、跨平台USB等等。
软件保护的另一途径是基于本地许可服务器,即运行在机构的私有网 络并控制一个或多个软件产品的许可/保护功能的服务器。例如,本地许 可服务器具有包括N个许可的许可池,即允许同时使用程序的不多于N 个的拷贝。每次激活软件的拷贝时,该软件"请求"许可服务器允许运行。 每次用户运行该软件应用,许可池减l,每次用户使用完该应用,许可池 加l。根据机构购买的许可条款,如果多于N个用户同时使用该应用,该 服务器可以拒绝授予额外的许可,向该^Kl收取额外使用的费用等等。
软件保护的另一公知的解决方案是产品激活。产品激活,也称为衫L件 激活,是一种独特的商业模型,其对软件应用如何^L行和使用提供更多 控制。本质上,其提供软件保护,通过限制软件安装的次数来保护知识产 权。典型地,软件激活的目标是允许软件应用在单个机器上安装。在安装 之后的预定的时间段(例如,第一个30天)内,用户必须使系统得到激 活,然后才能使用它。激活涉及其上安装有软件应用的机器和许可服务器 之间的通信,通常通过互联网,并包括提供有关其上安装该应用软件的硬 件信息。假如该软件已经被合法购买,则远端服务器提供释放代码并记录 在用户的系统中。每次该软件应用被调用,都对照机器的硬件组成(例如 显示适配器的类型,SCSI适配器、IDE适配器、处理器类型等)检查该代 码,只有在该代码符合预期代码时才允许执行。
因为产品激活解决方案依赖于用户的硬件,用户硬件的任何变化都会
对肯定地识别用户机器的能力造成障碍。用另一机器替换现在的机器需要 用户再次激活软件。而且,在多于一台机器上执行经许可的软件应用会带 来另外的障碍。
很多软件激活问题可以通过令牌解决方案解决,因为令牌是可移动的 硬件设备,其甚至通过使用逆向工程来设计以防止令牌被复制。然而,从 制造商的观点来看,通过令牌保护软件应用会带来额外的费用,因为令牌 是硬件元件,令牌有摊销,当令牌为用户所有时,改变令牌的内容不方便 等等。
尽管对于在机构内部的使用而言,许可服务器解决方案比令牌解决方 案更适合,许可服务器解决方案也有缺点,例如超载,这可能导致机构内 部软件应用活动的中止等等。
因此,本发明的目的是提供用于保护软件应用免遭盗版的系统,其克 服了现有技术的问题。
本发明的进一步的目的是针对软件盗版提供没有硬件装置就能实现 的解决方案。
本发明的另一目的是针对保护软件应用提供既适合组织又适合单个 用户的解决方案。
本发明的其它目的和优势将随着描述的进行变得明显。

发明内容
一方面,本发明涉及用于保护软件应用防止未授权使用的方法,该方
法包括如下步稞由用户的机器执行软件应用的第一部分;在用户的机器 经由网络可以访问的远程服务器上执行该软件应用的第二部分,从而使第 二部分远离用户的机器;并且第 一部分和第二部分之间通过网络进行通 信;由此防止窃用该软件应用。
另一优选的方面,本发明涉及软件应用,包括待在用户的机器上执 行的第一部分,待在用户的机器经由网络(WAN, LAN等)可以访问的远 程服务器上执行的第二部分,从而使第二部分远离用户的机器,以及用于 在第一部分和第二部分之间通信的通信模块,从而防止窃用该软件应用。
通常,软件应用的第二部分执行软件应用或多个软件应用的许可行为 (例如!Hi软件应用按照其许可条款执行)。
根据本发明的另一优选实施例,软件应用的第一部分、第二部分或者 甚至所有部分都可以被保护盾保护。
软件应用的第二部分可包括可执行程序。可选地或附加地,软件应用 的第二部分可包括数据对象。另外,该数据对象包括密钥(密码密钥、识
别密钥等)。
优选地,该第一部分和第二部分之间的通信是被保护的。根据本发明 的优选实施例,该通信是选择性的。


结合下图可以更好地理解本发明
图1示意性地示出了根据现有技术的一典型的受保护的软件应用;
图2示意性地示出了祁^据本发明第一优选实施例的对图1中所示的软 件应用的部分的部署;
图3示意性地示出了根据本发明另一优选实施例的对图1中所示的软 件应用的部分的部署;
图4示意性地示出了根据本发明又一优选实施例的对软件应用的部 分的部署;
图5示意性地示出了;fil据本发明再一优选实施例的对软件应用的部 分的部署;以及
图6是根据本发明的一个优选实施例的用于保护软件应用的方法的 流程图。
具体实施例方式
术语保护盾或安全盾这里是指为保护软件应用避免被未授权的对象 使用而增加到软件应用中的软件和/或硬件部分。保护盾可以在一应用的 开发过程中增加到该应用,或增加到该应用的发行版本中。
术语"软件"在本领域中指的是计算机指令和/或数据。术语"软件 应用"在本领域中指的是面向执行某些功能的程序和/或数据。例如,字 处理器、电子制表软件以及数据库管理系统均归入软件应用的种类。术语 "软件应用的部分"在这里指少于软件应用的组件的全体,无论这些组件
是可执行代码还是数据。例如, 一个或多个函数、DLL、可执行(例如EXE) 文件、 一个或多个脚本、 一个或多个数据文件、 一个或多个数据库记录、 一个或多个字节以及上述内容的任意组合,其每一个所包括的内容均少于 软件应用的全部,每一个都可称为这些组件共同所属的软件应用的"部 分"。
图1示意性地示出了根据现有技术的一典型的受保护的软件应用。用 户的机器20执行软件应用40。该软件应用40包括下列模块部分l、部 分2和部分3, GUI (图形用户接口 )以及保护盾。所有这些部分都在用 户的机器20上执行。
软件应用易受盗版攻击的主要原因之一在于软件应用的所有部分对 用户是可用的。软件部分对用户的可用性允许用户修改文件,不管它们是 可执行文件还是数据文件。黑客所4吏用的一种方法是在应用正祐:执行时, 跟踪该应用的代码和数据。黑客可使用一种调试器,该调试器允许他逐步 地执行应用,i^该应用每一步所执行的操作,检查变量和内存当前的内 容等等。因而,软件应用文件对用户的可用性,或者甚至存储在RAM中的 在被执行的软件应用的部分的可用性使该软件应用易受黑客攻击。由此, 通过适当的努力、时间和资源,软件应用的保护盾能够被移除,导致不受 保护的软件应用,该软件应用能够分发给其他未被授权的用户。
根据本发明的优选实施例,这个问题可以通过将软件应用的所有部分 都保留在远程服务器上,并通过该远程服务器或另一个远程服务器执行这 些部分,而不是在用户的机器上执行来解决。
图2示意性地示出了才艮据本发明的第一优选实施例的对图l中所示出 的软件应用的部分的部署。与现有技术中在用户机器20上执行应用40 的所有部分不同,部分1、部分2和部分3在远程服务器10上执行,用 户机器20通过互联网30经由通信信道80可访问该远程服务器10。用户 和应用之间的连接通过GUI模块40实现,该模块由用户机器20执行。
由于应用40部署在用户计算机20和远程服务器10两个平台上,因 此保护盾的角色与现有技术中的不同。如果该应用的所有者不信任服务器 IO的操作者,或者为了获得更好的保护级别,则在远程服务器10上运行 的程序部分也可以被保护。在用户机器20上的保护盾可以较不严格,因 为远程服务器10能够控制应用被利用的方式,例如,多少用户执行它、 用户的身份等等。另外,用户机器20和远程服务器之间交换的数据也可 以被保护,尤其如果该数据具有机密性。例如,这可以通过加密方法实现,
诸如加密所交换的数据、对交换的数据进行数字签名等等。
通过阻止用户访问软件应用40,用户不能够改变软件应用,导致与 现有技^M目比更好的保护级别。
在本发明的一个实施例中,鉴于应用不能在用户机器20上运行,与 用户的接口可以通过浏览器或其专用程序实现。这在图2中通过用户的机 器20执行的GUI模块进行了图示。
图3示意性地示出了才艮据本发明的另一优选实施例的对图1中所示出 的软件应用的部分的部署。在该实施例中,该应用的部分1和部分2由远 程服务器10执行,而该应用的部分3由用户机器20执行。因此,不是程
序的所有部分都必须在远程服务器10上执行。在有些情况下,仅仅保护 应用的某些部分,例如, 一些核心程序或者许可模块并且仍可获得好的保 护就足够了 。这些部分可以由远程服务器10执行。
根据本发明的另一优选实施例,运行在远程服务器IO上的软件应用 40的部分涉及软件应用40的许可。
图4示意性地示出了根据本发明的又一个优选实施例的软件应用的 部分的部署。图3和图4的不同在于,在图3中,软件应用40的某些部 分由远程服务器10执行,该远程服务器10可经由广域网络30 (例如互 联网)为用户机器20所用,在图4中,软件应用40的某些部分由本地服 务器70执行,且可经由局域网络60为用户机器20所用。
图3中示出的部署至少在下列方面与现有技术是不同的
根据本发明,远程服务器通过广域网可访问,而根据现有技术,远程 服务器通it^域网可访问。该区别是实质性的,原因是由于本地服务器是 局域网的一部分,因此其用户比广域网用户更容易对其进行访问。例如, 由于局域网的设施(包括其服务器)通常对于该局域网的用户是物理可用 的,因此运行在本地服务器的许可模块至少能够由局域网操作者调试。
图4中示出的部署至少在下列方面与现有技术是不同的
根据本发明,不管是通过局域网或通过广域网可访问,许可服务器不 构成受保护软件应用的主要部分。例如,根据本发明, 一些可能构成或可 能不构成保护盾一部分的核心程序可以在远程服务器上执行。然而,现有 技术只处理许可,不处理保护。
应理解由于在本发明中软件应用的部分可以在多个计算机系统上执
行,因此期望允许在不同计算机上的应用的不同部分相互通信。期望通信 信道是受保护的,例如,提供加密的通信或至少保证交换信息的内容对于 未授权的对象将是不可理解的。
图5示意性地示出了梠^据本发明再一优选实施例的軟/fr应用的部分 的部署。 一组用户机器20通过本地网络60连接,本地网络60连接到广 域网30上。
根据该实施例,保护行为在远程服务器10(保护-A部分)、本地服务 器70 (保护-C部分)和用户的机器20 (保护-B部分)中分配。
根据本发明的另一优选实施例,许可服务器,或者是Web许可服务器, 或者是本地许可服务器,或两者,操作来验证该应用是否正在根据该^ 购买的许可条款运行。该lHit可周期性或以随机间隔执行。在一个优选实 施例中,代替或除了依据应用的激活来检查使用该应用的用户的授权之 外,服务器以给定的间隔,例如每5分钟,检查多少授权的用户正在同时 使用该应用,并更新许可池中可用/已用许可的数量。如果用户的数量超 过根据许可协议所允许的数量,许可服务器可以向该^l收取额外使用的 费用,对某些用户限制该应用的某些功能(例如挂起M选项)、丢弃某 些用户等。
与现有技术中仅依据对软件应用的调用来执行该应用的使用不同,根 据本发明的这个实施例,在应用执行期间,mt对软件应用的使用是否遵 照其许可条款也被执行。
图6是根据本发明的优选实施例的用于保护软件应用的方法的流程 图。在调用软件应用之后,询问4吏用该应用的用户授权。如图6中所示, 如果用户对该应用的使用没被授权,则该应用可能被异常中断。或者,用 户可以被允许使用该应用的受限特性或者可以被允许有限地使用该应用。 如果用户对该应用的使用是被授权的,那么在应用执行期间,以5分钟间 隔执行附加检查。如上文描述的,附加检查验汪该用户是否在许可条款下 被授权使用软件应用。如果多于许可协议所允许的用户同时使用该应用, 则许可服务器可以向**收取附加费用、对某些用户限制应用的某些功能 (例如挂起保存选项)、丢弃某些用户等等。
应理解,本地许可服务器比web许可服务器更适于在软件应用执行期 间提供附加验证,即验证该软件应用的使用是否符合其许可条款。在web 许可服务器上执行这样的行为可能由于潜在的大量用户而导致web服务器超栽。
根据本发明的另 一优选实施例,本地和web许可服务器两个都在软件 应用执行期间实施提供附加验证,验证该软件应用的使用是否符合其许可 条款。在这个实施例中,本地许可服务器可操作来测量该^f吏用并将其向 web许可服务器报告,web许可服务器可操作来验证所测量的使用是否符 合许可条款。
由于与服务器的连接可能是间歇的,因此,根据本发明的一个实施例, 在与web许可服务器的连接断开后,用户侧的软件应用只能保持运行有限 的时间段(例如, 一个小时、 一天等等),并且如果在这个时间段期间没 有与服务器重新建立连接,软件将停止运行、限制某些功能等等。
根据本发明的一个实施例,如果服务器中的一个挂起(例如因为系统 故障),那么其它的服务器(如果可用)执行许可行为(检查4吏用该应用 的用户授权,检验同时使用该应用的用户的数量不超过许可条款等等)。
在应用执行期间根据其许可条款监测该应用的使用的副产品是收集 该应用^吏用的信息。例如,不用安装专用系统来监测字处理器字典特性的 使用,许可服务器就能够收集这个信息。所收集的信息给城提供了决定 是否购买某个特性或应用,购买多少许可等等的手段。此外,应用厂商也 能够以同样的方式使用这样的信息。
本发明的许可服务器可以结合多种支付模式使用。例如,根据本发明 的一个实施例,支付可以基于一个用户或多个用户激活应用的次数。根据 本发明的另一实施例,支付可以基于应用运行的时间段。另外或者做为选 择,支付可以基于应用被调用的次数和应用被使用的时间段的,适当的 组合。根据本发明的另一实施例,支付可以基于同时运行的实例的最大数 量。
在本领域,为了推进R&D进程,通常把软件应用的MD行为和保护/ 许可的R&D行为分开。而且,有专门从事保护/许可问题的公司。保护盾 被设计为易于添加到现有的软件应用。另外,保护盾提供有API (应用软 件接口),软件厂商通过API能够与保护盾交互。保护盾是与应用的其他 部分分离的工具这一事实使得应用软件开发者将其MD集中在开发者专 门研究的主题上。优选地,在本发明中,在WWW服务器上执行并因此保持 远离最终用户/机构的软件应用的部分属于保护盾。
信封保护(envelope protection)提供增强总体安全级别的文件编
码和高级反调试特性。例如,HASP信封实体是典型的保护信封。它在应 用的可执行文件和库文件周围增加了保护盾。HASP信封提供阻止反向工 程和其它反调试方法的手段。HASP信封使用随机装配的多保护层封装应 用文件。该随机的多层封装信封确保了一个受保护的应用所实施的保护策 略不同于另 一个。HASP信封在受保护的软件和HASP密钥之间建立了链路,
称为"安全令牌"---种通过与主机的有线或无线连接向该主^W^
护和安全功能的主机外部硬件设备。每当受保护的软件不能访问需要的 HASP密钥时,该受保护的软件和HASP密钥之间的^^L断开,在此情况 下,程序停止运行。在保护过程期间,原始文件被破坏,新的文件祐:创建。 创建的新文件为分发给用户的文件。
HASP允许系统和用户级调试措施的检测,其能够被激活以由HASP系 统采取措施以阻止伺机坡坏保护机制的潜在攻击。用户能够指定HASP密 钥接入用于加扰的频率.该设置控制受保护应用进行的HASP密钥呼叫的 简洁性.提供加密级别滑尺用于确定HASP密钥接入用于加扰的频率。增 加保护模块的数量会增加受保护应用的启动时间和结果得到的文件的大 小。在加密级别和受保护文件大小和启动速度之间也有一种平衡。加密级 别越高导致启动越慢以及受保护应用大小越大。
根据本发明的另一实施例,许可服务器操作来使用"强制方案",其 中,按照购买的许可条款限制用户或机构对应用的使用。在这个实施例中, 机构不能同时使用多于已购买的许可。根据本发明的另一实施例,许可服 务器操作来使用"计量方案",其中,对程序的使用进行计量,用户MM^ 被据此收费.在这个实施例中,;M^!t根据其用户执行软件应用的次数收 费。根据本发明的又一实施例,许可服务器^Mt来既〗吏用强制方案也4吏用 计量方案。在这个实施例中,例如,如果许可条款允许同时最多N个用户, 若同时多于N个用户使用该应用,则该^被收取附加费用。
应理解根据本发明,因为与web许可服务器的连接是通过互联网,所 以用户可以M构的LAN之外,例如从家里激活该应用软件。
应理解,在本领域中,通过网络的"选择性"通信主W众所周知的。 例如,浏览web站点的用户被限制只能访问运行该web站点的web服务器 上驻留的某些内容。因此,用户能够访问web站点上的数据的事实并不意 味着他对数据的访问是无限制的。而且,用户与远程服务器通信的事实不 一定意味着远程服务器对用户的主机具有无限制的访问。事实上,用户能 够阻止web站点服务器访问存储在其计算机上的信息。因而,根据本发明的优选实施例,驻留在不同计算机设备上的软件应用的部分之间的通信是 "选择性"的。这样,服务器被优选地配置和/或规划并操作来完全地或 选择性地阻止远程工作站修改和/或访问其上存储的信息,同时,使远程 工作站能够至少选择性地访问存储在服务器上的信息。
本领域技术人员应理解本发明能够通过其它形式和方式体现,而不失 去本发明的范围。这里所描述的实施例应被认为是说明性的而非限制性 的。
权利要求
1.一种保护软件应用防止未授权使用的方法,所述方法包括以下步骤-由用户的机器执行所述软件应用的第一部分;以及-由经由网络连接到用户的机器的远程服务器执行所述软件应用的第二部分,所述远程服务器被配置为使得所述用户的机器经由所述网络可接入使用该第二部分,但不能对该第二部分进行修改;其中,如果执行所述第一部分和第二部分中的至少一个需要其间的通信,则所述第一部分和所述第二部分经由所述网络进行通信;由此,防止由所述用户的机器对所述软件应用的至少所述第二部分的窃用。
2. 根据权利要求1所述的方法,其中所述软件应用的所述第二部分执行与所述软件应用有关的许可行为。
3. 根据权利要求2所述的方法,其中所述许可行为从一组中选择,该 组包括验证所述软件应用是根据其许可条款执行,验证所述用户的机器和/或其用户被授权执行所述软件应用,定期地mt所述用户的机器和/ 或其用户被授权执行所述软件应用。
4. 根据权利要求1所述的方法,其中所述网络是广域网。
5. 根据权利要求1所述的方法,其中所述网络是局域网。
6. 根据权利要求1所述的方法,其中所述软件应用的所述第一部分通过保护盾保护。
7. 根据权利要求1所述的方法,其中所述软件应用的所述第二部分通过保护盾保护。
8. 根据权利要求1所述的方法,其中所述软件应用的所述第二部分从一组中选择,该组包括可执行程序、数据对象、可执行程序和数据对象。
9. 根据权利要求8所述的方法,其中所述数据对象包括密钥。
10. 才艮据权利要求9所述的方法,其中所述密钥从一组中选择,该组包括密码密钥、识别密钥。
11. 根据权利要求1所述的方法,其中所述通信是选择性的。
12. 根据权利要求1所述的方法,其中所述通信是受保护的。
13. —种软件应用,包括-第一部分,将在用户的机器上执行;-第二部分,将在所述用户的机器通过网络可以访问的远程服务器上 执行,从而使所述第二部分远离用户的机器;-通信模块,用于在所述第一部分和所述第二部分之间进行通信,由 此防止窃用所述软件应用。
14. 根据权利要求13所述的软件应用,其中所述网络是广域网。
15. 根据权利要求13所述的软件应用,其中所述网络是局域网。
16. 根据权利要求13所述的软件应用,其中所述第一部分通过保护盾 保护。
17. 根据权利要求13所述的软件应用,其中所述第二部分通过保护盾 保护。
18. 根据权利要求13所述的软件应用,其中所^it信模块通过保护盾 保护。
19. 根据权利要求13所述的软件应用,其中所述软件应用的所述第二 部分从一组中选择,该组包括可执行程序、数据对象、可执#^序和数 据对象.
20. 根据权利要求19所述的软件应用,其中所述数据对象包括密钥.
21. 根据权利要求20所述的软件应用,其中所述密钥从一组中选择, 该组包括密码密钥、识别密钥。
22. 根据权利要求13所述的软件应用,其中所述通信是选择性的。
23. 根据权利要求13所述的软件应用,其中所述通信是受保护的。
全文摘要
本发明涉及一种保护软件应用防止未授权使用的方法,该法包括以下步骤由用户的机器执行软件应用的第一部分;在由用户机器通过网络可以访问的远程服务器上执行软件应用的第二部分,从而使第二部分远离用户的机器;第一部分和第二部分之间通过网络通信;由此防止对该软件应用的窃用。另一方面,本发明涉及一种软件应用,其包括第一部分,将在用户的机器上执行;第二部分,将在用户的机器通过网络可以访问的远程服务器上执行,从而使第二部分远离用户的机器;以及通信模块,用于在第一部分和第二部分之间进行通信。
文档编号G06Q99/00GK101176115SQ200580047317
公开日2008年5月7日 申请日期2005年11月28日 优先权日2004年11月29日
发明者扬金·马加利特, 达尼·马加利特 申请人:阿拉丁知识系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1