检测隐私数据泄漏的方法技术

技术编号:35102286 阅读:12 留言:0更新日期:2022-10-01 17:10
本公开涉及针对能够在可信执行环境中运行的应用程序检测隐私数据泄漏的方法,包括:确定所述应用程序的隐私数据输入源;确定所述应用程序与所述可信执行环境之外进行交互的外部事件;运行测试用例,并记录在各测试用例中所述应用程序的隐私数据输入的信息和外部事件的信息;以及根据记录的隐私数据输入的信息和外部事件的信息计算隐私数据输入和外部事件之间的关联程度,并根据所述关联程度确定是否存在通过外部事件泄漏隐私数据输入的可能性。本公开还涉及针对侧信道攻击的检测应用程序数据泄漏的方法、将应用程序部署到可信执行环境的方法、非临时性计算机可读存储介质和计算设备。计算设备。计算设备。

【技术实现步骤摘要】
检测隐私数据泄漏的方法


[0001]本公开实施例属于计算机
,尤其涉及针对能够在可信执行环境中运行的应用程序检测隐私数据泄漏的方法、针对侧信道攻击的检测应用程序数据泄漏的方法、以及将应用程序部署到可信执行环境的方法。

技术介绍

[0002]可信执行环境(Trusted Execution Environment,TEE)是隐私计算的解决方式。TEE是基于CPU硬件的安全扩展,且与外部完全隔离。TEE最早是由Global Platform提出的概念,用于解决移动设备上资源的安全隔离,平行于操作系统为应用程序提供可信安全的执行环境。随着技术的发展,TEE相比于最初提出的概念已经是更加广义的TEE。例如,服务器芯片厂商Intel、AMD等都先后推出了硬件辅助的TEE并丰富了TEE的概念和特性。现在提起的TEE通常更多指这类硬件辅助的TEE技术。不同于移动端,云端访问需要远程访问,终端用户对硬件平台不可见,因此使用TEE的第一步就是要确认TEE的真实可信。因此现在的TEE技术都引入了远程证明机制,由硬件厂商(主要是CPU厂商)背书并通过数字签名技术确保用户对TEE状态可验证。同时仅仅是安全的资源隔离也无法满足的安全需求,进一步的数据隐私保护也被提出。包括Intel SGX、AMD SEV在内的商用TEE也都提供了内存加密技术,将可信硬件限定在CPU内部,总线和内存的数据均是密文防止恶意用户进行窥探。例如,英特尔的软件保护扩展(SGX)等TEE技术隔离了代码执行、远程证明、安全配置、数据的安全存储以及用于执行代码的可信路径。在TEE中运行的应用程序受到安全保护,几乎不可能被第三方访问。
[0003]以Intel SGX技术为例,SGX提供了围圈(enclave,也称为飞地),即内存中一个加密的可信执行区域,由CPU保护数据不被窃取。以采用支持SGX的CPU为例,利用新增的处理器指令,在内存中可以分配一部分区域EPC(Enclave Page Cache,围圈页面缓存或飞地页面缓存),通过CPU内的加密引擎MEE(Memory Encryption Engine)对其中的数据进行加密。EPC中加密的内容只有进入CPU后才会被解密成明文。实际应用中,可以将隐私数据加密后以密文形式传递至围圈中,并通过远程证明将对应的秘钥也传入围圈。然后,在CPU的加密保护下利用数据进行运算,结果会以密文形式返回。

技术实现思路

