安全的应用监测的制作方法

文档序号:20889298发布日期:2020-05-26 17:47阅读:172来源:国知局
安全的应用监测的制作方法



背景技术:

云计算是指被托管在与远程设备通信的服务器上的应用或服务。云计算通过集中服务器场中的计算能力来实现规模经济。将计算能力集中减少了与计算和管理相关联的开销。而且,云计算还分摊了应用和用户上的硬件成本。

然而,在一些情况下,云计算可能不是合适的选择。例如,与云服务器的通信可能并非始终可用,并且通信对于某些应用可能是不切实际的。例如,自动驾驶汽车可能要求本地决策。在这种情况下,通信可能不够快,或者可能存在与网络连接性有关的问题。尽管决策可能会受益于本地设备上更快的执行,但在本地设备处的机器学习中的改进可以全局地使其他本地设备受益。

这种本地设备可以呈物联网(iot)设备的形式,其可以托管模块化应用以执行所需的任务。模块化应用可以指代离散的应用,其执行设备特定的功能,例如,诸如从特定硬件传感器读取数据。在另一示例中,模块化应用可以指代更大的分布式应用的离散部分,其中这些部分可以在iot设备上运行以支持本地决策、保护敏感信息或以其他方式优化应用的一些方面。iot设备可以包括日常物体,例如,诸如烤面包机、咖啡机、恒温器系统、洗衣机、烘干机、灯、汽车等。iot设备还可以包括建筑物和工厂机器中的传感器、远程工业系统中的传感器和致动器等。iot设备可以用于自动化、数据捕获、提供警报、设置的个性化以及许多其他应用。

在构成iot网络的设备上运行模块化应用时,出现许多技术问题,例如,本地设备上的模块化应用可能提供不利的环境,因为这些应用可能是由其真实性可能值得怀疑的源编写(author)的。结果,在这种设备上安全地执行模块化应用可能是具有挑战性的。此外,在这种设备上对资源和模块化应用进行监测和计量(metering)可能是困难的。

附图说明

本公开的特征通过示例而被说明,并且本公开的特征不限于以下的(多个)附图,在附图中相同的附图标记指示相同的元件:

图1图示了根据本公开的示例实现的示例框图,其图示了用于计量设备上的模块化应用并且保护该模块化应用的云计算架构;

图2图示了根据本公开的示例实现的框图,其图示了用于iot数据控制的示例系统;

图3图示了根据本公开的示例的模块化应用的示例性框图;

图4是根据本公开的示例的、用于从安全包围区(enclave)中的模块化应用生成服务或软件的模块化应用的组合的示例性框图;

图5是根据本公开的示例实现的用于基于系统利用率来监测、计量、检测对模块化应用的篡改的计算系统的示例性框图;

图6是根据本公开的示例实现的用于对边缘设备上的模块化应用进行监测、管理、篡改检测和/或计量的计算系统的示例性框图;

图7图示了根据本公开的示例实现的用于本公开的硬件平台的框图;

图8图示了根据本公开的示例实现的用于保护、监测和计量模块化应用的方法的流程图;以及

图9图示了根据本公开的示例实现的用于计量模块化应用的方法的流程图。

图10图示了根据本公开的实施例的、用于使用模块化应用的组合来生成服务或应用的流程图。

具体实施方式

出于简单和说明性目的,本公开主要通过参考本公开的示例来描述。本文描述的本公开的示例可以按照不同的组合一起使用。在以下描述中,细节被阐述以便提供对本公开的理解。然而,将容易变得明显的是,本公开可以在不限于所有这些细节的情况下被实践。而且,贯穿本公开,术语“一”和“一个”旨在表示特定元件中的至少一个。如本文所使用的,术语“包括(include)”意指包括但不限于,术语“包括(including)”意指包括但不限于。术语“基于”意指至少部分地基于。

概述

本公开的各种实现描述了用于在基于iot的计算环境中保护和模块化应用的技术。

根据本公开的一个实施例,系统可以保护、监测和计量模块化应用。模块化应用可以指代可以在本地设备(诸如iot设备)上运行的应用。在一个示例中,模块化应用可以由第三方开发。

模块化应用可以是离散的应用,其执行设备特定的功能,例如,诸如从特定硬件传感器读取数据。模块化应用也可以被实现为分布式应用的一部分,以支持本地决策、保护敏感信息或优化分布式应用的一些方面,诸如节省带宽、降低成本。

在示例中,系统可以生成安全包围区,并且基于与托管模块化应用的本地设备相关联的系统利用率信息来确定模块化应用是否已经被篡改。例如,系统利用率信息可以使用诸如可信平台模块的硬件加密系统来认证。而且,系统可以基于经证实(attested)的系统利用率信息来跨应用、用户等分派系统利用率。

系统的示例可以在本地设备上的安全包围区上执行模块化应用。安全包围区可以是软件包围区或硬件包围区。安全包围区可以创建保护区域,以便所有操作在受保护区域中被执行,并且在执行指令中使用的所有存储器被加密。例如,受保护区域可以在处理器内被生成,并且所有操作可以在该受保护区域内被执行,并且数据可以在该区域内被加密和解密。因此,系统可以在不利的环境中保护模块化应用的操作。

此外,系统的示例可以通过使用安全包围区将来自多个供应方的模块化应用链接到设备上,并且控制分布式输出的输入和输出来生成应用或服务。因此,系统可以将分离在安全区中的模块化应用混合和匹配以生成任何软件或服务。

系统的示例可以使用安全数字账本或分布式账本来计量边缘设备的系统资源利用率。边缘设备可以是被直接连接到iot设备的网络的设备,并且可以具有对云的访问权限。在某些情况下,边缘设备可以具有对云的独占访问权限。网络上的iot设备可以不直接与云服务器通信,并且可以与边缘设备通信,边缘设备被授权以代表iot设备与云服务器通信。

安全数字账本可以被理解为是由可信赖的计量器测量的消费的收据。消费可以被记录在区块链中,并且边缘设备可以发出密码可靠且不可更改的账本,该账本由生产者(编写模块化应用的实体)、消费者(使用模块化应用的实体)和可信服务操作者可察看(利于对由生产者为消费者创建的模块化应用的使用的实体)。

例如,安全数字账本可以利用诸如智能合约的智能小工具(smartlet)来计量模块化应用的使用率。此外,信任根可以用于保护设备、在设备上运行的模块化应用的完整性,以及保护智能小工具的完整性和真实性。在示例中,系统可以利用经过的时间的证明来确定系统资源的利用率。例如,系统可以定期从安全包围区请求等待时间。安全包围区可以包括对等待时间的请求进行响应的指令。在示例中,处理器可以包括对等待时间的请求进行响应的指令,其中较短的等待时间对应于系统资源的可用性。

