可信程序升级方法、装置、设备及存储介质转让专利

申请号 : CN202211515009.7

文献号 : CN115543392B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曹京奇

申请人 : 北京百度网讯科技有限公司

摘要 :

本公开提供了一种可信程序升级方法、装置、设备及存储介质,涉及通信技术领域,尤其涉及可信计算技术。具体实现方案为:获取新版可信程序发送的升级请求;响应于升级请求,从区块链上获取新版可信程序的身份验证信息和传输公钥;对身份验证信息进行验证,并在验证通过后根据传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据;将迁移关联数据上链存储,并向新版可信程序发送应答请求,以使新版可信程序响应于应答请求,链上获取迁移关联数据,并采用传输公钥对应传输私钥解密敏感数据密文,得到敏感数据明文,本地封存。本公开技术方案,实现了对旧版可信程序的自动化升级,且提高了升级过程的安全性。

权利要求 :

1.一种可信程序升级方法,应用于旧版可信程序,包括:获取新版可信程序发送的升级请求;其中,所述新版可信程序中包括旧版可信程序中旧版业务逻辑对应的新版业务逻辑;

响应于所述升级请求,从区块链上获取所述新版可信程序的身份验证信息和传输公钥;

对所述身份验证信息进行验证,并在验证通过后根据所述传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据;

将所述迁移关联数据上链存储,并向所述新版可信程序发送应答请求,以使所述新版可信程序响应于所述应答请求,链上获取所述迁移关联数据,并采用所述传输公钥对应传输私钥解密所述敏感数据密文,得到敏感数据明文,本地封存。

2.根据权利要求1所述的方法,其中,所述身份验证信息基于所述传输公钥的公钥标识生成;所述对所述身份验证信息进行验证,包括:生成链上获取的传输公钥对应的标识信息,并将生成结果作为待验证公钥标识;

从所述身份验证信息中提取所述传输公钥的公钥标识,得到参考公钥标识;

根据所述参考公钥标识,对所述待验证公钥标识进行验证。

3.根据权利要求1所述的方法,其中,所述身份验证信息中包括所述新版可信程序的程序标识;所述对所述身份验证信息进行验证,包括:从所述身份验证信息中提取所述新版可信程序的程序标识,得到待验证程序标识;

根据自身持有的标准程序标识,对所述待验证程序标识进行验证。

4.根据权利要求3所述的方法,其中,所述方法还包括:响应于对旧版可信程序的升级确认接口调用操作,获取升级版本确认信息;其中,所述升级版本确认信息中包括所述标准程序标识。

5.根据权利要求4所述的方法,其中,所述升级版本确认信息中还包括升级签名列表;

所述方法还包括:

对所述升级签名列表中的各参与方进行验签;

若验签结果满足预设准入条件,则接受所述标准程序标识。

6.根据权利要求5所述的方法,其中,所述预设准入条件为所述升级签名列表中的已管理参与方,超出所述旧版可信程序的当前参与方列表中已管理参与方的预设占比。

7.根据权利要求6所述的方法,还包括:

响应于对所述旧版可信程序的初始化接口调用操作,获取参与方初始化列表,并根据所述参与方初始化列表中的各参与方,初始化所述当前参与方列表中的已管理参与方;或者,响应于对所述旧版可信程序的更新接口调用操作,获取参与方更新列表,并根据所述参与方更新列表中的各参与方,更新所述当前参与方列表中的已管理参与方。

8.根据权利要求7所述的方法,其中,所述根据所述参与方初始化列表中的各参与方,初始化所述当前参与方列表中的已管理参与方,包括:在所述当前参与方列表为空的情况下,根据所述参与方初始化列表中的各参与方,初始化所述当前参与方列表中的已管理参与方。

9.根据权利要求1‑8任一项所述的方法,其中,所述根据所述传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据,包括:根据自身的共享密钥明文对本地封存的敏感数据明文进行加密,得到所述敏感数据密文;

采用所述传输公钥对所述共享密钥明文进行加密,得到共享密钥密文;

生成包括所述敏感数据密文和所述共享密钥密文的迁移关联数据。

10.一种可信程序升级方法,应用于新版可信程序,所述新版可信程序中包括旧版可信程序中旧版业务逻辑对应的新版业务逻辑;所述方法包括:生成自身的身份验证信息,并将所述身份验证信息和自身的传输公钥上链存储;

向旧版可信程序发送升级请求,以使所述旧版可信程序响应于所述升级请求,链上获取所述身份验证信息和所述传输公钥,并对所述身份验证信息验证通过后,根据所述传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据,并将所述迁移关联数据上链存储;

接收所述旧版可信程序发送的应答请求,并响应于所述应答请求链上获取所述迁移关联数据;

根据所述传输公钥对应传输私钥,对所述敏感数据密文进行解密,得到敏感数据明文,并本地封存所述敏感数据明文。

11.根据权利要求10所述的方法,其中,所述生成自身的身份验证信息,包括:确定所述传输公钥的公钥标识,并根据所述公钥标识生成所述身份验证信息。

12.根据权利要求10所述的方法,其中,所述方法还包括:将自身的程序标识添加至所述身份验证信息中。

13.根据权利要求10‑12任一项所述的方法,其中,所述敏感数据密文基于所述旧版可信程序的共享密钥明文对所述敏感数据密文加密得到;所述迁移关联数据中还包括采用所述传输公钥对所述共享密钥明文进行加密得到的共享密钥密文;

所述根据所述传输公钥对应传输私钥,对所述敏感数据密文进行解密,得到敏感数据明文,包括:根据所述传输公钥对应传输私钥,对所述共享密钥密文进行解密,得到所述共享密钥明文;

根据所述共享密钥明文对所述敏感数据密文进行解密,得到所述敏感数据明文。

14.根据权利要求10‑12任一项所述的方法,其中,所述新版可信程序中还包括数据迁移逻辑;

所述本地封存所述敏感数据明文,包括:

根据自身的数据迁移逻辑,对所述敏感数据明文进行迁移处理;

本地封存迁移处理后的敏感数据明文。

15.一种可信程序升级装置,配置于旧版可信程序,包括:升级请求获取模块,用于获取新版可信程序发送的升级请求;其中,所述新版可信程序中包括旧版可信程序中旧版业务逻辑对应的新版业务逻辑;

请求响应模块,用于响应于所述升级请求,从区块链上获取所述新版可信程序的身份验证信息和传输公钥;

信息验证模块,用于对所述身份验证信息进行验证,并在验证通过后根据所述传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据;

数据封存模块,用于将所述迁移关联数据上链存储,并向所述新版可信程序发送应答请求,以使所述新版可信程序响应于所述应答请求,链上获取所述迁移关联数据,并采用所述传输公钥对应传输私钥解密所述敏感数据密文,得到敏感数据明文,本地封存。

16.根据权利要求15所述的装置,其中,所述身份验证信息基于所述传输公钥的公钥标识生成;所述信息验证模块,包括:待验证公钥标识生成单元,用于生成链上获取的传输公钥的标识信息,并将生成结果作为待验证公钥标识;

参考公钥标识获取单元,用于从所述身份验证信息中提取所述传输公钥的公钥标识,得到参考公钥标识;

待验证公钥标识验证单元,用于根据所述参考公钥标识,对所述待验证公钥标识进行验证。

17.根据权利要求15所述的装置,其中,所述身份验证信息中包括所述新版可信程序的程序标识;所述信息验证模块,包括:待验证程序标识获取单元,用于从所述身份验证信息中提取所述新版可信程序的程序标识,得到待验证程序标识;

待验证程序标识验证单元,用于根据自身持有的标准程序标识,对所述待验证程序标识进行验证。

18.根据权利要求17所述的装置,其中,所述装置还包括:版本确认信息获取模块,用于响应于对旧版可信程序的升级确认接口调用操作,获取升级版本确认信息;其中,所述升级版本确认信息中包括所述标准程序标识。

19.根据权利要求18所述的装置,其中,所述升级版本确认信息中还包括升级签名列表;所述装置还包括:验签模块,用于对所述升级签名列表中的各参与方进行验签;

标准程序标识接收模块,用于若验签结果满足预设准入条件,则接受所述标准程序标识。

