使用令牌和现有许可证的软件升级的制作方法

文档序号:9422772阅读:622来源:国知局
使用令牌和现有许可证的软件升级的制作方法
【专利说明】
【背景技术】
[0001]计算机系统中的常见问题是提供用于对计算机系统上的计算机程序的使用进行认证和授权的机制。认证和授权的两个主要目的是实行施加于计算机程序的许可证限制并防止恶意计算机程序的安装或操作。这样的认证和授权通常是在计算机程序最初被安装在计算机上时和该计算机程序被更新或升级时执行的。对计算机程序的更新通常是免费提供的且意图修复错误、易损性或其它可用性问题但是一般地不添加新功能的修改。对计算机程序的升级通常是添加大量新功能的修改。另外,通常在计算机执行计算机程序时执行认证和授权。
[0002]本文中的认证意图意指为了验证计算机程序是从可信来源接收的而采取的任何行动。授权意图意指为了确保允许计算机程序在其被安装在上面的计算机上执行而采取的任何行动。
[0003]—般地与识别将在其上面安装和执行计算机程序的单个拷贝的计算机的数据(在本文中也称为硬件标识符)相组合地,通过使用密钥、即充当购买证据且发行者可以与计算机程序的该拷贝相关联的信息来提供认证和授权。密钥和硬件标识符允许认证和授权在该计算机程序在计算机上的安装和执行时发生。
[0004]当计算机程序首次被安装在计算机上时,计算机向发行者提供计算机的密钥和硬件标识符。进而,发行者通常将使密钥与计算机相关联的数据存储在数据库中。通过检查密钥是否已经与一个或多个其它计算机相关联,发行者可以确定是否授权计算机程序在此计算机上的安装。发行者还创建指示密钥和硬件标识符的配对的数字签名许可证,其被存储在计算机程序被安装在其上面的计算机上。此许可证还可以包括关于许可证的状态的多种信息和与计算机程序有关的其它信息。通过改变许可证,可以实现对计算机程序的使用的各种限制,诸如具有受限功能的试用版本。
[0005]当在计算机上执行计算机程序时,过程检查数字签名许可证以验证发行者的真实性并确定计算机程序的执行是否且在什么程度上被授权。
[0006]使用这样的技术,当计算机程序被更新时,已修改计算机程序通常与现有密钥、硬件标识符和许可证相关联。当计算机程序被升级时,已修改计算机程序通常与新的密钥和现有硬件标识符相关联。许可证可保持相同或者也可被修改。

【发明内容】