在其他示例中,系统可以基于工作证明的共识来计量本地设备的资源利用率。当模块化应用在安全包围区中被执行时,系统可以嵌入指令以生成工作证明的哈希。工作证明的哈希可以包括执行的时间、资源利用率,并且可以考虑一次数(nonce),即随机数。例如,安全数字账本上的智能合约可以生成随机数,并且工作证明的哈希可以被生成,其包括执行的时间、资源利用率和随机数。安全包围区可以在计算工作证明的哈希时消耗系统资源。在示例中,工作证明的哈希可以基于运行模块化应用的设备的系统资源(诸如处理能力、可用存储器等)而被校准。

在示例中,运行模块化应用的设备可以将执行的时间和资源利用率存储在分布式账本中。分布式账本支持对运行模块化应用的本地设备上的资源利用率的防篡改跟踪。系统可以使用分布式账本计量和分派资源利用率。

而且,或者在其他示例中,系统可以利用基于中本聪(nakamoto)共识或拜占庭式容错的共识技术,来为安全包围区中的模块化应用生成执行的时间和资源利用率的可验证的证实。因此,系统可以计量在不利的本地设备(即,因其真实性而不可以被信任的设备)上的系统利用率。

在示例中,系统可以基于由硬件加密设备(诸如,可信平台模块)密码证实的本地设备上的资源利用率,来确定本地设备上的模块化应用是否被篡改。

因此,本公开提供了用于确定模块化应用是否被篡改,并且还提供了用于对资源/模块化应用进行准确和可靠的计量。这种提供又可以帮助利用适当的计量将智能从云引入本地设备。这也确保了现在模块化应用和/或设备(这些应用和/或设备原本可能不被信任并且可能具有有限的用途)可以被轻松使用,而没有任何安全性相关和真实性相关的问题。

尽管在本公开的全部内容中进行了具体描述,但是本公开的代表性示例在广泛的应用中具有实用性,并且以上讨论不旨在并且不应当被解释为限制性的,而是作为本公开的各方面的说明性讨论而被提供。

图1图示了用于计量和保护设备上的模块化应用的云计算架构100的示例示意图。云计算架构100实现本公开的各方面。将理解,图1中图示的组件仅出于说明目的,并且云计算架构100不应当被解释为具有与本文中说明的任何单个组件或组件的组合有关的任何依赖性或要求。另外,在本公开的实施例的范围内,任何数目的节点、虚拟机、数据中心、角色实例或其组合可以被采用以实现期望的功能性。

图1的分布式计算环境包括公共网络102、私有网络104和专用网络106。公共网络102可以是例如公共云。私有网络104可以是私有的企业网络或私有云,而专用网络106可以是第三方网络或专用云。在该示例中,私有网络104可以托管客户数据中心110,并且专用网络106可以托管互联网服务提供方112。混合云208可以包括公共网络102、私有网络104和专用网络106的任何组合。例如,专用网络106可以是可选的,而混合云208由公共网络102和私有网络104组成。

公共网络102可以包括被配置成托管和支持包括模块化应用的任务的多个操作的数据中心。将理解,图2中所示的数据中心114和数据中心116对应于用于容纳一个或多个模块化应用的示例实现,并且不旨在限制本公开的实施例的使用范围或功能性。数据中心114和数据中心116可以不具有与任何单个资源、资源的组合、服务器(例如,服务器120、服务器122和服务器124)的组合、节点(例如,节点132和节点134)的组合或api集有关的任何依赖性或要求,以访问资源、服务器和/或节点。

数据中心114图示了包括多个服务器(诸如,服务器120、服务器122和服务器124)的数据中心。结构控制器126-1可以负责自动地管理服务器120-124,并且负责在数据中心114内分发任务和其他资源。通过示例,结构控制器126-1可以依靠例如由拥有模块化应用的客户设计的服务模型,来提供关于配置服务器122的方式、地点和时间的指导并且提供关于在其上放置应用128-1和应用128-2的方式、地点和时间的指导。应用128可以是模块化应用。在一个实施例中,模块化应用的一个或多个角色实例可以被放置在数据中心114的一个或多个服务器上,其中一个或多个角色实例可以表示参与模块化应用的软件、组件程序或角色实例的部分。在另一实施例中,一个或多个角色实例可以表示模块化应用可访问的所存储的数据。

参考数据中心116,数据中心116可以包括多个节点,诸如节点132和节点134。通常,节点132和节点134中的每个节点包括或被链接到某种形式的计算单元(例如,中央处理单元、微处理器等)以支持在其上运行的(多个)组件的操作。计算单元可以指代具有处理能力和存储存储器的专用计算设备,其支持作为在其上执行软件、应用和计算机程序的基础的操作软件。在一个实例中,计算单元被配置有一体的或可操作地耦合到节点的有形硬件元件或机器,以使每个设备能够执行各种处理和操作。

在另一实例中,计算单元可以涵盖被耦合到由节点中的每个节点容纳的计算机可读介质(例如,计算机存储介质和通信介质)的处理器(未示出)。

返回参考数据中心116,一个或多个虚拟机可以在数据中心116的节点上运行,例如,诸如虚拟机136可以在节点134上运行。尽管图1描绘了在数据中心116的单个节点上的单个虚拟节点,但根据本公开的说明性实施例,任何数目的虚拟节点可以在数据中心的任何数目的节点上被实现。

虚拟机136可以基于需求(例如,放置在模块化应用上的处理负载的量)而被分配给模块化应用或服务应用的角色实例。虚拟机136包括可以由处理单元执行以作为被分配给其的角色实例的功能性的基础的任何软件、应用、操作系统或程序。此外,虚拟机136可以包括数据中心116内的处理能力、存储位置和其他资产,以适当地支持所分配的角色实例。

在操作中,诸如虚拟机136的虚拟机可以被动态地分配在数据中心116的第一节点(诸如节点132)和第二节点上的资源,并且端点(例如,角色实例)被动态地放置在虚拟机136上以满足当前的处理负载。在一个示例中,数据中心116的结构控制器126-2可以负责自动管理在数据中心116的节点上运行的虚拟机136,并且负责将角色实例和其他资源(例如,软件组件)放置在数据中心116内。通过示例,结构控制器126-2可以依靠于服务模型(例如,由拥有服务应用的客户设计)来提供关于配置虚拟机(诸如虚拟机136)的方式、地点和时间的指导,并且提供关于在其上放置角色实例的方式、地点和时间。

如上所述,虚拟机可以在数据中心的一个或多个节点内被动态地建立和配置。如所图示的,节点132和节点134可以是任何形式的计算设备,例如,诸如个人计算机、台式计算机、膝上型计算机、移动设备、消费电子设备、(多个)服务器等。在一个实例中,节点132和134托管并且支持虚拟机的操作,同时托管旨在支持数据中心116的其他租户(诸如内部服务138和托管的服务140)的其他虚拟机。角色实例通常可以包括由不同客户拥有的独特的服务应用的端点。

驻留在节点132和节点134上的角色实例支持服务应用的操作,并且可以经由应用编程接口(api)互连。在一个实例中,这些互连中的一个或多个可以经由诸如公共网络102的网络云来建立。网络云用于互连诸如角色实例的资源,这些资源可以可分布地跨各种物理主机(诸如节点132和节点134)放置。此外,网络云还有助于在通道上的通信,该通道将在数据中心116中运行的服务应用的角色实例连接。通过示例,网络云可以包括但不限于一个或多个局域网(lan)和/或广域网(wan)。