[0004]本公开的目的在于提供针对能够在可信执行环境中运行的应用程序检测隐私数据泄漏的方法、针对侧信道攻击的检测应用程序数据泄漏的方法、将应用程序部署到可信执行环境的方法、非临时性计算机可读存储介质和计算设备。
[0005]根据本公开的第一方面,提供了一种针对能够在可信执行环境中运行的应用程序检测隐私数据泄漏的方法,包括:确定所述应用程序的隐私数据输入源;确定所述应用程序与所述可信执行环境之外进行交互的外部事件;运行测试用例,并记录在各测试用例中所述应用程序的隐私数据输入的信息和外部事件的信息;以及根据记录的隐私数据输入的信
息和外部事件的信息计算隐私数据输入和外部事件之间的关联程度,并根据所述关联程度确定是否存在通过外部事件泄漏隐私数据输入的可能性。
[0006]根据本公开的第二方面,提供了一种针对侧信道攻击的检测应用程序数据泄漏的方法,包括:通过模糊测试技术生成针对所述应用程序的测试用例;确定所述应用程序在运行期间能够产生的外部事件;在所述应用程序的代码中进行插桩以记录外部事件的信息;运行测试用例,并记录在各测试用例中所述应用程序的数据输入的信息和外部事件的信息;以及根据记录的数据输入的信息和外部事件的信息计算数据输入和外部事件之间的关联程度,并根据所述关联程度确定是否存在通过外部事件泄漏数据输入的可能性。
[0007]根据本公开的第三方面,提供了一种将应用程序部署到可信执行环境的方法,包括:在部署所述应用程序之前,根据如下对所述应用程序进行隐私数据泄漏检测:确定所述应用程序的隐私数据输入源;确定所述应用程序与所述可信执行环境之外进行交互的外部事件;运行测试用例,并记录在各测试用例中所述应用程序的隐私数据输入的信息和外部事件的信息;以及根据记录的隐私数据输入的信息和外部事件的信息计算隐私数据输入和外部事件之间的关联程度,并根据所述关联程度确定是否存在通过外部事件泄漏隐私数据输入的可能性。
[0008]根据本公开的第四方面,提供了一种非临时性计算机可读存储介质,所述非临时性计算机可读存储介质上存储有一系列计算机可执行的指令,当所述一系列计算机可执行的指令被一个或多个计算设备执行时,使得所述一个或多个计算设备进行如上所述的方法。
[0009]根据本公开的第五方面,提供了一种计算设备,包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器被配置为存储一系列计算机可执行指令,其中,所述一系列计算机可执行指令在由所述一个或多个处理器执行时,使所述一个或多个处理器执行如上所述的方法。
附图说明
[0010]为了更清楚地说明本公开实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0011]图1是根据本公开实施例的针对能够在可信执行环境中运行的应用程序检测隐私数据泄漏的方法的示意性流程图;
[0012]图2是根据本公开实施例的针对能够在可信执行环境中运行的应用程序检测隐私数据泄漏的方法的示意性框图;
[0013]图3是包括可信执行环境的区块链网络中的链上节点的示意图;
[0014]图4是包括可信执行环境的区块链网络的链下节点的示意图;
[0015]图5是根据本公开实施例的将应用程序部署到可信执行环境的方法的流程图;
[0016]图6是根据本公开实施例的针对侧信道攻击的检测应用程序数据泄漏的方法的流程图;
[0017]图7是根据本公开实施例的节点设备的至少部分的结构示意图;
[0018]图8是可应用于根据本公开实施例的通用硬件系统的示例性框图。
具体实施方式
[0019]为了使本
的人员更好地理解本公开中的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。然而应当理解的是,本公开一个或多个实施例可以以多种不同的方式呈现出来,并不局限于下文描述的实施例。还应当理解的是,本公开一个或多个实施例能够以各种方式进行组合,从而提供更多额外的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
[0020]应当理解的是,本文中的用语仅用于描述特定的实施例,并不旨在限定。本文使用的所有术语(包括技术术语和科学术语)除非另外定义,均具有本领域技术本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对能够在可信执行环境中运行的应用程序检测隐私数据泄漏的方法,包括:确定所述应用程序的隐私数据输入源;确定所述应用程序与所述可信执行环境之外进行交互的外部事件;运行测试用例,并记录在各测试用例中所述应用程序的隐私数据输入的信息和外部事件的信息;以及根据记录的隐私数据输入的信息和外部事件的信息计算隐私数据输入和外部事件之间的关联程度,并根据所述关联程度确定是否存在通过外部事件泄漏隐私数据输入的可能性。2.根据权利要求1所述的方法,还包括:根据用户的指定确定所述隐私数据输入源。3.根据权利要求1所述的方法,其中,所述隐私数据输入源包括以下中的至少一个:所述应用程序的输入参数中的隐私数据;所述应用程序在运行中会读取的文件中的隐私数据;和所述应用程序在运行中会从网络中获取的隐私数据。4.根据权利要求1所述的方法,其中,所述外部事件包括以下中的至少一个:对所述可信执行环境之外的请求和/或响应;通过网络传输数据;和读写文件。5.根据权利要求4所述的方法,其中,对所述可信执行环境之外的请求和/或响应包括基于HTTP的请求和/或响应。6.根据权利要求1所述的方法,其中,外部事件的信息包括外部事件的内容信息和与外部事件相关的时间信息。7.根据权利要求1所述的方法,还包括:通过模糊测试技术生成测试用例。8.根据权利要求1所述的方法,还包括:通过在所述应用程序的代码中插桩来记录在各测试用例中所述应用程序的外部事件的信息。9.根据权利要求1所述的方法,还包括:通过计算隐私数据输入和外部事件之间的互信息来计算隐私数据输入和外部事件之间的关联程度。10.根据权利要求9所述的方法,其中,根据如下公式计算隐私数据输入x和外部事件y之间的互信息IFStrength(x,y,V
x
,V
y
):IFStrength(x,y,V
x
,V
y
)=H(x,V
x
)

