基于TrustZone的分布式计算系统的制作方法

文档序号:17161880发布日期:2019-03-20 00:51阅读:130来源:国知局
基于TrustZone的分布式计算系统的制作方法

本发明涉及一种分布式计算系统,尤其是一种基于trustzone的分布式计算系统。



背景技术:

传统的单一静态计算系统,孤立的终端不利于管理,使系统算法漏洞容易被利用;另外,传统计算系统的中心服务器容易被攻击。一般传统计算系统的数据库、计算节点、以及通信链路都是确定的,非常容易地被窃取、篡改和产生拒绝服务等攻击。因此,传统的静态计算系统的安全性很难得到保证。

为了提高计算系统的安全性,提出了采用trustzone的解决方案来设计计算系统。但是这些系统都是采用中心化管理的,并且一般都是在固定的计算节点上进行计算,这样提高的仅仅是孤立终端的安全性。由于该计算系统的计算节点、网络链路、和数据库也都还是固定的,因此被攻击的可能性还是很大。

因此,本申请提出一种改进的基于trustzone的分布式计算系统,可以解决上述提到的至少一个技术问题。



技术实现要素:

本发明提供一种基于trustzone的分布式计算系统,其包括多个计算节点。每个计算节点都包括普通执行环境和可信执行环境。所述分布式计算系统将所述多个计算节点组成网络。所述每个计算节点在计算的过程中可随机地选择处于同一网络的其它计算节点作为处理计算节点并向其发出处理请求,被选择的计算节点在其可信执行环境中进行处理该处理请求。

通过下面的详细描述、附图以及权利要求,其他特征和方面会变得清楚。

附图说明

通过结合附图对于本发明的示例性实施例进行描述,可以更好地理解本发明,在附图中:

图1是本发明一个实施例的基于trustzone的计算节点的基本框图。

图2是本发明一个实施例的基于trustzone的分布式计算系统的不同计算节点之间的可信计算处理流程。

图3是本发明一个实施例的由图1所示的基于trustzone的计算节点组成的分布式计算系统示意图。

图4是本发明另一个实施例的由图1所示的基于trustzone的计算节点组成的分布式计算系统示意图。

具体实施方式

以下将描述本发明的具体实施方式,需要指出的是,在这些实施方式的具体描述过程中,为了进行简明扼要的描述,本说明书不可能对实际的实施方式的所有特征均作详尽的描述。应当可以理解的是,在任意一种实施方式的实际实施过程中,正如在任意一个工程项目或者设计项目的过程中,为了实现开发者的具体目标,为了满足系统相关的或者商业相关的限制,常常会做出各种各样的具体决策,而这也会从一种实施方式到另一种实施方式之间发生改变。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本发明实施例公开的内容相关的本领域的普通技术人员而言,在本公开揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本公开的内容不充分。

本发明提供一种基于trustzone的分布式计算系统,其包括多个计算节点,其中每个计算节点都包括普通执行环境和可信执行环境。所述分布式计算系统将所述多个计算节点组成网络,每个计算节点在计算的过程中可随机地选择处于同一网络的其它计算节点作为处理计算节点并向其发出处理请求,被选择的计算节点在其可信执行环境中进行处理该处理请求。

请参阅图1所示,其为本发明的一个实施例的基于trustzone的计算节点的基本框图。该计算节点10包括由硬件提供的普通执行环境11和可信执行环境12。

所述计算节点10可以包括位于普通执行环境11顶层的普通应用程序111、安全处理响应模块112、以及安全处理请求模块113。所述计算节点10还可以包括位于普通执行环境11中间层的第一调度器114和trustzone驱动程序115。其中所述第一调度器114和所述trustzone驱动程序115都位于所述普通执行环境11中间层的内核。所述计算节点10还可以包括位于普通执行环境11底层的若干非安全外设116。