图2是图示根据本公开的示例实现的系统200的各种组件的框图,其用于监测和保护与iot设备210相关联的模块化应用。系统200可以包括连接各种组件的网络212,例如,各种组件诸如是iot集线器214、一个或多个iot设备210-1、210-2…210-n、一个或多个网关设备216-1…216-n和应用后端218。

iot设备210和网关设备216是边缘设备的示例,并且iot集线器214可以在云中。iot设备210可以指代旨在利用iot服务的设备。iot设备210实际上可以包括可能能够连接到云以使用iot服务或用于任何其他目的的任何设备。iot设备210可以包括日常对象,诸如烤面包机、咖啡机、恒温器系统、洗衣机、烘干机、灯、汽车等。iot设备还可以包括例如“智能”建筑物中的各种设备,包括灯、温度传感器、湿度传感器、占用传感器等。iot设备的iot服务可以用于设备自动化、数据捕获、提供警报、设置的个性化以及许多其他应用。

应用后端218指代一个设备或诸如分布式系统的多个设备,其可以执行支持数据收集、存储的动作和/或执行基于iot数据而采取的动作(包括用户访问和控制、数据分析、数据显示、数据存储的控制)、执行基于iot数据而采取的自动动作等。在一个示例中,应用后端218可以被实现为被部署在以上图2中描述的公共云202或私有云204中的一个或多个虚拟机136。在一些示例中,由应用后端218采取的至少一些动作可以由运行在应用后端218中的应用执行。

iot集线器214可以指代一个设备或诸如分布式系统的多个设备,在一些示例中,iot设备在网络上连接到iot集线器214以获得iot服务。在一些示例中,iot集线器214被排除,并且iot设备210直接或通过一个或多个中介与应用后端218通信,而无需与iot集线器214通信。iot设备210的用户可以经由与iot服务解决方案通信来接收iot服务。

iot解决方案服务不限于一种特定类型的iot服务,而是还可以指代iot设备(在提供之后)与其通信以获得至少一个iot解决方案或iot服务的设备。因此,iot解决方案服务可以指代任何iot解决方案。在各种示例中,iot解决方案服务可以是iot集线器214或应用后端(例如,iot解决方案服务可以是应用后端中的软件组件)。例如,在包括iot集线器214的情况下,iot集线器214可以充当iot解决方案服务。在其他示例中,在iot集线器214从系统200被排除的情况下,应用后端218可以充当iot解决方案服务。此外,iot集线器214可以指代所提供的iot设备与其通信的iot解决方案/iot服务的一部分。

iot设备210、网关设备216和/或包括iot集线器214和/或应用后端218的设备中的每个可以被实现为计算设备或可以使用稍后描述的硬件平台来实现。iot设备210与一个或多个应用后端218之间的通信可以在iot集线器214作为中介的情况下来进行。

参考连接系统200的各个组件的网络212,网络212可以包括一个或多个计算机网络,包括有线和/或无线网络,其中每个网络可以是例如无线网络、局域网(lan)、广域网(wan)和/或全球网络(诸如互联网)。在互连的lan集(包括基于不同架构和协议的那些lan)上,路由器充当lan之间的链接,使消息能够从一个lan发送到另一个lan。此外,lan内的通信链路通常包括双绞线或同轴电缆,而网络之间的通信链路可以利用模拟电话线、包括t1、t2、t3和t4的完整或部分专用数字线、综合业务数字网(isdn)、数字用户线(dsl)、包括卫星链路的无线链路或本领域技术人员已知的其他通信链路。此外,远程计算机和其他相关的电子设备可以经由调制解调器和临时电话链路被远程地连接到lan或wan。

网络212可以包括各种其他网络,诸如使用诸如6lowpan、zigbee等的本地网络协议的一个或多个网络。一些iot设备可以经由网络212中与其他iot设备不同的网络被连接到网关设备。因此,网络212可以包括任何通信方法,通过该通信方法,信息可以在iot集线器214、iot设备210、网关设备216和应用后端218之间传播。尽管每个设备或服务被示为被连接到网络212,但所有设备无需彼此通信。在一些示例中,所示的一些设备/服务仅经由一个或多个中介设备(例如边缘设备)与所示的一些其他设备/服务通信。

此外,将理解,网络212可以被实现为单个网络或可以彼此连接或可以不彼此连接的多个网络的组合。在多网络配置的情况下,设备中的一些设备可以使用一个网络彼此通信,而其他设备可以通过不同的网络进行通信。

在操作中,iot设备210是旨在利用由iot解决方案服务提供的iot服务的设备,在一些示例中,iot解决方案服务包括一个或多个iot集线器,诸如iot集线器214。应用后端218包括执行向iot设备的用户提供设备门户的动作的设备或多个设备。可选的网关设备216是可以由iot设备210中的一些使用来访问iot集线器214的设备。在一些示例中,在提供之后,一些或所有的iot设备210与iot集线器214通信,而无需使用中介。在其他示例中,一些或全部的iot设备210使用诸如网关设备216中的一个或多个的中介设备与iot集线器214通信。应用后端218是一种服务,其可以由iot设备的用户使用来管理用于iot设备(包括iot设备210)的iot服务。

图3是根据本公开的示例实现的模块化应用302的示例框图。模块化应用的示例可以包括人工智能应用、机器学习应用等。出于说明而非限制的目的,图示了在边缘设备(诸如,iot设备210)上运行的模块化应用302的各种实例302a-302d或各种应用302a-302d。在一个示例中,实例302a、302b、302c和302d可以是相同应用的不同实例。在其他示例中,实例302a、302b、302c和302d可以是不同应用的实例。

根据一个示例,模块化应用302和/或过程304在安全包围区中被分离地示出。安全包围区可以创建保护区域,以便所有操作在受保护区域中被执行,并且在执行指令中使用的所有存储器被加密。模块化应用302和过程304被示为由水平线和垂直线分离。为了说明而非限制,水平线可以指示父母与孩子之间的分隔,而垂直线可以指示在多个边缘设备上执行的虚拟机实例或模块化应用之间的分隔。

在一个示例中,边缘设备可以以硬件或软件来实现安全包围区。例如,模块化应用管理器(图6中示出)可以包括策略集,以使用信任根和诸如可信平台模块(tpm)的硬件加密设备306来实现不同级别的安全包围区。在边缘设备中,硬件加密设备306可以允许平台对外部实体的证实。例如,外部实体可以接收边缘设备未被篡改的确认。这可能意味着不存在固件的修改、设备上运行的操作系统尚未被修改等。这可以增强模块化应用302的可靠性,否则它可能不被消费者信任。

在示例中,边缘设备可以使用诸如tpm芯片的硬件加密设备306来生成安全包围区。tpm芯片和/或安全包围区可以保护iot芯片/设备的固件的完整性、操作系统的完整性、应用代码和数据的机密性和完整性,允许到用户的可信路径以及用户数据的机密性,和/或到设备的或在应用之间的安全通道可以被实现。

例如,边缘设备可以包括用于生成信任根308(可互换地被称为根)的硬件加密设备306。在其他设备中,硬件加密设备306可以生成其他信任根308-1、308-2等。在示例中,硬件加密设备306可以包括由嵌入在除硬件加密设备306之外无法访问的硬件中的设备的制造方发起的信任根308。信任根308可以是一个或多个密码签名密钥。硬件加密设备306的密码签名密钥可以由诸如设备制造方的证书颁发机构(图5中示出)进行认证。证书颁发机构可以维护安全设备和安全级别的列表。例如,安全设备可以包括分离的硬件,以将存储器隔离并且在硬件内执行所有计算,该硬件不能由边缘设备中的其他应用或固件访问。

被隔离并且使用专用硬件的安全包围区可以被授予证书颁发机构的数据库中的最高信任级别。在示例中,诸如设备制造方的证书颁发机构可以利用硬件加密设备306对边缘设备赋予较低级别的信任,硬件加密设备306依赖于通用处理器的和边缘设备的存储器来创建安全包围区。在其他示例中,专用处理器可以包括硬件指令,该硬件指令将存储器和操作隔离开,并且将操作和存储器从其他应用和操作系统安全地加密。这些专用处理器可以允许具有最高信任级别的安全包围区的动态创建,该最高信任级别可以在证书颁发机构的数据库中进行详细说明。

在一个示例中,硬件加密设备306可以生成信任根308,基于直接自治证实,该信任根是匿名的。匿名信任根可以包括一个或多个密码密钥,诸如公共密钥-私有密钥对。在匿名的信任根中,密码密钥在没有证书颁发机构的情况下被生成。在示例中,秘密号码可以由硬件加密设备306生成,然后该秘密号码可以用于生成被传送给直接匿名证实发行者的直接匿名证实密钥。此外,可以向直接匿名证实发行者验证,哈希是否使用仅硬件加密设备306知晓的秘密号码(该秘密号码不与直接匿名证实发行者共享)而被创建。

直接匿名证实者也生成哈希以证明直接匿名证实者也计算出了哈希,该哈希在没有第三方信任直接匿名证实者的情况下可验证。例如,直接匿名证实者可以生成一次数并将该一次数传送到硬件加密设备306,硬件加密设备306可以在计算之后生成哈希以满足一次数规则。然后,直接匿名证实密钥可以被用来对由用于认证的硬件加密设备306生成的证实密钥进行签名。由硬件加密设备306生成的证实密钥与从另一硬件加密设备306生成的密钥不可区分,并且可以在边缘设备身份和位置可能需要保密的地方被使用。

在一个示例中,硬件加密设备306可以使用利用直接匿名证实密钥签名的证实密钥,或可以使用可由证书颁发机构验证的证实密钥,来证实文件的哈希、存储器的内容、操作系统的状态、过程的状态、注册表条目的状态、多个过程的状态、过程的权限、访问权限等。在直接匿名授权的情况下,硬件加密设备306可以生成正被认证的内容的哈希,基于证实标识密钥、验证者和时间来确定签名。硬件加密设备306还可以确定计算解决方案,该计算解决方案确立硬件加密设备306具有:(i)利用发行者的签名进行签名的直接匿名证实密钥;和(ii)使用直接匿名证实密钥签名的证实身份密钥、验证者信息和验证的时间。诸如安全管理器的验证者可以验证硬件加密设备306和状态。附加地,受损的硬件加密设备可以基于请求的时间并且基于是否从硬件加密设备306接收到用于验证的多个请求而被标识。此外,受损的硬件加密设备可以被列入黑名单。

在一个示例实现例中,模块化应用管理器可以使用硬件加密设备306来生成安全包围区。安全包围区可以使用安全策略集来生成,诸如围绕模块化应用实例302a和302b的安全包围区。例如,策略集(图6中示出)可以包括多个策略,诸如软件堆栈的证据。软件堆栈的证据可以包括固件、os、在边缘设备上运行的应用等。哈希允许模块化应用管理器确定边缘设备的完整性测量。

此外,模块化应用管理器可以使用硬件加密设备306,使用远程系统策略执行来生成安全包围区。远程策略的示例包括可执行文件的权限、模块化应用的权限、操作系统过程的权限,并且可能非常精细。在示例中,策略执行可以包括系统资源利用率的计量、模块化应用处理数据所花费的活动时间、所利用的cpu的量、来自其他应用的资源利用率请求、来自其他应用的被拒绝的请求、由模块化应用消耗的数据的量、由模块化应用产生的输出的量以及处理的强度和存储器利用率等。在示例中,应用管理器506可以接收具有经认证的系统资源利用率的日志存底的日志,以确定对每个特定用户、应用等的计量的分配。

在一个示例中,模块化应用管理器可以保护操作环境的状态,监测过程、模块化应用管理器的安全策略等之间的任何恶意交互。在一个示例中,在生成诸如302a的子模块化应用之前,硬件加密设备306可以锁定对除模块化应用管理器的策略集所允许的那些过程之外的所有过程的访问。在其他示例中,模块化应用管理器可以部署安全管理器310,来委派安全包围区的实时安全和计量策略。安全管理器310可以生成诸如302a的子模块化应用。在示例中,创建子模块化应用302a提供了远离存储器其余部分的抽象层,并且可以将数据存储在不利的边缘设备中的安全归档文件中的存储器中的加密位置中。在其他示例中,模块化应用管理器可以通过保护以下各项来生成安全包围区:应用的过程、用于执行应用的存储器、对包括可执行文件的文件的权限等。tpm可以加密由应用使用的过程和存储器,以最小化数据破坏的风险。

在一个示例实现中,边缘设备可以在安全包围区中运行模块化应用302a,并且执行的结果可以由安全管理器310接收。安全管理器310然后可以将这些结果用作第二模块化应用实例302c的输入。因此,边缘设备可以允许模块化应用实例302a和302c在彼此之间传输数据,同时被封闭在相应的安全包围区中以防止对代码的篡改。

如进一步所示的,过程304可以使用安全策略在模块化应用内被隔离,以防止恶意代码对归档文件内部可执行文件的更改。例如,过程304可以与其他过程隔离以处理从第三方模块化应用实例302a接收的数据。在示例中,模块化应用管理器可以在一个或多个边缘设备上隔离模块化应用。

在一个示例中,硬件加密设备306可以直接基于策略集来允许两个模块化应用(示例实例302b和302c)之间的通信。例如,模块化应用302a可以在其空间中运行的模块化应用302a上方运行如图3中所示的彼此隔离的线程或过程。因此,模块化应用管理器可以使用硬件加密设备306来监测、管理和控制安全包围区。在模块化应用被执行时,安全包围区可以允许模块化应用之间、模块化应用与操作系统之间进行代码、存储器和/或两者的数据隔离。

在一个示例中,安全管理器310可以被实现为父应用。在其他示例中,安全管理器310可以在结构设备218上被实现。在示例中,在父应用(诸如父模块化应用)之上运行的模块化应用302a可以进一步通过安全管理器310使用安全通道来创建附加的安全包围区。硬件加密设备306可以允许安全通信,以防止安全管理器310窃听通信。因此,模块化应用管理器可以在安全环境中监测、管理和维护模块化应用。

模块化应用管理器可以允许资源利用率计量和度量。资源利用率监测可以允许边缘设备基于以下各项生成发票:系统资源的实际利用率、模块化应用的实际操作时间、由模块化应用处理的数据的量、模块化应用的输出的量等。在一个示例中,模块化应用管理器可以确定使用模式中的统计变化,并且记录模块化应用做出的与其他过程进行交互或从分配给其他过程的存储器取回数据等的任何尝试。

图4是根据本主题的示例实现的、用于生成集成模块化应用的模块化应用302的组合的示例性框图。在一个示例中,集成模块化应用可以作为服务被提供给消费者。在示例中,当在安全包围区中运行时,模块化应用实例302a可以从模块化应用管理器接收输入402,并且将数据输出到模块化应用管理器。然后,模块化应用管理器可以将输出数据用作模块化应用302e的输入。模块化应用302a和资源利用率细节可以被审计。

模块化应用实例302可以用于根据需要创建任何服务或软件。例如,这种集成模块化应用可以被生成以用于大型工业机器。该机器可以配备有几个不同的传感器,这些传感器可以测量诸如温度、转数、粘度、压力、行程等的参数。每个传感器可以将数据发送到不同的模块化应用实例。另一个模块化应用实例可以聚合和分析数据,以标识可以指示即将发生故障的模式。在标识这种模式时,模块化应用可以将警报发送到控制应用,控制应用也可以是模块化的。此外,控制应用可以在接收到警报时安全地关闭机器。实现模块化应用的系统也可以将警报转发到云服务器,但是收集、分析和控制在本地发生以防止灾难性故障。

针对模块化应用的这种模块化方法可以保护操作系统的完整性、模块化应用302的一个或多个实例的完整性、在一个或多个模块化应用302中的算法和秘密的完整性、一个或多个模块化应用302的各个线程的完整性、由模块化应用302使用的存储器位置的完整性和/或防止访问或确定盗贼(rogue)应用等。

图5图示了根据本公开的示例实现的、用于计量系统利用率并且基于系统利用率来监测模块化应用篡改的计算系统500的示例框图。计算系统500可以提供用于计量边缘设备502上的系统利用率。此外,计算系统500可以监测、管理和计量本地设备中的模块化应用篡改,而本地设备可以结合来自第三方的应用在不利的环境中运行。计算系统500可以被实现在公共云、私有云、混合公共和私有云、分布式计算系统或包括托管应用实例的多个节点的任何其他类型的系统中。

在一个示例中,结构控制器504可以实现模块化应用管理器506。此外,安全管理器510可以被实现在一个或多个边缘设备502上。边缘设备502可以在本地设备308上托管一个或多个模块化应用302。尽管示出了单个本地设备(诸如边缘设备502),但是将理解,计算系统500可以包括多个本地设备,每个设备托管一个或多个应用。

在系统利用率监测中,结构控制器504可以使用模块化应用管理器506和策略集508,以在边缘设备502上创建安全包围区和/或监测安全包围区。例如,策略集508可以包括:关于保护边缘设备502的策略、用于计量边缘设备502的使用率的策略、用于计量模块化应用302的使用率的策略、用于模块化应用302、其他应用和限制之间的可允许交互的策略,等等。

在一个示例实施例中,结构控制器504可以将安全策略委托给边缘设备502的安全管理器510。安全管理器510可以被实现成安装在边缘设备502上的服务或应用。在其他示例中,安全管理器510可以在结构控制器504上被实现。安全管理器510可以如上面参考图4所描述的那样保护应用。在示例中,安全管理器510可以通过使用硬件加密设备306来保护由模块化应用302a使用的过程和存储器,来保护模块化应用302a。当需要时,安全管理器510可以如上面参考以上附图所讨论的那样将模块化应用302a保护在安全包围区中。

当不存在安全管理器510时,模块化应用管理器506可以基于鉴定方法来监管、管理和计量模块化应用302a。在鉴定方法中,模块化应用302b可能被要求实现某些模块或指令以对其自身进行认证。模块化应用管理器302b可以向边缘设备502发送鉴定请求,以获得模块化应用的鉴定。在一个示例中,边缘设备的硬件加密设备306可以执行鉴定。

在示例中,模块化应用302b的鉴定者(图中未示出)可以生成公钥和私钥,并且请求硬件加密设备306认证公钥和私钥对。硬件加密设备306可以生成应用的哈希,并且生成包括模块化应用的公钥和哈希的证书,并且使用硬件加密设备的证实身份密钥对证书进行签名。

模块化应用302b的鉴定者可以被要求在各种场景中进行认证,场景例如是当模块化应用管理器506请求时、定期地、当模块化应用启动时、当模块化应用要求认证以继续操作或要求认证以提高系统利用率时。为了认证,鉴定者可能需要附加的信息、访问其他应用过程等,并且发送其公钥的证书以及哈希值和由硬件加密设备306发出的证书。模块化应用管理器506可以使用诸如设备制造方的证书颁发机构512来验证证书链。在示例中,模块化应用302b可以使用直接匿名证实,如上面参考图3至图4所描述的。

在一个示例中,模块化应用管理器506可以授权改变或确认认证。在其他示例中,模块化应用管理器506可以从模块化应用302a请求附加信息。模块化应用302a可以提供附加信息,诸如使用由模块化应用管理器506生成和提供的一次数,来证实系统利用率日志或系统安全细节、软件堆栈完整性等。类似于上文所述的直接匿名证实,模块化应用302b可以请求硬件加密设备306使用一次数和由硬件加密设备306生成的秘密值来生成计算的证明。硬件加密设备306可以包括系统利用率日志的哈希、系统安全策略、系统状态信息、系统存储器哈希等以及计算的证明。

在一个示例实施例中,安全管理器510可以生成模块化应用302的可执行文件的哈希、存储器的哈希以及模块化应用302a的中间状态。硬件加密设备306可以生成包括哈希和公钥的证书,并且利用其证实身份密钥对该哈希进行签名。安全管理器510可以将认证传送到模块化应用管理器。在示例中,除了由硬件加密设备306发布的证书之外,安全管理器510还可以传送由受信证书颁发机构512发布给硬件加密设备306的证书。

模块化应用管理器506可以通过对证书链进行验证,来验证模块化应用302、边缘设备502、软件堆栈等的可信度。例如,硬件加密设备的真实性可以基于由证书颁发机构512发行的证书来验证。模块化应用管理器506可以针对数据库查找所接收的哈希,该数据库将硬件加密设备的哈希值映射到信任级别。