20.根据权利要求19所述的装置,其中,所述预设准入条件为所述升级签名列表中的已管理参与方,超出所述旧版可信程序的当前参与方列表中已管理参与方的预设占比。

21.根据权利要求20所述的装置,还包括:

列表初始化模块,用于响应于对所述旧版可信程序的初始化接口调用操作,获取参与方初始化列表,并根据所述参与方初始化列表中的各参与方,初始化所述当前参与方列表中的已管理参与方;或者,列表更新模块,用于响应于对所述旧版可信程序的更新接口调用操作,获取参与方更新列表,并根据所述参与方更新列表中的各参与方,更新所述当前参与方列表中的已管理参与方。

22.根据权利要求21所述的装置,其中,所述列表初始化模块,具体用于:在所述当前参与方列表为空的情况下,根据所述参与方初始化数据中的各参与方,初始化所述当前参与方列表中的已管理参与方。

23.根据权利要求15‑22任一项所述的装置,其中,所述信息验证模块,包括:敏感数据密文获取单元,用于根据自身的共享密钥明文对本地封存的敏感数据明文进行加密,得到所述敏感数据密文;

共享密钥密文获取单元,用于采用所述传输公钥对所述共享密钥明文进行加密,得到共享密钥密文;

迁移关联数据生成单元,用于生成包括所述敏感数据密文和所述共享密钥密文的迁移关联数据。

24.一种可信程序升级装置,配置于新版可信程序,所述新版可信程序中包括旧版可信程序中旧版业务逻辑对应的新版业务逻辑;所述装置包括:信息存储模块,用于生成自身的身份验证信息,并将所述身份验证信息和自身的传输公钥上链存储;

数据存储模块,用于向旧版可信程序发送升级请求,以使所述旧版可信程序响应于所述升级请求,链上获取所述身份验证信息和所述传输公钥,并对所述身份验证信息验证通过后,根据所述传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据,并将所述迁移关联数据上链存储;

迁移关联数据获取模块,用于接收所述旧版可信程序发送的应答请求,并响应于所述应答请求链上获取所述迁移关联数据;

本地封存模块,用于根据所述传输公钥对应传输私钥,对所述敏感数据密文进行解密,得到敏感数据明文,并本地封存所述敏感数据明文。

25.根据权利要求24所述的装置,其中,所述信息存储模块,具体用于:确定所述传输公钥的公钥标识,并根据所述公钥标识生成所述身份验证信息。

26.根据权利要求24所述的装置,其中,所述装置还包括:信息添加模块,用于将自身的程序标识添加至所述身份验证信息中。

27.根据权利要求24‑26任一项所述的装置,其中,所述敏感数据密文基于所述旧版可信程序的共享密钥明文对所述敏感数据密文加密得到;所述迁移关联数据中还包括采用所述传输公钥对所述共享密钥明文进行加密得到的共享密钥密文;

所述本地封存模块,包括:

共享密钥明文获取单元,用于根据所述传输公钥对应传输私钥,对所述共享密钥密文进行解密,得到所述共享密钥明文;

敏感数据明文获取单元,用于根据所述共享密钥明文对所述敏感数据密文进行解密,得到所述敏感数据明文。

28.根据权利要求24‑26任一项所述的装置,其中,所述新版可信程序中还包括数据迁移逻辑;

所述本地封存模块,包括:

数据迁移处理单元,用于根据自身的数据迁移逻辑,对所述敏感数据明文进行迁移处理;

数据封存单元,用于本地封存迁移处理后的敏感数据明文。

29. 一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1‑9,和/或,权利要求10‑14中任一项所述的可信程序升级方法。

30.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1‑9,和/或,权利要求10‑14中任一项所述的可信程序升级方法。

说明书 :

可信程序升级方法、装置、设备及存储介质

技术领域

[0001] 本公开涉及通信技术领域,尤其涉及可信计算技术,可应用于区块链领域,具体涉及一种可信程序升级方法、装置、设备及存储介质。

背景技术

[0002] 可信计算(Trusted Computing,TC)是一项由可信计算组推动和开发的技术。可信程序,能够严格按照预定的业务逻辑,执行可信计算,使得被保护的敏感数据和业务逻辑不会被任何人非法读取和破坏,从而在保护数据安全的前提下,对数据进行融合计算。

发明内容

[0003] 本公开提供了一种可信程序升级方法、装置、设备及存储介质。
[0004] 根据本公开的一方面,提供了一种可信程序升级方法,应用于旧版可信程序,包括:
[0005] 获取新版可信程序发送的升级请求;其中,新版可信程序中包括旧版可信程序中旧版业务逻辑对应的新版业务逻辑;
[0006] 响应于升级请求,从区块链上获取新版可信程序的身份验证信息和传输公钥;
[0007] 对身份验证信息进行验证,并在验证通过后根据传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据;
[0008] 将迁移关联数据上链存储,并向新版可信程序发送应答请求,以使新版可信程序响应于应答请求,链上获取迁移关联数据,并采用传输公钥对应传输私钥解密敏感数据密文,得到敏感数据明文,本地封存。
[0009] 根据本公开的另一方面,提供了一种可信程序升级方法,应用于新版可信程序,新版可信程序中包括旧版可信程序中旧版业务逻辑对应的新版业务逻辑;包括:
[0010] 生成自身的身份验证信息,并将身份验证信息和自身的传输公钥上链存储;
[0011] 向旧版可信程序发送升级请求,以使旧版可信程序响应于升级请求,链上获取身份验证信息和传输公钥,并对身份验证信息验证通过后,根据传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据,并将迁移关联数据上链存储;
[0012] 接收旧版可信程序发送的应答请求,并响应于应答请求链上获取迁移关联数据;
[0013] 根据传输公钥对应传输私钥,对敏感数据密文进行解密,得到敏感数据明文,并本地封存所述敏感数据明文。
[0014] 根据本公开的另一方面,还提供了一种电子设备,包括:
[0015] 至少一个处理器;以及
[0016] 与至少一个处理器通信连接的存储器;其中,
[0017] 存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例所提供的任意一种可信程序升级方法。
[0018] 根据本公开的另一方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开实施例所提供的任意一种可信程序升级方法。
[0019] 根据本公开的技术,实现了对旧版可信程序的自动化且安全化升级。
[0020] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0021] 附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0022] 图1是本公开实施例提供的一种可信程序升级方法的示意图;
[0023] 图2是本公开实施例提供的另一种可信程序升级方法的示意图;
[0024] 图3是本公开实施例提供的又一种可信程序升级方法的示意图;
[0025] 图4是本公开实施例提供的又一种可信程序升级方法的示意图;
[0026] 图5A是本公开实施例提供的一种获取标准程序标识方法的示意图;
[0027] 图5B是本公开实施例提供的又一种可信程序升级方法的示意图;
[0028] 图6是本公开实施例提供的一种可信程序升级装置的结构图;
[0029] 图7是本公开实施例提供的另一种可信程序升级装置的结构图;
[0030] 图8是用来实现本公开实施例的可信程序升级方法的电子设备的框图。

具体实施方式