所述计算节点10可进一步包括位于可信执行环境12顶层的可信应用程序121、安全处理引擎模块122、以及安全外设管理模块123。所述计算节点10还可进一步包括位于可信执行环境12中间层的监视模块124、内部通信管理器125、以及第二调度器126。其中所述内部通信管理器125和所述第二调度器126位于所述可信执行环境12的中间层的内核。所述计算节点10还可包括位于所述可信执行环境12底层的若干个安全外设127。所述普通执行环境11和所述可信执行环境12之间的切换可以通过所述监视模块124实现。

所述计算节点10可以在其普通执行环境11和可信执行环境12两者间快速切换。简单来说,当所述计算节点10需要从所述普通执行环境11切换到所述可信执行环境12时,所述计算节点10可调用所述trustzone驱动程序115,启动安全调用的任务。所述trustzone驱动程序115执行smc指令,使所述计算节点10从普通执行环境进入所述监视模块124的模式下。所述监视模块124的监视程序再把当前环境切换到所述安全执行环境12,跳到所述安全执行环境12去执行相应的处理任务。

在所述结算节点10的可信执行环境12中,所述计算节点10可以通过其内核的内部通信管理器125根据普通执行环境11的模块或普通应用程序111发所传送过来的处理程序的参数和条件来调用相应的模块来执行相关的处理操作。

在本发明一个实施例中,所述计算节点10在其可信执行环境12中,其可调用所述安全处理引擎模块122来执行相关的处理操作。所述安全处理引擎模块122执行完相关的操作之后可以通过所述内部通信管理器125再次使当前计算节点10进入监视模块124的模式下,并通过所述监视模块124的监控程序把所述计算节点10的当前环境切换到普通执行环境。

本发明的基于trustzone的计算节点10的安全处理请求模块113、安全处理响应模块112、安全处理引擎模块122和安全外设管理模块123都是本发明新增设的模块,是为了提高分布式计算系统的安全性。其中,所述安全处理请求模块113和所述安全处理响应模块112都是位于所述计算节点10的普通执行环境11;所述安全处理引擎模块122和所述安全外设管理模块123都是位于所述计算节点10的可信执行环境12。

本发明的基于trustzone的计算节点10的安全外设管理模块123是用于管理本计算节点的安全外设127,其拥有安全数据或程序,可以根据本计算节点的应用需求通过本计算节点的安全处理请求模块113向其它计算节点发送本计算节点的远程处理请求。本计算节点10的安全处理响应模块112是用于接收并响应来自其它计算节点的处理请求。本计算节点10的安全处理引擎模块122是响应并授权来自本计算节点的安全处理响应模块112的处理请求,并根据该处理请求在本计算节点的可信执行环境12中进行相应的计算(或称之为处理该处理请求),然后将处理后的计算结果再返回给发出处理请求的计算节点或者将该处理结果再随机地发送给下一个计算节点以进行继续计算。

在本发明一个实施例中,计算节点10的安全外设127可以是网口,其可以包括普通和安全两种模式。所述结算节点10的安全外设管理模块123可以用于管理或切换该安全外设127的状态,即在普通和安全两种模式切换。

不同的计算节点之间可以通过位于可信执行环境的安全外设管理模块来管理各自的安全外设。当两个计算节点的安全外设都处于安全的模式时,即可建立两个不同的计算节点之间的可信连接。换句话说,处理计算节点和请求计算节点是通过各自的安全外设管理模块来切换各自的安全外设的状态以建立请求计算节点和处理计算节点之间的可信连接。当请求计算节点和处理计算节点的安全外设都处于安全状态时,即可以建立请求计算节点和处理计算节点之间的可信连接,可以开始传输数据或者交换相关秘钥,例如业务秘钥或数据秘钥。

在本发明一个实施例中,请求计算节点的安全外设管理模块可以和处理计算节点的安全处理引擎模块之间可以建立点对点的可信连接,进而可以在两个计算节点的可信执行环境中进行交换业务秘钥、利用所述业务秘钥交换处理请求的处理程序的参数和条件等操作。