硬件加密设备306可以被实现为分立设备、集成设备、固件设备和/或软件设备。本地设备可以使用这些方法学中的任何一种来实现硬件加密设备。分立的硬件加密设备可以提供最高的安全级别。例如,分立的tpm芯片针对可以抵抗篡改的最高的安全级别而被设计、建立和评估。集成的硬件加密设备可以被集成到提供除安全之外的功能的芯片中。与仅软件解决方案相比,硬件实现使集成的硬件加密设备更加安全。基于固件的硬件加密设备可以被实现在受保护的软件中。固件硬件加密设备中的代码可以在主cpu上运行,并且可能不需要分离的芯片。固件硬件加密设备可以在被称为受信任执行环境(tee)的受保护执行环境中运行,该受信任执行环境(tee)与cpu上正在运行的程序的其他部分分开。tee将tpm可能需要的私钥等分离,以防止黑客入侵。然而,tee安全性可以取决于tee操作系统、tee中运行的应用代码中的漏洞(bug)等。硬件加密设备还可以被实现为tpm的软件仿真器。

在一个示例实施例中,模块化应用信任级别可以是基于本地环境上可用的硬件加密设备的类型。在示例中,安全管理器510可以使用硬件加密设备来执行:对外部实体的平台证实;操作系统和基础架构的完整性保护;在执行期间对应用代码和数据的机密性和完整性保护;在存储期间对应用代码和数据的机密性和完整性保护;到用户的受信任路径,以便可以确保用户输入的机密性,和/或到设备以及在应用之间的安全通道,以确保所通信的数据的机密性、完整性和可靠性。

在一个示例实现中,硬件加密设备306可以生成模块化应用的可执行代码的哈希值和模块化应用的状态(即在执行期间的数据)。模块化应用的状态可以包括在模块化应用的执行期间的存储器的内容。

在一个示例中,一旦模块化应用和/或边缘设备被认证并且未检测到篡改,计量就可以被执行并且所观察的数据可以被存储在计量数据514中。

图6图示了根据本公开的一个示例实现的计算系统600的示例框图,计算系统600用于监测、管理、篡改检测和/或计量在边缘设备(诸如边缘设备502)上的模块化应用302。图6图示了对诸如区块链的分布式账本610的利用,以管理边缘设备502上的模块化应用。在示例中,模块化应用管理器506可以将策略管理集中的一些或全部委托给安全管理器510。安全管理器510被示为在边缘设备502外部,但是在其他示例中,安全管理器也可以如上所述部署在边缘设备502内部。对边缘设备上的模块化应用的监测、管理和篡改检测的示例可以使用诸如区块链的分布式账本来执行。

尽管已经相对于区块链相当详细地解释了监测、管理和篡改检测,但是将理解,其他形式的智能账本和分布式账本也可以被使用。因此,关于区块链描述的原理也可以被应用于这种分布式账本。

在一个示例中,在使用区块链时,密码证明的交易被添加到区块链上的新区块以创建分布式账本,这在不使用中介的情况下防止了双重支出。如本文所述,当在其他地方使用边缘设备上的系统资源或模块化应用时,双重支出可以与要求资源利用、输入处理或生成的输出的模块化应用有关。

在一些区块链实现中,一个或多个智能小工具(例如,智能合约612)可以被部署在区块链或分布式账本610上。当被部署时,智能小工具可以被分配唯一的地址,以允许通过消息进行通信。智能小工具可以通过将智能小工具作为交易存储在区块链上来部署。到智能小工具的消息可以作为交易被发布在区块链上。智能小工具可以包含被设计成在虚拟机上执行的代码和数据。智能小工具可以具有以下能力:读取或写入存储数据的其内部存储装置、读取所接收的消息的存储、向其他智能小工具发送消息以触发其他模块化应用中的代码的执行。

在一个示例实现中,当智能小工具在保护区块链的对等方的虚拟机上被执行时,所得的数据可以被保存在智能小工具的内部存储装置中,并且更新的智能小工具可以作为交易被存储在区块链上。因此,智能小工具和对数据(即智能小工具的状态)的改变可以被表示为区块链上的一系列交易。区块链中的每个区块由基于共识协议的对等方保护。

智能小工具可以允许对账户的义务和负债中的一些或全部的管理和执行,账户诸如是可以与智能小工具交互的用户。智能小工具可以使用一种被称为实用程序智能小工具的智能小工具,以向其他智能小工具提供功能的库。在一个示例中,实用程序智能小工具可以获得关于可能影响各方对智能小工具的义务和负债的状况的更新,诸如影响边缘设备的最新安全威胁。

在一个示例中,安全管理器510可以被实现为智能合约612。智能合约612可以包括针对边缘设备502上的模块化应用302a的安全策略。智能合约612可以包括用于认证签名消息的代码、用于生成安全和/或管理安全包围区的代码等。

智能合约612可以包括针对模块化应用302a的安全策略。例如,安全策略可以列出:边缘设备502上的模块化应用302a可访问的操作系统的过程或功能,在边缘设备502上生成安全包围区所需的安全策略等。智能合约612可以包括用于认证由来自边缘设备502的硬件加密设备306签名的哈希的逻辑。智能合约612还可以包括用于在区块链上记录模块化应用302a的审计存底的代码。在示例中,智能合约612可以仅将哈希记录在区块链上。

在一个示例实现中,智能合约612可以将哈希和数据记录在区块链上。例如,智能合约612可以包括用于生成一次数以挑战模块化应用302a的代码。一次数挑战可能要求硬件加密设备306使用仅对硬件加密设备306知晓的秘密密钥来生成计算证明。在一个示例中,智能合约612可以使用如上所述的分布式匿名认证来发送拥有诸如号码的秘密密钥的计算证明。智能合约612可以通过利用一次数进行响应来验证秘密的存在。硬件加密设备306可以返回包括一次数的计算证明以认证硬件加密设备306。

在示例中,智能合约612可以包括用于执行上面参考图5描述的模块化应用管理器的功能中的一些或全部的逻辑。模块化应用管理器506或另一应用可以从区块链中取回条目以确定利用率。例如,结构控制器504可以定期地从区块链中取回信息以标识相关的交易并且计量模块化应用302a的使用率等。模块化应用管理器506可以将所接收的信息存储在数据库(诸如计量数据514)中。在示例中,模块化应用管理器506可以使用区块链上的审计存底来标记边缘设备502a上的模块化应用302的可疑动作。

此外,其他区块链实现(诸如,联盟区块链、具有集中的集线器的区块链、相同区块链的不同版本等)可以用于计量系统利用率。计量系统利用率可以允许按比例分享不同项目、不同应用的账单。例如,模块化应用管理器506对于模块化应用的高峰执行和非高峰执行可以具有不同的速率。在其他示例中,模块化应用管理器506可以对每月使用率施加上限或施加最大支付上限等。而且,当模块化应用302a被启动时,模块化应用管理器506可以基于需求的激增而收取不同的价格。在示例中,模块化应用管理器506可以基于以下各项来收取不同的价格:对模块化应用的输入或输出数据的量、中央处理单元的利用率、边缘设备上的存储器的利用率、在执行期间利用的特征集,诸如更高级功能集可能需要附加的溢价,等等。在示例中,区块链可以用于对模块化应用302的利用进行自动结算支付。

