CN100416450C - 数字权利管理 - Google Patents

数字权利管理 Download PDF

Info

Publication number
CN100416450C
CN100416450C CNB2005800038830A CN200580003883A CN100416450C CN 100416450 C CN100416450 C CN 100416450C CN B2005800038830 A CNB2005800038830 A CN B2005800038830A CN 200580003883 A CN200580003883 A CN 200580003883A CN 100416450 C CN100416450 C CN 100416450C
Authority
CN
China
Prior art keywords
token
licence
data token
exchange
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CNB2005800038830A
Other languages
English (en)
Other versions
CN1914578A (zh
Inventor
迈克尔·威德纳尔
比尔吉特·菲茨曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1914578A publication Critical patent/CN1914578A/zh
Application granted granted Critical
Publication of CN100416450C publication Critical patent/CN100416450C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1077Recurrent authorisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

提供了软件许可证管理系统(1,50,60),其中用数据令牌(7,56,67)来代表使用软件产品(4,55,65)的许可证。所述系统具有用于控制软件产品在用户设备(3,53,64)处的使用的软件控制器(6a,52a,62a)和用于经由数据通信网络(5,54,63)与软件控制器通信的许可证管理服务器(2,51,61)。软件控制器(6a,52a,62a)基本上只在与许可证管理服务器(2,51,61)提供给软件控制器的当前数据令牌(7,56,67)相关联的使用期内才允许软件产品在用户设备处的使用。当需要传递许可证时,例如发生崩溃时,可以将交换令牌提供给另一个类似的软件控制器。软件控制器(6a,52a,62a)被调适为向许可证管理服务器(2,51,61)提供当前数据令牌或者交换令牌,以换取新的数据令牌。在两种情况下要这样做:(a)为了延长软件产品的许可证,使其超过与许可证管理服务器所提供的当前数据令牌相关联的使用期;以及(b)当从另一个软件控制器接收到交换令牌用于传递许可证时。许可证管理服务器将新的数据令牌提供给用之来替换当前数据令牌的软件控制器。新数据令牌具有新的使用期,在该期间内可以继续软件产品的使用。这样,在情况(a)中,许可证被延长,而在情况(b)中,许可证被传递到新的软件控制器。系统(1,50,60)还包括防止或禁止在多个用户设备上同时使用软件产品(4,55,65)的机制。

Description

数字权利管理
本发明总体上涉及数字权利管理。数字权利管理与对软件许可证的管理有关,是为了确保许可证不被侵权。许可证是通过提供以下机制来实施的:控制被许可的软件产品在用户设备处的使用,以便禁止违反许可证的使用。本发明的实施方案提供了在软件许可证管理系统中使用的方法和装置,其中涉及对软件产品在用户设备处的使用的这种控制。
对软件产品(例如程序、音频文件、视频文件等)的许可通常限于使用该软件产品的单一实例。也就是说,被许可的产品不能同时被一个以上的用户合法地使用,或者更准确地说,不能同时在超过一个的用户设备(例如PC、DVD播放器等)上合法地使用。实施这样的限制使用的许可证的标准方法是将许可证绑定到特定的用户设备。这可以通过以下方式来实现:将独特的设备标识符,例如处理器id、安全芯片的id或者某些配置细节的组合编码到许可证中,并且在运行被许可的软件之前确保用户设备具有正确的设备标识符。例如,诸如媒体播放器一类的应用程序可以在运行被许可的音频或视频文件前检查它是否正运行在具有正确标识符的设备上。
将软件许可证绑定到特定的用户设备是有缺陷的,即,如果设备出现故障,那么许可证就不能再被行使。也就是说,这种方法不保证许可证对用户的可用性。这种可用性的问题目前是通过两种途径之一来解决,但这两种途径都有新的问题,使得它们对于大多数应用而言不令人满意。第一种途径是一开始就将许可证绑定到一个以上的用户设备,使得如果当前设备出现故障,则许可证仍可以由另一个设备来行使。然而,这样的话从技术上无法阻止用户在所有的设备上同时行使许可证,而这违反了许可。此外,并非所有的用户在获得许可证时都会有一个以上的可用于此目的的设备。第二种途径是如果用户可以证明旧的设备已出现故障,或者旧设备的标识已发生改变,则授予用户一个新的许可证用于新的设备。这一般涉及到用户将旧的设备交给许可证颁发者进行检验。这种途径不仅给用户带来很大的不便,而且它产生了显著的隐私问题,因为许可证颁发者可以获取有关用户的信息,并且有可能获取存储在用户设备上的数据。
一种不同类型的可以在一个以上的用户设备上行使软件许可证的发证方案就是“浮动许可证”方案。其中,许可证被绑定到某一组用户(例如一家公司的用户),并且该方案规定:在任何时候,对于某一软件产品最多可以有效地使用指定数量的许可证。同时使用的许可证的指定数量上限一般是由中央发证服务器针对用户组来控制的。为了运行软件产品,用户设备与发证服务器联系并且索要临时许可证,如果有的话(即,当前正在使用中的许可证的数量不到其上限)它将接收到临时许可证。然后,许可证一般在使用结束后被返还给发证服务器。由于存在与许可证相关联的某一有效时间或者使用期,所以说许可证是临时的。因此,有限的离线使用是允许的,但是当超过使用期时,必须获得新的许可证以继续运行软件产品。虽然该方案使得许可证可在不同的用户设备之间转移,但是它设计的目的是为了控制软件产品在可信环境(例如公司网络)内的多实例使用。它没有解决在更普通的环境中单实例使用的许可证所具有的上述问题。
本发明的第一方面提供了一种软件许可证管理系统,在该系统中用数据令牌来代表使用软件产品的许可证。该系统包括:用于控制软件产品在用户设备上的使用的软件控制器;以及用于经由数据通信网络与软件控制器通信的许可证管理服务器。软件控制器被调适为:
基本上只在与许可证管理服务器提供给软件控制器的当前数据令牌相关联的使用期内才允许对软件产品的所述使用;
允许用户对依存于由许可证管理服务器提供的当前数据令牌的交换令牌的访问,从而可以将交换令牌作为当前数据令牌提供给另一个所述软件控制器;并且
(a)为了将软件产品的许可证延长为超过与许可证管理服务器所提供的当前数据令牌相关联的使用期,(b)如果当前数据令牌是来自另一个所述软件控制器的交换令牌,则经由网络将当前数据令牌和交换令牌之一提供给许可证管理服务器,以换取新的数据令牌来替换当前数据令牌。
此外,许可证管理服务器被调适为:
经由网络向软件控制器提供用于替换当前数据令牌并且具有与之相关联的新的使用期的新的数据令牌,用于交换已从软件控制器接收的当前数据令牌或者与当前数据令牌相对应的交换令牌;以及
检测从软件控制器接收来用于交换的所述令牌是否对应于已经由许可证管理服务器交换的令牌。
这样,在实施本发明的系统中,软件控制器根据由许可证管理服务器提供的、代表软件产品的许可证的当前数据令牌来控制软件产品在用户设备上的使用。具体地说,数据令牌具有相关联的使用期,软件控制器基本上只在该使用期内允许对软件产品的使用。但是,当有必要将许可证延长为超过当前令牌的使用期时(上述情况(a)),软件控制器可以将当前令牌(或者依存于当前令牌的交换令牌)提供给许可证管理服务器以换取新的数据令牌。从许可证管理服务器返回的新的数据令牌具有新的使用期。由于新的数据令牌变成软件控制器所持有的当前令牌,所以软件控制器允许软件产品在该新的使用期内使用。利用这种方式来交换令牌,许可证就可以不断地延长,从而允许软件产品在正常操作状态下连续使用。然而,为了保证许可证在用户设备发生故障时对用户的可用性,软件控制器允许用户访问上述交换令牌。该交换令牌因而可被传递到另一个类似的软件控制器,例如用于新的用户设备的软件控制器,并且如上所述地换回新的数据令牌。这样就保护了合法用户避免因设备故障而引起的许可证丢失,但是该系统的三项特征一起用来防止滥用许可证的欺骗企图。具体地说,这些特征阻止在原设备上继续使用的同时在一个或多个其他设备上使用交换令牌的企图。下面按顺序解释这三项特征。
首先,虽然如上所述,当许可证管理服务器已提供了当前数据令牌时,软件控制器将允许对软件产品的使用,但是这不适用于当前数据令牌是交换令牌的情形(当从第一软件控制器获得的交换令牌被提供给另一个软件控制器时就会发生这种情形)。在这种情形下,即,如果当前数据令牌是交换令牌(上述情况(b)),则软件控制器将把交换令牌提供给许可证管理服务器进行交换。结果,交换令牌可以被交换但是不可以被使用。
第二,许可证管理服务器可以检测从软件控制器接收来用于交换的令牌是否对应于已经由许可证管理服务器交换的令牌(即,接收到的令牌是否与已经交换的某个令牌相同,或者接收到的令牌是不是与已交换的数据令牌相对应的交换令牌或反之)。因此,如果从一个软件控制器获得的交换令牌被提供给第二软件控制器,那么第二软件控制器就可以用它来换取新的数据令牌,从而继续软件产品的使用,但是如果第一软件控制器接下来试图使用同一交换令牌(或者对应的当前数据令牌)来获得新的数据令牌,那么这将被许可证管理服务器检测到。
第三,如果来自第一软件控制器的交换令牌已被复制到第二软件控制器并用于换取新的数据令牌,那么与对应于该交换令牌的原数据令牌相关联的使用期将保证:即使该使用期尚未过期,第一软件控制器对软件产品的继续使用将仅仅限于受限的持续期内。当有必要将许可证延长为超过所述使用期时,由于上述第二特征,许可证管理服务器将检测到第一软件控制器获得新数据令牌的企图。这样,即使原数据令牌和新数据令牌的使用期交叠,发生欺骗性的同时使用的机会也是很有限的。此外,下面描述的优选特征允许潜在发生的同时使用期如愿地被消除或者最小化。
由于交换令牌依存于当前数据令牌,所以每当从许可证管理服务器获得新的当前令牌时,软件控制器就允许访问新的交换令牌。总之,交换令牌可以按照多种方式依存于当前数据令牌,下面会进一步地讨论。然而,在特定的优选实施方案中,交换令牌只是当前数据令牌的拷贝。由于当前数据令牌和交换令牌完全相同,所以在交换过程中总是将当前数据令牌提供给许可证管理服务器,并且许可证管理服务器可以通过检测是否接收到两次相同的数据令牌用于交换,来检测双次交换企图。
本发明的第二方面还是提供了一种软件许可证管理系统,在该系统中用数据令牌来代表使用软件产品的许可证,该系统包括:用于控制软件产品在用户设备上的使用的软件控制器;以及用于经由数据通信网络与软件控制器通信的许可证管理服务器。然而,这里的软件控制器被调适为:
基本上只在与许可证管理服务器提供给软件控制器的当前数据令牌相关联的使用期内才允许对软件产品的所述使用;
接收与所述许可证相关联的交换令牌;并且
(a)为了将软件产品的许可证延长为超过与许可证管理服务器所提供的当前数据令牌相关联的使用期,(b)如果所述交换令牌是在缺少当前数据令牌的情况下由软件控制器接收的,则经由网络将当前数据令牌和交换令牌之一提供给许可证管理服务器,以换取新的数据令牌。
这里的许可证管理服务器被调适为:
存储在许可证下被提供给软件控制器的每个数据令牌的使用期,并且
经由网络向软件控制器提供新的数据令牌,用于交换已从软件控制器接收的当前数据令牌或者所述交换令牌,所述新的数据令牌具有与在许可证下以前提供的数据令牌的使用期不交叠的新的使用期。
在本发明的该方面的实施方案中,交换令牌不象在本发明的第一方面的实施方案中那样特别地依存于当前数据令牌,而只是与许可证管理服务器发出数据令牌所依据的许可证有关联。例如,这里的交换令牌可能只是许可证的固定表达,比如实际上是“你被允许在许可证号Y下使用软件产品X”这样的表达,或者用户知道并且可以提供给任何软件控制器的其他任意形式的许可证。因此,这些实施方案中的软件控制器不必象在本发明的第一方面的实施方案中一样允许对交换令牌的用户访问。但是,在其他方面,软件控制器的正常操作可以与前述基本相同:软件控制器通过向许可证管理服务器提供交换令牌或当前令牌,从许可证管理服务器获得新的数据令牌以替换当前令牌,从而允许对软件产品的继续使用(上述情况(a))。如果发生设备故障,用户可以和前面一样向新的软件控制器提供交换令牌。没有当前数据令牌但是接收到交换令牌(上述情况(b))的新的软件控制器可以向许可证管理服务器提供交换令牌以获得当前数据令牌,从而可以利用该软件控制器继续正常操作。但是,这里的许可证管理服务器的操作用于防止在一个以上的软件控制器上的欺骗性的同时使用。具体地说,对于在许可下被提供给软件控制器的每个新的数据令牌,许可证管理服务器记录相关联的使用期。当在许可证下发出下一个新的数据令牌时,设定该下一个令牌的新的使用期,使得它不与为先前提供的令牌所存储的使用期交叠。按照这种方式,许可证管理服务器保证每个使用期只给出一个当前数据令牌,即,在任何给定的时刻都只有一个允许对软件产品的使用的数据令牌。
从以上描述中将会清楚:实施本发明的第一和第二方面的许可证管理系统通过允许许可证以简单方便的方式传递,同时禁止滥用该系统以及违反许可证的企图,藉此保证许可证对合法用户的可用性。因而,针对与上述实施单实例许可证有关的问题,本发明的实施方案提供了良好的解决方案。
一般而言,任何方便的形式的数据令牌都可以用在本发明的实施方案中。然而,在具体的优选实施方案中,数据令牌包括硬币(coin)。硬币是一种特殊形式的数据令牌,具有特殊的密码属性,它已知用作电子支付系统中的一种支付手段,例如用于在线购买或者银行交易。硬币的一种具体特征就是:利用某些密码属性,它们可以被匿名地“花费”(即,换取适当的数值)。也就是说,通过在花费过程中使用适当的算法,硬币的密码属性使真实性得到保证,同时使花费者保持匿名。硬币技术的原理以及对硬币的多种有效实现(即,简洁的硬币表达以及用于发行和交换硬币的有效协议)在本领域中是公知的,以下是典型的背景技术参考文献:
Stefan Brands,“Rethinking Public Key Infrastructures andDigital Certificates:Building in Privacy”,MIT出版社(The MITPress),2000年8月;
“Security without Identification:Transaction Systems to makeBig Brother Obsolete”,David Chaum,Communications of the ACM28/10(1985)1030-1044;
“Untraceable Electronic Cash”,David Chaum et al.,Crypto’88,LNCS 403,Springer-Verlag,Berlin 1990,319-327;
“Privacy Protected Payments-Unconditional Payer and/or PayeeUntraceability”,David Chaum,SMART CARD 2000:The Future ofIC Cards,Proceedings of the IFIP WG 11.6International Conference1987,North-Holland,Amsterdam,1989,69-93;
“Untraceable Off-line Cash in Wallet with Observers”,StefanBrands,Crypto’93,LNCS 773,Springer-Verlag,Berlin 1994,302-318;
这里不必讨论有关硬币系统的实施细节,对于本发明而言,只需要理解硬币实际上是一种匿名数据令牌就可以了,即,它可以被用在交易中,同时保持用户匿名。当然,硬币系统的本性一般会使得硬币也可以提供针对欺骗的高级别的安全性。硬币也可以提供其他需要的属性,例如下面将会讨论的“不可链接性(unlinkability)”的属性。因此,在本发明的优选实施方案中将硬币用作数据令牌是有很多优点的,提供了良好的安全性以及对用户隐私的保护。
总体而言,实施本发明的许可证管理系统可以用于任何类型的软件产品,例如技术程序或者数据文件,比如歌曲、电影或其他音频/视频文件,并且有关的用户设备可以是可使用这种软件的任何类型的设备,例如DVD或者音乐播放器、移动电话、PC或者其他计算设备。在一些实施方案中,软件控制器可以用与用户设备一起使用的专用硬件来实现。但是,典型地,软件控制器可以用运行在用户设备上的软件来实现。因此,也可以想到这样的实施方案:用于实现软件控制器的程序构成被许可的软件产品自身的一部分,例如当被许可的产品是技术程序时。或者,软件控制器可以用形成用于运行被许可产品的平台的应用程序来实现,例如用于运行音频或视频文件的媒体播放器。
在系统中用给定的数据令牌来表示的使用软件产品的许可证实际上是临时的,这是因为软件控制器基本上只在该令牌的使用期内才允许使用所述软件产品。可以想到这样的实施方案:软件控制器将允许在使用期外对产品的某种有限使用,例如只在某些特殊情况下才允许,但是通常情况下在使用期外都禁止使用。在优选实施方案中为了简化,软件控制器将只在当前数据令牌的使用期内允许使用,从而如果该使用期届满而又没有获得新的数据令牌(它将随后变为新的当前令牌)的话,将阻止对软件产品的使用。
在所述系统中可以用多种方式来定义与数据令牌相关联的使用期。例如,在一些系统中,使用期可以在软件控制器中被预设为从接收到当前令牌开始的指定时间。但是优选地,在数据令牌自身中指示使用期,例如指示为从接收起的指定时间,或者用指定的结束时间来指示使用期,或者用起始和结束时间来指示使用期。
为方便用户,优选地由软件控制器来自动完成获得新的数据令牌的交换过程。具体地说,对于在上述情况(a)(即,为了将许可证延长为超过当前令牌的使用期)中的交换过程,软件控制器可以在当前使用期届满时或临近届满时,或者当设备在发生触发事件后下一次在线时自动地开始交换过程。这使得在可以访问网络的情况下,许可证续展过程对用户是透明的。
在本发明的第一方面的实施方案中,在用当前令牌换取新的令牌时,新令牌的使用期可以被设置为在旧令牌的使用期结束时开始。这会使软件产品在两个用户设备上的同时使用变为不可能。在这样的实施方案中,软件控制器在交换令牌前可以一直等待,直到当前使用期届满,但是在这样的情况下,如果此时没有任何网络连接可用的话,就存在着中断的可能性。或者,如果交换过程可以在当前使用期届满之前开始的话,软件控制器可以保留旧的、被交换的令牌的拷贝,允许在旧令牌的未届满的使用期内使用软件产品,直到新令牌的使用期开始。然而,为了简化,在这些实施方案中优选的是:新令牌的使用期在发出该令牌时开始。这样,如果在旧令牌到期前获得了新令牌,受限的同时使用将是可能的。但是,在这里的优选实施方案中,对于由软件控制器利用交换过程分别获得的第一、第二和第三数据令牌的链条(每个令牌用于替换链条中的前一令牌),系统保证第一和第三数据令牌的使用期不会交叠。更一般地说,优选的系统被调适为在由软件控制器从许可证管理服务器接收的数据令牌的链条中,与每间隔一个的数据令牌相关联的使用期不会交叠。在这些实施方案中,这项特征可以通过对使用期进行适当的设置并/或控制交换过程的次数来以各种方式实现,防止了由两个以上的软件控制器同时使用软件产品。当然,潜在的由两个软件控制器同时使用的情况只存在于前面解释的有限期间内。此外,这样的同时使用可以通过以下描述的优选特征而减少到最小程度。
在具体的优选实施方案中,交换期除了与使用期有关外,还可以与每个数据令牌有关。在这样的实施方案中,系统被调适为:软件控制器仅在与当前数据令牌相关联的交换期内可以获得用于替换所述当前数据令牌的新数据令牌。例如,软件控制器可以被调适为仅在与当前数据令牌相关联的交换期内开始交换过程。就象使用期一样,优选地(但不是一定)在数据令牌自身中指示交换期,例如通过起始时间或者通过起始和结束时间来指示。软件控制器可以在交换期开始时,或者在交换期开始后一旦可以对许可证管理服务器进行在线访问,就尝试交换当前数据令牌。
在本发明的第一方面的实施方案中,交换期相对于使用期的时序关系提供了用于控制上述潜在的同时使用期的方便的机制。虽然交换期可以在使用期届满时开始,从而消除同时使用的可能性,但是优选的是交换期与使用期交叠,以避免前面所讨论的可能的中断。这种交叠的程度决定了最大可能的同时使用期,并且可以被设置为在给定的系统中视为合适的程度,下面将进一步地讨论。
在软件控制器允许对交换令牌的用户访问的实施方案中,可以以多种不同的方式来实现这一目的,下面将描述具体的例子。类似地,在本发明的第一方面的实施方案中的许可证管理服务器可以采用多种机制来检测双次交换企图,下面将进一步描述。
虽然到目前为止已结合单个软件产品讨论了操作,但是在实际中,软件控制器可以控制多个软件产品的使用,就象针对每个软件产品所描述的那样,提供和交换各个数据令牌。这里,可以在数据令牌自身中指示与给定的数据令牌有关的特定软件产品的标识。然而,如果用户有大量软件产品的许可证,例如,几百首歌曲的许可证,那么针对各个产品的数据令牌的提供和更新就变得不那么实际了。在这样的情形中,可能想要在单个总括许可证下处置所有的许可证,并且通过对总括许可证应用以上系统来管理各个许可证。为此,在实施本发明的具体系统中,数据令牌可以代表使用多个软件产品的许可证。在这样的系统中,软件控制器可以被进一步调适为将指示所述多个软件产品的产品数据存储在备份存储位置处,并且基本上只在与许可证管理服务器所提供的当前数据令牌相关联的使用期内允许使用每个软件产品。下面将给出解释这类许可证管理系统的操作的各种例子。
本发明进一步的各个方面提供了此前描述的许可证管理系统的软件控制器和许可证管理服务器。具体地说,本发明进一步的各个方面提供了如权利要求21和权利要求23中表述的软件控制器以及如权利要求22和24中表述的许可证管理服务器。本发明的各个其他方面提供了用于实现这样的软件控制器和许可证管理服务器的计算机程序。另外,一般地,在这里参考实施本发明的装置来描述各项特征的情况下,相应的特征可以出现在实施本发明的方法中,反之亦然。因此,本发明进一步的各个方面提供了用于控制软件产品在用户设备处的使用的方法(如权利要求29或权利要求31所述)以及用于许可证管理服务器的操作的方法(如权利要求30或权利要求32所述)。
下面参考附图以示例的方式来描述本发明的实施方案,在附图中:
图1是图解说明实施本发明的第一软件许可证管理系统的示意框图;
图2和3是图解说明由图1的系统中的软件控制器执行的操作的流程图;
图4是图解说明在图1系统中的许可证管理服务器的操作的流程图;
图5是图解说明在图1系统中,在交换的数据令牌的链条中的相继数据令牌的使用期之间的关系的图;
图6是图解说明实施本发明的第二软件许可证管理系统的示意框图;以及
图7是图解说明实施本发明的第三软件许可证管理系统的示意框图。
图1的示意图图解说明了软件许可证管理系统的第一实施方案的主要组件和基本操作。该系统总地用标号1来表示,它包括以DRM(数字权利管理)服务器2的形式出现的许可证管理服务器,该服务器由软件产品的许可证颁发者(或者其代表)来运行。DRM服务器2可以经由数据通信网络5(例如因特网)与用户设备3(例如用户PC)通信,而软件产品4例如可以运行在该用户设备3上。更具体地说,该系统包括软件控制器6a,用于控制对用户设备上的软件产品4的访问,并且当存在网络连接时,软件控制器6a和DRM服务器2可以经由网络5通信,以实现以下描述的功能。
虽然在图中用单个模块来表示DRM服务器2,但是服务器2一般可以用一台或多台计算机来实现,这些计算机运行着将计算机配置为实现下述功能的软件。软件控制器6a一般用硬件或软件或它们的组合来实现。例如,软件控制器可以用与用户设备相关联的专用(优选的是防窜改的)硬件来实现。但是,在本发明中,假定软件控制器是用运行在用户设备3上、用于控制软件产品4的使用的应用程序来实现的。例如,实现软件控制器6a的应用程序可以是用于控制对音频或视频文件形式的软件产品4的访问的媒体播放器。但是,一般来说,当用计算机程序来实现软件控制器或DRM服务器的功能时,这样的程序可以构成用于实现多种多样的、更一般的控制功能的更大程序的一部分,并且可以独立地提供,用以加载到计算设备中,以将该设备配置为执行所描述的功能。具体地说,构成这样的计算机程序的程序代码装置可以被提供为包含在计算机可读介质中,例如磁盘或者发送给用户或系统操作员的电子传输,用以加载到计算设备中。
在系统1的操作中,用数据令牌来代表使用软件产品4的临时许可证,该数据令牌的形式为DRM服务器2提供给软件控制器6a的硬币7,下面将进一步描述。为了简化,以下描述将针对单个软件产品4,但是在实际当中,软件控制器6a可以控制多个软件产品4的使用,其中每个软件产品4都具有用相应的硬币7表示的临时许可证。因而,与给定的硬币有关的特定产品4的标识可以被编码在硬币7中。硬币7可以用前面所讨论的公知方式来实现,并且具有与硬币系统相关联的特定密码属性,因而可以在下述交换过程中匿名交换硬币(即,不识别提供硬币来交换的设备)。除了硬币的基本属性外,硬币7具有两个关联的有效期,即使用期和交换期。使用期用起始时间P1和结束时间P2来定义,而交换期类似地分别用起始时间和结束时间Q1和Q2来定义。这些用各自的起始时间和结束时间来定义的期间使用将数值编码到硬币中的标准技术,以公知的方式被编码在硬币中。在该实施方案中,使用期和交换期被定义为在两个时期之间只有短的交叠部分。具体地说,Q1比P2提前一段与使用期P2-P1相比相对较短的时期。举个例子,使用期P2-P1可以是一个星期,而交叠部分P2-Q1可以仅为一天。交换期Q2-Q1与使用期相比可以比较长,例如几年。使用期的起始时间,即时间P1在该实施方案中被设置为硬币被提供给软件控制器6a的时间。在图2的示意流程图中表示出了软件控制器在接收到这样的硬币后的操作,下面的描述一开始假定软件控制器刚刚从DRM服务器2接收到硬币。
用图2的步骤10来表示软件控制器6a对硬币7的接收。在步骤11中,软件控制器判断接收到的硬币是不是复制硬币(见下文)。由于在这种情况下硬币7是从DRM服务器2接收的,所以硬币不是复制硬币,操作继续到步骤12。这里,软件控制器提示用户对新接收的硬币制作拷贝。例如,软件控制器6a可以显示消息,要求用户输入存储位置,例如存储在插入用户设备3的磁盘上,并且响应于适当的用户动作,软件控制器将硬币7的拷贝供给所提供的存储位置。按照这种方式,硬币7的拷贝如图1所示被实际输出到用户。(因此,在该系统中,复制硬币用作前面所讨论的交换令牌,因而在该实施方案中,交换令牌(复制硬币)和当前数据令牌(硬币7)是相同的)。接着,软件控制器实际上等待交换期的开始,例如通过将当前时间t与编码在硬币7中的时间Q1进行比较,如图2中的判决步骤13所示。一旦交换期开始,即t≥Q1,则操作前进(步骤13处的“是”)到步骤14,在该步骤,软件控制器6a自动开始硬币交换过程。该过程包括:软件控制器经由网络5向DRM服务器2提供当前硬币7以换取新硬币。在步骤15中,软件控制器判断交换过程是否已成功,即是否已从DRM服务器2成功地接收到新硬币。如果没有(步骤15处的“否”),则软件控制器在步骤16处判断所述交换是否已被DRM服务器拒绝(下面将进一步讨论)。如果是的(步骤16处的“是”),则软件控制器在步骤17处显示消息以告知用户,然后所述过程终止。如果不是(步骤16处的“否”),即,如果交换过程由于某种其他原因而失败,例如连接中断或者网络连接不可用,则软件控制器在由图中步骤18表示的适当的重试延时后将重试交换过程。但首先,软件控制器在步骤19处检查硬币的交换期是否还未届满,即t<Q2。如果交换期已届满(步骤19处的“否”),则操作前进到步骤17,在这里用户被告知失败,并且过程终止。假设交换期尚未届满(步骤19处的“是”),则操作退回到步骤14,重试交换过程。假设交换过程最终成功(步骤15处的“是”),则对于旧硬币7而言过程结束。于是,从DRM服务器接收的新硬币变为新的当前硬币7,并且图2的过程对于该硬币重复进行。这个新的硬币7具有新的上述使用期和交换期,其中新的使用期的起始时间P1被设置为提供新硬币的时间。按照这种方式,使用软件产品4的许可证被延长为超过旧硬币的使用期,并且可以随着每个相继的当前硬币被换为新硬币而不断续展。
在图2过程进行中的任意给定时刻,软件控制器6a都根据当前硬币7来控制软件产品4的使用。具体地说,在图3中示出了软件控制器响应于运行软件产品4的用户请求的操作。在该图中用步骤30来代表对用户请求的接收,然后操作前进到步骤31,在该步骤中(假设软件控制器可以持有多个软件产品的硬币),软件控制器检查是否对有关的软件产品4持有当前硬币。假设编码在当前硬币中的产品标识与软件产品4的标识匹配(步骤31处的“是”),那么软件控制器6a在步骤32检查硬币7的使用期是否尚未届满,即是否t<P2。假设是的(步骤32处的“是”),则在许可证下允许使用,并且软件控制器将在步骤33中运行软件产品4。然而,返回到步骤31,如果在这里没有为软件产品找到当前硬币(步骤31处的“否”),则该产品不被许可。于是,软件控制器在步骤34处显示消息,拒绝运行请求,并且过程结束。类似地,如果在步骤32处发现软件产品的当前硬币的使用期已届满(因为该硬币的交换由于某种原因而失败),则将在步骤34处拒绝软件产品的运行,并且过程终止。(在适当的情况下,如果没有任何过程在进行中,硬币交换过程可以在此刻开始)。
回到图2,上面已经针对由DRM服务器2提供软件控制器6a所接收的硬币的情形描述了操作。然而,软件控制器还可以接收由用户提供的复制硬币。例如,假定用户设备3崩溃,妨碍了对软件控制器6a的访问。用户可以获取新的用户设备,该用户设备具有新的、类似的软件控制器,如图1中的6b所示。(在该实施方案中,软件控制器6b在各个相关方面都与软件控制器6a以相同的方式工作,因而对其中一个的操作的描述同样适用于另一个)。通过将交换令牌(这里是用户先前存储的复制硬币)输入到新的控制器,可以将软件产品4的许可证传递到软件控制器6b。在图2的步骤10处接收到该硬币后,将在步骤11中将该硬币识别为复制硬币。(基本上,未依照上述交换过程接收的硬币在这里都会被识别为复制硬币)。然后操作直接前进(步骤11处的“是”)到步骤19,检查该复制硬币的交换期是否尚未届满。如果已届满,则将在步骤17处告知用户,并且过程将终止。但是,假设交换过程在步骤19尚未届满,则操作将前进到步骤14,在该步骤中,在网络5上开始硬币交换过程,并且该过程如上所述地进行。于是,复制硬币被软件控制器自动地交换为新硬币。如上所述,在新硬币下可以继续软件产品的使用,从而,许可证被成功地传递到新的软件控制器6b。
在一些实施方案中,例如,如果初始的产品许可证是在线购买的,那么当为软件产品第一次获取许可证时,可以由DRM服务器2来提供具有上述使用期和交换期的初始硬币。然而,优选地,当用户购买全新的许可证时(例如,在商店或者从网站购买软件产品),他收到可以输入上述软件控制器6a、6b的特殊硬币。该初始硬币没有使用期,但是具有交换期,它是用该交换期的结束时间Q2来定义的。当被提供给软件控制器时,该初始硬币(在与DRM服务器之间的交换过程后还未被提供)将受到和上述复制硬币完全一样的对待。因此,假定软件控制器在初始硬币的交换期届满之前接收到该初始硬币,那么将通过前面已解释的过程来用它换取新的当前硬币,操作按照正常的方式继续。
在图4中图解说明了DRM服务器2在从软件控制器6a接收到用于交换的硬币后的操作。在图中用步骤40来表示对硬币的接收。操作立即前进到步骤41,DRM服务器2检查以前是否收到过相同的硬币并且换取了新的硬币。在该实施方案中,DRM服务器是在步骤41中通过将接收的硬币与所存储的服务器以前已接收并交换的硬币的列表进行比较而完成这一工作的。如果接收的硬币与该列表上的某一硬币匹配,如判决步骤42的“是”分支所示,则接收的硬币已经被“花掉”。在这种情况下,操作前进到步骤43,DRM服务器向软件控制器返回拒绝通知,并且过程终止。然而,假设接收的硬币尚未被花掉(步骤42处的“否”),则该硬币可以换取新的硬币。在步骤44中,DRM服务器因而将接收的硬币存储为上述“花掉的硬币列表”中的已交换硬币,并且在步骤45中,新硬币被提供给软件控制器。该新硬币具有上述使用期和交换期,其中使用期的起始时间P1被设置为当前时间。然后过程结束。
可见,上面解释的系统操作通过提供在必要时向新设备传递许可证的简单方便的机制,从而确保许可证对用户的可用性。然而,该系统还用于挫败企图通过同时在多个设备上使用许可证来欺骗系统的用户。具体地说,虽然当前硬币的拷贝(这里用作交换令牌)可被用户用于传递目的,但是该复制硬币自身不能用在新设备上。这是因为复制硬币只能由软件控制器来交换,而不能被使用。虽然欺诈用户可以交换第一硬币的拷贝,以在第一设备上继续使用的同时开始软件产品在新设备上的使用,但是第一硬币将很快到期。由于DRM服务器将会检测到该硬币已经由新设备进行了交换,所以无法再交换该硬币,因此当使用期到期时,软件产品在第一设备上的使用将被禁止。此外,硬币的使用期和交换期的少量交叠意味着由两个软件控制器同时使用的可能时期相应较短。这在图5中清楚地示出,其中标示了在已交换硬币的链条中的三个硬币的使用期和交换期的相互关系。对于图中的硬币1,使用期和交换期分别由(P11,P12)和(Q11,Q12)限定。如果该硬币一有机会(即t=Q11时)就被交换为硬币2,那么由(P21,P22)和(Q21,Q22)限定的硬币2的等效使用期和交换期如图中所示。类似地,尽早提供来交换硬币2的第三硬币(硬币3)的使用期和交换期在图中用(P31,P32)和(Q31,Q32)来表示。首先可以看出,在该系统中,在硬币1和硬币3的使用期之间没有交叠。因此,同时使用的可能性被限制到最多两个软件控制器。此外,最大的可能同时使用期(即P12-Q11)是很短的(在此特定的例子中是一天),一般而言,对于给定的系统可被设置为预期可接受的程度。
虽然上面用简单的术语解释了硬币交换过程的基本原理,但是本领域的技术人员将会清楚:该过程的具体实施可以采用各种在现有硬币系统中已知的、用于管理硬币的发行和花费的算法和协议。因此,例如,当硬币被提供给DRM服务器来进行交换时,可以通过软件控制器和DRM服务器之间的交互来实现用于在现有系统中花费硬币的基本支付算法。类似地,可以通过软件控制器和DRM服务器之间的交互来实现基本的硬币发行算法,从而向软件控制器提供新硬币。这里,新硬币可以由软件控制器部分构建,该部分硬币被发送到DRM服务器进行验证。然后,DRM服务器对新硬币的提供可以包括:返回带有验证部分(例如数字签名)的部分硬币,所述验证部分将新硬币确认为一个有效硬币。可以理解,在任何情况下,在以上系统中使用硬币来代表许可证的做法提供了高度的安全性,同时保护了用户的隐私。具体地说,由于可以匿名花费硬币,所以也可以匿名地续展和传递许可证。因此,DRM服务器无法跟踪谁正在使用许可证以及在哪个软件控制器上。此外,硬币可以具有额外的“不可链接性”的属性,即,任何给定的硬币都无法被识别出与换取它的硬币相关联(即,“链接到”),或者甚至与已交换硬币的链条中的任何在先或在后硬币相关联。因此,可以向用户保证许可证颁发者无法收集到有关该用户的使用活动的性质和程度的任何信息。因此,以上实施方案总的来说提供了一种高效的许可证管理系统,在允许实施许可证的同时确保了可传递性和用户的隐私。
虽然在以上实施方案中软件控制器6a将当前硬币的拷贝提供给用户,但是软件控制器可以用其他方式来允许对复制硬币的用户访问。例如,软件控制器可以将复制硬币存储在备份存储位置处,例如存储在DRM服务器上,并且将某种形式的访问数据提供给用户,使用户能够取出拷贝。这样的访问数据可能只是存储位置本身,或者举例来说,可以是该位置加上复制硬币的访问码。
在以上实施方案中,DRM服务器2将每个“花掉”的硬币存储在列表中,以和后面接收的硬币进行比较。优选的是将每个硬币整体存储在该列表中,从而在用户对交换被拒绝有争议时,可用整个硬币作为证据。然而,这不是必不可少的,DRM服务器可以只存储与花掉的硬币相对应的令牌标识符,例如已发行的硬币的签名或者其他验证部分,或者其形态价值。此外,DRM服务器可以使用多种机制来检测是否已两次接收到相同的硬币用于交换。例如,DRM服务器可以维护所有已发行硬币的列表,并且当某一硬币后来被交换时从列表中删除该硬币。于是,如果接收的硬币没有出现在列表中,那么可以将它识别为已花掉。(前面所讨论的特殊的初始硬币在这里可以被同样识别出来,并被排除在该检查之外)。一般来说,可以根据多种用于在现有硬币系统中检测硬币的“双次花费”的已知机制来实现对以前花掉的硬币的检测。这样的机制优选地是作为交换过程的一部分来执行的在线机制,使得新硬币仅在交换还未花掉的硬币时才被提供。但是,也可以使用离线机制,从而在检查接收的硬币是否已被双次花费之前,提供新的硬币来交换该接收的硬币。如果后来检测到双次花费,那么可以采取适当的动作来惩罚用户。(虽然硬币是匿名的,但是采用这种离线机制的已知硬币系统被设计为:硬币的双次花费提供比花费硬币一次时更多的、有关花费者的身份的信息,并且提供了使得能够采取适当的动作(例如拒绝进一步的硬币交换)的足够信息。有关正确的花费者的身份被编码到新硬币中的保证可以由软件控制器来提供,或者,与交换中的旧硬币相比,由密码零知识机制(cryptographic zero-knowledgemechanisms)来证实。)
在以上例子中,硬币交换期Q2-Q1长得足以提供交换硬币的充足时间。然而,使用期相比而言则较短,并且使用期和交换期的交叠部分相对于使用期而言较小。这些特征迫使进行频繁的硬币交换,并且使欺骗的可能性保持为期望的最低水平。在崩溃的情况下,在最坏情况下用户在新设备上开始使用之前不得不等待(Q1-P1)天,直到交换期开始为止。然而,使用期和交换期的相对长度和交叠部分可以被设置为提供对给定的系统适当的具体属性。例如,在其他实施方案中,可能想要降低硬币交换的频率,以向合法用户提供更大的离线使用范围,同时将欺骗的可能性保持在可接受的水平上。在这样的实施方案中,硬币的使用期可能更长一些,而使用期和交换期之间的交叠部分也长一些。于是,软件控制器可以试图只要交换期开始就交换硬币,以阻止欺骗,同时剩余的使用期允许更宽松的离线使用时间。在一些实施方案中,根据许可证的用户或类型,可以不同地选择所述期间。举例来说,用户可以在短使用期和长使用期之间选择,前者提供了在设备发生故障后更短的等待时间,而后者需要更少的交换,从而需要更少的在线活动。
在上述系统中,硬币交换过程实际上是通过DRM服务器2和软件控制器6a、6b之间的交互来完成的,并且可以想到这样的实施方案:DRM服务器需要验证它正在与合法的软件控制器进行交互。例如,被许可的软件产品的使用可能需要向软件控制器提供某种秘密信息。因此,可能需要提供一种机制,该机制允许软件控制器向DRM服务器证明它是合法、正确的软件控制器,并且允许DRM服务器向软件控制器证明自身的身份,并且所有这些都不用使得DRM服务器能够识别特定的软件控制器(由于这将破坏用户隐私)。可以用本领域的技术人员清楚的多种标准方式来实现以上机制。举例来说,DRM服务器可以凭借可由任何软件控制器来检查的服务器证书,使用SSL/TLS(安全套接口层/传输层安全)来自我认证。软件控制器可以通过匿名凭证来自我认证(例如参见“An EfficientSystem for Non-transferable Anonymous Credentials with OptionalAnonymity Revocation”,Jan Camenisch等人,EUROCRYPT 2001,LNCS 2045,Springer-Verlag,Berlin 2001,93-118)。这样的凭证证明了某种权利,而没有泄漏其他任何东西。如果该凭证在先前已经建立并且认证的SSL/TLS信道上展示,那么该信道可被用来从DRM服务器向软件控制器发送秘密信息,并保证这些秘密只被秘密地递送到正确的软件控制器。此外,用于建立到DRM服务器的安全信道、接收秘密和交换硬币的协议不识别各个软件控制器。
以上系统中的软件控制器被调适为只在当前硬币的交换期内开始该硬币的交换。然而,系统可以采用其他机制来保证只在当前硬币的交换期内用新硬币来替换当前硬币。例如,DRM服务器2可以被调适为只有在所接收的硬币的交换期尚未到期的条件下才交换该硬币。在DRM服务器保留所发行硬币的列表的实施方案中,当硬币的交换期届满之后可以从该列表中删除这些硬币。
在图1的系统中,交换令牌是当前硬币7的拷贝,因而交换令牌和当前数据令牌在这种情况下是完全相同的。但是,一般来说,交换令牌可以以多种方式依存于当前数据令牌,这里的依存关系提供了对双次交换企图进行检测的基础。例如,交换令牌可以是当前数据令牌的简易格式,并且可以由许可证管理服务器与当前令牌一起来提供,或者由软件控制器从当前令牌导出。然后,新的交换令牌在视需要传递到新的软件控制器的每次交换过程之后变为对用户可用。同样,在软件控制器的正常操作中,每次交换过程可以通过向许可证管理服务器提供交换令牌而非当前数据令牌来完成。许可证管理服务器可以能够从交换令牌导出对应的当前数据令牌,或者例如可以存储每个发出的数据令牌的拷贝并且根据交换令牌中的信息来识别适当的已发出的数据令牌。利用交换令牌和当前数据令牌之间的这种依存关系,许可证管理服务器就可以如上所述地检查所接收的令牌是否对应于已被交换的令牌。
虽然以上实施方案提供了高度的用户隐私,但是也可想到用户隐私具有较低的优先级的多种其他实施方案。在图6中示出了这样的替换实施方案的一个例子。图6的系统50包括DRM服务器51和运行在用户设备53上的软件控制器52a,软件控制器和DRM服务器经由网络54相互通信。软件控制器52a基于与当前数据令牌56相关联的使用期,基本上如前所述地控制软件产品55的使用。但是,这里的软件控制器还具有与使用软件产品的许可证相关联的交换令牌57。在该系统中,假定交换令牌57基本上是DRM服务器51已知的许可证的固定表达,例如许可证号。该交换令牌例如可以在一开始购买许可证时从DRM服务器51获得,并且由用户持有以供在发生设备故障时使用。如果操作开始时软件控制器52a就初始获得了交换令牌,则软件控制器将为此目的允许对交换令牌的用户访问。或者,交换令牌可以由用户在购买许可证时直接获得,从而用户可以将交换令牌提供给任何软件控制器,以开始软件产品的使用。
在正常操作中,软件控制器52a就像在图1系统中一样,在与当前数据令牌56相关联的使用期内允许软件产品55在用户设备上的使用。然而,当有必要获得新的数据令牌以延长许可证时,软件控制器52a将交换令牌57提供给DRM服务器51。然后,DRM服务器51提供新的数据令牌作为交换。新的数据令牌具有新的使用期,并且如前所述地在软件控制器52a处替换当前数据令牌,从而可以继续软件产品55的使用。但是,每次DRM服务器51在有关的许可证下发出新的数据令牌时,就由DRM服务器针对许可证号来记录新发出的令牌的使用期。下一次交换令牌被提供给DRM服务器51进行交换时,DRM服务器就根据交换令牌来识别有关的许可证,取出所存储的以前发出的令牌的使用期,并且将新令牌的使用期设置为在前一使用期到期时开始。按照这种方式,DRM服务器就确保了新的使用期不与旧的使用期交叠,从而在任何给定的时间上,只有一个数据令牌允许软件产品的使用。当软件控制器52a在当前令牌56的使用期届满之前执行交换过程时,软件控制器保留旧的、已交换的令牌的拷贝,从而允许在该旧令牌的未届满的使用期内使用软件产品,直到新令牌的使用期开始。在用户设备53出现故障的情况下,许可证也可以被合法地传递到新的软件控制器52b。在这种情况下,用户只是将交换令牌57提供给新的软件控制器52b。当没有当前数据令牌56的软件控制器52b接收到交换令牌57时,它只是将交换令牌提供给DRM服务器51,以如前所述地换取当前数据令牌56,从而可以利用新的软件控制器52b继续软件产品55的使用。然而,由于新发出的令牌的使用期与发给软件控制器52a的最后一个令牌的使用期不交叠,所以系统可以防止欺诈用户在一个以上的设备上同时使用软件产品。
图6的实施方案为与单实例许可证的可传递性有关的问题提供了简单的解决办法,但是由于交换令牌与有关许可证相关联,因此DRM服务器在理论上可以监视特定用户的使用活动,所以图6的实施方案与图1的系统相比,用户隐私减少了。尽管如此,在一些系统中使用交换令牌的这样特别简单的形式仍是优选的。当然,也可以设想出其他方案。例如,在正常操作中,软件控制器52a可以向DRM服务器提供当前数据令牌而非交换令牌来交换,交换令牌只被用于向新设备传递许可证。当前数据令牌本身可以采用多种形式,在一些实施方案中甚至可以是硬币,但是这里并不严格要求硬币所表现出的隐私优势。同样,可以设想其他形式的交换令牌,包括可更新的交换令牌。例如,不用上述单个、固定的交换令牌,而是可以采用一次性密码或哈希链的列表,从而对于每个相继的交换都要更新交换令牌。同样,这些将与有关许可证相关联,从而DRM服务器可以识别适当的许可证,但是交换令牌的更新确保了一旦用户已迁移到新的设备,从旧的用户设备处取得的旧的交换令牌就不能被用来接管许可证。
在到目前为止所描述的实施方案中,软件控制器可以控制多个软件产品的使用,其中针对每个软件产品如上所述地提供并交换相应的硬币。然而,如果用户具有数量极大的软件产品的许可证,例如成百上千首歌曲的许可证,那么对于用户而言,将所有单独的许可证合并在单个总括许可证(或者“元许可证(meta-Iicense)”)下,从而可以实际上一起来续展所有单独的许可证,这样做可能是更方便的。将参考图7来描述这样的实施本发明的许可证管理系统的例子,其中图解说明了系统的主要组件和基本操作。
图7的系统60包括DRM服务器61和软件控制器62a,它们总地来说按照上面针对图1的系统所描述的方式来工作,但是还有一些区别要描述。因此,软件控制器62a可以经由网络63与DRM服务器61通信,并且控制多个软件产品在用户设备64处的使用。在图中用标号65来示意性地指示软件产品SP的集合,对于其中每一个软件产品,用户都持有单独的产品许可证LSP,这些许可证在图中统一用标号66来表示。这些单独的许可证66的具体形式以及获得它们的方式都与所要描述的系统操作无关。但是,所有软件产品65的使用都由软件控制器62a根据硬币67形式的单个数据令牌来控制。因此,在该实施方案中,硬币67代表所述多个软件产品65的元许可证。例如,这样的元许可证可以对应于特定类型或类别的软件产品,例如歌曲、电影等,因此可以被提供给特定类型的、被调适来访问这样的产品的软件控制器,例如音乐播放器、视频播放器等。或者例如,软件控制器可以通过用作特定应用程序的操作平台的“元应用程序”来实现,其中硬币代表使用由这些特定的应用程序运行的软件产品的许可证。举例来说,在本实施方案中假定软件控制器62a用音频播放器程序来实现,单独的软件产品65是歌曲的音频文件。
在该实施方案中,向基于硬币67的发证系统中补入两个长期秘密密钥k1和k2。如图中所示,软件控制器62a持有元许可证的两个密钥k1、k2,但是DRM服务器61只知道对应于元许可证的第二密钥k2。这些密钥k1、k2可以在元许可证开始时,以本领域的技术人员公知的方便方式来建立,例如在前面针对第一实施方案所描述的从DRM服务器获得第一硬币67时建立。一旦建立起密钥,软件控制器62a就在密钥k1、k2下对代表软件产品65的产品数据进行加密,并将该加密后的数据存储在备份存储位置处。备份存储在图中用标号68来表示,一般来说,它可以是任何方便的存储位置,例如在某个其他用户设备上,或者在DRM服务器处,或者在某个第三方存储位置处。在该例子中,由软件控制器62a加密的产品数据包括图中所示的软件产品SP本身以及相关联的单独的许可证LSP。初始备份由软件控制器62a在元许可证开始时完成,而进一步的备份则是此后在操作中定期地进行,例如周期性地进行或者在为其它软件产品65获得新的单独的许可证时进行。这样的进一步的备份根据需要可以是完整的或者是增量式的。
这样就参考图1的实施方案概括地描述了使用硬币67的系统的操作。这样,硬币67具有上述使用期和交换期,并且软件控制器62a只在当前硬币67的使用期内允许被许可的软件产品65运行。具体地说,在接收到运行产品65的用户请求后,软件控制器的操作大致如图3所示,只是软件控制器在步骤31中对于当前硬币67检查是否持有有关产品的单独的许可证LSP,然后移动到步骤32。如上面参考图2所述,当前硬币67被定期交换为新硬币。但是,在该实施方案的图2的步骤12中,软件控制器62a在提供当前硬币的拷贝的同时还一同提供第一密钥k1以及加密的产品数据在备份68中的存储位置(如图7中所示)。于是用户可以将这些信息存储起来,以供在崩溃时使用。
DRM服务器61的操作也大致与图1系统的服务器2类似,但是此时,DRM服务器与当前硬币67相关联地存储用于元许可证的第二密钥k2。例如,所存储的密钥k2可以与当前硬币的令牌标识符交叉引用(这里的令牌标识符可以是硬币本身),使得与给定硬币相关联的密钥k2可以在接收到该硬币来交换时被取得。于是,在该实施方案中,每当DRM服务器61提供新硬币来换取旧硬币(对应于图4的步骤44)时,DRM服务器都与新硬币一同来提供关联的密钥k2。
在该实施方案中,在用户设备64崩溃的情况下,用户可以向另一个相同的软件控制器(在图7中用标号62b来表示)输入以前由软件控制器62a提供的复制硬币,同时输入密钥k1以及加密产品数据的备份存储位置。新的软件控制器识别所提供的硬币为复制硬币(图2的步骤11),因而向DRM服务器62发送该硬币来进行交换。然后,DRM服务器将复制硬币交换为新硬币,该新硬币与第二密钥k2一起被返回给软件控制器62b。于是软件控制器62b就有了两个密钥,并且可以访问备份存储68以便解密产品数据并接管所有的单独许可证LSP。使用新软件控制器的操作可以按照通常的方式来继续。
可见,图7的实施方案提供了在由硬币67代表的单个元许可证下控制大量被许可的软件产品的使用的方便的系统。在发生崩溃的情况下,可以将元许可证和单独的产品许可证容易地传递到新设备,但是可交换的硬币系统以和上述第一实施方案同样的方式提供了针对欺骗的保护。另外,以上系统中的第一密钥k1为用户确保了备份的隐私,同时第二密钥k2确保了用户自己不能在其他设备上非法使用备份。
虽然代表元许可证的数据令牌在图7的实施方式中就是硬币67,但是由于对于每个密钥k2来说只有一个元许可证,所以不可能将属于同一许可证的不同令牌保持为不可链接。因此,根据需要可以对这里的数据令牌使用更简单的表达。例如,令牌可以只是一次性密码(例如,如果想要弄清楚是否已花费了某个硬币,则令牌可以是单向函数的预映像(pre-image)的一次性密码)。为了交换这样的数据令牌,软件控制器可以在上述安全信道上向DRM服务器发送所述一次性密码。在任何情况下,如果已交换数据令牌的链条不是不可链接的,而用户忘记了存储当前令牌但是仍然具有所述链条中的至少一个在先令牌,那么DRM服务器可以被调适为允许将该在先令牌交换为当前令牌,同时确保对于给定的使用期,两个令牌不会被释放给同一元许可证。
如果软件控制器总是将只在k1下加密的当前硬币存储在备份68处,那么在图7的实施方案中可以进一步简化用户的任务。此时,软件控制器只需要向用户提供k1和备份的位置。这些信息可以在需要的时候被提供给新的软件控制器,于是该新的软件控制器可以取得并且解密当前硬币,然后再将当前硬币提供给DRM服务器。用户还可以使用第三密钥k3来加密k1,其中k3可能是一个弱密码。这里也可以想到其他多种可能性,以提供备份的可用性和保密性之间的良好平衡。
总之,图7的方案为DRM服务器提供了与前面的实施方案一样的安全性。由于DRM服务器可以监视特定的元许可证何时被续展,所以用户丧失了一定程度的隐私,但是如果元许可证足够粗略的话,这也不会那么严重,因为大多数设备将会定期续展它们的元许可证。另外,如果被存储在服务器处,则备份68的长度给出了一定量的信息。由于软件控制器没有任何标识,所以用户仍可以改变软件控制器而DRM服务器不会识别出来,并且他可能具有多个元许可证而不让DRM服务器将它们链接起来。
注意,虽然每次提供新硬币来换取旧硬币时,图7的实施方案中的DRM服务器都提供密钥k2,但是它只需要在接收到的硬币是复制硬币时才需要这么做。因此,在其他实施方案中,DRM服务器响应于所接收的硬币是复制硬币的指示(例如是由软件控制器提供的指示),只与新硬币一起提供k2。另外,虽然被加密并存储在备份处的产品数据包括各个软件产品以及它们的许可证,但是可以想到这样的实施方案:产品数据只包括某种形式的识别数据,该数据使得单独许可的产品可被识别出来以供将来使用。可以以任何方便的方式来表达各个单独的许可证LSP本身,例如通过单独的数据令牌。
可以想到多种作为替代方案的系统:软件控制器被调适为只有在持有元许可证的当前数据令牌并且持有单独的产品许可证LSP的条件下,才允许使用多个软件产品中的任一个。例如,可以使用如上所述的多种形式的交换令牌来续展和/或传递元许可证。单独的许可证LSP可以以多种方式获得,例如从DRM服务器或者某个其他相关的服务器处获得,并且该服务器可以使单独的许可证以专门绑定到元许可证的某种形式可用。举个例子,在特别简单的实施方案中,用于续展元许可证的交换令牌可以是固定的、明文的、长期的许可证,其许可证号为N。当购买单独的产品许可证LSP时,用户指示是在哪一个元许可证号N下购买的。这里,单独的许可证LSP可以是在允许在元许可证号N下使用产品SP的许可证文本下的签名。(这几乎相当于单独的许可证被绑定到特定的用户设备,只是该设备是虚拟的并且被定义为任何目前拥有元许可证的真实设备)。软件控制器一般可以如前所述地使用元许可证的交换令牌来获得元许可证的当前数据令牌,然后只在它具有在单独许可证LSP中指定的元许可证N的当前数据令牌的条件下才允许软件产品SP的使用。软件控制器和前面一样将单独的许可证LSP存储在备份位置处(并且出于安全原因,优选地在用户已知的密钥(例如上面的k1)下对该备份进行加密),从而在传递元许可证后可以由新的软件控制器来接管各个单独的许可证。
刚刚描述的替换实施方案提供了特别简单的一种实施方式,但是没有提供高度的用户隐私。具体地说,即使有可能匿名购买单独的各个产品许可证,由一个用户在一个元许可证下购买的所有单独的许可证也可以用编号N链接起来。这可以通过在软件控制器和DRM服务器知道但是用户不知道的密钥(例如上面的k2)下加密备份来避免。元许可证的交换令牌仍可以是固定的、明文的、长期的许可证,但是在这里它是使用密钥k2的许可证。在许可证文本中,k2用一个标识符(例如密钥k2的数据库的索引)来表示,它允许DRM服务器取得k2,但是不给用户(看到了元许可证的用户)有关k2的信息。新的软件控制器利用以上描述的机制,与当前数据令牌一起获得了密钥k2,以供DRM服务器确认它正在与合法的软件控制器进行交互。和前面一样,在该实施方案中也可以用一次性密码或哈希链来取代固定的交换令牌。
在又一个例子中,硬币被用于续展元许可证以提供更高的隐私,如果硬币是按以下方式来指定k2的,那么相继的硬币可以变为不可链接的:DRM服务器在“正常的”交换中看不到,只有在元许可证被传递到新的软件控制器并且新控制器明确地请求k2的时候才能看见。这可以通过将已知的零知识技术(zero-knowledge technique)应用于硬币交换过程来实现。
在不偏离本发明的范围的情况下,也可以对上述具体实施方案作出多种其他改变和修改。例如,假定在以上实施方案中,有关的软件许可证是无限期的,使得数据令牌可以在无限长的时期上连续地交换。然而,在其他实施方案中可以采用很多类型的许可证,例如有限期的许可证(从而数据令牌的交换被限制在许可证的持续期内)或者用于某些使用类型的许可证(例如,试用与专业使用)。此外,可以以多种方式来定义使用期和交换期(如果有的话)。例如,使用期可以只用结束时间(上面的P2)来定义,而交换期只用开始时间(上面的Q1)来定义。但是,对于交换期使用结束时间(上面的Q2)限制了DRM服务器存储旧的数据令牌进行比较的需要。为使用期提供开始时间(上面的P1)提供了在需要时为给定的系统设置这些时间的灵活性。例如,这些时间可被设置为比实际的交换时间晚,以获得交换的灵活性而不会产生使用期的交叠。再举个例子,虽然不增加任何安全性,但是在本发明的实施方案中,软件控制器对DRM服务器来说可以使可识别的。这样的实施方案仍然为许可证提供了可传递性和欺骗保护,尽管可能因此丧失一些隐私优势。同样,对于更高一些的隐私,也可能需要阻止从软件控制器(如果存在的话,还有备份)到DRM服务器的任何非受控信息流动。这可以使用特别为硬币系统设计的钱包加观察者(wallets-with-observer)体系结构的标准方法来实现。

Claims (33)

1. 一种软件许可证管理系统(1,60),在该系统中用数据令牌(7,67)来代表使用软件产品(4,65)的许可证,所述系统包括:
用于控制软件产品(4,65)在用户设备(3,64)处的使用的软件控制器(6a,62a);和
用于经由数据通信网络(5,63)与软件控制器(6a,62a)通信的许可证管理服务器(2,61);
其中,软件控制器(6a,62a)被调适为:
只在与许可证管理服务器(2,61)提供给软件控制器的当前数据令牌(7,67)相关联的使用期内才允许软件产品(4,65)的所述使用,
允许对依存于由许可证管理服务器提供的当前数据令牌(7,67)的交换令牌的用户访问,从而所述交换令牌可以作为当前数据令牌被提供给另一个所述软件控制器(6b,62b),并且
(a)为了延长软件产品(4,65)的许可证,使其超过与许可证管理服务器所提供的当前数据令牌(7,67)相关联的使用期,(b)如果当前数据令牌是来自另一个所述软件控制器的交换令牌,则将当前数据令牌(7,67)和所述交换令牌之一经由网络(5,63)提供给许可证管理服务器,以换取新的数据令牌来替换当前数据令牌;
并且其中,许可证管理服务器(2,61)被调适为:
经由网络(5,63)向软件控制器(6a,62a)提供用于替换当前数据令牌(7,67)并且具有与之相关联的新的使用期的新的数据令牌,用于交换已从软件控制器接收的当前数据令牌或者与当前数据令牌相对应的交换令牌,以及
检测从软件控制器接收来用于交换的所述令牌是否对应于已经由许可证管理服务器(2,61)交换的令牌。
2. 如权利要求1所述的系统,其中,所述交换令牌是当前数据令牌(7,67)的拷贝,许可证管理服务器(2,61)被调适为检测是否两次接收到用于交换的相同的数据令牌。
3. 如权利要求2所述的系统,其中,许可证管理服务器(2,61)被调适为:
存储与服务器(2,61)接收到用于交换的每个数据令牌(7,67)相对应的令牌标识符;并且
将每个接收到的数据令牌的令牌标识符与所存储的令牌标识符进行比较,以检测是否两次接收到用于交换的相同的数据令牌(7,67)。
4. 如权利要求3所述的系统,其中,数据令牌(7,67)的令牌标识符包括该数据令牌。
5. 如前面任一项权利要求所述的系统,其中,所述系统被调适为:在软件控制器(6a,62a)从许可证管理服务器(2,61)接收的数据令牌的链条中,与其中每隔一个的数据令牌(7,67)相关联的使用期不发生交叠。
6. 如权利要求1所述的系统,其中:
交换期与每个数据令牌(7,67)相关联;并且
所述系统被调适为:只在与当前数据令牌相关联的交换期内软件控制器(6a,62a)才能获得用于替换当前数据令牌的新数据令牌。
7. 如权利要求6所述的系统,其中,与数据令牌(7,67)相关联的使用期和交换期交叠。
8. 如权利要求1所述的系统,其中,软件控制器(6a,62a)被调适为:通过提供交换令牌来供用户存储,允许对所述交换令牌的用户访问。
9. 如权利要求1所述的系统,其中,软件控制器(6a,62a)被调适为:通过将交换令牌存储在备份存储位置处,并向用户提供用于访问在所述存储位置处的交换令牌的访问数据,从而允许对所述交换令牌的用户访问。
10. 如权利要求1所述的系统,其中,许可证管理服务器(2,61)被调适为:只有所接收的令牌不对应于已交换的令牌时,才提供新的数据令牌(7,67)来交换所述所接收的令牌。
11. 如权利要求1所述的系统,其中,许可证管理服务器(2,61)被调适为:在检测所接收的令牌是否对应于已交换的令牌之前,提供新的数据令牌(7,67)来交换所述所接收的令牌。
12. 如权利要求1所述的系统,其中,所述数据令牌(7,67)包括硬币。
13. 如权利要求1所述的系统,其中,与数据令牌(7,67)相关联的使用期被标明在该数据令牌中。
14. 如权利要求1所述的系统,其中,软件控制器(6a,62a)被调适为将当前数据令牌(7,67)和交换令牌之一自动地提供给许可证管理服务器(2,61),以延长软件产品(4,65)的许可证。
15. 如权利要求6所述的系统,其中,与数据令牌(7,67)相关联的交换期被标明在该数据令牌中。
16. 如权利要求1所述的系统,其中:
所述数据令牌(67)代表了使用多个软件产品(65)的许可证;并且
软件控制器(62a)被调适为:将表示所述多个软件产品的产品数据存储在备份存储位置(58)处,并且只在与许可证管理服务器(61)所提供的当前数据令牌(67)相关联的使用期内才允许软件产品(65)中的每个产品的使用。
17. 一种软件许可证管理系统(50),在该系统中用数据令牌(56)来代表使用软件产品(55)的许可证,所述系统包括:
用于控制软件产品(55)在用户设备(53)处的使用的软件控制器(52a);和
用于经由数据通信网络(54)与软件控制器(52a)通信的许可证管理服务器(51);
其中,软件控制器(52a)被调适为:
只在与许可证管理服务器(51)提供给软件控制器的当前数据令牌(56)相关联的使用期内才允许软件产品(55)的所述使用,
接收与所述许可证相关联的交换令牌(57),以及
(a)为了延长所述软件产品的许可证,使其超过与许可证管理服务器所提供的当前数据令牌(56)相关联的使用期,(b)如果所述交换令牌(57)是在缺少当前数据令牌(56)的情况下由软件控制器接收的,则将当前数据令牌(56)和交换令牌(57)之一经由网络(54)提供给许可证管理服务器(51),以换取新的数据令牌;
并且其中,所述许可证管理服务器(51)被调适为:
存储在许可证下被提供给软件控制器(52a)的每个数据令牌(56)的使用期,并且
经由网络(54)向软件控制器(52a)提供新的数据令牌,用于交换已从软件控制器接收的当前数据令牌(56)或者所述交换令牌(57),所述新的数据令牌具有与以前在许可证下提供的数据令牌的使用期不交叠的新的使用期。
18. 如权利要求17所述的系统,其中,所述数据令牌(56)包括硬币。
19. 如权利要求17所述的系统,其中,与数据令牌(56)相关联的使用期被标明在该数据令牌中。
20. 如权利要求17所述的系统,其中,软件控制器(52a)被调适为将当前数据令牌(56)和交换令牌之一自动地提供给许可证管理服务器(51),以延长软件产品(55)的许可证。
21. 如权利要求17所述的系统,其中:
交换期与每个数据令牌(56)相关联;并且
所述系统被调适为:用于替换当前数据令牌(56)的新的数据令牌只在与该当前数据令牌相关联的交换期内才可以被软件控制器(52a)获得。
22. 如权利要求21所述的系统,其中,与数据令牌(56)相关联的交换期被标明在该数据令牌中。
23. 如权利要求17所述的系统,其中:
所述数据令牌(67)代表了使用多个软件产品(65)的许可证;并且
软件控制器(62a)被调适为:将表示所述多个软件产品的产品数据存储在备份存储位置(58)处,并且只在与许可证管理服务器(61)所提供的当前数据令牌(67)相关联的使用期内才允许软件产品(65)中的每个产品的使用。
24. 如权利要求23所述的系统,其中,所述产品数据包括:对于每个软件产品而言,代表该软件产品的单独的许可证(LSP)的数据。
25. 如权利要求23或24所述的系统,其中,所述产品数据包括软件产品(65)。
26. 一种用在软件许可证管理系统(1,60)中的软件控制器(6a,62a),在所述系统中用数据令牌(7,67)来代表使用软件产品(4,65)的许可证,所述系统(1,60)具有用于经由数据通信网络(5,63)与软件控制器(6a,62a)通信的许可证管理服务器(2,61),其中所述软件控制器(6a,62a)包括用于控制软件产品(4,65)在用户设备(3,64)处的使用的控制逻辑,所述控制逻辑被调适为:
只在与许可证管理服务器(2,61)提供给软件控制器(6a,62a)的当前数据令牌(7,67)相关联的使用期内才允许软件产品(4,65)的所述使用;
允许对依存于由许可证管理服务器(2,61)提供的当前数据令牌(7,67)的交换令牌的用户访问,从而所述交换令牌可以作为当前数据令牌被提供给另一个所述软件控制器(6b,62b);并且
(a)为了延长所述软件产品的许可证,使其超过与许可证管理服务器所提供的当前数据令牌(7,67)相关联的使用期,(b)如果当前数据令牌是来自另一个所述软件控制器的交换令牌,则将当前数据令牌(7,67)和所述交换令牌之一经由网络(5,63)提供给许可证管理服务器(2,61),以换取新的数据令牌来替换当前数据令牌。
27. 一种与权利要求26所述的软件控制器(6a,62a)一起用在软件许可证管理系统(1,60)中的许可证管理服务器(2,61),在所述系统中用数据令牌(7,67)来代表使用软件产品(4,65)的许可证,所述许可证管理服务器(2,61)包括被调适来进行以下操作的控制逻辑:
经由数据通信网络(5,63)与软件控制器(6a,62a)通信;
经由所述网络向软件控制器(6a,62a)提供用于替换当前数据令牌(7,67)并且具有与之相关联的新的使用期的新的数据令牌,用于交换已从软件控制器(6a,62a)接收的当前数据令牌或者与当前数据令牌相对应的交换令牌;以及
检测从软件控制器接收来用于交换的所述令牌是否对应于已经由许可证管理服务器(2,61)交换的令牌。
28. 一种用在软件许可证管理系统(50)中的软件控制器(52a),在所述系统中用数据令牌(56)来代表使用软件产品(55)的许可证,所述系统(50)具有用于经由数据通信网络(54)与软件控制器(52a)通信的许可证管理服务器(51),其中所述软件控制器(52a)包括用于控制软件产品(55)在用户设备(53)处的使用的控制逻辑,所述控制逻辑被调适为:
只在与许可证管理服务器(51)提供给软件控制器(52a)的当前数据令牌(56)相关联的使用期内才允许软件产品(55)的所述使用;
接收与所述许可证相关联的交换令牌(57);以及
(a)为了延长所述软件产品(55)的许可证,使其超过与许可证管理服务器所提供的当前数据令牌(56)相关联的使用期,(b)如果所述交换令牌(57)是在缺少当前数据令牌(56)的情况下由软件控制器(52a)接收的,则将当前数据令牌(56)和交换令牌(57)之一经由网络(54)提供给许可证管理服务器(51),以换取新的数据令牌。
29. 一种与权利要求28所述的软件控制器(52a)一起用在软件许可证管理系统(50)中的许可证管理服务器(51),在所述系统中用数据令牌(56)来代表使用软件产品(55)的许可证,所述许可证管理服务器(51)包括被调适来进行以下操作的控制逻辑:
经由数据通信网络(54)与软件控制器(52a)通信;
存储在许可证下被提供给软件控制器(52a)的每个数据令牌(56)的使用期;并且
经由网络(54)向软件控制器(52a)提供新的数据令牌,用于交换已从软件控制器接收的当前数据令牌(56)或者所述交换令牌(57),所述新的数据令牌具有与以前在许可证下提供的数据令牌的使用期不交叠的新的使用期。
30. 一种根据用数据令牌(7,67)代表的许可证来控制软件产品(4,65)在用户设备(3,64)处的使用的方法,所述用户设备(3,64)可经由数据通信网络(5,63)与许可证管理服务器(2,61)相连,其中所述方法包括,在所述用户设备(3,64)处:
只在与许可证管理服务器(2,61)提供给所述用户设备的当前数据令牌(7,67)相关联的使用期内才允许软件产品(4,65)的使用;
允许对依存于由许可证管理服务器(2,61)提供的当前数据令牌(7,67)的交换令牌的用户访问,从而所述交换令牌可以作为当前数据令牌被提供给另一个用户设备;并且
(a)为了延长所述软件产品的许可证,使其超过与许可证管理服务器所提供的当前数据令牌(7,67)相关联的使用期,(b)如果当前数据令牌是来自另一个用户设备的交换令牌,则将当前数据令牌(7,67)和所述交换令牌之一经由网络(5,63)提供给许可证管理服务器(2,61),以换取新的数据令牌来替换当前数据令牌。
31. 一种用于软件许可证管理系统(1,60)的许可证管理服务器(2,61)的操作方法,在所述系统中利用如权利要求30所述的方法来控制软件产品(4,65)在用户设备(3,64)处的使用,所述用于许可证管理服务器(2,61)的操作方法包括:
经由网络(5,63)向用户设备(3,64)提供用于替换当前数据令牌(7,67)并且具有与之相关联的新的使用期的新的数据令牌,用于交换从用户设备(3,64)接收的当前数据令牌或者与当前数据令牌相对应的交换令牌;以及
检测从用户设备(3,64)接收来用于交换的所述令牌是否对应于已经由许可证管理服务器(2,61)交换的令牌。
32. 一种根据用数据令牌(56)代表的许可证来控制软件产品(55)在用户设备(53)处的使用的方法,所述用户设备(53)可经由数据通信网络(54)与许可证管理服务器(51)相连,其中所述方法包括,在所述用户设备(53)处:
只在与许可证管理服务器(51)提供给所述用户设备的当前数据令牌(56)相关联的使用期内才允许软件产品(55)的使用;并且
(a)为了延长所述软件产品的许可证,使其超过与许可证管理服务器(51)所提供的当前数据令牌(56)相关联的使用期,(b)如果所述交换令牌(57)是在缺少当前数据令牌(56)的情况下由所述用户设备(53)接收的,则将与所述许可证相关联的当前数据令牌(56)和交换令牌(57)之一经由网络(54)提供给许可证管理服务器(51),以换取新的数据令牌。
33. 一种用于软件许可证管理系统(50)的许可证管理服务器(51)的操作方法,在所述系统中利用如权利要求32所述的方法来控制软件产品(55)在用户设备(53)处的使用,所述用于许可证管理服务器(51)的操作方法包括:
存储在许可证下被提供给用户设备(53)的每个数据令牌(56)的使用期;并且
经由网络(54)向用户设备(53)提供新的数据令牌,用于交换从用户设备(53)接收的当前数据令牌(56)或者所述交换令牌(57),所述新的数据令牌具有与以前在许可证下提供的数据令牌的使用期不交叠的新的使用期。
CNB2005800038830A 2004-02-03 2005-01-28 数字权利管理 Active CN100416450C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04405070 2004-02-03
EP04405070.6 2004-02-03

Publications (2)

Publication Number Publication Date
CN1914578A CN1914578A (zh) 2007-02-14
CN100416450C true CN100416450C (zh) 2008-09-03

Family

ID=34833822

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800038830A Active CN100416450C (zh) 2004-02-03 2005-01-28 数字权利管理

Country Status (8)

Country Link
US (1) US8205266B2 (zh)
EP (1) EP1711877A2 (zh)
JP (1) JP4726805B2 (zh)
KR (1) KR100962860B1 (zh)
CN (1) CN100416450C (zh)
AU (1) AU2005210818A1 (zh)
CA (1) CA2551974A1 (zh)
WO (1) WO2005076104A2 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060272031A1 (en) * 2005-05-24 2006-11-30 Napster Llc System and method for unlimited licensing to a fixed number of devices
US8620818B2 (en) * 2007-06-25 2013-12-31 Microsoft Corporation Activation system architecture
US8819838B2 (en) * 2008-01-25 2014-08-26 Google Technology Holdings LLC Piracy prevention in digital rights management systems
US8725701B2 (en) * 2008-10-08 2014-05-13 Oracle International Corporation Merger and acquisition data validation
US10089092B2 (en) 2010-01-27 2018-10-02 Embarcadero Technologies, Inc. Creating a software product from a software application
US20110047540A1 (en) * 2009-08-24 2011-02-24 Embarcadero Technologies Inc. System and Methodology for Automating Delivery, Licensing, and Availability of Software Products
JP5454035B2 (ja) 2009-09-15 2014-03-26 株式会社リコー 画像処理装置、遠隔管理システム、ライセンス更新方法、およびライセンス更新プログラム
CN101853349B (zh) * 2010-05-24 2012-07-18 覃云川 一种数字产品的许可管理系统
US9721240B2 (en) 2010-05-27 2017-08-01 International Business Machines Corporation Software license serving in a massively parallel processing environment
CN102281300B (zh) * 2011-08-24 2014-12-24 中国联合网络通信集团有限公司 数字版权管理许可证分发方法和系统、服务器及终端
US20130144755A1 (en) * 2011-12-01 2013-06-06 Microsoft Corporation Application licensing authentication
CN104580102B (zh) * 2013-10-23 2019-03-05 北大方正集团有限公司 一种客户端程序的保护方法及服务平台
US20150242597A1 (en) * 2014-02-24 2015-08-27 Google Inc. Transferring authorization from an authenticated device to an unauthenticated device
JP6662561B2 (ja) 2014-03-31 2020-03-11 フェリカネットワークス株式会社 情報処理方法、情報処理装置、認証サーバ装置及び確認サーバ装置
US10140352B2 (en) 2014-07-17 2018-11-27 Oracle International Corporation Interfacing with a relational database for multi-dimensional analysis via a spreadsheet application
US9424419B1 (en) * 2014-10-27 2016-08-23 Amazon Technologies, Inc. Automatic rotation and storage of security credentials
US9898497B2 (en) 2015-03-31 2018-02-20 Oracle International Corporation Validating coherency between multiple data sets between database transfers
US9985785B2 (en) * 2016-02-25 2018-05-29 International Business Machines Corporation Align session security for connected systems
US20170293899A1 (en) * 2016-04-12 2017-10-12 Digicash Pty Ltd. Digital value token processing systems and methods having improved security and scalability
EP3513347A1 (en) * 2016-09-15 2019-07-24 Telefonaktiebolaget LM Ericsson (PUBL) Integrity protected capacity license counting
US10616206B2 (en) * 2016-09-27 2020-04-07 International Business Machines Corporation Digital certificate for verifying application purpose of data usage
KR101981942B1 (ko) * 2017-08-30 2019-05-24 (주)와이브레인 두뇌자극장치의 사용 권한을 설정하는 방법 및 이를 구현하는 장치
JP7183873B2 (ja) * 2019-03-05 2022-12-06 京セラドキュメントソリューションズ株式会社 電子機器及び電子機器の制御方法
US11258601B1 (en) * 2019-06-04 2022-02-22 Trend Micro Incorporated Systems and methods for distributed digital rights management with decentralized key management
GB2586785A (en) * 2019-08-30 2021-03-10 Mobilise Consulting Ltd Authentication
US11397793B2 (en) * 2019-12-03 2022-07-26 Microsoft Technology Licensing, Llc Delivering digital content for an application

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1231532A2 (en) * 2001-02-09 2002-08-14 Sony Corporation Information processing system for licensing content
US20020161718A1 (en) * 1998-08-04 2002-10-31 Coley Christopher D. Automated system for management of licensed software
US20020174356A1 (en) * 2001-03-27 2002-11-21 Microsoft Corporation Method and system for licensing a software product

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5138712A (en) * 1989-10-02 1992-08-11 Sun Microsystems, Inc. Apparatus and method for licensing software on a network of computers
JPH05134957A (ja) * 1990-10-10 1993-06-01 Fuji Xerox Co Ltd データ管理システム
US5260999A (en) * 1991-06-28 1993-11-09 Digital Equipment Corporation Filters in license management system
US5764887A (en) * 1995-12-11 1998-06-09 International Business Machines Corporation System and method for supporting distributed computing mechanisms in a local area network server environment
JP3864401B2 (ja) * 1997-04-23 2006-12-27 ソニー株式会社 認証システム、電子機器、認証方法、および記録媒体
JP4151274B2 (ja) * 2001-02-09 2008-09-17 ソニー株式会社 情報処理装置および方法、ライセンスサーバ、並びにプログラム
US7343297B2 (en) * 2001-06-15 2008-03-11 Microsoft Corporation System and related methods for managing and enforcing software licenses
US7203966B2 (en) * 2001-06-27 2007-04-10 Microsoft Corporation Enforcement architecture and method for digital rights management system for roaming a license to a plurality of user devices
US20030236975A1 (en) * 2002-06-20 2003-12-25 International Business Machines Corporation System and method for improved electronic security credentials
US20050114266A1 (en) * 2003-11-26 2005-05-26 Lingan Satkunanathan System and method for managing licenses using interactive wizards

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020161718A1 (en) * 1998-08-04 2002-10-31 Coley Christopher D. Automated system for management of licensed software
EP1231532A2 (en) * 2001-02-09 2002-08-14 Sony Corporation Information processing system for licensing content
US20020174356A1 (en) * 2001-03-27 2002-11-21 Microsoft Corporation Method and system for licensing a software product

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Using License Use Management Runtime, Version 4.6.7. 全文,IBM LICENSE USER MANAGEMENT RUNTIME. 2003
Using License Use Management Runtime, Version 4.6.7. 全文,IBM LICENSE USER MANAGEMENT RUNTIME. 2003 *

Also Published As

Publication number Publication date
JP2007520815A (ja) 2007-07-26
WO2005076104A2 (en) 2005-08-18
CA2551974A1 (en) 2005-08-18
WO2005076104A3 (en) 2006-04-06
US8205266B2 (en) 2012-06-19
AU2005210818A1 (en) 2005-08-18
EP1711877A2 (en) 2006-10-18
JP4726805B2 (ja) 2011-07-20
CN1914578A (zh) 2007-02-14
US20080235805A1 (en) 2008-09-25
KR100962860B1 (ko) 2010-06-09
KR20070006737A (ko) 2007-01-11

Similar Documents

Publication Publication Date Title
CN100416450C (zh) 数字权利管理
EP1769419B1 (en) Transaction & payment system securing remote authentication/validation of transactions from a transaction provider
CN101107611B (zh) 私有的和受控的所有权共享的方法、设备和系统
KR100520476B1 (ko) 디지털 컨텐츠 발행시스템 및 발행방법
US20050262321A1 (en) Information processing apparatus and method, and storage medium
US20120246075A1 (en) Secure electronic payment methods
JP2005537559A (ja) トランザクションの安全な記録
JPH09319808A (ja) 階層型電子現金方法およびこれに用いられる装置
CN101421754A (zh) 安全网络商业交易
CN101689237A (zh) 激活系统体系结构
CN101427268A (zh) 使用移动模块对商业交易的认证
CN109716373A (zh) 密码认证和令牌化的交易
CN102737179A (zh) 软件应用许可漫游
JP3659090B2 (ja) 電子情報流通システム及び電子情報流通プログラムを格納した記憶媒体及び電子情報流通方法
WO2001052128A1 (fr) Procede d'interrogation par voie electronique
EP0749078A1 (en) Certifying system and transaction system with the certification
KR20000053933A (ko) 소프트웨어의 정품인증시스템 및 그 방법
KR100612925B1 (ko) 공인 인터넷 아이디 서비스 시스템 및 운영방법
Haneberg Electronic ticketing: risks in e-commerce applications
JP4319804B2 (ja) Icカードアプリケーションプログラム、icカードおよびライセンス管理システム
KR100423506B1 (ko) 아이씨칩내장카드를 이용한 온라인상에서의 소프트웨어불법복제방지방법
JP3546796B2 (ja) 原本データ流通方法、原本データ流通システム及び装置、並びに原本データ流通プログラムを記録した記録媒体
JP3933113B2 (ja) 原本データ流通方法、原本データ流通システム及び装置、並びに原本データ流通プログラムを記録した記録媒体
KR100194767B1 (ko) 전자화폐 대금결제의 익명성 보장 방법
JP3329438B2 (ja) 監視機関つき電子現金方法及びそれを実施するための利用者装置及び監視機関装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant