发明内容
本说明书提出一种数据授权方法,所述方法应用于搭载了可信执行环境的电子设备;所述可信执行环境中部署了至少一个应用程序;以及,所述可信执行环境中存储了参与可信计算的隐私数据;所述方法包括:
接收所述数据授权方发送的针对所述隐私数据的数据授权信息;其中,所述数据授权信息包括与所述应用程序对应的授权标识;
确定所述数据授权信息中的与所述应用程序对应的授权标识,与所述可信执行环境中存储的与所述应用程序对应的授权标识是否相同;其中,所述可信执行环境中存储的与所述应用程序对应的授权标识,在所述应用程序每次重新启动时进行更新;
如果是,授权所述应用程序基于所述隐私数据进行可信计算的权限。
可选地,所述方法还包括:
确定所述可信执行环境中存储的与所述应用程序对应的授权标识是否发生更新;
如果是,解除所述应用程序基于所述隐私数据进行可信计算的权限。
可选地,所述数据授权信息还包括与所述隐私数据对应的授权信息;
所述授权所述应用程序基于所述隐私数据进行可信计算的权限,包括:
将所述数据授权信息中的与所述隐私数据对应的授权信息存储至所述可信执行环境;或者,将所述数据授权信息中的与所述隐私数据对应的授权信息存储至所述可信执行环境,并将所述授权信息设置为有效状态;
所述解除所述应用程序基于所述隐私数据进行可信计算的权限,包括:
删除所述可信执行环境中存储的所述授权信息;或者,将所述可信执行环境中存储的所述授权信息设置为无效状态。
可选地,所述数据授权信息被基于所述数据授权方的私钥进行了数字签名;
所述确定所述数据授权信息中的与所述应用程序对应的授权标识,与所述可信执行环境中存储的与所述应用程序对应的授权标识是否相同之前,所述方法还包括:
基于所述可信执行环境中存储的所述数据授权方的公钥,对与所述数据授权信息对应的数字签名进行验证;
如果验证通过,则确定所述数据授权信息中的与所述应用程序对应的授权标识,与所述可信执行环境中存储的与所述应用程序对应的授权标识是否相同。
可选地,所述将所述数据授权信息中的所述授权信息存储至所述可信执行环境,包括:
确定所述可信执行环境中是否存储了与所述隐私数据对应的授权信息;
如果否,则将所述数据授权信息中的与所述隐私数据对应的授权信息存储至所述可信执行环境;
如果是,则基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新。
可选地,与所述隐私数据对应的授权信息包括与所述数据授权方对应的身份凭证;
所述基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新之前,所述方法还包括:
确定所述数据授权信息中的与所述数据授权方对应的身份凭证,与所述可信执行环境中存储的与所述数据授权方对应的身份凭证是否相同;
如果是,则基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新。
可选地,所述身份凭证包括所述数据授权方的公钥。
可选地,与所述隐私数据对应的授权信息包括与所述隐私数据对应的数据标识;
所述基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新之前,所述方法还包括:
确定所述数据授权信息中的与所述隐私数据对应的数据标识,与所述可信执行环境中存储的与所述隐私数据对应的数据标识是否相同;
如果是,则基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新。
可选地,所述数据标识包括与所述隐私数据对应的数据摘要。
可选地,与所述隐私数据对应的授权信息包括与所述隐私数据对应的数据版本;
所述基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新之前,所述方法还包括:
确定所述数据授权信息中的与所述隐私数据对应的数据版本,是否高于所述可信执行环境中存储的与所述隐私数据对应的数据版本;
如果是,则基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新。
可选地,所述方法还包括:
接收数据调用方发送的针对所述隐私数据的数据调用请求;
确定所述可信执行环境中是否存储了与所述隐私数据对应的授权信息;或者,确定所述可信执行环境中是否存储了与所述隐私数据对应的有效状态的授权信息;
如果是,则触发所述应用程序基于所述隐私数据进行可信计算。
可选地,所述授权信息包括:授权状态;
所述触发所述应用程序基于所述隐私数据进行可信计算,包括:
确定所述授权信息中的授权状态是否为已授权状态;
如果是,则触发所述应用程序基于所述隐私数据进行可信计算。
可选地,所述授权信息包括:剩余授权次数;
所述触发所述应用程序基于所述隐私数据进行可信计算,包括:
确定所述授权信息中的剩余授权次数是否大于0;
如果是,则触发所述应用程序基于所述隐私数据进行可信计算,并将所述授权信息中的剩余授权次数减1。
本说明书还提出一种数据授权装置,所述装置应用于搭载了可信执行环境的电子设备;所述可信执行环境中部署了至少一个应用程序;以及,所述可信执行环境中存储了参与可信计算的隐私数据;所述装置包括:
第一接收模块,接收所述数据授权方发送的针对所述隐私数据的数据授权信息;其中,所述数据授权信息包括与所述应用程序对应的授权标识;
第一确定模块,确定所述数据授权信息中的与所述应用程序对应的授权标识,与所述可信执行环境中存储的与所述应用程序对应的授权标识是否相同;其中,所述可信执行环境中存储的与所述应用程序对应的授权标识,在所述应用程序每次重新启动时进行更新;
授权模块,如果是,授权所述应用程序基于所述隐私数据进行可信计算的权限。
可选地,所述装置还包括:
确定模块,确定所述可信执行环境中存储的与所述应用程序对应的授权标识是否发生更新;
解除模块,如果是,解除所述应用程序基于所述隐私数据进行可信计算的权限。
可选地,所述数据授权信息还包括与所述隐私数据对应的授权信息;
所述授权模块:
将所述数据授权信息中的与所述隐私数据对应的授权信息存储至所述可信执行环境;或者,将所述数据授权信息中的与所述隐私数据对应的授权信息存储至所述可信执行环境,并将所述授权信息设置为有效状态;
所述解除模块:
删除所述可信执行环境中存储的所述授权信息;或者,将所述可信执行环境中存储的所述授权信息设置为无效状态。
可选地,所述数据授权信息被基于所述数据授权方的私钥进行了数字签名;
所述第一确定模块:
在确定所述数据授权信息中的与所述应用程序对应的授权标识,与所述可信执行环境中存储的与所述应用程序对应的授权标识是否相同之前,基于所述可信执行环境中存储的所述数据授权方的公钥,对与所述数据授权信息对应的数字签名进行验证;
如果验证通过,则确定所述数据授权信息中的与所述应用程序对应的授权标识,与所述可信执行环境中存储的与所述应用程序对应的授权标识是否相同。
可选地,所述授权模块:
确定所述可信执行环境中是否存储了与所述隐私数据对应的授权信息;
如果否,则将所述数据授权信息中的与所述隐私数据对应的授权信息存储至所述可信执行环境;
如果是,则基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新。
可选地,与所述隐私数据对应的授权信息包括与所述数据授权方对应的身份凭证;
所述授权模块:
在基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新之前,确定所述数据授权信息中的与所述数据授权方对应的身份凭证,与所述可信执行环境中存储的与所述数据授权方对应的身份凭证是否相同;
如果是,则基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新。
可选地,所述身份凭证包括所述数据授权方的公钥。
可选地,与所述隐私数据对应的授权信息包括与所述隐私数据对应的数据标识;
所述授权模块:
在基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新之前,确定所述数据授权信息中的与所述隐私数据对应的数据标识,与所述可信执行环境中存储的与所述隐私数据对应的数据标识是否相同;
如果是,则基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新。
可选地,所述数据标识包括与所述隐私数据对应的数据摘要。
可选地,与所述隐私数据对应的授权信息包括与所述隐私数据对应的数据版本;
所述授权模块:
在基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新之前,确定所述数据授权信息中的与所述隐私数据对应的数据版本,是否高于所述可信执行环境中存储的与所述隐私数据对应的数据版本;
如果是,则基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新。
可选地,所述装置还包括:
第二接收模块,接收数据调用方发送的针对所述隐私数据的数据调用请求;
第二确定模块,确定所述可信执行环境中是否存储了与所述隐私数据对应的授权信息;或者,确定所述可信执行环境中是否存储了与所述隐私数据对应的有效状态的授权信息;
计算模块,如果是,则触发所述应用程序基于所述隐私数据进行可信计算。
可选地,所述授权信息包括:授权状态;
所述计算模块:
确定所述授权信息中的授权状态是否为已授权状态;
如果是,则触发所述应用程序基于所述隐私数据进行可信计算。
可选地,所述授权信息包括:剩余授权次数;
所述计算模块:
确定所述授权信息中的剩余授权次数是否大于0;
如果是,则触发所述应用程序基于所述隐私数据进行可信计算,并将所述授权信息中的剩余授权次数减1。
本说明书还提出一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现上述方法的步骤。
本说明书还提出一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述方法的步骤。
在上述技术方案中,可以在可信执行环境中存储具有时效性的与应用程序对应的授权标识和与隐私数据对应的授权信息,并在确定了数据授权方发送的针对该隐私数据的数据授权信息中的该授权标识与该可信执行环境中存储的该授权标识相同时,将该数据授权信息中的与该隐私数据对应的授权信息存储至该可信执行环境,这样便于数据授权方对隐私数据的使用进行管理,也可以提高隐私数据的数据安全性。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
在实际应用中,可以在电子设备中搭载可信执行环境,并在该可信执行环境中部署至少一个应用程序。在这种情况下,部署的各个应用程序都可以在该可信执行环境中运行;也即,可以将与各个应用程序对应的代码和数据加载到该可信执行环境中执行,以保护与各个应用程序对应的代码和数据的机密性和完整性。
其中,搭载了可信执行环境的电子设备可以是服务器、计算机、手机、平板设备、笔记本电脑、掌上电脑(PDAs,Personal Digital Assistants)等设备,本说明书对此不作限制。
通常,针对可信执行环境中部署的某个应用程序,可以预先将与该应用程序对应的数据(例如:与该应用程序对应的程序代码指定的函数;与该应用程序对应的程序代码被执行时所需要的参数;等等)存储在该可信执行环境中。后续,用户在调用该应用程序时,可以指定本次调用中与该应用程序对应的数据(即本次调用中该应用程序在运行时所需要使用的数据),从而使该应用程序可以在该可信执行环境中,基于用户指定的数据进行可信计算,并输出对应的计算结果。
具体地,可以预先对与该应用程序对应的数据进行加密,并将加密后的这些数据作为与该应用程序对应的隐私数据,存储在该可信执行环境中。后续,该应用程序可以在该可信执行环境中,先对用户指定的隐私数据进行解密,再基于解密后的数据进行可信计算,并输出对应的计算结果。
对于与可信执行环境中部署的应用程序对应的隐私数据而言,这些隐私数据通常由数据所有方持有并维护,并将这些隐私数据提供给该应用程序,从而使该应用程序可以在该可信执行环境中基于该隐私数据进行可信计算。
相关技术中,针对可信执行环境中部署的某个应用程序,可以基于数据所有方的公钥,对与该应用程序对应的隐私数据进行加密,并将加密后的该隐私数据提供给该应用程序;相应地,该应用程序可以在该可信执行环境中,基于该数据所有方的私钥对加密后的该隐私数据进行解密,得到该隐私数据,并基于该隐私数据进行可信计算。
然而,由于在上述数据所有方将使用上述公钥加密后的该隐私数据提供给持有该私钥的应用程序之后,该应用程序可以不受任何限制地使用该隐私数据(即基于该隐私数据进行可信计算),因此数据所有方对该隐私数据的使用的管理力度较小,该隐私数据的安全难以得到保证。
为了便于对隐私数据的使用进行管理(例如:仅允许特定的应用程序使用该隐私数据;仅允许该隐私数据被使用一定的次数;等等),提高隐私数据的数据安全性,本说明书提供一种在可信执行环境中存储具有时效性的与应用程序对应的授权标识和与隐私数据对应的授权信息,并在确定了接收到的针对该隐私数据的数据授权信息中的该授权标识与该可信执行环境中存储的该授权标识相同时,将该数据授权信息中的与该隐私数据对应的授权信息存储至该可信执行环境的技术方案。
在具体实现时,针对上述可信执行环境中部署的某个应用程序,为了将与该应用程序对应的隐私数据授权给该应用程序使用,数据授权方可以发起针对该隐私数据的数据授权信息,并通过与该数据授权方对应的电子设备将该数据授权信息发送给搭载了该可信执行环境的电子设备。
在实际应用中,上述数据授权信息可以包括:与上述应用程序对应的授权标识。
在接收到上述数据授权信息时,一方面,可以获取该数据授权信息中的与上述应用程序对应的授权标识;另一方面,可以获取上述可信执行环境中存储的与该应用程序对应的授权标识。进一步地,可以在上述可信执行环境中,确定该数据授权信息中的与该应用程序对应的授权标识,与该可信执行环境中存储的与该应用程序对应的授权标识是否相同。
如果上述数据授权信息中的与上述应用程序对应的授权标识,与该可信执行环境中存储的与该应用程序对应的授权标识相同,则可以认为上述数据授权方是在该应用程序的当前运行过程中执行隐私数据授权操作的,因此可以在该可信执行环境中,将该数据授权信息中的与上述隐私数据对应的授权信息存储至该可信执行环境。
需要说明的是,与上述应用程序对应的授权标识,可以是在该应用程序启动时,由上述可信执行环境针对该应用程序生成的用于隐私数据授权的标识;该授权标识被存储在该可信执行环境中,并且该授权标识在该应用程序每次重新启动时都会被更新,即该授权标识具有时效性。
上述可信执行环境中存储的与上述隐私数据对应的授权信息,在该可信执行环境中存储的与上述应用程序对应的授权标识发生更新时失效。由于该可信执行环境中存储的与该应用程序对应的授权标识在该应用程序每次重新启动时都会被更新,因此该可信执行环境中存储的与该隐私数据对应的授权信息也具有时效性。
在上述技术方案中,可以在可信执行环境中存储具有时效性的与应用程序对应的授权标识和与隐私数据对应的授权信息,并在确定了数据授权方发送的针对该隐私数据的数据授权信息中的该授权标识与该可信执行环境中存储的该授权标识相同时,将该数据授权信息中的与该隐私数据对应的授权信息存储至该可信执行环境,这样便于数据授权方对隐私数据的使用进行管理,也可以提高隐私数据的数据安全性。
请参考图1,图1是本说明书一示例性实施例示出的一种数据授权系统的示意图。
如图1所示,可以在电子设备中搭载可信执行环境,并在该可信执行环境中部署至少一个应用程序,此时部署的各个应用程序都可以在该可信执行环境中运行。此外,还可以将参与可信计算的隐私数据存储在该可信执行环境中。在这种情况下,对于部署在该可信执行环境中的某个应用程序而言,该应用程序可以使用与该应用程序对应的隐私数据;也即,该应用程序可以在该可信执行环境中基于与该应用程序对应的隐私数据进行可信计算。
其中,上述应用程序可以是执行面向用户的业务逻辑的软件应用(Application),也可以是包括机器学习模型等计算模型的程序,本说明书对此不作限制。
需要说明的是,上述隐私数据可以由数据授权方授权给上述应用程序使用,例如:可以由数据所有方针对该隐私数据对该应用程序进行授权,并将该隐私数据提供给该应用程序,以由该应用程序在被授权的情况下,在上述可信执行环境中基于该隐私数据进行可信计算。
请参考图2,图2是本说明书一示例性实施例示出的一种数据授权方法的流程图。
结合如图1所示的数据授权系统,该数据授权方法可以应用于该数据授权系统中的搭载了可信执行环境的电子设备;该可信执行环境中部署了至少一个应用程序。该数据授权方法可以包括以下步骤:
步骤202,接收所述数据授权方发送的针对所述隐私数据的数据授权信息;其中,所述数据授权信息包括与所述应用程序对应的授权标识;
步骤204,确定所述数据授权信息中的与所述应用程序对应的授权标识,与所述可信执行环境中存储的与所述应用程序对应的授权标识是否相同;其中,所述可信执行环境中存储的与所述应用程序对应的授权标识,在所述应用程序每次重新启动时进行更新;
步骤206,如果是,授权所述应用程序基于所述隐私数据进行可信计算的权限。
在本实施例中,针对上述可信执行环境中部署的某个应用程序,为了将与该应用程序对应的隐私数据授权给该应用程序使用,数据授权方(例如:该隐私数据的数据所有方)可以发起针对该隐私数据的数据授权信息,并通过与该数据授权方对应的电子设备将该数据授权信息发送给搭载了该可信执行环境的上述电子设备。
在实际应用中,上述数据授权信息可以包括:与上述应用程序对应的授权标识。
需要说明的是,与上述应用程序对应的授权标识,可以是在该应用程序启动时,由上述可信执行环境针对该应用程序生成的用于隐私数据授权的标识;该授权标识被存储在该可信执行环境中,并且该授权标识在该应用程序每次重新启动时都会被更新,即该授权标识具有时效性。
具体地,在该应用程序每次重新启动时,都可以由该可信执行环境针对该应用程序生成授权标识,并将生成的授权标识存储在该可信执行环境中,且每次生成的授权标识互不相同。
在这种情况下,该可信执行环境中存储的与该应用程序对应的授权标识,可以用于表示该应用程序的运行过程。例如:如果在不同的两个时刻检测到的与该应用程序对应的授权标识相同,则可以认为在这两个时刻该应用程序处于同一运行过程中,即在这两个时刻之间的时间段内该应用程序未重新启动;如果在不同的两个时刻检测到的与该应用程序对应的授权标识不同,则可以认为在这两个时刻该应用程序处于不同的两个运行过程中,即在这两个时刻之间的时间段内该应用程序已经重新启动。
举例来说,在该应用程序每次重新启动时,可以由该可信执行环境针对该应用程序生成一个随机数,并将该随机数确定为与该应用程序对应的授权标识,这样可以保证该可信执行环境针对该应用程序每次生成的授权标识是完全随机的,即每次生成的授权标识互不相同;或者,在该应用程序每次重新启动时,可以由该可信执行环境针对该应用程序生成一个随机数,并将对该随机数和该应用程序的ID(例如:该应用程序的程序名称)进行hash计算得到的hash值确定为与该应用程序对应的授权标识;本说明书对此不作限制。
此外,还可以将该可信执行环境针对该应用程序每次生成的授权标识提供给上述数据授权方,从而使该数据授权方可以利用该授权标识执行隐私数据授权操作。
在本实施例中,在接收到上述数据授权信息时,一方面,可以获取该数据授权信息中的与上述应用程序对应的授权标识;另一方面,可以获取上述可信执行环境中存储的与该应用程序对应的授权标识。进一步地,可以在上述可信执行环境中,确定该数据授权信息中的与该应用程序对应的授权标识,与该可信执行环境中存储的与该应用程序对应的授权标识是否相同。
在本实施例中,如果上述数据授权信息中的与上述应用程序对应的授权标识,与该可信执行环境中存储的与该应用程序对应的授权标识相同,则可以认为上述数据授权方是在该应用程序的当前运行过程中执行隐私数据授权操作的,因此可以在该可信执行环境中,授权该应用程序基于上述隐私数据进行可信计算的权限。
相应地,在确定了上述可信执行环境中存储的与上述应用程序对应的授权标识发生更新时,可以解除该应用程序基于上述隐私数据进行可信计算的权限。由于该可信执行环境中存储的与该应用程序对应的授权标识在该应用程序每次重新启动时都会被更新,因此该应用程序基于该隐私数据进行可信计算的权限也具有时效性。
具体地,在该应用程序每次重新启动时,由于与该应用程序对应的授权标识发生更新,因此该应用程序基于上述隐私数据进行可信计算的权限被解除,此时在该应用程序的当前运行过程中需要由上述数据授权方针对该隐私数据重新执行隐私数据授权操作。
在示出的一种实施方式中,上述数据授权信息还可以包括:与上述隐私数据对应的授权信息。
在授权上述应用程序基于上述隐私数据进行可信计算的权限时,可以直接将上述数据授权信息中的与该隐私数据对应的授权信息存储至上述可信执行环境;而在解除权限时,则可以删除该可信执行环境中存储的与该隐私数据对应的授权信息。
或者,在授权上述应用程序基于上述隐私数据进行可信计算的权限时,可以将上述数据授权信息中的与该隐私数据对应的授权信息存储至上述可信执行环境,并将该授权信息设置为有效状态;而在解除权限时,则可以将该可信执行环境中存储的与该隐私数据对应的授权信息设置为无效状态。
在这种情况下,在使用上述隐私数据时,可以先确定上述应用程序是否具有基于该隐私数据进行可信计算的权限;如果是,则说明该应用程序可以使用该隐私数据,即该应用程序可以基于该隐私数据进行可信计算。
在示出的一种实施方式中,上述数据授权方可以使用其私钥对与上述数据授权信息进行数字签名,并将被进行了数字签名的该数据授权信息发送给搭载了上述可信执行环境的电子设备。
该电子设备在接收到该数据授权信息时,可以先在上述可信执行环境中,获取该可信执行环境中存储的该数据授权方的公钥,并基于获取到的该数据授权方的公钥对与该数据授权信息对应的数字签名进行验证;如果针对该数字签名的验证通过,则可以执行该数据授权信息,即可以将上述数据授权信息中的与上述隐私数据对应的授权信息存储至上述可信执行环境。
在示出的一种实施方式中,在将上述数据授权信息中的与上述隐私数据对应的授权信息存储至上述可信执行环境时,可以先在该可信执行环境中,确定该可信执行环境中是否存储了与该隐私数据对应的授权信息。
如果该可信执行环境中没有存储与该隐私数据对应的授权信息,则说明在该上述应用程序的当前运行过程中尚未针对该隐私数据执行隐私数据授权操作,因此可以直接将该数据授权信息中的与该隐私数据对应的授权信息存储至该可信执行环境,以完成隐私数据授权操作。
如果该可信执行环境中存储了与该隐私数据对应的授权信息,则说明在该上述应用程序的当前运行过程中已经针对该隐私数据执行了隐私数据授权操作,因此可以基于该数据授权信息中的与该隐私数据对应的授权信息,对此时该可信执行环境中存储的与该隐私数据对应的授权信息进行更新。
为了保证授权信息更新的安全性,在示出的一种实施方式中,上述数据授权信息中的与上述隐私数据对应的授权信息可以包括:与上述数据授权方对应的身份凭证。也即,上述可信执行环境中存储的与该隐私数据对应的授权信息包括:与该数据授权方对应的身份凭证。
在这种情况下,可以先在该可信执行环境中,确定该数据授权信息中的与该数据授权方对应的身份凭证,与该可信执行环境中存储的与该数据授权方对应的身份凭证是否相同。如果是,则可以认为针对授权信息更新的验证通过,从而可以基于该数据授权信息中的与该隐私数据对应的授权信息,对此时该可信执行环境中存储的与该隐私数据对应的授权信息进行更新。
在实际应用中,上述与数据授权方对应的身份凭证可以包括:该数据授权方的公钥。
在示出的另一种实施方式中,上述数据授权信息中的与上述隐私数据对应的授权信息可以包括:与上述隐私数据对应的数据标识。也即,上述可信执行环境中存储的与该隐私数据对应的授权信息包括:与该隐私数据对应的数据标识。
在实际应用中,上述与隐私数据对应的数据标识可以包括:与隐私数据对应的数据摘要。例如,可以基于hash算法针对上述隐私数据进行计算,得到该隐私数据的hash值,并将该hash值确定为与该隐私数据对应的数据标识。
在这种情况下,可以先在该可信执行环境中,确定该数据授权信息中的与该隐私数据对应的数据摘要,与该可信执行环境中存储的与该隐私数据对应的数据摘要是否相同。如果是,则可以认为针对授权信息更新的验证通过,从而可以基于该数据授权信息中的与该隐私数据对应的授权信息,对此时该可信执行环境中存储的与该隐私数据对应的授权信息进行更新。
在示出的再一种实施方式中,上述数据授权信息中的与上述隐私数据对应的授权信息可以包括:与上述隐私数据对应的数据版本。也即,上述可信执行环境中存储的与该隐私数据对应的授权信息包括:与该隐私数据对应的数据版本。
在这种情况下,可以先在该可信执行环境中,确定该数据授权信息中的与该隐私数据对应的数据版本,是否比该可信执行环境中存储的与该隐私数据对应的数据版本更高。如果是,则可以认为该数据授权信息中的授权信息比该可信执行环境中存储的授权信息更新,因此可以认为针对授权信息更新的验证通过,从而可以基于该数据授权信息中的与该隐私数据对应的授权信息,对此时该可信执行环境中存储的与该隐私数据对应的授权信息进行更新。
举例来说,假设隐私数据的数据版本为数字形式的版本号,并且版本号的数字越大表示版本越高;进一步假设该数据授权信息中的与该隐私数据对应的数据版本为Version1.3,该可信执行环境中存储的与该隐私数据对应的数据版本为Version2.0;则由于2.0大于1.3,因此可以确定该数据授权信息中的与该隐私数据对应的数据版本,比该可信执行环境中存储的与该隐私数据对应的数据版本更高。
需要说明的是,上述数据授权信息中的与上述隐私数据对应的授权信息可以包括以下示出的一种或多种用于授权信息更新验证的信息:与上述数据授权方对应的身份凭证;与上述隐私数据对应的数据标识;与上述隐私数据对应的数据版本。如果该授权信息包括多种用于授权信息更新验证的信息,则在其中的每种信息均验证通过时,才可以确定针对授权信息更新的验证通过。
举例来说,假设该数据授权信息中的与该隐私数据对应的授权信息包括:与该数据授权方对应的身份凭证;与该隐私数据对应的数据标识;与该隐私数据对应的数据版本;进一步假设以下三个条件均被满足:(1)该数据授权信息中的与该数据授权方对应的身份凭证,与该可信执行环境中存储的与该数据授权方对应的身份凭证相同;(2)该数据授权信息中的与该隐私数据对应的数据标识,与该可信执行环境中存储的与该隐私数据对应的数据标识相同;(3)该数据授权信息中的与该隐私数据对应的数据版本,高于该可信执行环境中存储的与该隐私数据对应的数据版本;则可以确定针对授权信息更新的验证通过。
在实际应用中,上述数据授权信息中的与上述隐私数据对应的授权信息还可以包括:授权状态;剩余授权次数;等等;具体可以根据实际需求设置,本说明书对此不作限制。
在如图2所示的数据授权流程的基础上,请参考图3,图3是本说明书一示例性实施例示出的一种数据调用方法的流程图。
同样地,该数据调用方法可以应用于如图1所示的数据授权系统中的上述电子设备。该数据调用方法可以包括以下步骤:
步骤302,接收数据调用方发送的针对所述隐私数据的数据调用请求;
步骤304,确定所述可信执行环境中是否存储了与所述隐私数据对应的授权信息;或者,确定所述可信执行环境中是否存储了与所述隐私数据对应的有效状态的授权信息;
步骤306,如果是,则触发所述应用程序基于所述隐私数据进行可信计算。
针对上述应用程序,为了触发该应用程序基于上述隐私数据进行可信计算,数据调用方可以发起针对该隐私数据的数据调用请求,并通过与该数据调用方对应的电子设备将该数据调用请求发送给搭载了上述可信执行环境的电子设备。
如前所述,上述可信执行环境中部署的上述应用程序基于上述隐私数据进行可信计算的权限具有时效性。
具体地,在该应用程序每次重新启动时,由于与该应用程序对应的授权标识发生更新,因此该应用程序基于上述隐私数据进行可信计算的权限被解除,此时在该应用程序的当前运行过程中需要由上述数据授权方针对该隐私数据重新执行隐私数据授权操作。
在这种情况下,该电子设备在接收到该数据调用请求时,可以先确定上述应用程序是否具有基于该隐私数据进行可信计算的权限。
具体地,可以在该可信执行环境中,确定该可信执行环境中是否存储了与该数据标识对应的授权信息;或者,可以在该可信执行环境中,确定该可信执行环境中是否存储了与该数据标识对应的有效的授权信息。
如果是,则说明该应用程序可以使用该隐私数据,从而可以触发该应用程序基于上述隐私数据进行可信计算。
在实际应用中,上述数据调用请求可以包括:上述隐私数据的数据标识。在这种情况下,可以在该可信执行环境中,基于该数据调用请求中的数据标识,确定该可信执行环境中是否存储了与该数据标识对应的授权信息;如果是,则可以认为该可信执行环境中存储了与该隐私数据对应的授权信息。
或者,由于上述隐私数据可以预先存储在上述可信执行环境中,因此可以先确定由该数据调用请求指定的隐私数据,并在该可信执行环境中查找与存储的该隐私数据对应的数据标识。在查找到该数据标识之后,可以基于该数据标识确定上述可信执行环境中是否存储了与该数据标识对应的有效的授权信息;如果是,则可以认为该可信执行环境中存储了与该隐私数据对应的授权信息。
举例来说,可以在该应用程序每次重新启动时,删除在该应用程序的上一次运行过程中存储至该可信执行环境的与该隐私数据对应的授权信息。后续,如果基于与该隐私数据对应的数据标识,确定该可信执行环境中存储了与该数据标识对应的授权信息,则可以直接确定该授权信息有效,从而可以触发该应用程序基于上述隐私数据进行可信计算。
在另一个例子中,可以在将上述数据授权信息中的与该隐私数据对应的授权信息存储至该可信执行环境时,将该授权信息设置为有效状态,并在该应用程序每次重新启动时,将在该应用程序的上一次运行过程中存储至该可信执行环境的与该隐私数据对应的授权信息由有效状态切换为无效状态。后续,如果基于与该隐私数据对应的数据标识,确定该可信执行环境中存储了与该数据标识对应的有效状态的授权信息,则可以触发该应用程序基于上述隐私数据进行可信计算。
在示出的一种实施方式中,与上述隐私数据对应的授权信息可以包括:授权状态。
在这种情况下,在确定了上述可信执行环境中存储了有效状态的授权信息之后,可以进一步地确定该授权信息中的授权状态是否为已授权状态。如果是,则可以触发上述应用程序基于上述隐私数据进行可信计算。
相应地,对于上述可信执行环境中存储的有效状态的授权信息而言,如果该授权信息中的授权状态为未授权状态,则可以认为上述应用程序不能基于上述隐私数据进行可信计算。
在实际应用中,数据授权方可以通过对上述可信执行环境中存储的有效状态的授权信息进行更新,实现撤销针对上述隐私数据的授权,即不再允许上述应用程序使用该隐私数据。
结合上述步骤202-206,数据授权方可以发送针对该隐私数据的数据授权信息;其中,该数据授权信息中的授权信息可以包括表示未授权状态的授权状态信息。在这种情况下,可以在针对授权信息更新的验证通过之后,基于该数据授权信息中的与该隐私数据对应的授权信息,对该可信执行环境中存储的与该隐私数据对应的授权信息进行更新。后续,在接收上述数据调用请求,并确定了该可信执行环境中存储了有效状态的该授权信息之后,由于该授权信息中的授权状态为未授权状态,因此不会触发该应用程序基于该隐私数据进行可信计算,由此实现了撤销针对该隐私数据的授权。
在示出的一种实施方式中,与上述隐私数据对应的授权信息可以包括:剩余授权次数。
在这种情况下,在确定了上述可信执行环境中存储了有效状态的授权信息之后,可以进一步地确定该授权信息中的剩余授权次数是否大于0。如果是,则可以触发上述应用程序基于上述隐私数据进行可信计算;此外,在可信计算完成之后,还可以将该授权信息中的剩余授权次数减1。
需要说明的是,与上述隐私数据对应的授权信息可以包括以下示出的一种或多种用于验证的信息:授权状态;剩余授权次数。如果该授权信息包括多种用于验证的信息,则在其中的每种信息均验证通过时,才可以触发上述应用程序基于上述隐私数据进行可信计算。
举例来说,假设与该隐私数据对应的授权信息包括:授权状态;剩余授权次数;进一步假设以下两个条件均被满足:(1)该授权信息中的授权状态为已授权状态;(2)该授权信息中的剩余授权次数大于0;则可以触发该应用程序基于该隐私数据进行可信计算,并在可信计算完成之后,将该授权信息中的剩余授权次数减1。
在上述技术方案中,可以在可信执行环境中存储具有时效性的与应用程序对应的授权标识和与隐私数据对应的授权信息,并在确定了数据授权方发送的针对该隐私数据的数据授权信息中的该授权标识与该可信执行环境中存储的该授权标识相同时,将该数据授权信息中的与该隐私数据对应的授权信息存储至该可信执行环境,这样便于数据授权方对隐私数据的使用进行管理,也可以提高隐私数据的数据安全性。
与前述数据授权方法的实施例相对应,本说明书还提供了数据授权装置的实施例。
本说明书数据授权装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书数据授权装置所在电子设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该数据授权的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图5,图5是本说明书一示例性实施例示出的一种数据授权装置的框图。该数据授权装置50可以应用于如图4所示的电子设备,该电子设备上可以搭载可信执行环境的电子设备;所述可信执行环境中部署了至少一个应用程序;以及,所述可信执行环境中存储了参与可信计算的隐私数据;其中,所述应用程序在所述可信执行环境中存储了与所述隐私数据对应的有效的授权信息时,基于所述隐私数据进行可信计算;该数据授权装置50可以包括:
第一接收模块501,接收所述数据授权方发送的针对所述隐私数据的数据授权信息;其中,所述数据授权信息包括与所述应用程序对应的授权标识,以及与所述隐私数据对应的授权信息;
第一确定模块502,在所述可信执行环境中,确定所述数据授权信息中的与所述应用程序对应的授权标识,与所述可信执行环境中存储的与所述应用程序对应的授权标识是否相同;
授权模块503,如果是,则将所述数据授权信息中的与所述隐私数据对应的授权信息存储至所述可信执行环境;
其中,所述可信执行环境中存储的与所述应用程序对应的授权标识,在所述应用程序每次重新启动时进行更新;所述可信执行环境中存储的与所述隐私数据对应的授权信息,在所述可信执行环境中存储的与所述应用程序对应的授权标识发生更新时失效,以使所述应用程序在确定所述可信执行环境中存储了与所述隐私数据对应的有效的授权信息时,基于所述隐私数据进行可信计算。
在本实施例中,所述授权模块503:
确定所述可信执行环境中是否存储了与所述隐私数据对应的授权信息;
如果否,则将所述数据授权信息中的与所述隐私数据对应的授权信息存储至所述可信执行环境;
如果是,则基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新。
在本实施例中,所述数据授权信息中的与所述隐私数据对应的授权信息包括:与所述数据授权方对应的身份凭证;
所述授权模块503:
在基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新之前,确定所述数据授权信息中的与所述数据授权方对应的身份凭证,与所述可信执行环境中存储的与所述数据授权方对应的身份凭证是否相同;
如果是,则基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新。
在本实施例中,所述与所述数据授权方对应的身份凭证包括:所述数据授权方的公钥;所述数据授权信息还包括:基于与所述数据授权方对应的私钥对所述授权信息进行签名得到的数字签名;
所述授权模块503:
基于所述数据授权信息中的所述数据授权方的公钥,对所述数据授权信息中的数字签名进行验证;
如果验证通过,则确定所述数据授权信息中的所述数据授权方的公钥,与所述可信执行环境中存储的所述数据授权方的公钥是否相同。
在本实施例中,所述数据授权信息中的与所述隐私数据对应的授权信息包括:与所述隐私数据对应的数据标识;
所述授权模块503:
在基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新之前,确定所述数据授权信息中的与所述隐私数据对应的数据标识,与所述可信执行环境中存储的与所述隐私数据对应的数据标识是否相同;
如果是,则基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新。
在本实施例中,与所述隐私数据对应的数据标识包括:与所述隐私数据对应的数据摘要。
在本实施例中,所述数据授权信息中的与所述隐私数据对应的授权信息包括:与所述隐私数据对应的数据版本;
所述授权模块503:
在基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新之前,确定所述数据授权信息中的与所述隐私数据对应的数据版本,是否高于所述可信执行环境中存储的与所述隐私数据对应的数据版本;
如果是,则基于所述数据授权信息中的与所述隐私数据对应的授权信息,对所述可信执行环境中存储的与所述隐私数据对应的授权信息进行更新。
在本实施例中,所述装置50还包括:
第二接收模块504,接收数据调用方发送的针对所述隐私数据的数据调用请求;
第二确定模块505,在所述可信执行环境中,基于与所述隐私数据对应的数据标识,确定所述可信执行环境中是否存储了与所述数据标识对应的有效的授权信息;
计算模块506,如果是,则触发所述应用程序基于所述隐私数据进行可信计算。
在本实施例中,所述第二确定模块505:
确定与所述可信执行环境中存储的所述隐私数据对应的数据标识,并确定所述可信执行环境中是否存储了与所述数据标识对应的有效的授权信息。
在本实施例中,所述授权信息包括:授权状态;
所述计算模块506:
确定所述授权信息中的授权状态是否为已授权状态;
如果是,则触发所述应用程序基于所述隐私数据进行可信计算。
在本实施例中,所述授权信息包括:剩余授权次数;
所述计算模块506:
确定所述授权信息中的剩余授权次数是否大于0;
如果是,则触发所述应用程序基于所述隐私数据进行可信计算,并将所述授权信息中的剩余授权次数减1。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。