[0031] 以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0032] 本公开实施例提供的可信程序升级方法和可信程序升级装置,适用于对旧版可信程序自动化升级为新版可信程序的场景中。本公开实施例所提供的各可信程序升级方法,可以由可信程序升级装置执行,该装置可以采用软件和/或硬件实现,并具体配置于电子设备中,该电子设备可以是具有一定公信力的可信设备,本公开对此不作任何限定。
[0033] 为了便于理解,首先对本公开所提供的可信程序升级方法进行详细说明。
[0034] 参见图1所示的一种可信程序升级方法,应用于旧版可信程序,包括:
[0035] S110、获取新版可信程序发送的升级请求;其中,新版可信程序中包括旧版可信程序中旧版业务逻辑对应的新版业务逻辑。
[0036] 其中,新版可信程序和旧版可信程序均可以在可信执行环境中运行。旧版可信程序可以理解为待升级的可信程序;新版可信程序可以理解为旧版可信程序期望升级后的程序。需要说明的是,新版可信程序和旧版可信程序可以设置于同一可信设备中,新版可信程序和旧版可信程序还可以设置于不同可信设备中,本公开实施例对此不作任何限定。
[0037] 其中,旧版可信程序中设置有旧版业务逻辑,用于响应于旧版可信程序获取到的业务请求,进行业务处理;相应的,新版可信程序中可以包括旧版可信程序中旧版业务逻辑对应的新版业务逻辑,以便后续使用新版业务逻辑进行业务处理。
[0038] 由于可信程序在进行可信计算时,需要进行计算相关的敏感数据的封存。为了保证新版可信程序能够替代旧版可信程序进行后续的业务处理,还需要将旧版可信程序中的敏感数据,迁移至新版可信程序中。
[0039] 示例性的,新版可信程序会向旧版可信程序发送升级请求,用于指示旧版可信程序进行敏感数据迁移前的敏感数据加密和传输。相应的,旧版可信程序获取并响应该升级请求,以便完成敏感数据迁移的准备工作。
[0040] S120、响应于升级请求,从区块链上获取新版可信程序的身份验证信息和传输公钥。
[0041] 其中,身份验证信息用于表征区块链上所获取数据的数据身份和/或来源方身份,用于验证所获取数据的安全性和准确性。
[0042] 其中,传输公钥可以用于在升级过程中,对所传输数据进行加密。其中,传输公钥可以是对称密钥或非对称密钥。为了进一步提高数据传输安全,在一个可选实施例中,可以由新版可信程序生成升级过程中专用于数据传输的非对称密钥对,其中,包括传输公钥和传输私钥,并将传输私钥自身留存,将传输公钥分享给旧版可信程序,以供使用。
[0043] 示例性的,新版可信程序在准备好升级所需的自身的身份验证信息和传输公钥后,会将生成的身份验证信息和传输公钥存储到区块链上,利用区块链的去中心化特性,避免身份验证信息和传输公钥被恶意篡改;相应的,旧版可信程序响应于升级请求,可以从区块链上获取新版可信程序的身份验证信息和传输公钥。
[0044] S130、对身份验证信息进行验证,并在验证通过后根据传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据。
[0045] 示例性的,旧版可信程序对身份验证信息进行验证;若验证通过,则表明链上获取的数据可信,允许进行后续的敏感数据迁移准备操作:对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据;若验证不通过,则表明链上获取的数据不可信,禁止进行后续的敏感数据迁移准备操作,也即禁止进行敏感数据明文的加密。
[0046] 其中,旧版可信程序对应的敏感数据,可以理解为旧版可信程序在进行可信计算时所依赖的本地封存的数据。
[0047] 在一个可选实施例中,身份验证信息可以基于远程验证机制生成;相应的,通过远程验证机制,对身份验证信息进行验证。
[0048] 在另一可选实施例中,身份验证信息可以基于传输公钥的公钥标识生成;相应的,对身份验证信息进行验证,可以是:生成链上获取的传输公钥对应的标识信息,并将生成结果,作为待验证公钥标识;从身份验证信息中提取传输公钥的公钥标识,得到参考公钥标识;根据参考公钥标识,对待验证公钥标识进行验证。
[0049] 其中,公钥标识用于唯一表征链上获取的传输公钥。
[0050] 具体的,基于预设哈希算法,对链上获取的传输公钥进行编码处理,得到待验证公钥标识;从身份验证信息中提取传输公钥的公钥标识,得到参考公钥标识;若待验证公钥标识与参考公钥标识一致,则表明传输公钥确实由身份验证信息对应数据来源方生成,对传输公钥的准确性验证通过。其中,预设哈希算法可以由技术人员根据需要或经验进行设置,仅需保证与身份验证信息生成时所采用的公钥标识对应的预设哈希算法相同即可。
[0051] 举例说明,若新版可信程序自身真实的传输公钥为PK,则新版可信程序在生成身份验证信息时,会基于该真实的传输公钥PK的公钥标识HPK,生成身份验证信息QT,并将真实的传输公钥PK和身份验证信息QT上链存储。相应的,在对身份验证信息QT进行验证时,旧版可信程序将链上获取的传输公钥作为待验证公钥PK’;确定待验证公钥PK’的公钥标识为HPK’,并将HPK’作为待验证公钥标识;从身份验证信息QT中提取真实的传输公钥PK的公钥标识HPK,将HPK作为参考公钥标识;将参考公钥标识HPK和待验证公钥标识HPK’进行比较,若参考公钥标识HPK和待验证公钥标识HPK’相同,则验证通过;否则,验证不通过。
[0052] 可以理解的是,通过基于传输公钥的公钥标识,生成身份验证信息,并基于身份验证信息中所携带的传输公钥的公钥标识,对链上获取的传输公钥进行验证,提高了链上获取的传输公钥的准确性,避免了由于链上获取的传输公钥不准确,导致敏感数据泄露的情况发生,从而提高了敏感数据迁移的安全性、准确性和有效性,进而提高了可信程序迁移的安全性、准确性和有效性。
[0053] 其中,迁移关联数据可以理解为在进行敏感数据迁移过程中需要传输的数据。
[0054] 示例性的,可以根据传输公钥,对本地封存的敏感数据明文进行加密,得到敏感数据密文,并生成至少包括敏感数据密文的迁移关联数据,共享至旧版可信程序。可以理解的是,通过共享敏感数据密文,而非敏感数据明文的方式,能够提高敏感数据迁移过程的安全性。
[0055] 在一个可选实施方式中,旧版可信程序可以直接通过传输公钥,采用预设非对称加密算法,对本地封存的敏感数据明文进行加密,得到敏感数据密文。相应的,当新版可信程序接收到该敏感数据密文后,采用传输公钥对应传输私钥对敏感数据密文进行解密,得到敏感数据明文,以实现敏感数据的迁移。
[0056] 由于采用非对称密钥进行数据加解密的运算量较大,效率较低。为了进一步敏感数据迁移的效率,减少数据迁移过程的数据运算量,在另一个可选实施方式中,可以采用对称加解密的方式,实现敏感数据的迁移。
[0057] 示例性的,旧版可信程序可以根据自身的共享密钥明文对本地封存的敏感数据明文进行加密,得到敏感数据密文;采用传输公钥对共享密钥明文进行加密,得到共享密钥密文;生成包括敏感数据密文和共享密钥密文的迁移关联数据。
[0058] 其中,共享密钥明文是专用于进行敏感数据加解密的对称密钥。
[0059] 举例说明,若共享密钥明文为K,敏感数据明文为P,传输公钥为PK;旧版可信程序根据共享密钥明文K,对敏感数据明文P进行加密,得到敏感数据密文CP;根据传输公钥PK对共享密钥明文K进行加密,得到共享密钥密文CK;生成包括敏感数据密文CP和共享密钥密文CK的迁移关联数据,用于共享至新版可信程序。
[0060] 可以理解的是,通过引入共享密钥这一对称密钥,对敏感数据进行加解密,从而采用对称加解密的方式替代非对称加解密的方式,实现后续的敏感数据迁移,提高了敏感数据的迁移效率。同时,引入传输公钥对共享密钥明文进行加密,得到共享密钥密文,共享至新版可信程序,避免了共享密钥明文被窃取的情况发生,提高了共享密钥的安全性。
[0061] S140、将迁移关联数据上链存储,并向新版可信程序发送应答请求,以使新版可信程序响应于应答请求,链上获取迁移关联数据,并采用传输公钥对应传输私钥解密敏感数据密文,得到敏感数据明文,本地封存。
[0062] 示例性的,可以通过将迁移关联数据上传至区块链上的方式,向新版可信程序进行数据共享,利用区块链的去中心化特性,避免了迁移关联数据被恶意篡改。
[0063] 其中,应答请求作为旧版可信程序对升级请求的应答,用于指示新版可信程序进行敏感数据的接收和解密;传输私钥与传输公钥共同构成非对称密钥,传输公钥用于进行数据加密,相应的,传输私钥用于对传输公钥所加密的数据进行解密。
[0064] 示例性的,旧版可信程序得到迁移关联数据后,将迁移关联数据上链存储,并向新版可信程序发送应答请求;新版可信程序响应于应答请求,从链上获取包括敏感数据密文的迁移关联数据,并通过传输公钥对应的传输私钥,对敏感数据密文进行解密,得到敏感数据明文;新版可信程序将敏感数据明文进行本地封存,以供后续替代旧版业务逻辑的新版业务逻辑进行业务处理时使用。
[0065] 在一个可选实施例中,为了便于进行传输私钥定位,还可以在迁移关联数据中设置传输公钥;相应的,新版可信程序接收到该传输公钥后,本地查找传输公钥对应传输私钥,并采用查找到的传输私钥,对迁移关联数据中的敏感数据密文进行解密,得到敏感数据明文,且本地封存敏感数据明文,以供后续替代旧版业务逻辑的新版业务逻辑进行业务处理时使用。
[0066] 本公开实施例通过包括旧版可信程序中旧版业务逻辑对应新版业务逻辑的新版可信程序,向旧版可信程序发送升级请求,主动触发可信程序升级;旧版可信程序响应于该升级请求,链上获取身份验证信息和传输公钥,保证了所获取数据的不可篡改性;通过身份验证信息验证链上所获取数据的准确性和有效性,并在验证通过的情况下,进行敏感数据迁移准备工作,同时在迁移过程中进行传输公钥加密,保证了敏感数据迁移的安全性。旧版可信程序完成敏感数据迁移准备后,将包括敏感数据密文的迁移关联数据上链存储,从而保证了迁移关联数据的不可篡改性。旧版可信程序向新版可信程序发送升级请求对应的应答请求,从而指示新版可信程序进行升级启动,链上获取包括敏感数据密文的迁移关联数据,并经传输公钥对应传输私钥解密后,得到敏感数据明文,本地封存。上述技术方案通过设置包括旧版业务逻辑对应新版业务逻辑的新版可信程序,实现了可信应用的业务逻辑的迁移;通过区块链和数据加解密技术,实现了敏感数据的安全迁移,从而实现了可信应用的业务逻辑执行基础的迁移。通过升级请求和应答请求的交互响应,实现了旧版可信程序向新版可信程序的自动化升级,从而提高了可信应用升级的便捷性。
[0067] 在上述各技术方案的基础上,本公开还提供了一个可选实施例,在该实施例中,将身份验证信息细化为包括新版可信程序的程序标识;相应的,将“对身份验证信息进行验证”操作,进一步细化为“从身份验证信息中提取新版可信程序的程序标识,得到待验证程序标识;根据自身持有的标准程序标识,对待验证程序标识进行验证”,以提高新版可信程序的准确性。需要说明的是,在本公开实施例中未详述部分,可参见其他实施例中的相关表述,在此不再赘述。
[0068] 参见图2所示的一种可信程序升级方法,包括:
[0069] S210、获取新版可信程序发送的升级请求;其中,新版可信程序中包括旧版可信程序中旧版业务逻辑对应的新版业务逻辑。
[0070] S220、响应于升级请求,从区块链上获取新版可信程序的身份验证信息和传输公钥。
[0071] S230、从身份验证信息中提取新版可信程序的程序标识,得到待验证程序标识。
[0072] 其中,待验证程序标识用于唯一表征身份验证信息中新版可信程序的身份。
[0073] 示例性的,在生成身份验证信息时,可以在身份验证信息中添加新版可信程序的程序标识;相应的,旧版可信程序在链上获取身份验证信息之后,可以从该身份验证信息中,提取出新版可信程序的程序标识,并将提取结果作为待验证程序标识。
[0074] S240、根据自身持有的标准程序标识,对待验证程序标识进行验证,并在验证通过后根据传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据。
[0075] 其中,标准程序标识用于唯一表征旧版可信程序期望升级后的可信程序的身份。示例性的,标准程序标识可以由旧版可信程序预先获取得到。
[0076] 可选的,旧版可信程序可以预先线下获取,得到期望升级后的可信程序的标准程序标识。
[0077] 或者可选的,还可以响应于对旧版可信程序的升级确认接口调用操作,自动化获取升级版本确认信息;其中,升级版本确认信息中包括标准程序标识。
[0078] 其中,升级版本确认信息可以理解为旧版可信程序允许升级的期望可信程序的相关信息。
[0079] 可以理解的是,通过引入包括标准程序标识的升级版本确认信息,为旧版可信程序的安全升级提供了依据,避免了旧版可信程序无依据升级,出现升级混乱而导致敏感数据丢失的情况发生,提高了旧版可信程序升级的有序性,防止敏感数据的丢失,从而提高了可信应用升级的安全性。
[0080] 在一个可选实施例中,旧版可信程序在获取到标准程序标识后,可以直接根据标准程序标识,对待验证程序标识进行验证。然而,在自动化进行标准程序标识获取的过程中,存在标准程序标识不可信的情况,将会影响可信应用升级的安全性。
[0081] 为了提高自动获取的标准程序标识的准确性和安全性,在另一个可选实施例中,还可以在升级版本确认信息中设置升级签名列表;相应的,在获取升级版本确认信息之后,还可以通过对升级签名列表进行验签,实现对标准程序标识的准确性和安全性验证。
[0082] 示例性的,可以对升级签名列表中的各参与方进行验签;若验签结果满足预设准入条件,则接受标准程序标识。
[0083] 其中,升级签名列表中携带有同意升级的各参与方的签名信息。其中,升级签名列表中可以包括受旧版可信程序管理的已管理参与方。相应的,可以对升级签名列表中的参与方的签名信息进行验签,若验签结果满足预设准入条件,则接受升级版本确认信息中所携带的标准程序标识,也即认定升级版本确认信息中所携带的标准程序标识,即为期望升级后的可信程序的程序标识。进一步的,若验签结果不满足预设准入条件,则禁止接受升级版本确认信息中所携带的标准程序标识,也即认定升级版本确认信息中所携带的标准程序标识,不是期望升级后的可信程序的程序标识。
[0084] 可以理解的是,通过对升级签名列表中的各参与方进行验签,并引入预设准入条件对验签结果进行判断,作为旧版可信程序接受标准程序标识提供了准入门槛,提高了旧版可信程序所获取的标准程序标识的准确性,同时避免了单个参与方或攻击者非法执行升级,导致敏感数据泄露的情况发生,提高了可信程序升级过程的安全性。
[0085] 在一个可选实施例中,预设准入条件可以由技术人员根据需要或经验进行设置。在一个可选实施例中,预设准入条件可以是升级签名列表中所携带的已管理参与方,超出设定数量阈值或超出设定占比阈值。其中,本公开实施例对设定数量阈值或设定占比阈值的大小不作任何限定,可以是技术人员根据经验进行设置,还可以是通过大量试验反复确定。
[0086] 为了使预设准入条件更加契合实际需求,在另一可选实施例中,可以根据旧版可信程序的当前参与方列表和升级签名列表,对预设准入条件进行动态设置。示例性的,预设准入条件可以为升级签名列表中的已管理参与方,超出旧版可信程序的当前参与方列表中已管理参与方的预设占比。
[0087] 其中,当前参与方列表中,携带有接受旧版可信程序管理的全部已管理参与方的信息。相应的,若升级签名列表中已管理参与方,超出当前参与方列表中已管理参与方的预设占比,则表明标准程序标识已被当前参与方列表中超出预设占比的已管理参与方所接受,也即升级版本确认信息中所携带的标准程序标识,与期望升级后的可信应用的版本信息相对应,此时,允许接受该标准程序标识,作为后续进行旧版可信应用升级的参考标准。其中,本公开实施例对预设占比的大小不作具体限定,可以是技术人员根据经验或需要进行设置或调整。示例性的,预设占比可以是50%。
[0088] 可以理解的是,通过旧版可信程序的当前参与方列表中的已管理参与方的数量,动态确定预设准入条件,可以使预设准入条件较好的契合旧版可信程序的参与方管理情况,提高了预设准入条件的灵活性和有效性,从而提高了标准程序标识的准确性,进而有助于提高可信程序升级过程的安全性。
[0089] 本公开实施例对旧版可信程序的当前参与方列表中已管理参与方的生成方式不作具体限定。在一个可选实施例中,可以是技术人员根据经验或需要进行设置。
[0090] 为了提高当前参与方列表中已管理参与方的灵活性和准确性,在另一个可选实施例中,还可以根据旧版可信程序的实际情况对旧版可信程序的当前参与方列表中已管理参与方进行动态设置或更新。
[0091] 可选的,在旧版可信程序从未进行参与方管理的情况下,可以采用以下方式,动态设置旧版可信程序的当前参与方列表:响应于对旧版可信程序的初始化接口调用操作,获取参与方初始化列表,并根据参与方初始化列表中的各参与方,初始化当前参与方列表中的已管理参与方。
[0092] 其中,参与方初始化列表中携带有初始化情况下允许管理的至少一个参与方的信息。相应的,当管理方对旧版可信程序的初始化接口进行调用时,旧版可信程序响应于初始化接口调用操作,获取参与方初始化列表;将参与方初始化列表中所携带的各参与方,作为旧版可信程序中当前参与方列表中的已管理参与方,从而实现对当前参与方列表的初始化。
[0093] 为了有效识别旧版可信程序是否从未进行参与方管理,避免贸然对可信程序初始化,导致当前参与方列表不准确的情况发生,还可以引入初始化准入条件,对初始化行为进行评判。
[0094] 在一个可选实施例中,根据参与方初始化列表中的各参与方,初始化当前参与方列表中的已管理参与方,可以是:在当前参与方列表为空的情况下,根据参与方初始化列表中的各参与方,初始化当前参与方列表中的已管理参与方。
[0095] 可以理解的是,若当前参与方列表为空,则表明旧版可信程序尚未进行参与方管理,此时,允许通过初始化的方式,对旧版可信程序的当前参与方列表进行初始化,避免了对非空的当前参与方列表进行初始化,导致当前参与方列表中部分已管理参与方的数据丢失的情况发生,提高了对当前参与方列表进行初始化的可靠性,从而提高了当前参与方列表中所携带已管理参与方的准确性,进而有助于提高所接受的标准程序标识的准确性和安全性。
[0096] 或者可选的,在旧版可信程序已进行参与方管理的情况下,可以采用以下方式,动态设置旧版可信程序的当前参与方列表:响应于对旧版可信程序的更新接口调用操作,获取参与方更新列表,并根据参与方更新列表中的各参与方,更新当前参与方列表中的已管理参与方。
[0097] 其中,参与方更新列表中携带有至少一个允许更新的参与方的信息。其中,允许更新的参与方可以包括待添加参与方和/或待删除参与方。相应的,当管理方对旧版可信程序的更新接口进行调用时,旧版可信程序响应于更新接口调用操作,获取参与方更新列表;将参与方更新列表中的待添加参与方添加至当前参与方列表中,和/或将参与方更新列表中的待删除参与方从当前参与方列表中剔除,以更新当前参与方列表中的已管理参与方。
[0098] 为了避免贸然进行当前参与方列表的更新,出现当前参与方列表中已管理参与方不准确的情况,在进行当前参与方列表更新时,还可以引入更新准入条件,仅在满足更新转入条件下,才允许根据获取的参与方更新列表,更新当前参与方列表。
[0099] 在一个具体实现方式中,在获取参与方更新列表的同时,还可以关联获取参与方更新列表的更新签名列表。其中,更新签名列表中携带有允许根据参与方更新列表,进行当前参与方列表更新的参与方签名。相应的,旧版可信程序对更新签名列表中的各参与方进行验签;若更新签名列表中的已管理参与方,超出本次更新前的当前参与方列表中已管理参与方的预设占比阈值,则允许本次根据获取的参与方更新列表,更新当前参与方列表;否则,禁止本次根据获取的参与方更新列表,更新当前参与方列表。其中,本公开实施例对预设占比阈值的大小不作具体限定,可以是技术人员根据经验进行设置,还可以是通过大量试验反复确定。如,预设占比阈值可以是50%。
[0100] 可以理解的是,通过对当前参与方列表进行初始化或更新,根据实际情况及时调整当前参与方列表,提高了当前参与方列表的管理的灵活性,以及所携带已管理参与方的准确性,从而有助于所接受标准程序标识的准确性,进而有助于提高可信应用升级过程的安全性。
[0101] 具体的,旧版可信程序可以将获取的待验证程序标识与自身持有的标准程序标识进行比对;若两者一致,则表明身份验证信息由所接受的标准程序标识对应新版可信程序生成,也即身份验证信息的发起方,即为期望升级的新版可信程序,此时验证通过,允许执行敏感数据迁移准备操作:根据传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据;若两者不一致,则表明身份验证信息不是所接受的标准程序标识对应新版可信程序生成,也即身份验证信息的发起方不是期望升级的新版可信程序,此时验证不通过,则不再对本地封存的敏感数据明文进行加密,终止执行敏感数据迁移准备操作。
[0102] S250、将迁移关联数据上链存储,并向新版可信程序发送应答请求,以使新版可信程序响应于应答请求,链上获取迁移关联数据,并采用传输公钥对应传输私钥解密敏感数据密文,得到敏感数据明文,本地封存。
[0103] 本公开实施例通过引入包括新版可信程序的程序标识的身份验证信息,相应的,旧版可信程序根据自身持有的标准程序标识,对身份验证信息的发起方,是否为标准程序标识对应新版可信程序进行验证,从而保证了实际发起升级的新版可信程序的准确性,避免非法新版可信程序对旧版可信程序升级,出现敏感数据泄露的情况,从而提高了敏感数据的安全性,进而提高了可信程序升级过程的安全性。
[0104] 上述技术方案以旧版可信程序为执行主体,对可信程序升级方法进行了解释。以下,将以新版可信程序为执行主体,对可信程序升级方法进行详细说明。
[0105] 其中,新版可信程序和旧版可信程序均可以在可信执行环境中运行。旧版可信程序可以理解为待升级的可信程序;新版可信程序可以理解为旧版可信程序期望升级后的程序。需要说明的是,新版可信程序和旧版可信程序可以设置于同一可信设备中,新版可信程序和旧版可信程序还可以设置于不同可信设备中,本公开实施例对此不作任何限定。
[0106] 其中,旧版可信程序中设置有旧版业务逻辑,用于响应于旧版可信程序获取到的业务请求,进行业务处理;相应的,新版可信程序中可以包括旧版可信程序中旧版业务逻辑对应的新版业务逻辑,以便后续使用新版业务逻辑进行业务处理。
[0107] 需要说明的是,在本公开实施例中未详述部分,可参见其他实施例中的相关表述,在此不再赘述。
[0108] 参见图3所示的一种可信程序升级方法,应用于新版可信程序,该方法包括:
[0109] S310、生成自身的身份验证信息,并将身份验证信息和自身的传输公钥上链存储。
[0110] 由于可信程序在进行可信计算时,需要进行计算相关的敏感数据的封存。为了保证新版可信程序能够替代旧版可信程序进行后续的业务处理,还需要将旧版可信程序中的敏感数据,迁移至新版可信程序中。
[0111] 为了提高敏感数据迁移过程的安全性,新版可信程序会生成身份验证信息,并将身份验证信息和自身传输公钥,共享至旧版可信程序,以便旧版可信程序根据身份验证信息和传输公钥,完成敏感数据的迁移准备工作。
[0112] 其中,身份验证信息用于表征上传至区块链上的数据,对应的数据身份和/或来源方身份,以供后续进行相应数据的安全性和准确性验证。
[0113] 在一个可选实施例中,可以基于远程验证机制,生成身份验证信息;相应的,后续旧版可信程序基于远程验证机制,对身份验证信息进行验证。
[0114] 在另一个可选实施例中,可以基于传输公钥的公钥标识,生成身份验证信息,以便旧版可信程序通过身份验证信息,对传输公钥的准确性和有效性进行验证。
[0115] 示例性的,可以确定传输公钥的公钥标识,并根据公钥标识生成身份验证信息。
[0116] 可以理解的是,通过传输公钥的公钥标识,生成身份验证信息,丰富了身份验证信息中所携带的内容,为后续根据身份验证信息对传输公钥进行验证,提供了数据支撑,从而有助于提高敏感数据迁移过程中传输公钥的准确性,进而提高了可信程序升级过程的安全性。
[0117] 在又一个可选实施例中,还可以将自身的程序标识添加至身份验证信息中,以生成包括自身程序标识的身份验证信息,以便旧版可信程序通过身份验证信息,对新版可信程序的准确性进行验证。
[0118] 可以理解的是,将自身的程序标识添加至身份验证信息中,进一步提高了身份验证信息的丰富性,为后续对新版可信程序的身份进行验证,提供了数据支撑,从而有助于提高敏感数据迁移过程中新版可信程序的准确性,进而提高了可信程序升级过程的安全性。
[0119] 其中,新版可信程序可以预先生成升级过程中专用于数据传输的非对称密钥对,该非对称密钥包括传输公钥和传输私钥。其中,传输公钥共享给旧版可信程序,用于在升级过程中,对所传输数据进行加密;传输私钥自身留存,用于对所传输的加密数据进行解密。
[0120] 在一个可选实施例中,新版可信程序在准备好升级所需的自身的身份验证信息和传输公钥后,可以将身份验证信息和传输公钥存储到区块链上,以供旧版可信程序获取。上述技术方案利用区块链的去中心化特性,避免了身份验证信息和传输公钥被恶意篡改。
[0121] S320、向旧版可信程序发送升级请求,以使旧版可信程序响应于升级请求,链上获取身份验证信息和传输公钥,并对身份验证信息验证通过后,根据传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据,并将迁移关联数据上链存储。
[0122] 其中,升级请求用于指示旧版可信程序进行敏感数据迁移前的敏感数据加密和传输。
[0123] 示例性的,新版可信程序将身份验证信息和自身的传输公钥上链存储后,可以向旧版可信程序发送升级请求;旧版可信程序响应于升级请求,从链上获取身份验证信息和传输公钥,并对身份验证信息进行验证;若验证通过,则表明链上获取的数据可信,允许进行后续的敏感数据迁移准备操作:根据传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据,并将迁移关联数据分享至新版可信程序;若验证不通过,则表明链上获取的数据不可信,禁止进行后续的敏感数据迁移准备操作,也即禁止进行敏感数据明文的加密操作。
[0124] 其中,旧版可信程序对应的敏感数据,可以理解为旧版可信程序在进行可信计算时所依赖的本地封存的数据。
[0125] 其中,迁移关联数据可以理解为在进行敏感数据迁移过程中需要传输的数据。可以通过将迁移关联数据上传至区块链上的方式,向新版可信程序进行数据共享,利用区块链的去中心化特性,避免迁移关联数据被恶意篡改。其中,迁移关联数据的生成可参见前述实施例的相关表述,在此不再赘述。
[0126] S330、接收旧版可信程序发送的应答请求,并响应于应答请求链上获取迁移关联数据。
[0127] 其中,应答请求作为旧版可信程序对升级请求的应答,用于指示新版可信程序进行敏感数据的接收和解密。
[0128] 示例性的,旧版可信程序将迁移关联数据上链存储后,向新版可信程序发送应答请求;新版可信程序响应于该应答请求,从链上获取包括敏感数据密文的迁移关联数据,以便后续根据链上获取的迁移关联数据,执行敏感数据的迁移操作。
[0129] S340、根据传输公钥对应传输私钥,对敏感数据密文进行解密,得到敏感数据明文,并本地封存敏感数据明文。
[0130] 示例性的,新版可信程序根据传输公钥对应传输私钥,对从链上获取的迁移关联数据中的敏感数据密文进行解密,得到敏感数据明文,并将敏感数据明文进行本地封存,以供后续替代旧版业务逻辑的新版业务逻辑进行业务处理时使用。
[0131] 在一个可选实施方式中,旧版可信程序可以直接通过传输公钥,采用预设非对称加密算法,对本地封存的敏感数据明文进行加密,得到敏感数据密文。相应的,当新版可信程序接收到该敏感数据密文后,采用传输公钥对应传输私钥对敏感数据密文进行解密,得到敏感数据明文,以实现敏感数据的迁移。
[0132] 在一个具体实现方式中,为了便于进行传输私钥定位,还可以在迁移关联数据中设置传输公钥;相应的,新版可信程序接收到该传输公钥后,本地查找传输公钥对应传输私钥,并采用查找到的传输私钥,对迁移关联数据中的敏感数据密文进行解密,得到敏感数据明文,以实现敏感数据的迁移。
[0133] 本公开实施例通过包括旧版可信程序中旧版业务逻辑对应新版业务逻辑的新版可信程序,生成自身的身份验证信息和传输公钥,并将生成的身份验证信息和传输公钥上链存储,保证了身份验证信息和传输公钥的不可篡改性。新版可信程序向旧版可信程序发送升级请求,主动触发旧版可信程序升级;旧版可信程序响应于该升级请求,链上获取身份验证信息和传输公钥;通过身份验证信息验证链上所获取数据的准确性和有效性,并在验证通过的情况下,进行敏感数据迁移的准备工作,同时在迁移过程中进行传输公钥加密,保证了敏感数据迁移的安全性。旧版可信程序完成敏感数据迁移准备后,将包括敏感数据密文的迁移关联数据上链存储,从而保证了迁移关联数据的不可篡改性。旧版可信程序向新版可信程序发送升级请求对应的应答请求;新版可信程序响应于应答请求,从链上获取包括敏感数据密文的迁移关联数据;根据传输公钥对应传输私钥,对敏感数据密文进行解密,得到敏感数据明文,本地封存。上述技术方案通过设置包括旧版业务逻辑对应新版业务逻辑的新版可信程序,实现了可信应用的业务逻辑的迁移;通过区块链和数据加解密技术,实现了敏感数据的安全迁移,从而实现了可信应用的业务逻辑执行基础的迁移。通过升级请求和应答请求的交互响应,实现了旧版可信程序向新版可信程序的自动化升级,从而提高了可信应用升级的便捷性。
[0134] 在上述各技术方案的基础上,本公开还提供了一个可选实施例,在该实施例中,敏感数据密文可以细化为基于旧版可信程序的共享密钥明文对敏感数据密文加密得到;迁移关联数据可以细化为还包括采用传输公钥对共享密钥明文进行加密得到的共享密钥密文;相应的,将“根据传输公钥对应传输私钥,对敏感数据密文进行解密,得到敏感数据明文”操作,进一步细化为“根据传输公钥对应传输私钥,对共享密钥密文进行解密,得到共享密钥明文;根据共享密钥明文对敏感数据密文进行解密,得到敏感数据明文”,以提高敏感数据的迁移效率。需要说明的是,在本公开实施例中未详述部分,可参见其他实施例中的相关表述,在此不再赘述。
[0135] 参见图4所示的一种可信程序升级方法,应用于新版可信程序,包括:
[0136] S410、生成自身的身份验证信息,并将身份验证信息和自身的传输公钥上链存储。
[0137] S420、向旧版可信程序发送升级请求,以使旧版可信程序响应于升级请求,链上获取身份验证信息和传输公钥,并对身份验证信息验证通过后,根据传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据,并将迁移关联数据上链存储。
[0138] S430、接收旧版可信程序发送的应答请求,并响应于应答请求链上获取迁移关联数据。
[0139] S440、根据传输公钥对应传输私钥,对共享密钥密文进行解密,得到共享密钥明文。
[0140] S450、根据共享密钥明文对敏感数据密文进行解密,得到敏感数据明文,并本地封存敏感数据明文。
[0141] 示例性的,旧版可信程序可以基于预设对称加密算法,根据自身的共享密钥明文对敏感数据明文进行加密,得到敏感数据密文;基于预设非对称加密算法,根据传输公钥对共享密钥明文进行加密,得到共享密钥密文;将包括敏感数据密文和共享密钥密文的迁移关联数据共享至新版可信程序。相应的,新版可信程序基于预设非对称解密算法,根据传输公钥对应的传输私钥,对共享密钥密文进行解密,得到共享密钥明文;基于预设对称解密算法,根据共享密钥明文对敏感数据密文进行解密,得到敏感数据明文;将敏感数据明文进行本地封存,以供后续替代旧版业务逻辑的新版业务逻辑进行业务处理时使用。
[0142] 由于新版可信程序和旧版可信程序中敏感数据的存储要求或业务处理要求,可能存在一定的差异,因此,将敏感数据从旧版可信程序迁移至新版可信程序之后,新版可信程序还需要在本地封存敏感数据前,对敏感数据明文进行二次处理。
[0143] 在一个可选实施例中,可以调用现有技术中至少一种预设迁移算法,对敏感数据明文进行处理。
[0144] 在另一个可选实施例中,新版可信程序中还包括数据迁移逻辑。相应的,新版可信程序解密得到敏感数据明文之后,可以根据自身的数据迁移逻辑,对敏感数据明文进行迁移处理;本地封存迁移处理后的敏感数据明文,以使新版可信程序能够使用新版业务逻辑对本地封存的敏感数据明文,进行业务处理。
[0145] 其中,数据迁移逻辑为新版可信程序中,专用于对新版可信程序所获取到的敏感数据明文进行迁移处理的逻辑代码。本公开实施例对数据迁移逻辑的具体内容不作限定,可以是技术人员根据经验或需要进行设置。在一个具体实现方式中,数据迁移逻辑可以为格式转化逻辑。
[0146] 可以理解的是,通过引入数据迁移逻辑,对敏感数据明文进行迁移处理,使得迁移处理后的敏感数据明文能够契合新版可信程序的数据存储要求或业务处理要求,避免新版可信程序无法调用本地封存的敏感数据明文,提高本地封存的敏感数据明文的可执行性。
[0147] 本公开实施例通过引入共享密钥明文这一对称密钥,对敏感数据进行加密和解密,从而采用对称加解密的方式替代非对称加解密的方式,减少了运算量,降低了解密时间,从而提高了敏感数据的迁移效率。同时,通过传输共享密钥密文,而非共享密钥明文的方式,提高了共享密钥的安全性,进而提高了敏感数据传输的安全性。
[0148] 在上述各技术方案的基础上,本公开还提供了一个优选实施例,在该优选实施例中,对可信程序升级方法进行了优化改进。需要说明的是,在本公开实施例中未详述部分,可参见其他实施例中的相关表述,在此不再赘述。
[0149] 为了更好的对新版可信程序和旧版可信程序之间的交互进行说明,首先对旧版可信程序获取标准程序标识的方法进行介绍。
[0150] 参见图5A所示的一种标准程序标识获取方法,应用于旧版可信程序,包括:
[0151] S501、响应于对初始化接口调用操作,获取参与方初始化列表。
[0152] S502、判断当前参与方列表中是否为空;若是,则执行S503A;否则,执行S503B。
[0153] S503A、将参与方初始化列表中的参与方信息添加至当前参与方列表中;继续执行S504。
[0154] S503B、拒绝执行初始化操作;继续执行S504。
[0155] S504、响应于对更新接口调用操作,获取参与方更新列表和更新签名列表。
[0156] S505、对更新签名列表中的各参与方进行验签。
[0157] S506、判断验签结果的参与方中是否包括当前参与方列表中超半数的已管理参与方签名;若是,则执行S507A;否则,执行S507B。
[0158] S507A、采用参与方更新列表中的各参与方,更新当前参与方列表中的已管理参与方;继续执行S508。
[0159] S507B、拒绝执行列表更新操作;继续执行S508。
[0160] S508、响应于对升级确认接口调用操作,获取升级版本确认信息;其中,升级版本确认信息中包括新版可信程序的程序标识和升级签名列表。
[0161] S509、对升级签名列表中的各参与方进行验签。
[0162] S510、判断验签结果的参与方中是否包括当前参与方列表的超半数已管理参与方签名;若是,则执行S511A;否则,执行S511B。
[0163] S511A、将该程序标识作为标准程序标识进行存储。
[0164] S511B、禁止接受该程序标识。
[0165] 上述技术方案通过在旧版可信程序中引入初始化接口和更新接口,实现对当前参与方列表中已管理参与方的有效管理,提高了当前参与方列表中已管理参与方的准确性和管理灵活性。同时,通过在旧版可信程序获取标准程序标识的过程中,引入验签机制,可以避免标准程序标识出现错误的情况,提高了获取的标准程序标识的准确性。
[0166] 进一步的,参见图5B所示的可信程序升级方法,包括:
[0167] S512、新版可信程序生成包括传输公钥和传输私钥的非对称密钥。
[0168] S513、对传输公钥进行哈希编码,得到传输公钥的公钥标识。
[0169] S514、基于传输公钥的公钥标识,生成包括自身程序标识的身份验证信息。
[0170] S515、将身份验证信息和传输公钥发送至区块链上。
[0171] 需要说明的是,本公开实施例对中间平台不作任何限定,可以是区块链,还可以是其他存储设备。
[0172] S516、新版可信程序向旧版可信程序发送升级请求。
[0173] S517、旧版可信程序响应于升级请求,从区块链上获取身份验证信息和传输公钥。
[0174] S518、旧版可信程序验证身份验证信息是否合法;若是,则执行S519;否则,结束。
[0175] S519、从身份验证信息中提取新版可信程序的程序标识,作为待验证程序标识。
[0176] S520、旧版可信程序判断待验证程序标识与标准程序标识是否一致;若是,则执行S521;否则,结束。
[0177] S521、旧版可信程序确定链上获取的传输公钥的标识信息,作为待验证公钥标识。
[0178] S522、旧版可信程序从身份验证信息中提取传输公钥的公钥标识,作为参考公钥标识。
[0179] S523、判断待验证公钥标识与参考公钥标识是否一致;若是,则执行S524;否则,结束。
[0180] S524、旧版可信程序生成共享密钥明文,并用共享密钥明文对本地敏感数据明文进行加密,得到敏感数据密文。
[0181] S525、采用传输公钥对共享密钥明文进行加密,得到共享密钥密文。
[0182] S526、将包括共享密钥密文和敏感数据密文的迁移关联数据发送至区块链上。
[0183] S527、旧版可信程序向新版可信程序发送应答请求。
[0184] S528、新版可信程序响应于应答请求,从区块链上获取包括共享密钥密文和敏感数据密文的迁移关联数据。
[0185] S529、采用传输公钥对应传输私钥对共享密钥密文解密,得到共享密钥明文,并采用共享密钥明文对敏感数据密文进行解密,得到敏感数据明文。
[0186] S530、执行自身数据迁移逻辑对敏感数据明文进行处理,并将处理后的敏感数据明文存储至本地磁盘。
[0187] S531、在自身重启后,响应于业务请求,根据本地磁盘的敏感数据明文,执行新版业务逻辑。
[0188] 上述技术方案通过引入身份验证信息对传输公钥和新版可信程序进行验证,确保了敏感数据迁移准备过程的安全性。并且,通过采用对称密钥对敏感数据加解密,提高了敏感数据迁移过程的迁移效率。同时,在敏感数据迁移过程中,引入非对称密钥对共享密钥进行加解密,为敏感数据的迁移提供了有效的数据支撑,提高了敏感数据迁移的安全性。
[0189] 作为上述各可信程序升级方法的实现,本公开还提供了一种实施上述各可信程序升级方法的执行装置的可选实施例。
[0190] 参见图6所示的可信程序升级装置600,配置于旧版可信程序,包括升级请求获取模块610、请求响应模块620、信息验证模块630和数据封存模块640。其中,
[0191] 升级请求获取模块610,用于获取新版可信程序发送的升级请求;其中,新版可信程序中包括旧版可信程序中旧版业务逻辑对应的新版业务逻辑;
[0192] 请求响应模块620,用于响应于升级请求,从区块链上获取新版可信程序的身份验证信息和传输公钥;
[0193] 信息验证模块630,用于对身份验证信息进行验证,并在验证通过后根据传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据;
[0194] 数据封存模块640,用于将迁移关联数据上链存储,并向新版可信程序发送应答请求,以使新版可信程序响应于应答请求,链上获取迁移关联数据,并采用传输公钥对应传输私钥解密敏感数据密文,得到敏感数据明文,本地封存。
[0195] 本公开实施例通过包括旧版可信程序中旧版业务逻辑对应新版业务逻辑的新版可信程序,向旧版可信程序发送升级请求,主动触发可信程序升级;旧版可信程序响应于该升级请求,链上获取身份验证信息和传输公钥,保证了所获取数据的不可篡改性;通过身份验证信息验证链上所获取数据的准确性和有效性,并在验证通过的情况下,进行敏感数据迁移准备工作,同时在迁移过程中进行传输公钥加密,保证了敏感数据迁移的安全性。旧版可信程序完成敏感数据迁移准备后,将包括敏感数据密文的迁移关联数据上链存储,从而保证了迁移关联数据的不可篡改性。旧版可信程序向新版可信程序发送升级请求对应的应答请求,从而指示新版可信程序进行升级启动,链上获取包括敏感数据密文的迁移关联数据,并经传输公钥对应传输私钥解密后,得到敏感数据明文,本地封存。上述技术方案通过设置包括旧版业务逻辑对应新版业务逻辑的新版可信程序,实现了可信应用的业务逻辑的迁移;通过区块链和数据加解密技术,实现了敏感数据的安全迁移,从而实现了可信应用的业务逻辑执行基础的迁移。通过升级请求和应答请求的交互响应,实现了旧版可信程序向新版可信程序的自动化升级,从而提高了可信应用升级的便捷性。
[0196] 在一个可选实施例中,身份验证信息基于传输公钥的公钥标识生成;信息验证模块630,包括:
[0197] 待验证公钥标识生成单元,用于生成链上获取的传输公钥的标识信息,并将生成结果作为待验证公钥标识;
[0198] 参考公钥标识获取单元,用于从身份验证信息中提取传输公钥的公钥标识,得到参考公钥标识;
[0199] 待验证公钥标识验证单元,用于根据参考公钥标识,对待验证公钥标识进行验证。
[0200] 在一个可选实施例中,份验证信息中包括新版可信程序的程序标识;信息验证模块630,包括:
[0201] 待验证程序标识获取单元,用于从身份验证信息中提取新版可信程序的程序标识,得到待验证程序标识;
[0202] 待验证程序标识验证单元,用于根据自身持有的标准程序标识,对待验证程序标识进行验证。
[0203] 在一个可选实施例中,该装置600还包括:
[0204] 版本确认信息获取模块,用于响应于对旧版可信程序的升级确认接口调用操作,获取升级版本确认信息;其中,升级版本确认信息中包括标准程序标识。
[0205] 在一个可选实施例中,升级版本确认信息中还包括升级签名列表;该装置600,还包括:
[0206] 验签模块,用于对升级签名列表中的各参与方进行验签;
[0207] 标准程序标识接收模块,用于若验签结果满足预设准入条件,则接受标准程序标识。
[0208] 在一个可选实施例中,预设准入条件为升级签名列表中的已管理参与方,超出旧版可信程序的当前参与方列表中已管理参与方的预设占比。
[0209] 在一个可选实施例中,该装置600,还包括:
[0210] 列表初始化模块,用于响应于对旧版可信程序的初始化接口调用操作,获取参与方初始化列表,并根据参与方初始化列表中的各参与方,初始化当前参与方列表中的已管理参与方;或者,
[0211] 列表更新模块,用于响应于对旧版可信程序的更新接口调用操作,获取参与方更新列表,并根据参与方更新列表中的各参与方,更新当前参与方列表中的已管理参与方。
[0212] 在一个可选实施例中,列表初始化模块,具体用于在当前参与方列表为空的情况下,根据参与方初始化数据中的各参与方,初始化当前参与方列表中的已管理参与方。
[0213] 在一个可选实施例中,信息验证模块630,包括:
[0214] 敏感数据密文获取单元,用于根据自身的共享密钥明文对本地封存的敏感数据明文进行加密,得到敏感数据密文;
[0215] 共享密钥密文获取单元,用于采用传输公钥对共享密钥明文进行加密,得到共享密钥密文;
[0216] 迁移关联数据生成单元,用于生成包括敏感数据密文和共享密钥密文的迁移关联数据。
[0217] 上述可信程序升级装置可执行本公开任意实施例所提供的可信程序升级方法,具备执行各可信程序升级方法相应的功能模块和有益效果。
[0218] 作为上述各可信程序升级方法的实现,本公开还提供了一种实施上述各可信程序升级方法的执行装置的可选实施例。
[0219] 参见图7所示的可信程序升级装置700,配置于新版可信程序,包括信息存储模块710、数据存储模块720、迁移关联数据获取模块730和本地封存模块740。其中,[0220] 信息存储模块710,用于生成自身的身份验证信息,并将身份验证信息和自身的传输公钥上链存储;
[0221] 数据存储模块720,用于向旧版可信程序发送升级请求,以使旧版可信程序响应于升级请求,链上获取身份验证信息和传输公钥,并对身份验证信息验证通过后,根据传输公钥,对本地封存的敏感数据明文进行加密,得到包括敏感数据密文的迁移关联数据,并将迁移关联数据上链存储;
[0222] 迁移关联数据获取模块730,用于接收旧版可信程序发送的应答请求,并响应于应答请求链上获取迁移关联数据;
[0223] 本地封存模块740,用于根据传输公钥对应传输私钥,对敏感数据密文进行解密,得到敏感数据明文,并本地封存敏感数据明文。
[0224] 本公开实施例通过包括旧版可信程序中旧版业务逻辑对应新版业务逻辑的新版可信程序,生成自身的身份验证信息和传输公钥,并将生成的身份验证信息和传输公钥上链存储,保证了身份验证信息和传输公钥的不可篡改性。新版可信程序向旧版可信程序发送升级请求,主动触发旧版可信程序升级;旧版可信程序响应于该升级请求,链上获取身份验证信息和传输公钥;通过身份验证信息验证链上所获取数据的准确性和有效性,并在验证通过的情况下,进行敏感数据迁移的准备工作,同时在迁移过程中进行传输公钥加密,保证了敏感数据迁移的安全性。旧版可信程序完成敏感数据迁移准备后,将包括敏感数据密文的迁移关联数据上链存储,从而保证了迁移关联数据的不可篡改性。旧版可信程序向新版可信程序发送升级请求对应的应答请求;新版可信程序响应于应答请求,从链上获取包括敏感数据密文的迁移关联数据;根据传输公钥对应传输私钥,对敏感数据密文进行解密,得到敏感数据明文,本地封存。上述技术方案通过设置包括旧版业务逻辑对应新版业务逻辑的新版可信程序,实现了可信应用的业务逻辑的迁移;通过区块链和数据加解密技术,实现了敏感数据的安全迁移,从而实现了可信应用的业务逻辑执行基础的迁移。通过升级请求和应答请求的交互响应,实现了旧版可信程序向新版可信程序的自动化升级,从而提高了可信应用升级的便捷性。
[0225] 在一个可选实施例中,信息存储模块710,具体用于
[0226] 确定传输公钥的公钥标识,并根据公钥标识生成身份验证信息。
[0227] 在一个可选实施例中,该装置700,还包括:
[0228] 信息添加模块,用于将自身的程序标识添加至身份验证信息中。
[0229] 在一个可选实施例中,敏感数据密文基于旧版可信程序的共享密钥明文对敏感数据密文加密得到;迁移关联数据中还包括采用传输公钥对共享密钥明文进行加密得到的共享密钥密文;
[0230] 本地封存模块740,包括:
[0231] 共享密钥明文获取单元,用于根据传输公钥对应传输私钥,对共享密钥密文进行解密,得到共享密钥明文;
[0232] 敏感数据明文获取单元,用于根据共享密钥明文对敏感数据密文进行解密,得到敏感数据明文。
[0233] 在一个可选实施例中,新版可信程序中还包括数据迁移逻辑;
[0234] 本地封存模块740,包括:
[0235] 数据迁移处理单元,用于根据自身的数据迁移逻辑,对敏感数据明文进行迁移处理;
[0236] 数据封存单元,用于本地封存迁移处理后的敏感数据明文。
[0237] 上述可信程序升级装置可执行本公开任意实施例所提供的可信程序升级方法,具备执行各可信程序升级方法相应的功能模块和有益效果。
[0238] 本公开的技术方案中,所涉及的升级请求、身份验证信息、传输公钥、敏感数据明文、应答请求等的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
[0239] 根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0240] 图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0241] 如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
[0242] 设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0243] 计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如可信程序升级方法。例如,在一些实施例中,可信程序升级方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的可信程序升级方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行可信程序升级方法。
[0244] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0245] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0246] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0247] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0248] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
[0249] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0250] 人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
[0251] 云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
[0252] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
[0253] 上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。