一种基于端到端模型的代码可信执行方法与流程

文档序号:20884057发布日期:2020-05-26 17:22阅读:203来源:国知局
一种基于端到端模型的代码可信执行方法与流程

本发明属于信息技术领域,更为具体地讲,涉及一种基于端到端模型的代码可信执行方法。



背景技术:

在传统的数据使用模式下,数据所有方通常将源数据打包传输给数据使用者。但现在,数据所有者们开始意识到自己持有的数据是一种商业资产,可以从中获取利益;他们开始对向外传递数据这一操作带来的权益问题和隐私风险感到担忧。

为了消除由于数据脱离自己掌握带来的泄露风险,业界开始采用一种“把代码交给数据,而不把数据交给代码”的思路来解决这一问题。不同于传统的将数据给到代码一方,将代码放置于数据一方的环境中进行运算,数据不出库,能够有效的避免数据对外开放导致的各类安全问题。

但将代码给到数据方这一方法,也存在两方面的问题:1、代码不可信,在计算过程中可能由于主观窃取或被外部攻击而导致数据泄露;2、数据方不可信,执行环境的不安全可能导致代码被反编译,导致应用方知识产权受到损害。

因此,有必要提出一种可信执行方法,以支撑数据提供方和使用方在双方互不可信的情况下进行数据交互,并同时保证使用方代码和提供方数据的安全性。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种基于端到端模型的代码可信执行方法,同时对数据提供方的数据和数据使用方的代码进行保护,使得数据提供方和数据使用方在互不可信的情况下也能够进行信息交互。

为实现上述发明目的,本发明基于端到端模型的代码可信执行方法包括以下步骤:

s1:数据提供方制定代码对数据的使用规范,包括构建数据访问代理,设置数据访问权限以及计算结果返回格式;同时构建代码执行代理与可信执行环境,执行代理运行在非可信环境,实现对可信执行环境的初始化,并构建启动入口及通信组件;

s2:数据使用方根据数据提供方的数据使用规范构建代码文件,并采用对称加密算法对代码文件进行加密,加密后的代码文件与密钥k1由数据使用方安全存储;

s3:数据使用方与数据提供方进行身份验证,并由数据使用方和可信执行环境协商传输使用的会话密钥k2,建立安全通道;

s4:数据使用方将加密后的代码文件和密钥k1采用密钥k2进行加密后发送给数据提供方,数据提供方在接收后通过代码执行代理转发至可信执行环境,可信执行环境对接收到的文件先采用密钥k2进行解密,再采用密钥k1对代码文件进行解密恢复,然后关闭安全通道;

s5:数据提供方的执行代理启动代码在可信执行环境中的运行,代码执行过程中通过数据访问代理进行数据访问;

s6:代码执行完毕后,执行代理根据数据提供方预先设置的规则对执行结果进行合法性判断,如果通过合法性判断,则向数据使用方反馈执行结果,否则向数据使用方发送执行结果不合法的提示。

本发明基于端到端模型的代码可信执行方法,数据使用方根据数据提供方设定的数据规范进行代码编写并加密传输至数据提供方;数据提供方则为数据使用方提供隔离计算运行环境,由数据提供方启动可信执行环境,数据使用方将加密后的代码与密钥分别发送至可信执行环境内,可信执行环境恢复代码并执行,代码执行过程中通过数据访问代理获取数据并进行处理,结果通过代码执行代理返回给数据使用方。

本发明综合考虑了数据安全与代码安全两方面的问题,数据提供方提供数据使用方代码的运算环境,代码所有的输入与输出都在代码执行代理的限制中,数据使用方的代码无法将源数据从可信执行环境中直接向外部发送,从而保障了数据安全;同时,数据使用方的代码是以加密文件的形式传入可信执行环境,并在可信执行环境中解密,而可信执行环境与数据提供方上层的操作系统等特权用户隔离,仅能通过固定的代码执行代理进行交互,因此数据使用方代码在可信执行环境中是隔离的、安全的。可见,本发明能够保证双方在互相不信任的情况下也可以安全地合作,进行数据处理与信息交互。