本发明基于trustzone的分布式计算系统100包括若干个上述基于trustzone的计算节点10。所述分布式计算系统100可将上述基于trustzone的多个计算节点10组成网络,以此实现每个计算节点在计算的过程中都可随机地选择处于同一网络的其它计算节点作为处理计算节点,并向处理计算节点发出处理请求。被选择的计算节点在其可信执行环境中进行处理该处理请求。

本发明的每个基于trustzone的计算节点10在该分布式计算系统100的网络中,既可以是发出处理请求的请求计算节点,也可以是接收处理请求的处理计算节点。为了便于描述,本申请的说明书将发出处理请求的计算节点统一称为请求计算节点,将接收处理请求的计算节点统一称为处理计算节点。本申请的请求计算节点和处理计算节点的构成或组成都是相同的,都包括本发明图1所示的框图结构。

图2是本发明一个实施例的基于trustzone的分布式计算系统100的不同计算节点之间的可信计算处理流程。请一并结合图1和图2所示,以下将进一步描述本发明的分布式计算系统100的不同计算节点之间的计算处理流程20:

在步骤21,请求计算节点的安全外设管理模块通过请求计算节点的安全处理请求模块随机地向某处理计算节点发送处理请求。具体来说,所述请求计算节点的安全外设管理模块拥有安全数据或程序,其可与本计算节点的安全处理请求模块通信,并通过本计算节点的安全处理请求模块随机地选择分布式计算系统某处的计算节点以作为处理计算节点,并通过网络向被选择的处理计算节点发送远程的处理请求。

在步骤22,处理计算节点的安全处理响应模块接收该处理请求,并验证该处理请求的合法性。具体来说,位于分布式计算系统的某处的计算节点的安全处理响应模块会接收到来自网络内某请求计算节点的远程处理请求。接收到处理请求的计算节点此时作为处理计算节点。该处理计算节点的安全处理响应模块会验证其所接收到的处理请求是否合法。

如果处理计算计算节点的安全处理响应模块验证该处理请求合法,则进入下一步骤23。在步骤23,处理计算节点通过smc指令进入可信执行环境,启动处理计算节点的安全处理引擎模块。具体来说,该处理计算节点通过位于其普通执行环境的内核的trustzone驱动程序执行smc指令,使所述处理计算节点通过其监视模块124把当前环境从普通执行环境切换到所述安全执行环境,并启动位于该处理结算节点的可信执行环境的安全处理引擎模块。

如果处理计算节点的安全处理响应模块验证该处理请求不合法,则处理计算节点的安全处理响应模块发送拒绝处理请求的指令到发出该处理请求的请求计算节点,从而终止该请求计算节点的处理请求。

经过步骤23之后,启动了处理计算节点的安全处理引擎模块之后,进入步骤24。在步骤24,处理计算节点的安全处理引擎模块与请求计算节点的安全外设管理模块建立可信连接,以交换业务秘钥和利用业务秘钥交换处理请求的处理程序的参数和条件。

在本发明一个实施例中,处理计算节点和请求计算节点的各自的安全外设管理模块可以通过将各自的安全外设切换到安全状态,从而建立请求计算节点和处理计算节点之间的可信连接。

在本发明一个实施例中,处理计算节点的安全处理引擎模块通过和请求计算节点的安全外设管理模块建立点对点的可信连接之后,请求计算节点的安全外设管理模块会和处理计算节点的安全处理引擎先交换业务秘钥,然后再进一步利用所交换的业务秘钥交换处理请求的处理程序的参数和条件。

然后,进入步骤25,在步骤25,处理计算节点的安全处理引擎模块验证处理请求的处理程序的参数和条件。如果验证失败,则处理计算节点的安全处理引擎模块发送拒绝处理请求信息回请求计算节点,终止该处理请求。如果验证通过,则进入下一步骤26。