H(x|y,V
x
,V
y
),其中,Vx是隐私数据输入x的值域空间,Vy是外部事件y的值域空间,H(x,V
x
)是隐私数据输入x的信息熵,H(x|y,V
x
,V
y
)是在给定外部事件y的条件下隐私数据输入x的条件熵,分别根据如下公式计算:
其中,P(
·
)表示概率函数。11.根据权利要求9所述的方法,还包括:响应于隐私数据输入和外部事件之间的互信息大于阈值,确定为存在通过外部事件泄漏隐私数据输入的可能性。12.根据权利要求1所述的方法,还包括:响应于确定为存在通过外部事件泄漏隐私数据输入的可能性,输出隐私数据泄漏的检测报告。13.根据权利要求1所述的方法,其中,所述可信执行环境在区块链网络中的链上节点设备中实现,所述应用程序为将要被部署在区块链网络中的智能合约。14.根据权利要求1所述的方法,其中,所述可信执行环境在区块链网络之外的链下节点设备中实现,所述链下节点设备被配置为响应于区块链网络的请求,在所述可信执行环境中进行隐私计算,并将计算结果返回给所述区块链网络。15.一种针对侧信道攻击的检测应用程序数据泄漏的方法,包括:通过模糊测试技术生成针对所述应用程序的测试用例;确定所述应用程序在运行期间能够产生的外部事件;在所述应用程序的代码中进行插桩以记录外部事件的信息;运行测试用例,并记录在各测试用例中所述应用程序的数据输入的信息和外部事件的信息;以及根据记录的数据输入的信息和外部事件的信息计算数据输入和外部事件之间的关联程度,并根据所述关联程度确定是否存在通过外部事件泄漏数据输入的可能性。16.根据权利要求15所述的方法,其中,所述外部事件包括以下中的至少一个:对所述应用程序之外的请求和/或响应;通过网络传输数据;和读写文件。17.根据权利要求16所述的方法,其中,对所述应用程序之外的请求和/或响应包括基于HTTP的请求和/或响应。18.根据权利要求15所述的方法,其中,外部事件的信息包括外部事件的内容信息和与外部事件相关的时间信息。19.根据权利要求15所述的方法,还包括:通过计算数据输入和外部事件之间的互信息来计算数据输入和外部事件之间的关联程度。20.根据权利要求19所述的方法,其中,根据如下公式计算数据输入x和外部事件y之间的互信息IFStrength(x,y,V
x
,V
y
):IFStrength(x,y,V
x
,V
y
)=H(x,V
x
)

H(x|y,V
x
,V
y
),其中,...

【专利技术属性】
技术研发人员:王海军吴行行邬萌邱鸿霖余逸荣
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1