应用使用策略强制实施的制作方法

文档序号:6362038阅读:179来源:国知局
专利名称:应用使用策略强制实施的制作方法
技术领域
本公开涉及强制实施应用使用策略,以及更具体地,涉及防止应用在计算机上的未授权执行。
背景技术
计算机软件的重要特征在于单个软件可以安装在多台机器上,而不需要改变该软件。对于软件开发者而言,这是有利的,因为软件开发者可以一次性开发出该软件,并继而将其分发至很多不同用户而无需任何附加工作。对于用户而言,这也是有利的,因为用户可以例如在该用户买了新计算机时,将其软件从一台机器移动至另一机器。软件可移植性还使得用户可以购买软件的单个拷贝,而同时将其安装在多个计算机上,在有些情况下,这可能是不被期待的。例如,有些软件可能开发成本非常昂贵,并且具有非常小的目标市场。在这种情况下,未授权的拷贝可能使得开发者不能收回其成本。为了防止未授权的拷贝,软件开发者通常采用针对软件的每次安装需要唯一产品密钥的安装过程。此过程防止未授权的拷贝,但是这同样使得用户从一台机器迁移至另一机器变得困难。此外,此方案在软件开发者具有允许用户在指定数目机器上安装软件的策略时显得麻烦。

发明内容
将在下文描述中提供本公开的附加特征和优势,并且这些附加特征和优势将部分从描述变得显然,或者可以通过实施此处公开的原理而被得知。本公开的特征和优势可以借助于在所附权利要求中特别指出的机制和组合来实现和获得。本公开的这些和其他特征将从下文的描述和所附权利要求中得到更完整揭示,或者可以通过实施此处提供的原理而得知。此处公开的是用于强制实施应用使用策略的系统、方法和非瞬态计算机可读存储介质。在应用服务器实施方式中,配置用于实施该方法的系统被配置用于接收购买请求。响应于该请求,该系统可以针对该购买创建购买证明收据。该收据可以包括关于购买交易的各种信息,诸如用户的账户标识符、应用标识符、应用版本号、购买日期和针对该应用的家长控制等级。系统可以对该收据进行签名,将其与应用捆绑,以及向做出请求的客户端设备发送应用包。在客户端设备实施方式中,当用户想要在机器上使用应用时,该系统可以验证该使用符合使用策略。当用户购买应用时,应用购买证明收据与应用包括在一起。为了在特定客户端设备上运行所购买的应用,与所购买应用相关联的账户标识符必须在该客户端设备上进行授权。每个客户端设备可以维护授权文件,该文件可以指定针对该客户端机器的客户端标识符和被授权在该客户端设备上使用应用的所有用户标识符。当用户试图使用应用时,该系统可以验证购买证明收据和授权文件有效。附加地,该系统可以验证在购买证明收据中指定的用户位于授权文件中。在有些实施方式中,如果用户未处于授权文件中,则该系统可以做出请求以授权该用户。作为示例性强势实施机制,该系统可以包括去授权计数器,以尝试避免用户绕过应用使用策略。去授权计数器字段可以包括在应用购买证明收据和授权文件中。去授权计数也可以由系统维护。当用户做出购买应用的请求时,该系统可以针对该购买构建购买证明收据,其包括针对该用户的当前去授权计数。当用户试图使用应用时,该系统可以验证该购买证明收据和授权文件有效。附加地,该系统可以验证在购买证明收据中指定的用户位于授权文件中。最后,该系统可以验证收据中的去授权计数少于或等于授权文件中的去授权计数。此强制实施机制可以提供用户根据应用使用策略的条款、将应用传输设定多次的简单方式。