图7图示了根据本公开的一个示例的硬件平台700,其用于实现节点132和节点134、系统200、iot集线器、边缘设备502和上述其他计算设备。在一个示例实施例中,硬件平台700可以是用于实现本文描述的各种内容的计算设备。计算设备可以表示计算平台,该计算平台包括可以在服务器或另一计算设备中的组件。在一个示例实施例中,计算设备可以包括但不限于膝上型电脑、台式机和智能电话。计算设备可以由处理器(例如,单个或多个处理器)或其他硬件处理电路来执行本文描述的方法、功能和其他过程。这些方法、功能和其他过程可以被体现为存储在计算机可读介质上的机器可读指令,计算机可读介质可以是非瞬态的,诸如硬件存储设备(例如,ram(随机存取存储器)、rom(只读存储器)、eprom(可擦除可编程rom)、eeprom(电可擦除可编程rom)、硬盘驱动器和闪存)。

计算设备可以包括处理器702,处理器702可以实现或执行用于执行本文描述的方法、功能、技术和/或其他过程中的一些或全部的机器可读指令。来自处理器702的命令和数据可以在通信总线604上被传达。计算设备还可以包括主存储器706(诸如随机存取存储器(ram)),在运行时期间,用于处理器702的机器可读指令和数据可以驻留在其中,并且包括次级数据存储装置708,次级数据存储装置708可以是非易失性存储器,并且可以存储机器可读指令和数据。主存储器706和数据存储装置708是非瞬态计算机可读介质的示例。主存储器706和/或次级数据存储装置708可以存储由上述计算系统使用的数据,诸如包括web对象、配置数据、测试数据等的对象存储库。

除其他数据外,主存储器706和/或次级数据存储装置708可以存储一个或多个应用。在由一个或多个处理器执行时,应用操作以在计算设备上执行功能性。这些应用可以与对应的应用或服务(诸如,经由网络(未示出)可访问的web服务)通信。例如,这些应用可以表示与在云中执行的服务器侧服务相对应的下载客户端侧应用。在一些示例中,本公开的各方面可以跨计算系统分布应用,其中基于在应用的客户端侧实例处接收的输入和/或交互,服务器侧服务在云中执行。在其他示例中,应用实例可以被配置成在运行时期间与云中的数据源和其他计算资源通信,诸如在受监测的升级期间与集群管理器或健康状况管理器通信,或者可以在客户端侧服务和云服务之间共享和/或聚合数据。

计算设备可以包括输入/输出(i/o)7,诸如键盘、鼠标、显示器等。输入/输出设备710可以包括用于与系统102的用户交互的用户界面(ui)612。ui712可以与i/o设备710一起操作以从用户接受数据并向用户提供数据。计算设备可以包括用于连接到网络的网络接口714。其他已知的电子组件可以在计算设备中被添加或替换。处理器702可以被指定为硬件处理器。处理器702可以执行上述系统102的各种组件并且可以执行下面描述的方法。

图8示出了根据本公开的一个示例实施例的用于保护和监测模块化应用的方法800的流程图。上述各种系统可以执行方法800以保护和监测模块化应用302。本文所述的方法800和其他方法和操作可以由一个或多个服务器或其他类型的计算机执行,该一个或多个服务器或其他类型的计算机包括执行机器可读指令的至少一个处理器。此外,本文描述的方法800的操作中的一个或多个和其他方法的操作可以按照与所示的顺序不同的顺序被执行,或者可以同时或基本同时地被执行。方法可以与机器可读指令一起被存储在非瞬态计算机可读介质中。

在框802处,对模块化应用和托管该模块化应用的边缘设备中的至少一个的鉴定可以被发起。在一个示例实现中,模块化应用管理器506可以将鉴定请求发送到边缘设备502,以获得对模块化应用302的鉴定。在备选方案中,当模块化应用302启动时,模块化应用302可以请求来自模块化应用302的批准;模块化应用要求比当前利用率更高的系统资源分配,模块化应用302a要求访问系统资源或不同的模块化应用。在另一示例实现中,模块化应用管理器506可以请求对边缘设备502的鉴定,以验证边缘设备的完整性、软件堆栈的完整性等。

在示例中,鉴定请求可以包括策略集,以生成用于模块化应用302的安全包围区。例如,该策略集可以确定模块化应用302a可以利用的边缘设备502上的过程、服务和其他系统资源。此外,策略可以要求在模块化应用302被执行之前生成安全包围区。此外,策略可以提供在模块化应用302执行时可能不被执行的应用集合。例如,在执行属于第三方的模块化应用期间,调试器可以不活动。

在框804处,用于模块化应用的鉴定信息可以被接收。在一个示例中,模块化应用管理器506可以从安全管理器510接收用于模块化应用302a的鉴定信息。在一个示例中,安全管理器510可以在边缘设备上被实现为软件或服务。安全管理器510可以基于从边缘设备502上的硬件加密设备接收的鉴定信息来确定鉴定信息。在一个示例中,鉴定信息可以包括使用硬件加密设备的证实密钥签名的模块化应用302的哈希。

在一个示例中,鉴定信息可以包括利用密码密钥被密码签名的应用二进制文件的哈希、利用密码密钥签名的边缘设备的存储器内容的哈希、利用密码密钥被签名的模块化应用日志的哈希,以及与模块化应用相关联的边缘设备上的软件堆栈的哈希。

在框806处,模块化应用的鉴定状态可以被监测。鉴定状态可以是当前应用实例状态,其可以定期地与已知良好/受信任的状态信息比较。在一个示例实现中,模块化应用管理器506可以在模块化应用302的执行期间监测模块化应用302的鉴定状态。

在一个示例中,模块化应用管理器506可以基于从安全管理器510接收的信息来确定模块化应用302的鉴定状态。模块化应用管理器506可以基于鉴定结果来确定模块化应用是否已经被篡改。例如,在应用二进制数据的静态部分被加载到存储器之前,其可以被测量和保存。然后,相同数据的测量值可以从存储器中被取得。在数据改变的情况下,可以确定设备和应用已经被篡改。

在一个示例中,模块化应用管理器506可以接收关于边缘设备502的软件堆栈的安全策略的信息。此外,模块化应用管理器506可以接收关于软件堆栈的完整性、模块化应用的完整性、在应用的执行期间利用的存储器的完整性等的信息。

在框808处,可以确定模块化应用的完整性中是否存在破坏。在一个示例中,模块化应用管理器506可以确定在模块化应用302的完整性或软件堆栈的完整性中是否已经存在破坏。模块化应用管理器506可以基于所接收的鉴定哈希、重复攻击检测(当多次使用相同的tpm密钥的相同请求被接收到时)、基于在证书颁发机构的数据库中被标记为盗贼的tpm等,来确定完整性破坏。

如果安全性破坏被检测到,则方法800可以进行到(‘是’分支)框810。在框810处,用于解决该破坏的补救动作可以被执行。在一个示例中,补救动作可以涉及:将tpm作为盗贼tpm列入黑名单,对模块化应用302进行检查以确定该代码是否具有嵌入在模块化应用302中的恶意代码,暂停对模块化应用302的资源利用率的计量,以及使用tpm和远程策略执行来暂停模块化应用302的执行特权,并且确定边缘设备的软件堆栈的完整性并且标识篡改的源。