在步骤26,处理计算节点的安全处理引擎模块按照请求计算节点的处理请求在本计算节点的可信执行环境中建立相应的处理程序,并交换数据秘钥。在本发明的计算处理流程中,只有经过处理请求是否合法和处理请求的处理程序的参数和条件是否能通过验证两次安全认证之后,处理计算节点和请求计算节点才会交换数据秘钥,从而进一步提升了本发明分布式计算系统的不同计算节点之间的计算处理流程的安全性。

在步骤27,请求计算节点的安全外设管理模块利用交换的数据秘钥将处理请求的数据或程序加密后发送到处理计算节点。具体来说,该请求计算节点的安全外设管理模块利用之前和所述处理计算节点交换的数据秘钥将该处理请求的数据或程序加密后发送到处理计算节点的安全处理引擎模块。

在本发明一些实施例中,当需要交换的待处理的数据或程序较大的时候,为了避免长时间占用安全外设管理模块(例如网口),可以利用之前建立可信链接之后所交换的数据密钥对所述待处理的数据或程序进行加密,然后将加密后的待处理的数据或程序通过请求计算节点和处理计算节点的非安全外设进行传输,传输待处理数据或程序的传输路径和请求传输的路径相同,可以无须再占用请求计算节点的安全外设管理模块和处理计算节点的安全处理引擎模块点对点之间的可信连接进行传输。

所述请求计算节点的安全外设管理模块和处理计算节点的之间的可信连接主要用于交换数据密钥,以此实现对所需交换的待处理的数据或程序进行加密。藉此,即便将所述待处理的数据或程序通过请求计算节点和处理计算节点的普通执行环境的非安全外设进行传输,依然可以避免被普通执行环境的程序破解或攻击,以此保证待处理数据或程序传输的安全性,避免待处理数据或程序被泄露。

在步骤28,处理计算节点的安全处理引擎模块对数据或程序进行解密并进行处理,然后将处理结果返回给请求计算节点或者随机发送给下一个处理计算节点。具体来说,该处理计算节点的安全处理引擎模块可以对该处理请求的数据或程序先进行解密,在解密后再对该数据或程序进行进一步处理或计算。处理计算节点的安全处理引擎模块可以将处理结果直接返回给请求计算节点,或者可以将处理结果再次随机发送给下一个计算节点以进一步计算。

进一步来说,本发明的处理计算节点在处理完请求计算节点的处理请求或处理任务后,处理计算节点的安全处理引擎模块会清空其存储单元,并退出处理程序。换句话说,处理计算节点完成本次来自其它计算节点的处理请求之后,处理计算节点不会保留与来自其它计算节点的处理请求相关的任何数据,从而避免数据或程序泄露的可能性。

在本发明一些实施例中,处理计算节点的安全处理引擎模块可以将完成的处理结果利用之前交换的数据密钥进行加密以后,通过处理计算节点的安全处理响应模块返回给请求计算节点的安全处理请求模块,最终通过该请求计算节点的安全处理请求模块输出相应的处理结果。处理计算节点在处理完成后,其安全处理引擎模块清空存储单元,并退出程序。

在本发明一些实施例中,处理计算节点的安全处理引擎模块可以将完成的处理结果存储到本计算节点的安全外设管理模块,发送给分布式计算系统网络内随机选择的下一个计算节点,下一个计算节点此时可以作为处理计算节点对该处理结果做进一步计算或处理。此时发送处理结果的处理计算节点又可以看作是发出处理请求的请求计算节点,其和下一个处理计算节点之间的计算处理过程和之前所述的计算处理过程一样,于此不再赘述。下一个处理计算节点最终可以将处理结果返回给最初的处理请求节点或者可以再次随机地将处理结果发给分布式计算系统网络内的某个计算节点以作进一步处理,可以如此循环直到满足初始处理请求所需的处理结果。

如上所述,本发明的基于trustzone的分布式计算系统的每个计算节点既可以是发出处理请求的请求计算节点,也可以是处理请求结算节点的处理计算节点,每个计算节点的所起的作用都是随机地动态变化。