为了描述本公开的以上记载的和其他优势和特征可在其中获得的方式,将通过参考在附图中示出的本发明特定实施方式来呈现以上简单描述的原理的更特定描述。需要理解,这些附图仅描述了本公开的示例性实施方式,但是并不因此就被视为本发明范围的限制,通过使用附图,可以利用附加的细节和详情来描述和说明此处的原理,其中:图1示出了针对应用分发和使用的示例性系统配置;图2示出了示例性应用购买;图3示出了示例性应用购买收据;图4示出了针对应用购买的示例性方法实施方式;图5示出了示例性授权文件;图6示出了示例性授权请求;图7示出了在购买时进行授权的示例性场景;图8示出了在应用启动时进行授权的示例性方法;图9示出了在应用验证时的示例性方法实施方式;图10示出了具有去授权计数器的示例性应用购买收据和授权文件;图11示出了针对使用去授权计数器的应用验证的示例性方法实施方式;图12示出了示例性去授权计数器使用场景;以及图13示出了示例性系统实施方式。
具体实施例方式在下文详细地讨论本公开的各种实施方式。尽管讨论了特定实现,但是应当理解,这仅是为了说明的目的。相关领域的技术人员将意识到,可以使用其他部件和配置,而不会偏离本公开的精神和范围。本公开解决了本领域中需要基于描述用户的特征和/或用户与目标内容的一个或多个项目的交互来选择向用户呈现的目标内容的改进方法这样的需求。本公开的系统和方法对于在计算机上强制实施应用使用策略而言尤其有用。图1示出了针对应用分发和使用的示例性系统配置100,其中电子设备102、104经由网络110与电子应用分发者112进行通信。该系统可以配置以便在广域网(如图1所示的)中使用。然而,本原理适用于促进电子设备的互通信的各种网络配置。例如,图1中系统100的每个部件可以以本地化方式或分布方式在网络中实现。在系统100中,用户终端102和104经由直接和/或间接通信而与应用分发者112交互,以获取也公知为应用的计算机程序。任何数目或类型的用户终端可以与应用分发者112交互。例如,用户终端102可以是台式计算机、笔记本计算机、手持式通信设备,例如,移动电话、智能电话、板式电脑或使用多个或非持续性网络会话连接的任何其他类型的设备;等等。用户终端102向应用分发者112做出请求,诸如,购买请求。应用分发者112通过向做出请求的用户终端102递送所请求的内容或者拒绝该请求而进行响应。请求例如可以由于用户终端102部分故障致使不能提供足够的支付方法而遭到拒绝。为了促进应用使用策略的强制实施,应用分发者可以向做出请求的用户终端提供应用购买证明收据和所购买的应用。图2示出了示例性应用购买200。在示例性应用购买200中,用户终端102向应用分发者112做出购买请求。作为购买请求的部分,用户终端102可以提供针对做出请求的用户的账户信息。在有些配置中,账户信息可以是用户名和口令。在其他配置中,账户授权可以作为与应用分发者112的单独交互而出现,以及由此,账户信息可以是唯一的账户标识符,诸如DSid。在接收购买请求之后,应用分发者112可以创建包括应用208和应用购买证明收据210的应用包206。应用分发者112继而可以向用户终端102递送应用包206。如在下文更详细讨论的,应用购买证明收据可以稍后用于辅助强制实施针对应用的使用策略。购买交易包括针对接收者获取应用的任何种类的交易,以及并不必须需要交换金钱或其他对价。购买交易可以包括第三方将该应用作为礼物给予接收者,或者接收者可以兑换优惠券、促销码、或针对应用进行交换的类似票据。在有些情况下,购买请求可以针对免费应用做出。无论获取应用是否需要货币交换,应用分发者都可以提供应用和应用购买证明收据。应用购买证明收据可以包括各种信息,如图3中的示例性购买证明收据300所示。应用购买证明收据可以包括较之于图3所示的信息更多或更少的信息。购买证明收据主体302可以包括与购买该应用的用户相关联的各种账户信息。用户可以是个人、个人群组或者组织。账户信息可以包括用户的ID,诸如用户名。账户信息还可以包括针对该用户的唯一账户标识符,诸如DSid。在有些配置中,替代于包括纯文本DSid,购买证明收据主体302可以包括DSid的唯一表征。例如,唯一表征可以是DSid的单向表征,例如,f (DSid)。在有些情况中,唯一表征可以用于改进收据和/或用户隐私的安全性。购买证明收据主体302还可以包括关于所购买应用的各种信息。例如,购买证明收据主体302可以包括所购买应用的家长控制评级、版本号和ID。在有些情况下,关于应用的附加信息可以包括在收据中,诸如,应用签名。附加地,购买证明收据主体302可以包括购买日期。在有些配置中,应用购买证明收据主体302可以包括附加的和/或备选的信息。此夕卜,购买证明收据300内的信息组织可以随系统配置而改变。在一个变体中,服务器保留应用购买证明收据300的全部或部分拷贝。在有些配置中,购买证明收据300可以是纯文本,这可以使得可理解文件布局的任何用户都能够读懂之。为了防止和/或检测购买证明收据300的未授权修改,购买证明收据300可以包括收据签名304。收据签名304可以是可用来检测对购买证明收据的未授权修改的任何数字签名。例如,应用分发者112可以使用加密哈希函数来生成购买证明收据主体302的数字签名。在有些配置中,应用分发者112可以使用公钥系统来生成数字签名。在此情况下,应用分发者112使用其私钥来生成收据签名304。有权访问应用分发者的公钥的用户终端、应用分发者和/或任何其他设备继而可以验证该收据300。备选地,应用分发者112可以使用私钥系统来生成收据签名304。在此情况下,除非应用分发者112分享其私钥,否则仅应用分发者可以验证收据300。图4是示出了针对包括购买证明收据的应用购买的示例性方法400中步骤的流程图。为了清楚,在诸如图1所示的示例性系统方面讨论此方法。尽管图4中示出了特定步骤,但是在其他实施方式中,方法可以较之于所示步骤而具有更多或更少的步骤。在此附图和其他附图中讨论的方法步骤可以以所示顺序或组合实现,或者以任何其他顺序或组合实现。在各种时刻,应用分发者112从用户接收购买应用的请求(402)。购买请求可以来自于有权访问应用分发者112的任何用户终端。如上文所描述的,购买请求可以包括针对做出请求的用户的、可以用来促进交易的账户信息,诸如用户的账户标识符。响应于购买请求,应用分发者112构建应用购买证明收据(404),诸如图3所示的收据300。应用购买证明收据可以是交易唯一的。例如,即使用户之前购买过应用,与此购买请求相关联的购买证明收据也会不同。然而,在有些配置中,购买证明收据可以是用户、应用配对唯一的,而不是交易唯一的。在构建了应用购买证明收据之后,应用分发者112基于应用购买收据和应用来创建应用包(406 ),以及向做出请求的用户发送该应用包(408 )。在购买应用之后,可以在多个用户终端上使用该应用。为了防止用户滥用此能力,应用开发者和/或应用分发者可以起草对在任一时间能够在其上使用应用的用户终端数目进行限制的使用策略。例如,假设应用将花费10美元。用户可以购买该应用,以及继而以I美元的价钱向其9个朋友出售该应用的拷贝。10个用户中的每个用户继而能够以I美元获得10美元应用的拷贝。在有些情况下,应用开发者可能觉得这种情形ok,然而,在其他情况下,这种活动可能使得开发者无法收回其研发成本。为了抑制这种活动,可以建立策略来限制拷贝的数目,例如,5台机器。确保用户仅在指定数目的机器上运行应用的一种方式是让该用户针对他/她想在其上使用该应用的每台机器进行授权。可以驻留在用户机器上的授权文件可以用来促进用户授权。图5示出了示例性授权文件500。授权文件500可以包括授权文件主体502。授权文件主体502可以包括与授权文件500相关联的、针对机器的唯一机器标识符。唯一机器标识符可以是可联系至用户终端的标识符。例如,计算机中的各种硬件部件可以与唯一标识符(诸如,序列号)相关联。这些序列号中的一个或多个可以用于创建唯一的机器标识符。授权文件主体502还可以包含一个或多个唯一账户标识符,例如,DSid。包含在授权文件500中的账户标识符指示被授权在机器上使用所够买应用的用户。在有些配置中,替代于包括纯文本DSid,授权文件主体502可以包括DSid的唯一表征。例如,唯一表征可以是DSid的单向表征,例如,f (DSid)。在有些情况中,唯一表征可以用于改进收据和/或用户隐私的安全性。在有些配置中,授权文件主体502可以包括附加的和/或备选的信息。此外,信息在授权文件500中的组织可以随系统的配置而改变。在有些配置中,授权文件500可以是纯文本,这可以使得可理解该文件布局的任何用户读懂之。为了防止和/或检测对授权文件500的未授权修改,授权文件500可以包括授权文件签名504。授权文件签名504可以是可用来检测对授权文件的未授权修改的任何数字签名。例如,应用分发者112可以使用加密哈希函数来生成授权文件主体502的数字签名。在有些配置中,应用分发者112可以使用公钥系统来生成数字签名。在此情况下,应用分发者112使用其私钥来生成授权文件签名504。有权访问应用分发者的公钥的用户终端、应用分发者和/或任何其他设备继而可以验证该授权文件500。备选地,应用分发者112可以使用私钥系统来生成授权文件签名504。在此情况下,除非应用分发者112分享其私钥,否则仅应用分发者可以验证该授权文件500。可以向负责在系统中对用户进行授权的应用分发者或任何其他设备做出授权请求。授权文件可以用来追踪被授权在特定用户终端上运行应用的用户,而服务器可以维护授权记录以追踪每个用户被授权多少台机器和/或确切的机器。服务器上的授权记录可以用来确保未在多于使用策略允许的机器上对用户进行了授权。图6示出了示例性用户授权场景600。为了在机器上对用户进行授权,服务器606接收授权文件602和用户的唯一账户标识符604。服务器606继而检查授权记录608,以验证未在使用策略允许的最大机器数目上对用户进行授权。在此示例中,用户DSidS仅在一台机器上得到授权,这小于限制,所以服务器606可以授权该用户。为了授权该用户,月艮务器606更新针对该用户的授权记录中的条目,以将该机器标识符包括在授权文件602中,即,Ml。这产生了授权记录610。服务器还通过添加用户的账户号,即f (DSid8),以及重新签名该文件来更新授权文件。服务器606继而向用户的机器返回更新的授权文件612。在有些配置中,服务器606可以在授权记录中维护其他信息。使用这些步骤的全部或部分的其他授权方法也是可行的。在有些配置中,使用策略可以跨所有用户和所有应用是静态的,或者使用策略可以是用户特定的和/或应用特定的。例如,使用策略可以这样设计,使得在任何给定时间,任何用户可被授权在至多5台机器上使用其购买的任何应用。然而,该系统也可以这样配置,使得可以针对个体应用指定使用策略。例如,一个应用可以允许用户在10台机器上使用该应用,而另一应用仅可以允许用户在4台机器上使用该应用。为了支持可变的使用策略机制,服务器606可能需要在授权记录中存储附加信息。在有些配置中,用户授权可以在用户购买应用时发生。图7示出了在购买时进行授权的示例性场景700。在方法700中,用户终端102向应用分发者112做出购买请求。除了账户信息(诸如DSid)外,购买请求可以包括驻留在用户终端102上的授权文件706。应用分发者112可以使用图4中的方法400来创建应用包708,以及可以执行图6中的授权方法600来更新授权记录并产生授权文件710。应用分发者112继而可以向做出请求的用户终端102发送应用包和更新的授权文件710。在有些配置中,应用分发者112充当针对授权请求的中介,以及简单地将授权请求传递至将向应用分发者112返回授权文件的另一设备或服务器。在有些情况下,在做出购买请求之前,要在用户终端102上针对该用户进行授权。在这种情况下,应用分发者112可以返回未改变的授权文件或者根本不返回该文件。在有些配置中,用户终端可以确定用户在该机器上得到授权,而无需向服务器做出授权请求。在有些情况下,可能不需要在购买时进行授权,因为用户无意在其从其购买应用的机器上使用该应用。例如,用户可能在家具有较慢的因特网连接,但是在公司具有非常快的连接。在有些情况下,因特网连接速度可能没关系,但是对于较大的应用,较慢的网络连接可以使得用户不会购买特定应用。为了改进用户的购买体验,用户可能决定在公司购买该应用,以及继而向该用户的家庭计算机传输该应用。例如,用户可能向盘,例如,CD-ROM、DVD、USB驱动等,传输该应用,以及继而向家庭计算机传输该应用,或者用户可能在用户的工作计算机和家庭计算机之间、例如通过以太网连接而建立直接的高速连接。此外,为了允许用户向不止一台机器拷贝应用,授权可以在用户试图使用该应用时发生。图8示出了在应用启动时进行授权的示例性场景800。在此场景中,用户从用户终端102做出购买请求。该购买请求向在该处使用图4中的方法400来制备应用包806的应用分发者112发送。应用包806被发送至用户终端102。同时,应用包806拷贝至用户试图在该处使用该应用的用户终端104。在启动了应用后,用户终端向服务器606发送授权请求。在有些配置中,服务器606和应用分发者112可以相同。然而,在其他情况下,服务器606和应用分发者112可以不同。作为授权请求的部分,服务器606接收授权文件812和用户的账户标识符814。服务器606执行图6中的授权方法600,并且向用户终端104返回更新的授权文件816。现在,用户已经在该机器上得到授权,所以用户可以使用该应用。在有些配置中,用户可能已经被授权在该机器上使用应用。在这种情况下,不需要对授权文件的更新。此外,在有些情况中,用户终端确定用户得到授权而无需向服务器做出授权请求。图6中的用户授权场景600仅防止用户被授权在多于指定数目机器上运行应用。通过并入在购买时创建的应用购买证明收据,应用验证可以强制实施应用使用策略,该策略在任何给定时间、将特定应用的使用限制在指定数目的机器或实例上。例如,应用可被限制为在全部驻留在单个主机物理机器上的5个不同访客虚拟机中的5个单独实例。当用户购买应用时,应用购买收据与应用一起被包括。为了在特定机器上使用购买的应用,购买证明收据中的账户标识符必须在该机器上得到授权。如上文所描述的,每台机器可以维护单个授权文件,该文件可以指定针对机器的机器标识符和被授权在该机器上运行应用的所有用户账户标识符。如果购买证明收据中的账户标识符包含在授权文件中,则应用可以在该机器上使用。然而,如果与应用相关联的用户未在该机器上得到授权,则用户可以使用诸如图6中方法600的授权方法来得到授权。可以验证购买证明收据和授权文件二者,以防止对购买证明收据和/或授权文件的未授权修改,以及确保该收据属于该应用以及该授权文件属于该机器。图9中的示例性应用验证方法900可以用于强制实施应用使用策略,该策略用于将购买用户限制到指定数目的机器上。验证方法900可以使用图3中的应用购买证明收据300和图5中的授权文件500。为了清楚,在图1所示示例性系统100的方面中讨论方法900。尽管图9中示出了特定步骤,但是在其他实施方式中,方法可以具有较之于示出的步骤更多或更少的步骤。应用验证方法900可以在用户每次启动应用时使用,以及可以由应用驻留其上的机器本地执行。然而,系统也可以这样配置,使得较不频繁地执行应用验证,诸如在第一次启动应用时进行验证。附加地,可以通过向服务器做出验证请求来执行应用验证,或者应用验证可以是本地动作和远程动作的组合。在应用启动之后,用户终端102接收基于购买证明收据300和授权文件500来验证应用的请求(902)。作为应用验证的部分,用户终端102可以通过首先检查收据的签名是否有效来验证购买证明收据300 (904)。如果签名无效,则收据可能已被改变,使得验证过程中断以及验证失败。如果签名有效,则用户终端102检查收据中的应用标识符是否与正被验证的应用的标识符匹配(906)。如果不匹配,则验证失败。如果应用标识符匹配,则用户终端102检查收据中的应用版本号是否与正被验证的应用的版本号匹配(908)。如果版本号不匹配,则验证方法失败,否则验证继续。验证方法900还可以包括验证授权文件500。为了验证授权文件500,用户终端102检查文件上的签名是否有效(910)。如果签名无效,则可能授权文件已被改变,使得验证过程中断以及验证失败。如果签名有效,则用户终端102检查授权文件中的机器标识符是否与针对用户终端102的标识符匹配(912)。如果不匹配,则验证失败。如果机器标识符匹配,则验证继续。取决于配置,步骤904、906和908可以在步骤910和912之前、之后执行或者并行执行。此外,步骤904-912根本不用执行,但是通过执行这些步骤,可以获得文件未被改变以及与应用和机器对应这样一定水平的保证。在验证收据300和授权文件500之后,用户终端102检查收据中的账户号(例如,f (DSid))是否位于授权文件中(914)。如果是,则购买应用的用户在该机器上得到授权,使得可以启动该应用(916)。如果购买该应用的用户还未被授权,则用户终端102可以向应用分发者112做出授权请求(918)。如果授权请求成功(920),则应用可以启动(916),否则验证失败。在有些配置中,验证方法900可以发生在应用内部。在此情况下,在验证失败后采取的动作取决于应用开发者。例如,在验证失败后,应用可以退出。备选地,在验证失败后,应用可以继续执行,但仅有限的功能可用。附加地,取决于配置,应用可能不能请求针对用户的授权。利用上文描述的验证方法900,与所购买应用关联的用户可以在使用策略中指定的数目的机器上使用该应用。例如,如果最大机器数目是5,则用户可以向5台不同机器拷贝该应用,以及在每台机器上进行授权过程。如果用户想要在第6台机器上使用应用,则用户必须对已经授权的机器之一去授权。为此,用户可以从已授权机器之一发送“去授权”请求。备选地,在有些配置中,用户可以从任何机器发送“去授权所有”请求,这将具有对用户已在其上得到授权的所有机器去授权的效果。在去授权机器之后,用户可以返回第6台机器并对其进行授权。在此时刻,如果验证方法900成功,则用户可以使用该应用。在有些情况下,用户可能试图绕开最大机器使用策略。用户可能尝试这样做的一种方式如下文所述。假设与所购买应用相关联的用户已经在最大数目机器上的得到授权,例如,5台。为了释放授权,用户去授权机器。然而,在发布“去授权”请求之前,用户在该机器上拷贝授权文件。在去授权之后,用户将授权文件拷贝回原位。现在,该机器认为用户得到了授权,即使该用户已被去授权。为了解决此绕开攻击,可以向应用购买证明收据和授权文件添加去授权计数字段。附加地,也可以在服务器上维持去授权计数。图10示出了具有去授权计数字段的示例性购买证明收据1002和授权文件1004。在授权文件1004中,单独的去授权计数可以与每个授权账户标识符相关联。每当用户去授权机器,可以递增与账户标识符关联的、服务器上的去授权计数。当用户购买新的应用时,与用户相关联的授权记录中的去授权计数可以被包括在应用购买证明收据中。附加地,当用户授权机器时,与该账户标识符相关联的去授权计数可以包括在授权文件中。去授权计数也可以被并入应用验证方法中。当用户试图使用应用时,验证方法可以执行在验证方法900中描述的所有步骤。然而,验证方法也可以检查收据中的去授权计数是小于还是等于授权文件中的去授权计数。如果此检查失败,则可以阻止用户在该机器上使用应用。图11示出了使用去授权计数器的示例性应用验证方法1100。验证方法1100可以使用图10中的应用购买证明收据1002和授权文件1004。为了清楚,在诸如图1中所示示例性系统的方面讨论方法1100。尽管图10中示出了特定步骤,但是在其他实施方式中,方法可以具有较之于示出步骤更多或更少的步骤。应用验证方法1100可以在每次用户启动应用时使用,以及可以由应用在其上驻留的机器在本地执行。然而,该系统也可以这样配置,使得较不频繁地执行应用验证,诸如在第一次启动应用时进行验证。附加地,可以通过向服务器做出验证请求来执行应用验证,或者应用验证可以是本地动作和远程动作的组合。在应用启动之后,用户终端102接收基于购买证明收据1002和授权文件1004来验证应用的请求(1102)。用户终端102继而可以使用与图9中的步骤904-912类似的步骤来验证购买证明收据1002和授权文件1004是否有效(I 104和1106)。如果任一验证步骤失败,则验证方法中断以及验证失败。取决于配置,步骤1104可以在步骤1106之前、之后执行或者与之并行执行。此外,步骤1104和1106根本不需要执行,但是通过执行这些步骤,可以获得文件未被改变以及与应用和机器对应这样一定水平的保证。在验证了收据1002和授权文件1004之后,用户终端102检查收据中的账户号(例如,f (DSid))是否位于授权文件中(1108)。如果是,则购买了该应用的用户在该机器上得到授权,并且验证可以前进至检查去授权计数。如果购买了该应用的用户还未被授权,则用户终端102可以向应用分发者112做出授权请求(1110)。如果授权请求成功(1114),则用户终端102可以前进至检查去授权计数。在步骤1112,用户终端102通过检查收据中的去授权计数是小于还是等于与账户标识符关联的授权中的去授权计数来验证去授权计数。如果是,则验证成功,以及用户终端102可以启动应用(1116)。如果去授权计数验证失败,则可能已发生去授权攻击,从而阻止用户在该机器上使用该应用。与验证方法900 —样,验证方法1100可以在应用内执行。在此情况下,在验证失败后采取的动作取决于应用开发者。例如,在验证失败后,应用可以退出。备选地,在验证失败后,应用可以继续执行,但仅有限的功能可用。附加地,取决于配置,应用可能不能请求针对用户的授权。图12示出了示例性去授权计数器使用场景。在此场景中,具有账户标识符DSidl的用户目前在5台机器上得到授权:M1-M5。用户还希望能在第6台机器M6上使用应用,但是使用策略将授权数目限制为5。此初始场景设立反映在针对机器M5和M6的授权文件中,以及服务器上的授权记录中(1210)。机器M5的授权文件包含具有为O的关联去授权计数的、针对DSidl的条目。机器M6的授权文件为空。服务器上的授权记录示出了 DSidl在机器M1-M5上得到授权,以及用户未去授权任何机器。在试图在第6台机器M6上使用应用时,用户拷贝M5上的授权文件,以及继而去授权该机器。这些动作反映在机器M5上的授权文件中和服务器上的授权记录中(1220)。机器M5的授权文件现在为空。附加地,去授权计数增加至1,以及M5已从服务器上授权记录中的授权机器列表中移除。现在,用户授权了机器M6。此动作导致两个改变,其反映在机器M5和M6以及服务器中(1230)。首先,机器M6上的授权文件更新为包括具有为I的去授权计数的DSidl。第二,服务器上的授权记录更新为将机器M6包括在授权机器列表中。在授权之后,用户利用该授权文件替换旧的授权文件以及购买应用。这些改变反映在机器M5和M6以及服务器中(1240)。购买证明收据中的去授权计数为I。当用户试图在机器M5上使用应用时,机器可以使用验证方法1100来验证该应用。由于购买证明收据中的去授权计数大于授权文件中的去授权计数,则验证方法1100将在步骤1112失败。用户继而不能在该机器上使用该应用。现在,本公开转而讨论通用计算设备。图13中所示以及下文讨论的部件的全部或部分可以用来实现上文讨论的各种设备或基础架构元素。参考图13,示例性系统1300包括通用计算设备1300,其包括处理单元(CPU或处理器)1320和系统总线1310,其将包括诸如只读存储器(ROM) 1340和随机访问存储器(RAM) 1350的系统存储器1330在内的各种系统部件耦合至处理器1320。系统1300可以包括与处理器1320直接连接、与其临近或作为部分与之集成的高速存储器的缓存1322。系统1300从存储器1330和/或存储设备1360向缓存1322拷贝数据,以由处理器1320快速访问。以此方式,缓存1322提供避免处理器1320在等待数据时延迟的性能提升。这些和其他模块可以配置用于控制处理器1320执行各种动作。其他系统存储器1330也可用以供使用。存储器1330可以包括具有不同性能特征的多个不同类型存储器。可以理解,该公开可以在具有不止一个处理器1320的计算设备1300上操作,或者在联网在一起以提供更大处理能力的计算设备群组或簇上操作。处理器1320可以包括任何通用处理器和硬件模块或软件模块,诸如存储在存储设备1360中的模块11362、模块21364和模块31366,配置用于控制处理器1320和软件指令并入至实际处理器设计中的专用处理器。处理器1320实质上可以是完全自我包含的计算系统,包含多个核或处理器、总线、存储器控制器、缓存等。多核处理器可以是对称的或不对称的。系统总线1310可以是包括存储器总线或存储器控制器、外设总线和使用各种总线架构的任一的本地总线的若干种总线结构中的任一。存储在R0M1340中的基本输入/输出(BIOS)等可以提供基本例程,其有助于在诸如启动期间、在计算设备1300内的元件之间传输信息。计算设备1300进一步包括存储设备1360,诸如硬盘驱动、磁盘驱动、光盘驱动、磁带驱动等。存储设备1360可以包括软件模块1362、1364、1366,用于控制处理器1320。可以设想其他硬件或软件模块。存储设备1360借助于驱动接口连接至系统总线1310。驱动和关联计算机可读存储介质提供用于计算设备1300的计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。在一个方面,执行特定功能的硬件模块包括存储在非瞬态计算机可读介质中的软件部件,其结合所需的硬件部件(诸如,处理器1320、总线1310、输出设备1370等)执行功能。基本部件是本领域技术人员公知的,以及取决于设备类型(诸如,设备1300是比较小的手持计算设备、台式计算机还是计算机服务器),可以设想适当的变体。尽管此处描述的示例性实施方式采用了硬盘1360,但是本领域技术人员应当理解,其他类型的计算机可读介质(其可以存储可由计算机访问的数据),诸如磁带盒、闪存卡、数字通用盘、磁盒、随机访问存储器(RAM) 1350、只读存储器(ROM) 1340、包含比特流等的线缆或无线信号等,也可以在示例性操作环境中使用。非瞬态计算机可读存储介质显式地排除诸如能量、载波信号、电磁波和信号本身的介质。为了支持用户与计算设备1300的交互,输入设备1390代表任何数目的输入机制,诸如,针对语音的麦克风、针对手势或图形输入的触敏屏、键盘、鼠标、运动输入、语音等。输出设备1370也可以是本领域技术人员公知的多个输出机制中的一个或多个。在有些情况中,多模系统支持用户提供与计算设备1300通信的多种输入类型。通信接口 1380通常管控和管理用户输入和系统输出。针对在任何特定硬件布置上的操作无限制,以及由此,此处的基本特征可以容易地在开发出改进的硬件或固件布置之后替换为这些硬件或固件。为了说明的清楚,示意性系统实施方式被呈现为包括个体功能块,这些块包括标记为“处理器”或处理器1320的功能块。可以通过使用共享或专用硬件(包括但不限于,能执行软件的硬件和硬件,诸如处理器1320,其按照目的进行构建以作为执行在通用处理器上的软件的等同物操作)来提供这些块代表的功能。例如,图13中呈现的一个或多个处理器的功能可以借助于单个共享处理器或多个处理器提供。(术语“处理器”的使用不应当解释为排除性地指代能够执行软件的硬件。)示意性实施方式可以包括微处理器和/或数字信号处理器(DSP)硬件、只读存储器(ROM) 1340,用于存储执行下文讨论的操作的软件,和随机访问存储器(RAM) 1350,用于存储结果。也可以提供各种超大规模集成(VLSI)硬件实施方式和结合通用DSP电路的定制VLSI电路。各种实施方式的逻辑操作实现为:(I)运行在通用计算机内的可编程电路上的计算机实现的步骤、操作或过程的序列;(2)运行在专用可编程电路上的计算机实现的步骤、操作或过程的序列和/或(3)可编程电路内的互联机器模块或程序引擎。图13中示出的系统1300可以实施所记载方法的全部或部分,可以是所记载系统的部分,和/或可以根据所记载的非瞬态计算机可读存储介质中的指令进行操作。这种逻辑操作可以实现为配置用于控制处理器1320根据模块的编程执行特定功能的模块。例如,图13示出了 3个模块Modl 1362、Mod21364和Mod31366,其是控制处理器1320执行特定步骤或一系列步骤的模块。这些模块可以存储在存储设备1360上,并且可以在运行时加载至RAM1350或存储器1330中,或者可以如本领域技术人员所知的存储在其他计算机可读存储器位置中。本公开范围内的实施方式也可以包括有形和/或非瞬态计算机可读存储介质,用于携带或存储计算机可执行指令或数据结构。这种非瞬态计算机可读存储介质可以是通用或专用计算机可以访问的任何可用介质,包括如上文所讨论的任何专用处理器的功能设计。例如,以及不作为限制地,这种非瞬态计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备,或可以用来以计算机可执行指令、数据结构、或处理器芯片设计的形式携带或存储所期待程序代码装置的任何其他介质。当通过网络或另一通信连接(硬连线、无线或其组合)向计算机传送或提供信息时,计算机适当地将连接视为计算机可读介质。由此,任何这种连接适当地命名为计算机可读介质。上述的组合也应包括在计算机可读介质的范围内。计算机可执行指令包括例如指令和数据,其引起通用计算机、专用计算机或专用处理设备执行某个功能或功能的组合。计算机可执行指令还包括由计算机在单机或网络环境中执行的程序模块。通常,程序模块包括例程、程序、部件、数据结构、对象和专用处理器等的设计固有的功能,其执行特定任务或实现特定抽象数据类型。计算机可执行指令、关联数据结构和程序模块代表用于执行此处公开方法的步骤的程序代码装置的示例。这种可执行指令或关联数据结构的特定序列代表用于实现这些步骤中描述的功能的对应动作示例。本领域技术人员将会理解,本公开的其他实施方式可以在具有多种计算机系统配置的网络计算环境中实现,包括个人计算机、手持设备、多处理器系统、基于微处理器的或可编程的消费者电子设备、网络PC、微型计算机、主机计算机等。实施方式也可以在分布式计算环境中实现,其中任务由本地和远程处理设备(其通过通信网络(利用硬连线链路、无线链路或其组合)连接)执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备两者中。上文讨论的各种实施方式仅出于说明目的而进行提供,并且不应当解释为限制本公开的范围。本领域技术人员将会意识到,在不遵从此处描述和示出的示例性实施方式和应用、又不脱离本公开精神和范围的前提下,可以对此处描述的原理做出各种修改和改变。
权利要求
1.一种用于提供应用的购买证明的方法,所述方法包括: 在服务器处从用户接收购买所述应用的购买请求; 构建应用购买收据; 基于所述应用购买收据和所述应用来创建应用包,其中所述应用购买收据针对所述购买请求是唯一的;以及 向所述用户发送所述应用包。
2.根据权利要求1所述的方法,其中所述应用购买收据包括下述至少一个:签名、用户标识符、用户账户标识符、应用标识符、所述应用的版本号、购买日期、购买时间戳、家长控制评级和去授权计数。
3.根据权利要求1-2中任一所述的方法,其中所述用户账户标识符是所述用户账户标识符的单向表征。
4.根据权利要求2-3中任一所述的方法,其中所述去授权计数是与所述用户账户标识符相关联的所接收去授权请求的计数器。
5.根据权利要求1 所述的方法,其中向所述用户发送所述应用包包括向与所述用户相关联的至少一个设备发送所述应用包。
6.一种用于强制实施应用使用策略的系统,所述系统包括: 处理器; 存储器,其存储用于控制所述处理器以执行步骤的指令,所述步骤包括: 从用户接收购买第一应用的请求; 针对所述第一应用构建应用购买收据; 向所述用户传输包括所述第一应用和所述应用购买收据的应用包; 接收基于应用购买收据和授权文件来在客户端设备上验证第二应用的请求;以及 基于所述应用购买收据和所述授权文件来验证所述第二应用。
7.根据权利要求6所述的系统,其中验证所述第二应用进一步包括: 验证所述应用购买收据有效; 验证所述授权文件有效;以及 验证在所述应用购买收据中指定的购买用户位于所述授权文件中。
8.根据权利要求7所述的系统,其中所述存储器存储用于当所述购买用户并未位于所述授权文件中时进一步控制所述处理器对所述购买用户进行授权的指令。
9.一种非瞬态计算机可读存储介质,其存储有当被计算设备执行时,引起所述计算设备验证用户被授权以在机器上执行应用的指令,所述指令包括: 接收基于应用购买收据和授权文件来在机器上验证应用的请求; 验证所述应用购买收据有效; 验证所述授权文件有效;以及 验证在所述应用购买收据中指定的用户位于所述授权文件中。
10.根据权利要求9所述的非瞬态计算机可读存储介质,其中验证所述应用购买收据有效进一步包括: 计算针对所述应用购买收据的签名; 将所述签名与附属于所述应用购买收据的签名进行比较;验证所述应用购买收据是针对所述应用的;以及 当所述签名与附属于所述应用购买收据的所述签名匹配以及所述应用购买收据是针对所述应用的时,指示所述应用购买收据有效。
11.根据权利要求9-10中任一所述的非瞬态计算机可读存储介质,其中验证所述授权文件有效进一步包括: 计算针对所述授权文件的签名; 将所述签名与附属于所述授权文件的签名进行比较; 验证所述授权文件是针对所述机器的;以及 当所述签名与附属于所述授权文件的所述签名匹配以及所述授权文件是针对所述机器的时,指示所述授权文件有效。
12.根据权利要求9-11中任一所述的非瞬态计算机可读存储介质,其中所述授权文件包括唯一的机器标识符和至少一个用户账户标识符。
13.根据权利要求12所述的非瞬态计算机可读存储介质,其中所述至少一个用户账户标识符中的一个是账户标识符的单向表征。
14.根据权利要求9-13中任一所述的非瞬态计算机可读存储介质,其中验证所述应用购买收据是针对所述应用的进一步包括: 从所述购买收据提取应用标识符; 将所述应用标识符与所述应用的标识符进行比较; 从所述购买收据提取应用版本号; 将所述应用版本号与所述应用的版本号进行比较;以及 当所述应用标识符与所述应用的标识符匹配以及所述应用版本号与所述应用的所述版本号匹配时,提供所述应用购买收据是针对所述应用的指示。
15.根据权利要求9-11中任一所述的非瞬态计算机可读存储介质,其中验证所述授权文件是针对所述机器的进一步包括: 从所述授权文件提取唯一的机器标识符; 将所述唯一的机器标识符与针对所述机器的唯一机器标识符进行比较;以及 当所述唯一的机器标识符与针对所述机器的所述唯一的机器标识符匹配时,指示所述授权文件是针对所述机器的。
全文摘要
此处公开的是用于强制实施应用使用策略的系统、方法和非瞬态计算机可读介质。作为应用购买交易的一部分,应用分发者创建唯一的购买证明收据。此收据可以与应用捆绑并递送给购买者。每台机器可以维护列举出被授权在该机器上使用应用的用户的授权文件。配置用于实施该方法的系统基于应用购买证明收据和授权文件来验证用户被授权在机器上使用应用。如果应用购买证明收据和授权文件都有效,则该系统检查收据中的用户账户标识符是否包含在授权文件中。如果是,则可以认为该用户被授权在该机器上使用该应用。
文档编号G06Q30/06GK103180859SQ201180050396
公开日2013年6月26日 申请日期2011年10月10日 优先权日2010年10月19日
发明者J-P·西大德, A·J·法鲁吉亚, D·米来希, B·M·图贝尔特, G·法索利, N·T·苏立万 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1