然而,如果未检测到安全性破坏,则方法800可以进行到(‘否’路径)框812,在框812处,例如,模块化应用的资源利用率可以使用分布式账本来计量。

图9示出了根据本公开的一个实施例的用于计量模块化应用的方法900的流程图。通过示例,方法900被描述为由上述系统或具有类似计算能力的任何其他系统执行。本文描述的方法900以及其他方法和操作可以由一个或多个服务器或其他类型的计算机执行,该一个或多个服务器或其他类型的计算机包括执行机器可读指令的至少一个处理器。此外,本文描述的方法900的步骤中的一个或多个和其他方法的步骤可以按照与所示的顺序不同的顺序被执行,或者可以同时或基本同时地被执行。

在框902处,保护与边缘设备相关联的模块化应用的请求可以被接收。在一个示例中,指令可以从模块化应用管理器506被接收。安全参数可以包括例如关于保护模块化应用的指令。例如,这些指令可以详细说明针对模块化应用302的安全设置、权限、交互等。

在一个示例中,模块化应用管理器506可以提供安全策略(诸如安全参数),以为边缘设备502上的模块化应用生成安全包围区。如上所述,在已经生成安全包围区之前,安全策略可以阻止模块化应用302的执行。在示例中,安全包围区可以包括锁定与应用相关联的一些过程以及与应用相关联的存储器。在其他示例中,安全包围区可以包括硬件,该硬件具有边缘设备502上的软件堆栈无法访问的秘密。

在框904处,安全包围区可以针对模块化应用而被生成。此外,在多个模块化应用被集成的情况下,多个安全包围区可以在多个边缘设备上被生成。在一个示例中,边缘设备502或边缘设备502上的诸如安全管理器510的应用可以生成安全包围区。在一个示例中,安全包围区可以使用诸如tpm的硬件加密设备来生成。在其他示例中,处理器可能具有可以创建安全包围区的专用的低级指令。在示例中,边缘设备502可以包括具有与主cpu和存储器分离的安全包围区的硬件tpm。

在框906处,模块化应用可以针对计量和/或篡改而被监测。在一个示例中,边缘设备502的硬件加密设备可以被安全管理器510使用,以确定安全包围区或模块化应用302的线程中的系统利用率。硬件加密设备可以生成存储器的哈希和cpu利用率日志,并且对其进行证实,并将其传递给模块化应用管理器506。在示例中,边缘设备502可以确定模块化应用302a的利用率或运行时间、模块化应用302a的输出、模块化应用302a的输入等。

在一个示例中,资源利用率可以使用诸如区块链的分布式账本来确定。如前所述,分布式账本可以包括用于可信赖计量的智能合约。此外,资源利用率可以基于预先定义的消耗的单位来确定。消耗的单位可以是基于时间的、基于活动的等。资源消耗可以基于工作证明的共识和所经过的时间的证明中的至少一个来确定。来自分布式账本的条目定期地确定系统资源利用率。

在一个示例中,具有较低系统利用率的边缘设备可以被确定,来迁移一个或多个模块化应用以优化资源利用率。在另一示例中,具有较低带宽延时的边缘设备可以被确定,来迁移一个或多个模块化应用以优化资源利用率。

在框908处,基于计量,指示与所利用的系统资源相对应的财务单元的资源利用率收据可以被生成。在示例中,计费可以是基于利用率参数,诸如cpu利用率、存储器利用率、模块化应用302被执行时对系统资源的需求、高峰和非高峰电价或基于系统利用率和应用利用率的任何这种计量方案。

图10图示了根据本公开的一个实施例的用于使用模块化应用的组合来生成服务或应用的方法1000的流程图。作为示例,方法1000被描述为由上述各种系统执行。本文描述的方法1000以及其他方法和操作可以由一个或多个服务器或其他类型的计算机执行,该一个或多个服务器或其他类型的计算机包括执行机器可读指令的至少一个处理器。此外,本文描述的方法1000的步骤中的一个或多个以及其他方法的步骤可以按照与所示的顺序不同的顺序被执行,或者可以同时或基本同时地被执行。

在框1002处,生成一个或多个安全包围区的请求可以被接收。在一个示例中,边缘设备502或安全管理器510可以从模块化应用管理器506接收指令(诸如安全参数集合),以生成安全包围区。在一个示例中,安全参数可以包括关于保护模块化应用的指令。例如,这些指令可以详细说明模块化应用302的安全设置、权限、交互等。

在一个示例中,模块化应用管理器506可以提供安全策略(诸如安全参数),以在边缘设备502上为模块化应用生成安全包围区。在已经生成安全包围区之前,安全策略可以防止模块化应用302的执行。在示例中,安全包围区可以包括锁定与应用相关联的一些过程以及与应用相关联的存储器。

在其他示例中,安全包围区可以包括边缘设备502上的软件堆栈无法访问的具有秘密值的硬件。边缘设备502或边缘设备502上的应用(诸如安全管理器)可以生成安全包围区。在一个示例中,安全包围区可以由硬件加密设备生成。在其他示例中,处理器可能具有可以创建安全包围区的专用的低级指令。在示例中,边缘设备502可以包括具有与主cpu和存储器分离的安全包围区的基于硬件的硬件加密设备。

在框1004处,模块化应用可以在安全包围区中被初始化。在一个示例中,模块化应用管理器506可以初始化安全包围区中的模块化应用。模块化应用可以在具有不同配置的安全包围区中被执行。例如,在一个或多个实例中,安全保护区可以允许过程的进一步隔离以保护模块化应用的过程和存储器。进一步的隔离允许应用在没有恶意软件的风险的情况下执行。此外,安全包围区可以与模块化应用管理器506安全地通信,以使用硬件加密设备,使用安全通道取回附加信息。

在框1006处,模块化应用的输出可以被互连以生成系统或服务。在一个示例中,基于云的人工智能平台可以与边缘设备上的模块化应用集成。这可以允许模块化应用的动态功能性。

在框1008处,安全包围区中模块化应用的利用率可以被监测,以确定用于服务的计量。在示例中,模块化应用可以存在于多个位置,并且可以使用参考图5和图6阐述的方法,对不同设备上的模块化应用执行计量。在一个示例中,结构控制器可以将所有的所接收的对模块化应用的利用率计量相加,以确定服务的成本。而且,由于安全包围区容纳了模块化应用,因此计量可以是准确的。

在一个示例中,一个模块化应用可以在边缘设备上,而另一个模块化应用可以在云设备上。在这种情况下,资源利用率可以被确定为在云和边缘设备上的资源利用率的比率。

本文已经描述和图示的是本公开的示例以及一些变型。本文所使用的术语、描述和附图仅以说明的方式阐述,并不意味着限制。在本公开的范围内可能有许多变化,本公开的范围旨在由所附权利要求及其等同物限定,其中除非另外指示,否则所有术语均以其最广泛的合理含义表示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1