本发明的基于trustzone的分布式计算系统在整个计算过程中,涉及的请求计算节点和处理计算节点的业务秘钥和数据秘钥都是利用相应计算节点的可信执行环境进行保密交换,而涉及的计算节点的普通执行环境的应用程序均无法获取业务秘钥或数据秘钥。

而且,在处理计算节点的可信执行环境建立处理程序的过程中,处理计算节点位于普通执行环境的程序会先完成交易记录和处理请求的初始合法认证之后,处理计算节点才会通过监视模块将当前环境从普通执行环境切换到可信执行环境,才会启动位于可信执行环境的安全处理引擎模块,以将请求计算节点的处理请求传送给处理计算节点的安全处理引擎模块。通过处理结算节点的安全处理响应模块对请求计算节点的处理请求做初始安全认证,可以防止大量非法请求破坏网络。

另外,当启动处理计算节点的安全处理引擎模块之后,请求计算节点的安全外设管理模块和处理计算节点的安全处理引擎模块之间会建立点对点的可信连接,所有交换业务秘钥或者数据秘钥都是在可信执行环境中进行,进一步提升了本发明分布式计算系统的安全性。另外,请求计算节点和处理计算节点之间进行的是否在处理计算节点的可信执行环境建立处理请求的相应处理程序的授权认证也是在处理计算节点的可信执行环境完成,处理计算节点的普通执行环境的程序也并不参与。

请进一步参阅图3所示,图3是本发明一个实施例的由图1所示的基于trustzone的计算节点组成的基于trustzone分布式计算系统示意图。本发明基于trustzone的分布式计算系统30包括三个计算节点,该三个计算节点的架构基本相同,都包括由图1所示的基于trustzone的计算节点的基本架构。为了便于描述,将三个计算节点分别标示为计算节点31、计算节点32、计算节点33。在本发明一些实施例中,所述计算节点可以是主机,所述主机都设有可信执行环境。

在实际应用中,本发明基于trustzone的分布式计算系统的计算节点的数目并没有限制,其可以根据实际应用设置更多或者也可以为两个。本发明的基于trustzone的分布式计算系统在各个计算节点之间构建区块链网络,以此将各计算节点联通。

在图3所示的基于trustzone的分布式计算系统,其中计算节点31和计算节点32组成区块链网络。所述计算节点31此时可以看作是请求计算节点,其向计算节点32发出处理请求,所述计算节点32可以看做是处理计算节点。请一并结合本文图2所描述的分布式计算系统的计算过程,请求计算节点31随机地向处理计算节点32发出处理请求认证,处理计算节点的安全处理响应模块对该处理请求进行合法认证,如果该处理请求合法,则处理计算节点32通过smc指令进入可信执行环境,启动位于处理计算节点32可信执行环境的安全处理引擎模块。

处理计算节点32的安全处理引擎模块和请求计算节点31的位于可信执行环境的安全外设管理模块建立点对点的连接,并首先交换业务秘钥,然后再利用业务秘钥交换处理请求的处理程序的参数和条件。处理计算节点的安全处理引擎模块对处理请求的处理程序的参数和条件进行验证。如果验证失败,则发送拒绝处理请求信息,处理终止。如果验证通过,则按照处理请求的要求在处理计算节点32的可信执行环境建立相应的处理程序,并交换数据秘钥。

请求计算节点31的安全外设管理模块通过交换的数据秘钥将处理请求的数据和程序发送到处理计算节点32的安全处理引擎模块。处理计算节点32的安全处理引擎模块对该数据和程序进行解密和计算,并将处理结果直接返回给请求计算节点31。如此,即将请求计算节点31的处理请求在处理计算节点32的可信执行环境中完成处理过程并返回给所述请求计算节点。请求计算节点31和处理结算节点32的业务秘钥和数据秘钥的交换都是在可信执行环境中完成,相应的数据和程序、以及处理结果都是利用交换的数据密钥进行加密,在普通执行环境的普通应用程序无法破解,提高了分布式计算系统的安全性,避免了数据被窃取、篡改、攻击等网络隐患。

