本说明书涉及计算机,尤其涉及一种数据流通方法、装置、存储介质及电子设备。
背景技术:
1、数据流通是指在数据提供方和数据请求方之间按照一定流通规则进行的以数据为对象的行为。数据流通技术中,最大的难点在于如何让数据的价值进行流通的同时,保证一方的隐私数据不会被其他方窃取。如今,现有方案是利用可信执行环境(trustedexecution environment,tee)来解决。tee提供了一种安全的隔离环境,可以阻止恶意的管理员或者物理拥有者的窥探。数据提供方可以放心的将数据发送到tee中,并在tee中完成计算,将结果返回给数据请求方。
2、目前,tee内部的软件生态的完善以及性能优化仍具挑战性。在采用tee进行数据流通的现有方法中,需要将计算软件放置到tee内。但对于大型计算框架来说,将其放置在tee内是十分复杂的,同时会导致其计算性能大幅下降。同时,要想达到预期的安全性,相关方需要验证tee内部的代码逻辑。那么,计算框架的每次代码更新都需要相关方重新验证,实际实施难度较大。
3、因此,如何在保证安全性的同时,降低数据流通过程的复杂程度是一个亟待解决的问题。
技术实现思路
1、本说明书提供一种数据流通方法、装置、存储介质及电子设备,以至少部分地解决现有技术存在的上述问题。
2、本说明书采用下述技术方案:
3、本说明书提供了一种数据流通方法,包括:
4、接收提供方发送的原始数据,并在可信执行环境中对所述原始数据进行加密,得到加密数据;
5、当接收到请求方发送的功能脚本时,针对每个功能脚本,确定该功能脚本需要的原始数据对应的加密数据,作为该功能脚本的操作数据;
6、将该功能脚本与所述操作数据传输给一般执行环境,并在所述一般执行环境中根据所述操作数据执行该功能脚本,得到加密结果;
7、将所述加密结果传输到所述可信执行环境,并在所述可信执行环境中对所述加密结果进行解密,得到运算结果;
8、将所述运算结果返回给所述请求方。
9、可选地,对所述原始数据进行加密,得到加密数据,具体包括:
10、针对每个原始数据,确定该原始数据参与的功能类型;
11、根据所述功能类型对该原始数据进行加密,得到该原始数据的加密数据。
12、可选地,在接收请求方发送的功能脚本之前,所述方法还包括:
13、对所述请求方进行身份验证;
14、当所述身份验证的结果为通过时,接收所述请求方发送的所述功能脚本;
15、当所述身份验证的结果为失败时,向所述请求方返回所述身份验证的结果。
16、可选地,在将该功能脚本与所述操作数据传输给一般执行环境之前,所述方法还包括:
17、确定该功能脚本执行的功能类型;
18、当所述功能类型为指定功能类型时,在所述可信执行环境中对该功能脚本的操作数据进行解密,并采用该功能脚本需要的原始数据执行该功能脚本,得到运算结果。
19、可选地,在将该功能脚本与所述操作数据传输给一般执行环境之前,所述方法还包括:
20、采用与得到所述操作数据时相同的加密方式,对该功能脚本包含的参数进行加密。
21、可选地,在将所述运算结果返回给所述请求方之前,所述方法还包括:
22、根据该功能脚本判断所述运算结果是否符合规范;
23、将所述运算结果返回给所述请求方,具体包括:
24、当所述运算结果符合规范时,将所述运算结果返回给所述请求方;
25、当所述运算结果不符合规范时,返回错误提示。
26、可选地,所述方法还包括:
27、每经过指定时长,对加密所述原始数据时采用的密钥进行更新,并采用更新后的密钥重新对所述原始数据进行加密,得到加密数据。
28、本说明书提供了一种数据流通装置,包括:
29、接收模块,用于接收提供方发送的原始数据,并在可信执行环境中对所述原始数据进行加密,得到加密数据;
30、确定模块,用于当接收到请求方发送的功能脚本时,针对每个功能脚本,确定该功能脚本需要的原始数据对应的加密数据,作为该功能脚本的操作数据;
31、传输模块,用于将该功能脚本与所述操作数据传输给一般执行环境,并在所述一般执行环境中根据所述操作数据执行该功能脚本,得到加密结果;
32、解密模块,用于将所述加密结果传输到所述可信执行环境,并在所述可信执行环境中对所述加密结果进行解密,得到运算结果;
33、返回模块,用于将所述运算结果返回给所述请求方。
34、可选地,所述接收模块,具体用于针对每个原始数据,确定该原始数据参与的功能类型;根据所述功能类型对该原始数据进行加密,得到该原始数据的加密数据。
35、可选地,所述装置还包括验证模块,具体用于对所述请求方进行身份验证;当所述身份验证的结果为通过时,接收所述请求方发送的所述功能脚本;当所述身份验证的结果为失败时,向所述请求方返回所述身份验证的结果。
36、可选地,所述装置还包括执行模块,具体用于确定该功能脚本执行的功能类型;当所述功能类型为指定功能类型时,在所述可信执行环境中对该功能脚本的操作数据进行解密,并采用该功能脚本需要的原始数据执行该功能脚本,得到运算结果。
37、可选地,所述装置还包括加密模块,具体用于采用与得到所述操作数据时相同的加密方式,对该功能脚本包含的参数进行加密。
38、可选地,所述装置还包括判断模块,具体用于根据该功能脚本判断所述运算结果是否符合规范;
39、所述返回模块,具体用于当所述运算结果符合规范时,将所述运算结果返回给所述请求方;当所述运算结果不符合规范时,返回错误提示。
40、可选地,所述装置还包括更新模块,具体用于每经过指定时长,对加密所述原始数据时采用的密钥进行更新,并采用更新后的密钥重新对所述原始数据进行加密,得到加密数据。
41、本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据流通方法。
42、本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据流通方法。
43、本说明书采用的上述至少一个技术方案能够达到以下有益效果:
44、在本说明书提供的数据流通方法中,接收提供方发送的原始数据,并在可信执行环境中对所述原始数据进行加密,得到加密数据;当接收到请求方发送的功能脚本时,针对每个功能脚本,确定该功能脚本需要的原始数据对应的加密数据,作为该功能脚本的操作数据;将该功能脚本与所述操作数据传输给一般执行环境,并在所述一般执行环境中根据所述操作数据执行该功能脚本,得到加密结果;将所述加密结果传输到所述可信执行环境,并在所述可信执行环境中对所述加密结果进行解密,得到运算结果;将所述运算结果返回给所述请求方。
45、在采用本说明书提供的数据流通方法时,可将提供方的原始数据与请求方的功能脚本均存储在可信执行环境中;随后对原始数据进行加密,得到加密数据,并确定出功能脚本需要的加密数据作为操作数据;将功能脚本与加密数据传输到一般执行环境中执行,得到加密结果;最终将加密结果返回到可信执行环境中,将解密得到的运算结果返回给请求方。本方法能够将计算生态与安全生态解耦,将计算的过程从可信执行环境中剥离,保证了数据安全的同时,最大程度地发挥全部的计算性能,提升了数据流通的效率,并保留了计算生态与安全生态分别持续发展的可行性。