附图说明

图1是本发明基于端到端模型的代码可信执行方法的具体实施方式流程图;

图2是本发明中数据提供方执行环境的示意图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

实施例

在本发明中,设定了一个端到端的应用环境,环境中存在两个核心角色:一端为数据提供方,一端为数据使用方。数据提供方拥有大量数据,数据是提供方的私有资产,一方面它具有将数据开放给第三方使用,获取利益的需求;另一方面它需要保护数据不被泄露,保护自己的数据权益和隐私安全。数据使用方是代码的提供者,代码需要对数据进行操作,需要将代码部署到数据提供方,他希望保护自己的代码不被逆向工程,知识产权得以保障。上述双方角色区分为逻辑结构上的区分,在物理设备上不作强制区分。

图1是本发明基于端到端模型的代码可信执行方法的具体实施方式流程图。如图1所示,本发明基于端到端模型的代码可信执行方法的具体步骤包括:

s101:构建执行环境:

数据提供方制定代码对数据的使用规范,包括构建数据访问代理,设置数据访问权限以及执行结果返回格式;同时构建代码执行代理与可信执行环境,执行代理运行在非可信环境,实现对可信执行环境的初始化,并构建启动入口及通信组件。启动入口即为加密代码的恢复入口,通信组件的作用在于实现可信执行环境与数据使用方之间的报文构建与转发。图2是本发明中数据提供方执行环境的示意图。可信执行环境(tee)是一种安全的计算环境,由内存与存储功能组成。tee与操作系统、应用程序的正常运行环境相互隔离,将敏感操作局限在tee内。保证了执行代码的真实性,运行时状态的完整性(例如cpu寄存器,内存和敏感i/o),以及存储在持久内存中的代码、数据和运行时状态的机密性。如今较为常用的tee架构包括armtrustzonetechnology,intelsoftwareguardextensions(sgx),amdplatformsecureprocessor以及mesatee等,实际应用中可以根据需要选择。

s102:构建代码文件:

数据使用方根据数据提供方的数据使用规范构建代码文件,并采用对称加密算法对代码文件进行加密,加密后的代码文件与密钥k1由数据使用方安全存储。具体的加密算法可以由数据使用方自行选择,例如aes对称加密算法等。

s103:建立安全通道:

数据使用方与数据提供方进行身份验证,并由数据使用方和可信执行环境协商传输使用的会话密钥k2,建立安全通道,其具体过程包括:

数据提供方经由执行代理构建并启用可信执行环境,通过入口函数进入可信执行环境内部;可信执行环境构建建立安全通道的请求,并在报文中附带可信执行环境的身份证明,经由执行代理发送给数据使用方。

执行代理收到可信执行环境的请求信息之后,向该报文添加自身身份信息并签名后,构建完整请求,发往数据使用方。

数据使用方接受到建立安全连接的请求信息后,根据请求报文中的身份信息与签名进行验签操作,验签通过之后则数据使用方采用诸如ecdh等密钥交换协议与数据提供方的可信执行环境进行会话密钥协商以此构建数据交换的安全通道。协商出的会话密钥k2,由数据使用方的服务器与数据提供方的可信执行环境各自保管。

s104:代码文件传输:

数据使用方将加密后的代码文件和密钥k1采用密钥k2进行加密后发送给数据提供方,数据提供方在接收后则通过代码执行代理转发至可信执行环境,可信执行环境对接收到的文件先采用密钥k2进行解密,再采用密钥k1对代码文件进行解密恢复,然后关闭安全通道。

s105:代码执行:

数据提供方的执行代理启动代码在可信执行环境中的运行,代码执行过程中通过数据访问代理进行数据访问。由于可信执行环境的特性,能够有效避免代码的内存风险和黑客窃取问题,同时通过数据访问代理防止对数据的非法访问。