[0007]提供本
【发明内容】
来以简化形式介绍下面在【具体实施方式】中进一步描述的概念的选择。本
【发明内容】
并不意图识别要求保护的主题的关键特征或必要特征,其也不意图用来限制要求保护的主题的范围。
[0008]用现有许可证机制,某些种类的密钥使用可以引入密钥管理问题。例如,某些计算机程序被计算机制造商安装在计算机上,并且可在制造时将密钥存储在计算机上的永久性存储器件中。如果对计算机程序的升级将使用新的密钥,则该新密钥不能被容易地存储在这样的永久性存储器件中的与原始程序相同的位置上,因为用于这样做的工具一般地是最终用户不可用的。
[0009]现有许可证机制还限制了发行者基于计算机程序的在先版本的安装和使用而针对许可证更新和升级提供不同定价的能力。例如,如果计算机程序被升级并对该升级使用新的密钥,则在先版本的密钥以及关于许可证的信息不一定被保持。在这样的情况下,发行者在升级之后将不能基于在先版本的使用而提供定价。
[0010]为了解决这些及其它问题,使对计算机程序的升级和与用于计算机程序的原始密钥相关联的令牌相关联。特别地,给定原始密钥,发行者提供用于升级的令牌,其被以数字方式签名并与原始密钥相关联。令牌的使用允许将升级与原始密钥相关联而不修改固件,如果原始密钥被存储在计算机中的永久性存储器件中的话。令牌是用于升级的许可证,并且可以导致与原始计算机程序不同的许可证状态。基于原始密钥的许可证可以被发行者按照各种商业规则用来确定是否发布令牌和/或什么许可证应与令牌相关联。当升级在计算机上运行时,验证过程使用原始密钥、原始许可证和令牌以进行认证,并且基于用于升级的许可证来授权升级的执行。多个升级可以使用多个令牌和原始密钥。
[0011]用这样的结构,还可能的是由不同于第一发行者的第二发行者提供用于来自第一发行者的计算机程序的升级。在这样的情况下,来自第一发行者的第一计算机程序的许可证验证过程在令牌的认证期间访问信任信息链以验证第二发行者是可信实体。此外,用于诸如操作系统之类的第一计算机程序的“升级”可以是第二计算机程序,其完全不同于第一计算机程序,诸如在操作系统上运行的应用。
[0012]在以下描述中,对构成其一部分的附图进行参考,并且在附图中以图示的方式示出了本技术的特定示例实施方式。应理解的是在不脱离本公开的范围的情况下,可利用其它实施例,并且可进行结构改变。
【附图说明】
[0013]图1是在计算机上实行计算机程序的许可证的计算机系统的示例实施方式的框图。
[0014]图2是示例计算机的框图。
[0015]图3是图示出用于将计算机程序升级的发行者的许可证系统的示例实施方式的数据流程图。
[0016]图4是图示出对已升级计算机程序的执行进行认证和授权的计算机的示例实施方式的数据流程图。
[0017]图5是描述将计算机程序升级的示例实施方式的流程图。
[0018]图6是描述对已升级计算机程序的执行进行认证和授权的示例实施方式的流程图。
【具体实施方式】
[0019]参考图1,现在将描述在计算机上实行计算机程序的许可证的计算机系统的示例实施方式。计算机100包括具有关联密钥104和许可证106的计算机程序102。许可证106被发行者以数字方式签名以允许认证。许可证验证模块108在执行计算机程序102时实行许可证。特别地,许可证验证模块108可选地使用密钥和硬件标识符来对许可证106进行认证,并且然后基于许可证106来授权计算机程序的执行。许可证验证模块可以是操作系统中的服务、计算机程序102的一部分和/或升级170的一部分。
[0020]发行者通常分发计算机程序102的拷贝,每个拷贝具有为该拷贝独有的密钥104。计算机程序的许可证状态最初在首次被分发时是不活动的,使得计算机程序不能被计算机执行。许可证状态在计算机程序被加载到计算机上并由用户发起用以获得给计算机程序的许可证的过程之后变成活动的。
[0021]一般地,计算机100通常通过计算机网络(未示出)连接到发行者的许可证系统150,以便获得给计算机程序的许可证。在获得许可证之后,该许可证在执行时的验证改变许可证状态,从而授权计算机程序的执行。为了获得给计算机程序的许可证,计算机100向发行者的许可证系统150提供密钥104和硬件标识符110,其是发行者所请求的意图唯一地识别计算机的任何信息。给定用于计算机程序的硬件标识符101和密钥,发行者的许可证系统150提供数字签名许可证106,验证模块使用该数字签名许可证106来实行给计算机程序的许可证的条款。
[0022]如果分发了对计算机程序102的升级170,则其可以在没有任何新密钥的情况下分发。其许可证状态最初是不活动的。当升级170被安装在计算机100上时,可以获得许可证。特别地,计算机100将当前产品密钥104发送到发行者的许可证系统150。还可以提供原始许可证106和硬件标识符110,但是是可选的。发行者的许可证系统验证该密钥是有效的,并且然后根据由发行者建立的商业规则来生成用于升级的许可证。作为示例,如果原始计算机程序处于具有减少特征的试用模式,则升级可保持在具有减少特征的该试用模式。许可证系统150提供数字签名令牌172作为用于升级的许可证,其可导致用于升级的许可证状态,其与用于原始程序的许可证状态相同或不同。
[0023]在计算机接收到令牌之后,可以根据由令牌提供的许可证来执行已升级计算机程序。特别地,认证是基于原始密钥、原始许可证和令牌,并且以下面将更详细地描述的方式,根据从对令牌进行认证得到的许可证状态来授权已升级计算机程序的执行。
[0024]现在将描述计算机程序和许可证系统被设计成在其上面操作的计算机。以下描述意图提供可以用其来实现这样的系统的适当计算机的简要的一般描述。计算机可以是多种通用或专用计算硬件配置中的任何一个。可以适当的众所周知的计算机的示例包括但不限于个人计算机、服务器计算机、手持式或膝上型设备(例如,媒体播放器、笔记本计算机、蜂窝式电话、个人数据助理、话音记录器)、多处理器系统、基于微处理器的系统、机顶盒、游戏控制台、可编程消费者电子装置、网络PC、小型计算机、大型计算机、包括上述系统或设备中任何一个的分布式计算环境等。
[0025]图2图示出适当计算机的示例。这仅仅是适当计算机的一个示例,并且并不意图暗示关于这样的计算机的使用或功能的范围的任何限制。
[0026]参考图2,示例计算机20在其基本配置中包括至少一个处理单元202和存储器204。计算机可包括多个处理单元和/或附加协处理单元,诸如图形处理单元220。根据计算机的精确配置和类型,存储器204可以是易失性的(诸如RAM)、非易失性的(诸如R0M、闪存等)或两者的某种组合。此配置在图2中用短划线206图示出。
[0027]另外,计算机200还可以具有附加特征/功能。例如,计算机200还可包括附加储存器(可移动和/或不可移动),包括但不限于磁盘或光盘或磁带。这样的附加储存器在图2中用可移动储存器208和不可移动储存器210图示出。计算机存储介质包括用用于存储信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质,所述信息诸如计算机程序指令、数据结构、程序模块或其它数据。存储器204、可移动储存器208和不可移动储存器210是计算机存储介质的全部示例。计算机存储介质包括但不限于RAM、ROM、EEPR0M、闪存或其他存储技术、⑶-ROM、数字多功能盘(DVD)或其它光学储存器、盒式磁带、磁带、磁盘储存器或其它磁存储器件或可以用来存储期望信息且可以被计算机200访问的任何其它介质。任何这样的计算机存储介质可以是计算机200的一部分。
[0028]计算机200还可包含(多个)通信连接212,其允许设备通过通信介质与其它设备通信。通信介质通常用诸如载波之类的已调制数据信号或其它传输机制来承载计算机程序指令、数据结构、程序模块
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1