请进一步参阅图4所示,图4是本发明另一个实施例的由图1所示的基于trustzone的计算节点组成的分布式计算系统示意图。图4所示的基于trustzone分布式计算系统40其与图3所示的基于trustzone的分布式计算系统30的基本构成都相同,其也包括三个计算节点,每个计算节点都包括由图1所示的基于trustzone的分布式计算节点的结构。为了便于说明,将该三个计算节点分别示意为计算节点41、计算节点42、计算节点43。所述计算节点41、42、43都可以是主机,所述主机设有可信执行环境。

图4所示的基于trustzone的分布式计算系统40和图3所示的基于trustzone的分布式计算系统30的不同之处在于,其中根据计算任务的不同,计算节点41、计算节点42、以及计算节点43可以组成区块链网络。此时,计算节点41可以看作是请求计算节点,计算节点42和计算节点43可以看作是处理计算节点。换句话说,此时在该区块链网络中,根据计算任务的不同,处理计算节点有两个。请求计算节点41向处理计算节点42发出处理请求,处理计算节点42在完成自己的认证和处理任务以后,可以随机地挑选下一个处理计算节点43,将其处理结果发送给处理计算节点43以继续进行计算或处理,在处理计算节点43完成认证和处理任务以后可以将处理结果直接返回给初始的请求计算节点。

在本发明一些实施例中,基于trustzone的分布式计算系统可以包括更多的计算节点,例如4个或更多个计算节点。则第二个处理计算节点也可以再次随机地将其处理结果发送给下一个处理计算节点以继续进行处理或计算。第三个处理计算节点也可以将其处理结果再次随机发给下一个计算节点以继续进行处理或计算。在包括多个计算节点的分布式计算系统,可以依此类推。在图4所示的实施例中,处理计算节点43在完成自己的认证和处理以后,可将其处理结果直接返回给最初的请求计算节点41。

本发明的基于trustzone的分布式计算系统在整个计算任务处理过程中,各个计算节点的工作状态都是处于随机的动态过程中,大大减少了单个计算节点被攻击的可能性。

本发明的基于trustzone的分布式计算系统的每个计算节点都采用trustzone技术,其通过硬件设计保证在计算节点内部处于可信执行环境的外设、存储器、或代码等不易被非法侵入。其次,基于动态的由若干计算节点组成的区块链技术基于网络的分布式存储,可以去中心化、每个计算节点都不易被篡改或撤销,提高了每个分布式计算节点的高可靠性,可以有效地提高整个基于trustzone的分布式计算系统的整体安全性。

另外,本发明的基于trustzone的分布式计算系统的每个计算节点都是被随机地选取或切换,可以使正在运行的处理器在网络内随时都处于随机的计算节点上,大大减少了被攻击的可能性。因此,本发明的基于trustzone的分布式计算系统能够大大被提高安全性。本发明的基于trustzone的分布式计算系统可以推广到所有通用的分布式计算系统,尤其是嵌入式计算系统。本发明的基于trustzone的分布式计算系统也可以应用在基于intel安全技术的服务器系统中,例如可以应用到基于软件防护扩展指令(softwareguardextensions:sgx)的服务器系统中。因此,本发明的基于trustzone的分布式计算系统也可以解决当前的物联网系统中数据或模型交换时的安全性问题。本发明的基于trustzone的分布式计算节点以及基于trustzone分布式计算系统也可以用于intel的安全技术上,可以解决云计算、大数据处理等应用中,数据以及算法模型交互时安全性低的问题。本发明的基于trustzone的分布式计算系统可以充分保障物联网、云计算、大数据等网络用户的数据、算法、和模型等的安全性,可以防止被窃取、攻击、或篡改等。

以上实施方式仅是对本发明的一些实施方式进行描述,并非对本发明的范围进行限定。在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围。

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