在云中进行许可的制作方法

文档序号:9929735阅读:406来源:国知局
在云中进行许可的制作方法
【技术领域】
[0001]所公开的技术总体上涉及许可云软件,更具体而言,涉及使用安全、加强的许可机制的许可云软件。
【背景技术】
[0002]随着虚拟化和云基础设施、平台和软件作为服务部署而出现,传统上基于硬件(诸如,防火墙、负载均衡器、广域网优化器等等)的经许可应用和服务正在被部署为虚拟机(VM)。网络功能虚拟化通过允许在云基础设施中使用常见的现货硬件(common-off-the-shelf)将提供成本上的节省并将加速创新,因为将新特征引进到软件中且无需等待新的硬件发布周期是更容易的。当前可用的许可解决方案是专属的,其不是为云设计的,并且不根植在硬件中,这提供了更大的安全性。
【附图说明】
[0003]在附图中,通过示例而非通过限制示出所公开技术的实施例,并且在附图中,相同的参考标号指代相似的元件。
[0004]图1示出在云的上下文中的许可证管理系统,其中,装置(appIiance)或虚拟网功能可在裸金属机器上或管理程序(hypervisor)上运行。
[0005]图2示出具有位于客户端主机上的许可证代理的经许可的装置。
[0006]图3示出使用安全、加强的许可证机制的虚拟化环境。
[0007]图4示出所公开技术的实施例的高层级流程图。
[0008]图5示出许可证代理与许可证服务器之间的消息。
[0009]图6示出根据各个实施例的适用于实践本公开的示例计算设备。
[0010]图7示出根据各个实施例的、具有编程指令并涵盖了本公开的各个方面的制品。
【具体实施方式】
[0011]如在本文中所使用,装置和虚拟网功能(VNF)用于可互换地指代经许可的应用和服务。所公开技术的实施例通过使用下文中将更详细地讨论的英特尔软件防护扩展(SGX)技术或其他可信任执行引擎(TEE)来将许可操作根植在硬件中。在本文中,这些将被称为SEC(指安全设备)JEC可以指SGX或TEE。
[0012]如上文中所讨论,图1示出在云环境的上下文中的许可证管理系统,其中,VNF可以正在裸金属机器上、在容器上或者在管理程序上运行。云环境可包括各种客户端主机100,每一个客户端主机在硬件中都包括SEC 102。每一个SEC 102包括对每一个SEC唯一的并且被存储在SEC 102内的许可证密钥数据。图2示出可位于每一个客户端-主机100上的经许可的装置200或VNF。经许可的装置200包括与SEC 102通信的许可证代理202。
[0013]许可证代理202可安全地与许可证服务器通信以便通过SEC 102来验证许可证。也就是说,许可证代理202可与客户端主机100上的SEC 102通信,随后,该客户端主机100上的SEC 102使用安全许可证密钥数据来安全地与许可证服务器104上的SEC 102通信。
[0014]如上所述,许可证密钥数据对于每一个SEC 102是唯一的,并且保护许可证和密钥数据本身免于被篡改。如将在下文中参照图4更详细地讨论,仅在许可证代理202确定了许可证是有效的之后,装置200才被激活。
[0015]图3示出在云虚拟化环境中运行的许可证管理系统。然而,如上文中所讨论,该许可证管理系统还可在裸金属机器上或在容器中运行。图3的实施例包括诸客户端302,这些客户端302通过回程链路(backhaul)306连接到云虚拟化环境300中的VNF/VM 304。管理程序主管一个或多个VNF,并且在本文中将被统称为诸VMF/VM 304。客户端302也被称为云租户(tenant)。回程链路306可以是云虚拟化环境与诸客户端之间的网络的任何部分。诸VNF/VM 304中的每一个中的SEC 308与许可证服务器系统310通信,该许可证服务器系统310也包括SEC 308。云虚拟化环境300可包括管理程序或云操作系统(0S)312(诸如,开放栈(OpenStack))和平台314。为了易于讨论,下文中将管理程序或云OS 312称为云OS 312。然而,如本领域技术人员将容易理解的那样,可使用管理程序、云OS或等效系统中的任一者。支持云虚拟化环境300的每一个物理计算主机具有一个平台314,并且每一个平台314包括安全时钟316。支持许可证服务器的每一个物理计算主机也具有SEC 308和安全时钟316。同样如下文中将参照图4和图5详细地讨论的那样,由于SEC 308有权访问安全时钟316,这减少了时间操纵攻击事件。
[0016]图4示出用于以许可证来激活VM上的VNF的所公开技术的一些实施例的示例高层级流程。尽管图4示出云OS执行各种操作,但是云OS可集中于启动VM并且可将获取并更新许可证的任务委托给VNF。在图4中示出的高层级流程可跨将期望经由有效的许可来获取确认的所有独立的软件供应商(ISV)和云操作系统来使用。在操作400中,每一个VM中的SEC从安全时钟读取时间。SEC还可将基于平台或硅的随机数生成器用于获取密钥熵并且用作用于检测会话重放的种子。硬件随机数生成器提供了在许可证服务器中特别有用的丰富的随机性流,用于现时数(nonce)生成,建立安全的通信信道,等等。这在其中传统的熵源(诸如,鼠标移动和键盘敲击)不可用的云中特别有用。在操作402中,许可证服务器在与VM相关联的SEC中检索密钥(这些密钥可以是融合密钥、根密钥或受信任平台模块(TPM)密钥)以创建与许可证服务器之间的安全信道。在操作404中,经由与VM/VNF相关联的SEC而将由许可证代理检索到的密钥发送到与许可证服务器相关联的SEC。这在VM/VNF与许可证服务器之间建立了安全的信道,并且确保保护了许可证免受该安全信道外部的未经授权的暴露和复制,因为每一个SEC都具有自身唯一的密钥集。
[0017]在操作406中,客户端在云OS处触发VM/VNF激活。当客户端请求激活时,在操作408中,云OS将如果许可证是有效的就激活VM/VNF的请求发送给VM/VNF。然而,如上所述,VNF可周期性地或者在开机时发送激活请求或许可证更新请求。进而,如下文中参照图5更详细地描述的那样,VM/VNF将客户端的许可证数据(其可包括客户端元数据)发送给与VM/VNF相关联的SEC。在操作410中,VM/VNF请求SEC验证许可证。随后,在操作412中,在与VM/VNF相关联的SEC以及与许可证服务器相关联的SEC之间建立的安全信道上,交换包括客户端元数据的许可证数据,并且与VM/VNF相关联的SEC确定许可证是否有效。在操作414中,与VM/VNF相关联的SEC向与许可证服务器相关联的SEC通知许可证先前是有效的还是无效的。在操作416中,与VM/VNF相关联的SEC还向与许可证服务器相关联的SEC通知许可证当前是有效的还是无效的。在操作418中,也将许可证数据(其可包括客户端元数据)与保存在许可证数据库中的许可证数据进行校验。
[0018]在操作420中,基于许可证的有效性,与许可证服务器相关联的SEC要么将在云OS上触发对VM/VNF的激活,要么将在云OS上停止对VM/VNF的激活。随后,在操作422中,云OS基于从与许可证服务器相关联的SEC接收到的触发来激活或停止VM/VNF。
[0019]VNF可能无法启动客户端或云租户,并且可能无法向客户端或云租户通知发布(issue)o云OS也可被警告此失败,从而可采取某种纠正动作,诸如,如果许可证应付款未支付,或者在云租户的使用已经增加的情况下云提供商获取了更多许可证时通知云租户。取决于各种情况,云OS也可暂停VNF,并且收回资源并且重新分配。
[0020]在替代实施例中,可通过扩展图4的方案来添加在每个平台上的许可证验证。每一个平台的SEC将对许可证认证二进制对象(blob)进行签名,该许可证认证二进制对象包括软件ID、mac地址、主机名称或平台系统ID、安全时间值、随机数等等,并且该许可证二进制对象也被传递到与许可证服务器相关联的SEC。
[0021]在替代实施例中,当VM迀移时,可由诸SEC的网络透明地处理在VM/VNF的迀移期间的许可证授权。在这种情况下,在云OS正在颁布VM/VNF迀移的同时,由该云OS触发许可证激活。许可证服务器感知的云可将指示VM迀移事件的安全消息传送到许可证服务器。云OS将感知是否使用了特殊的VM启动,就如同在服务VM的情况下(例如防火墙、负载均衡器等等)。由于SEC具有永远不被暴露在该SEC的外部的不同且唯一的密钥,因此许可证服务器将假定没有对那些证书的未经授权的使用。因此,与每一个VM/VNF相关联的每一个SEC具有与SEC许可证服务器之间的唯一的通信连接,并且许可证认证受不可否认性(non-repudiat1n)保护。
[0022 ]图5示出许可证代理与许可证服务器之间的消息传送。在后台,许可证服务器持续地收获未刷新已达数个连续的刷新周期的许可证。许可证服务器还可在每一天的结束时生成经签名的审计日志和统计数据,诸如,并发使用的许可证、典型的使用持续时间以及失败的许可证请求的数量。也
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1