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