s106:执行结果反馈:

在代码执行完毕后,执行代理根据数据提供方预先设置的规则对执行结果进行合法性判断,如果通过合法性判断,则向数据使用方反馈执行结果,否则向数据使用方发送执行结果不合法的提示。合法性判断的规则一般包括执行结果中的数据格式与报文长度并限制代码在一定时间内的调用频率,防止代码结果中包含源数据,从而防止源数据向外部传递。

根据以上描述可知,本发明可以从以下三个方面提高代码执行的安全性:

(1)数据安全:数据提供方提供代码实际的运行环境,把传统运算过程中数据提供方向外分发数据的过程转变为由数据使用方将代码交由提供方执行。源数据在整个工作流程中,始终不脱离数据提供方可控的环境。代码对数据的访问经由数据访问代理,数据访问代理可拒绝可疑的数据传输与网络通信,通过这一控制能够有效的避免代码运行过程中对于数据的恶意泄露。

(2)代码安全:数据使用方通过数据提供方的可信执行环境和数据使用方之间的安全通道,将加密后的代码与密钥分别发送给数据提供方,保证代码在网络传输过程是加密的。密钥只有安全通道链接的双方持有,代码只有在到达数据提供方的可信执行环境中才会被解密,从而有效的保证了数据使用方代码的安全性。

(3)执行安全:由于数据提供方所构建的可信执行环境是一个隔离的运行环境,它的内存空间与本机的其他所有程序隔离(包括操作系统),因此除了与它通过执行代理交互以外,任何程序都没有对这一环境的访问权限,达到了隔离计算的目的,从而保护了代码与源数据在运算过程中的安全。

为了更好地说明本发明的技术方案,结合物联网领域的一个具体应用实例对本发明进行具体说明。在物联网的诸多应用场景中,均存在着数据孤岛的问题。由于数据收集终端归属的厂家与开发商不同,导致同一使用场景中的大量可用数据被分散,难以被大数据处理或是机器学习等研究领域利用。同时各数据收集方也不愿将己方的数据资源向外分发,使得自己的数据权益受到损害。

以物联网领域中的智能家居行业为例,智能家居是通过物联网技术,将住宅内的各类智能家电与家具连接在一起,提供方便的控制与检测等功能。智能家居通过智能家居终端上的智能硬件采集智能家居终端的运行数据,例如温控、耗电等,并通过网络传回提供商的服务器。对于这些智能家居终端的运行数据进行分析,在产品优化、节能环保、广告投放等方向均有参考意义。在这一使用场景中,各智能家居产品的提供商即为数据提供方,所提供的数据为智能家居终端的运行数据。那么数据使用方即为需要采用这些智能家居终端的运行数据进行分析,并以分析结果作为经营决策参考的机构,例如需要数据进行广告精准投放参考的广告商,需要数据进行节能方案设计参考的环保工作者,所需要执行的代码即为智能家居终端运行数据分析代码。

但是由于从各智能家居终端上传的数据为各个提供商所有,各个提供商之间由于竞争关系并不愿意直接提供自己的原始数据。这使得数据使用方的对于普遍性特征的研究变得困难,毕竟相关分析仅依赖一家提供商的数据得到的结果是不准确也不客观的。因此通过本发明,能够实现在数据提供方自身可控的环境内,由非提供方可控的程序对数据进行分析计算,同时保证数据与代码双方的安全性。

数据使用方根据数据提供方设定的数据规范,进行智能家居终端运行数据分析代码的编写;数据提供方则为数据使用方提供隔离计算运行环境。双方依照本发明流程所述,由数据提供方启动可信执行环境,数据使用方将加密后的智能家居终端运行数据分析代码与密钥分别发送至可信执行环境内,并恢复智能家居终端运行数据分析代码。智能家居终端运行数据分析代码通过数据访问代理获取数据并进行处理,结果通过执行代理返回给数据使用方。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

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