固件实现的软件许可的制作方法_2

文档序号:8548099阅读:来源:国知局
性和/或光学记录介质和相应的存储驱动器。
[0027]输入组件360包括允许用户输入信息至设备300 (例如,键盘、键板、鼠标、按钮、开关等)的组件。输出组件370包括从设备300输出信息的组件(例如,显示器、扬声器、一个或多个发光二极管(“LED”)等)。
[0028]通信接口 380包括类收发器组件,例如收发器和/或分开的接收器和发送器,这些组件使得设备300能够例如经由有线连接、无线连接或有线和无线连接的组合与其它设备通信。例如,通信接口 380可以包括以太网接口、光接口、同轴接口、红外接口、无线电频率(“RF”)接口、通用串行总线(“USB”)接口等。
[0029]设备300在本文中被描述为执行各种操作。设备300可以响应于处理器320执行包括在计算机可读介质例如主存储器330、非易失性存储器340和/或存储组件350中的软件指令而执行这些操作。计算机可读介质可以被定义为非暂时性存储设备。存储设备包括单一存储设备内的空间或遍布多个存储设备的空间。
[0030]在一些实施方案中,软件指令是经由通信接口 380从另一个计算机可读介质或从另一个设备被读取到主存储器330和/或非易失性存储器340中。当存储在主存储器330和/或非易失性存储器340中的软件指令被执行时,其促成处理器320执行本文所描述的一个或多个过程。另外或替代地,硬连接电路可以用来代替或结合软件指令以执行本文所描述的一个或多个过程。因此,本文所描述的实施方案不限于硬件电路和软件的任何特定组合。
[0031]图3中示出的组件的数量是为了解释目的而提供。实际上,相比于图3中示出的组件,设备300可以包括额外的组件、更少的组件、不同的组件或不同配置的组件。另外或替代地,计算设备210可以包括一个或多个设备300和/或设备300的一个或多个组件。
[0032]图4是相当于图2的一个或多个组件和/或设备的例示性功能组件400的图。在一些实施方案中,功能组件400被包括在计算设备210和/或安全环境230中。在一些实施方案中,功能组件被包括在与计算设备210分离或包括计算设备210的一个或多个设备中。如图4中所示,功能组件400包括许可证评估器410和许可证实施器420。
[0033]许可证评估器410执行与评估软件许可证有关的操作,以确定软件许可证是否有效。在一些实施方案中,当许可程序220被计算设备210安装时,许可证评估器410生成、接收和/或存储许可证有效性指示符。另外或替代地,当计算设备210接收使用许可程序220的请求时,许可证评估器410基于许可证有效性指示符确定软件许可证是否有效。许可证评估器410可以向许可证实施器420发送指示许可证是否有效的有效性通知。在一些实施方案中,许可证评估器410包括专用硬件(例如,专用安全处理器的至少一部分)。在一些实施方案中,许可证评估器410包括在安全环境中执行的指令(例如软件、固件等)(例如,由专用安全处理器执行的指令、由虚拟安全处理器执行的指令等)。
[0034]许可证实施器420执行与实施软件许可证有关的操作。在一些实施方案中,许可证实施器420可以从许可证评估器410接收指示许可证有效的有效性通知。如果有效性通知指示许可证有效,则许可证实施器420执行安全代码(例如,被计算设备安装在安全环境中),或者解密安全代码和/或信息(例如,使用存储在安全环境中的解密算法)。所述执行和/或解密允许计算设备210执行许可程序220的基本功能。如果有效性通知指示许可证无效,则许可证实施器420不执行安全代码或不解密安全代码和/或信息。在一些实施方案中,许可证实施器420包括专用硬件(例如,专用安全处理器的至少一部分)。在一些实施方案中,许可证实施器420包括在安全环境中执行的指令(例如软件、固件等)(例如,由专用安全处理器执行的指令、由虚拟安全处理器执行的指令等)。
[0035]图4中示出的功能组件的数量是为了解释目的而提供。实际上,相比于图4中示出的功能组件,功能组件400可以包括额外的功能组件、更少的功能组件、不同的功能组件或不同配置的功能组件。
[0036]图5是用于评估和实施软件许可证的例示性过程500的流程图。在一些实施方案中,图5的一个或多个过程块由计算设备210来执行。另外或替代地,图5的一个或多个过程块由与计算设备210分离或包括计算设备210的另一个设备或一组设备来执行。
[0037]如图5中所示,过程500包括生成许可程序的许可证有效性指示符(区块510)。在一些实施方案中,许可证有效性指示符是在许可程序220被计算设备210安装时生成。许可证有效性指示符可以包括安全密匙和/或当许可程序220在被安装于计算设备210上和/或已经在计算设备210上完成安装时所确定的系统时间。
[0038]在一些实施方案中,计算设备210基于许可程序220的安装生成安全密匙。计算设备210可以基于收到用户已经购买允许使用许可程序220的许可证密钥的指示而生成安全密匙。计算设备210使用许可证密钥以及与计算设备210相关的系统识别符生成安全密匙。在一些实施方案中,计算设备210根据密匙生成算法使许可证密钥和系统识别符结合来生成安全密匙。计算设备210将安全密匙存储在安全环境230中(例如许可证评估器410中)。在一些实施方案中,计算设备210将安全密匙存储在与专用安全处理器和/或虚拟安全处理器相关的安全环境中。或者,计算设备210将安全密匙存储在安全环境230以外(例如在存储组件350的非安全存储区中)。在这个实施方案中,计算设备210可以将安全密匙标记为安全,且可以只允许专用安全处理器和/或虚拟安全处理器访问安全密匙。
[0039]许可证密钥在一些实施方案中包括允许访问和/或使用许可程序220 (和/或许可程序220的部分或功能)的字符(例如,字母、数字、符号等)的组合。系统识别符在一些实施方案中包括与计算设备210相关的唯一识别符,例如识别计算设备210和/或计算设备210的组件的序列号或另一唯一识别符(例如,处理器序列号、主板序列号、计算设备210的另一组件例如图2或3中所描绘的组件的序列号等)。在一些实施方案中,系统识别符可以包括与计算设备210相关的多个识别符的组合。
[0040]在一些实施方案中,计算设备210将在许可程序220被安装在计算设备210上时所确定的系统时间存储在安全环境230中(例如许可证评估器410中)。在一些实施方案中,计算设备210将系统时间存储在与专用安全处理器和/或虚拟安全处理器相关的安全环境中。或者,计算设备210将系统时间存储在安全环境230以外(例如在存储组件350的非安全存储区中)。在这个实施方案中,计算设备210可以将系统时间标记为安全,且可以只允许专用安全处理器和/或虚拟安全处理器访问系统时间。计算设备210可以基于接收到使用许可程序220的许可证在经过一段特定时间(例如,30天试用期)后到期的指示而存储系统时间。
[0041]如图5中进一步所示,过程500包括接收使用许可程序的请求(区块520)、确定比较指示符(区块530)以及基于许可证有效性指示符和比较指示符确定许可程序的许可证是否有效(区块540)。在一些实施方案中,计算设备210从计算设备210的用户接收到所述请求。例如,用户可以经由计算设备210的输入组件指示执行许可程序220和/或许可程序220的特定功能的要求。计算设备210还确定比较指示符,并通过将比较指示符与许可证有效性指示符作比较来确定许可程序220的许可证是否有效。计算设备210可以伴随使用许可程序220的请求接收比较指示符,或可以基于接收请求检索和/或生成比较指示符。
[0042]在一些实施方案中,当许可证有效性指示符是安全密匙时,比较指示符是比较密匙。在一些实施方案中,计算设备210接收和/或检索比较密匙(例如,从用户和/或从存储器)。在一些实施方案中,计算设备210接收比较许可证密钥(例如,从用户和/或从存储器),并通过使用密匙生成算法合并比较许可证密钥和系统识别符来生成比较密匙。计算设备210基于比较所述比较密匙和所述安全密匙来确定许可证是否有效。如果比较密匙和安全密匙匹配,则计算设备210确定许可证有效。如果比较密匙和安全密匙不匹配,则计算设备210确定许可证无效。
[0043]在一些实施方案中,当许可证有效性指示符是许可程序220被安装在计算设备210上时所确定的系统时间(“安装时系统时间”)时,比较指示符是在收到使用许可程序220的请求时所确定的比较系统时间(“请求时系统时间”)。计算设备210通过比较安装时系统时间和请求时系统时间来确定许可证是否有效。如果安装时系统时间和请求时系统时间之间的时间差小于阈值(例如,小于试用期阈值例如30天试用),则计算设备210确定许可证有效。如果安装时系统时间和请求时系统时间之间的时间差大于阈值,则计算设备210确定许可证无效。在一些实施方案中,计算设备210从许可程
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1