一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于可信执行环境的密钥管理方法、装置和电子设备与流程

2022-06-15 20:56:56 来源:中国专利 TAG:


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.本技术实施例还公开了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本技术实施例中一个或多个所述的基于可信执行环境的密钥管理方法。
46.本技术实施例还公开了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如本技术实施例中一个或多个所述的基于可信执行环境的密钥管理方法。
47.与现有技术相比,本技术实施例包括以下优点:
48.在本技术实施例中,在包括支持机密计算的可信执行环境的服务器中,在可信执行环境中生成密钥和密钥的远程证明材料,将密钥和远程证明材料传输至终端设备,其中,若在终端设备基于远程证明材料确定所述密钥为可信密钥时,在服务器可以接收到终端设备采用密钥对用户数据密钥加密后生成的加密的用户数据密钥,采用密钥对加密的用户数据密钥进行解密,得到用户数据密钥,随后,就可以采用用户数据密钥,对可信执行环境与终端设备之间的数据在加密后传输。本技术实施例基于服务器的可信执行环境来实现用户数据密钥的远程部署和管理,从而可以基于用户数据密钥在可信执行环境和终端设备之间的数据交互,保证数据安全。
附图说明
49.图1是本技术的一种基于可信执行环境的密钥管理方法实施例的步骤流程图;
50.图2是本技术的一种基于可信执行环境的密钥管理的示意图;
51.图3是本技术的一种基于可信执行环境的密钥管理装置实施例的结构框图;
52.图4是本技术一实施例提供的装置的结构示意图。
具体实施方式
53.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术作进一步详细的说明。
54.首先,对于本技术实施例涉及的一些技术名词进行介绍:
55.kms:key management service,密钥管理服务。
56.remote attestation:远程证明,是一种机密计算技术。
57.tee:trusted execution environment,可信执行环境,是一个基于cpu硬件安全扩展,且与外部完全隔离的执行环境,是一种机密计算技术。
58.sgx:是一种机密计算技术,提供可信执行环境。
59.cpu sealing key:cpu加密密钥。
60.pki:public key infrastructure,公钥基础设施。
61.hsm:hardware security module,硬件安全模块,是一种用于保障和管理强认证系统所使用的数字密钥,并同时提供相关密码学操作的计算机硬件设备。
62.tpm:trusted platform module,可信平台模块,是一种植于计算机内部为计算机提供可信根的芯片。该芯片的规格由可信计算组(trusted computing group)来制定。
63.tcm:trusted cryptography module,可信密码模块,是可信计算平台的硬件模块,为可信计算平台提供密码运算功能,具有受保护的存储空间,与tpm对应。
64.tpcm:trusted platform control module,可信平台控制模块,让可信平台模块tpm具有对平台资源进行控制的功能。
65.saas:software-as-a-service,软件即服务,即通过网络提供软件服务。
66.ssl:secure sockets layer,安全套接字协议。
67.机密计算(confidential computing,也称为保密计算/可信计算),是基于cpu硬件创建一个完全隔离的可信执行环境,即tee,也叫做安全区。由于机密计算可以对正在使用/执行中的数据进行加密,并将数据放在一个安全的tee中执行操作,因此第三方无法识别到在tee中的数据,从而防止任何的第三方对正在tee执行中的数据进行篡改。
68.tee除了能应用在云计算领域,还能使用在手机、平板电脑和计算机等终端设备中。利用tee来隔离指纹、密码、面部信息的采集、存储、验证等过程,即使手机被越狱或被root(被第三方获取了最高权限),第三方也无法获取相应的数据,保证了数据安全。
69.在具体实现中,通过支持机密计算的服务器芯片提供的tee,可以解决数据在运行中的内存加密保护,防止数据在计算态被第三方(非授权方)获取;数据的传输和存储加解密过程都可通过tee进行保护;因此客户的数据密钥需要安全的放进tee内部,即,对密钥的管理方法需要从客户本地延伸到tee内部。
70.目前,远程密钥管理方法有以下几种:
71.1.基于安全密码芯片/硬件的方案(例如hsm硬件密码机、tcm/tpcm可信密码模块等):
72.1)通过硬件安全模块(例如tpm、pci-e密码卡等等)管理可信根密钥,用户数据密钥由可信根密钥加密保护,但是这种方案需要依赖安全硬件的存在。
73.2)可信根密钥受安全硬件保护,无法在安全硬件外部以任何方式获得,数据加解密和签名验签过程必须在安全硬件内部完成,而用户的数据操作无法在安全硬件内部完成。
74.3)安全硬件功能单一,不支持用户自定义的可执行代码在其中运行。
75.4)安全硬件没有成熟的对接tee可信执行环境的技术实现。
76.2.基于云上kms的方案(例如kms云上密钥管理服务等):
77.1)saas化服务,依赖网络可达。
78.2)采用access key签名的方式对服务请求方进行鉴权,在远程不受信任的环境中保护access key是个难题。
79.3)kms依赖ssl加密信道来保证用户数据密钥的传输安全,但是在远程不受信任的环境很难实现安全的ssl客户端安全假设。
80.4)目前云厂商的kms尚不支持对tee的远程证明。
81.在实际应用中,通过上述的几种远程密钥管理方法,可以在一定程度上保证数据安全,但是如果数据的使用环境无法联网接入kms云上密钥管理服务,或者客户不愿承担hsm或者tcm/tpcm的硬件成本,则上述方法并不可行。除此之外,目前软硬件密钥管理服务或者模块与tee的对接技术不成熟,没有完整的技术链路保障密钥安全,因此也无基于tee的密钥管理的实际案例。
82.针对上述问题,本技术实施例提出了一种基于机密计算的密钥管理方法,不依赖于kms云上密钥管理服务,或者额外的线下硬件密码机,为数据在全生命周期被加密保护提供安全的密钥管理能力,尤其适合数据出域到不受信任的环境的场景下,实现以机密计算的可信执行环境为基础的“数据可用不可见”的数据隐私保护。本技术实施例描述的密钥管理方法可以应用在隐私计算产品中,例如隐私计算产品的一体机中,可以实现对客户的敏感数据出域的全生命周期保护。
83.参照图1,是本技术的一种基于可信执行环境的密钥管理方法实施例的步骤流程图,应用于服务器,所述服务器中包括支持机密计算的可信执行环境,所述方法包括如下步骤:
84.步骤102、在所述可信执行环境中生成密钥和所述密钥的远程证明材料。
85.步骤104、将所述密钥和所述远程证明材料传输至终端设备。
86.其中,终端设备可以为客户使用的终端设备,例如智能手机、个人计算机、笔记本电脑、平板电脑和便携式可穿戴设备等等,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现,服务器可以与多个终端设备进行交互。
87.在具体实现中,在可信执行环境(secure enclave/安全飞地),例如sgx,生成密钥以及该密钥的远程证明材料,然后将密钥和该密钥的远程证明材料发送至终端设备,以使终端设备可以基于远程证明材料进行验证,若该远程证明材料验证成功,则可以确信该远程证明材料是在受信任的可信执行环境中生成,随即可以信任该密钥亦是在受信任的可信
执行环境中生成,因此信任密钥为安全和可信的。
88.作为本技术的一个可选示例,在可信执行环境中可以采用非对称加密技术生成密钥,则在生成的密钥可以是包括公钥和私钥的密钥对(非对称密钥),其中,私钥是所有者持有不可公布,公钥则是持有者公布给终端设备的,公钥可以用于对数据进行加密,使用公钥加密的数据需要使用公私钥对中的私钥进行解密。私钥部分驻留在可信执行环境中,以确保私钥安全。
89.相应的,若密钥为密钥对,则可以生成公钥以及该公钥的远程证明材料,并将该公钥以及该公钥的远程证明材料发送至终端设备中,若该远程证明材料验证成功,则可以确信该远程证明材料是在受信任的可信执行环境中生成,随即可以信任该公钥(也包括对应的私钥)亦是在在受信任的可信执行环境中生成,因此信任公钥为安全和可信的。
90.需要说明的是,终端设备和可信执行环境之间,可以通过在线方式(数据网络)或者离线方式(通过u盘等存储设备)进行数据传输,本技术实施例对此不做限制。
91.步骤106、在所述终端设备基于所述远程证明材料确定所述可信执行环境为受信任环境以及所述密钥为可信密钥时,接收到所述终端设备采用所述密钥对所述用户数据密钥加密后生成的加密的用户数据密钥。
92.步骤108、采用所述密钥对所述加密的用户数据密钥进行解密,得到所述用户数据密钥,以使所述可信执行环境与所述终端设备基于所述用户数据密钥进行数据传输。
93.在具体实现中,用户可能需要将一些数据,例如客户的指纹、密码、面部信息等敏感数据等出域到不受信任的环境,例如出域到不受信任的环境与第三方数据做融合计算,容易造成数据泄露等数据安全的风险,因此可以使用其用户数据密钥对数据加密后再进行传输,但是,若数据出域到不受信任的环境,则仍然有可能存在数据泄露的风险。
94.而在本技术实施例中,若在终端设备基于远程证明材料验证即将发送数据的可信执行环境为受信任环境以及确定密钥为可信密钥,则可以采用密钥对用户数据密钥进行加密后,将加密的用户数据密钥通过在线方式或者离线的方式传输到该可信执行环境中,可信执行环境读取加密的用户数据密钥,可以使用密钥(若为密钥对则使用私钥)对加密的用户数据密钥进行解密得到用户数据密钥,从而完成用户数据密钥的部署。
95.随后,可信执行环境与终端设备就可以使用用户数据密钥,对在可信执行环境与终端设备之间传输的数据进行加密,从而是的数据安全保护措施贯穿完整的生命周期,即存储态、传输态、计算态时,数据都受到了保护。
96.参照图2,本技术的一种基于可信执行环境的密钥管理的示意图,包括tee secure enclave 1(用于实现密钥管理的可信执行环境)和用户(用户的终端设备),在进行用户数据密钥部署时,可以通过如下方式进行:
97.1、用户的终端设备获取公钥和公钥的远程证明材料;其中,公钥为在tee secure enclave 1中生成非对称密钥中的公钥,远程证明材料为在tee secure enclave 1中基于公钥生成;2、验证远程证明材料;3、若远程证明材料验证成功,则可以信任该公钥;4、使用可信公钥对用户数据密钥进行加密,然后将加密的用户数据密钥传输至tee secure enclave 1中;5、tee secure enclave 1采用非对称密钥中的私钥对加密的用户数据密钥进行解密,得到用户数据密钥,从而可以将用户数据密钥部署在tee secure enclave 1,随后,tee secure enclave 1可以利用用户数据密钥对与用户的终端设备之间传输的数据加
密后再进行传输。
98.在上述基于可信执行环境的密钥管理方法中,在包括支持机密计算的可信执行环境的服务器中,在可信执行环境中生成密钥和密钥的远程证明材料,将密钥和远程证明材料传输至终端设备,其中,若在终端设备基于远程证明材料确定所述密钥为可信密钥时,在服务器可以接收到终端设备采用密钥对用户数据密钥加密后生成的加密的用户数据密钥,采用密钥对加密的用户数据密钥进行解密,得到用户数据密钥,随后,就可以采用用户数据密钥,对可信执行环境与终端设备之间的数据在加密后传输。本技术实施例基于服务器的可信执行环境来实现用户数据密钥的远程部署和管理,从而可以基于用户数据密钥在可信执行环境和终端设备之间的数据交互,保证数据安全。
99.在一示例性实施例中,所述步骤102、在所述可信执行环境中生成密钥和所述密钥的远程证明材料,可以包括如下步骤:
100.在所述可信执行环境中生成密钥;
101.采用预设摘要算法计算所述密钥的摘要数据,基于所述摘要数据生成所述密钥的远程证明材料。
102.在本技术实施例中,在可信执行环境中生成一个密钥后,可以采用预设摘要算法,例如sha256等算法计算密钥的摘要数据,以基于摘要数据生成密钥的远程证明材料,然后,再基于摘要数据生成远程证明材料,例如,sgx dcap quote数据。
103.在可信执行环境中生成密钥和密钥的远程证明材料后,终端设备通过可信执行环境的远程证明算法,验证密钥的远程证明材料,确信该远程证明材料是在受信任的可信执行环境内生成,随即可以信任该密钥是在可信执行环境中生成,因此信任密钥为安全和可信的,那么就可以基于密钥将用户数据密钥加密后传输至可信执行环境中,完成用户数据密钥在可信执行环境的部署。
104.在上述示例性实施例中,在可信执行环境中生成密钥后,基于摘要算法生成密钥的摘要数据,以基于摘要数据生成能够对密钥进行远程证明的远程证明材料,以使终端设备能够根据远程证明材料确定密钥是在受信任的环境中生成,进而确定密钥是在可信执行环境中生成,使得终端设备可以基于密钥加密其用户数据密钥后,将用户数据密钥安全地传输至可信执行环境中,保证了用户数据密钥的安全。
105.在一示例性实施例中,所述方法还可以包括如下步骤:
106.基于硬件级安全指令获取持久化数据密钥;所述持久化数据密钥为根据所述服务器中内置的硬件保护的持久化根密钥生成;
107.采用所述持久化数据密钥对所述密钥进行加密,以及采用所述所述持久化数据密钥对所述用户数据密钥进行加密;
108.将加密的密钥和加密的用户数据密钥,存储至所述可信执行环境对应的持久化存储区域中。
109.在实际应用中,为保证密钥的可用性,需要对密钥安全地持久化存储。
110.本技术实施例中,利用支持机密计算的服务器芯片内置的硬件保护的持久化根密钥(硬件根密钥),例如sgx sealing key等,持久化根密钥为由cpu硬件内部派生,只允许可信执行环境访问,无法被外界读取,安全性高,基于持久化根密钥派生出用于特定的可信执行环境的持久化数据密钥,则该可信执行环境在每次生命周期都可以通过硬件级安全指令
获取该持久化数据密钥,其他非授权secure enclave无法获得该持久化数据密钥。
111.在本技术实施例中,可信执行环境使用自己的持久化数据密钥对公私钥对的私钥、用户部署的用户数据密钥进行加密,加密的私钥和加密的用户数据密钥可以在可信执行环境之外(持久化存储区域)持久化存储,其中,由于可信执行环境之外的环境不持有持久化数据密钥,因此无法解密。
112.在一示例性实施例中,持久化存储区域允许授权的可信执行环境获取加密的密钥和加密的用户数据密钥,例如,生成密钥的可信执行环境可以作为授权的可信执行环境,此外,被生成密钥的可信执行环境信任的可信执行环境,也可以作为授权的可信执行环境。
113.需要说明的是,除了密钥(私钥)和用户数据密钥之外,其他数据也可以根据实际需求选择在使用是否持久化数据密钥加密后保存在持久化存储区域中,以便可信执行环境获取并使用,本技术实施例对此不加以限制。
114.在一示例性实施例中,所述步骤108、采用所述密钥对所述加密的用户数据密钥进行解密,得到所述用户数据密钥,可以包括如下步骤:
115.从所述持久化存储区域中获取所述加密的密钥;
116.采用所述持久化数据密钥对所述加密的密钥进行解密;
117.采用解密后的所述密钥对所述加密的用户数据密钥进行解密,得到解密后的所述用户数据密钥。
118.在本技术实施例中,在可信执行环境中在生成密钥后,可以将密钥采用持久化数据密钥加密后,保存到持久化存储区域中。在接收到终端设备传输采用密钥加密的用户数据密钥后,可以从持久化存储区域中获取加密的密钥(私钥),然后采用持久化数据密钥对加密的密钥进行解密,从而得到密钥对加密的用户数据密钥进行解密,以最终得到终端设备的用户数据密钥。
119.在一示例性实施例中,所述方法还可以包括如下步骤:
120.在所述可信执行环境与所述终端设备进行数据传输时,从所述持久化存储区域中获取所述加密的用户数据密钥;
121.采用所述持久化数据密钥对所述加密的用户数据密钥进行解密;
122.采用解密后的所述用户数据密钥,对所述可信执行环境与所述终端设备之间传输的数据进行加密后传输。
123.在本技术实施例中,在可信执行环境得到用户数据密钥后,可以将用户数据密钥采用持久化数据密钥加密后,保存到持久化存储区域中。在可信执行环境与终端设备进行数据传输时,可以从持久化存储区域中获取加密的用户数据密钥,然后采用持久化数据密钥对加密的用户数据密钥进行解密,得到用户数据密钥,从而可信执行环境与终端设备之间传输的数据,可以是采用用户数据密钥加密后的数据,保证了数据安全。
124.参照图2,在tee secure enclave 1生成非对称密钥时,可以将非对称密钥中的私钥采用基于硬件根密钥派生的持久化数据密钥对用户数据密钥进行加密,然后将加密的用户数据密钥在持久化存储区域中持久化存储。此外,在tee secure enclave 1获取到加密的用户数据密钥时,可以使用私钥(私钥可以从持久化存储区域中获取)对加密的用户数据密钥进行解密,得到用户数据密钥,可以使用硬件根密钥派生的持久化数据密钥对用户数据密钥进行加密,然后将加密的用户数据密钥在持久化存储区域中持久化存储。随后,在需
要使用私钥或者需要使用用户数据密钥时,就可以从持久化存储区域中获取并使用。
125.在一示例性实施例中,所述方法还可以包括如下步骤:
126.建立所述可信执行环境和其他可信执行环境之间的可信加密信道;所述其他可信执行环境为其他服务器中的支持机密计算的可信执行环境;
127.在所述其他可信执行环境与所述终端设备进行数据传输时,基于所述可信加密信道从所述可信执行环境获取所述用户数据密钥;
128.采用所述用户数据密钥,对所述其他可信执行环境与所述终端设备之间传输的数据进行加密后传输。
129.在具体实现中,通过远程密钥部署,用户数据密钥可以缓存在生成密钥的可信执行环境中,例如图2中的tee secure enclave 1中,在本技术实施例中,为了扩大使用范围,tee secure enclave1与其他可信执行环境,例如图2中的tee secure enclave 2,可以通过可信执行环境之间的远程/本地证明技术(例如,sgx的remote attestation、local attestation等等)在两个可信执行环境之间建立可信加密信道,通过可信加密信道可以将用户数据密钥在可信执行环境之间传递。
130.在本技术实施例中,利用可信执行环境提供的用户自定义可执行代码能力,其他可信执行环境(例如tee secure enclave 2)可以从密钥管理的可信执行环境(tee secure enclave 1)获得用户数据密钥,从而在其他可信执行环境中,实现用户数据密钥仅限于在可信执行环境中使用的运行时保护效果。
131.本技术实施例避免了用户承担额外安全硬件的成本,也不需要打通到云上kms服务的网络通道,仅需要利用支持机密计算、提供cpu sealing key和远程证明能力的服务器硬件(cpu)来实现用户数据密钥的远程部署和管理。
132.综上可知,应用本技术实施例具有如下优点:1.利用tee远程证明技术实现密钥管理服务请求的鉴权,并可结合传统access key鉴权方式提升访问安全;2.利用tee远程证明技术实现密钥生成和使用环境的远程认证和许可,划定密钥的安全边界;3.利用tee远程证明技术实现安全的密钥部署;4.利用tee硬件密钥派生技术实现密钥的持久化存储,且能够限定解密所需密钥只能在硬件密钥可派生的范围内或者被允许的安全飞地内,杜绝密钥被窃取的可能;5.利用tee机密计算技术实现完全可离线的密钥管理。
133.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术实施例并不受所描述的动作顺序的限制,因为依据本技术实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本技术实施例所必须的。
134.在上述实施例的基础上,本实施例还提供了一种基于可信执行环境的密钥管理装置,应用于终端设备、服务器等电子设备中。
135.参照图3,示出了本技术的一种基于可信执行环境的密钥管理装置实施例的结构框图,应用于服务器,所述服务器中包括支持机密计算的可信执行环境,所述装置具体可以包括如下模块:
136.生成模块302,用于在所述可信执行环境中生成密钥和所述密钥的远程证明材料;
137.传输模块304,用于将所述密钥和所述远程证明材料传输至终端设备;
138.验证模块306,用于在所述终端设备基于所述远程证明材料确定所述可信执行环境为受信任环境以及所述密钥为可信密钥时,接收到所述终端设备采用所述密钥对所述用户数据密钥加密后生成的加密的用户数据密钥;
139.部署模块308,用于采用所述密钥对所述加密的用户数据密钥进行解密,得到所述用户数据密钥,以使所述可信执行环境与所述终端设备基于所述用户数据密钥进行数据传输。
140.在一示例性实施例中,所述生成模块302,用于在所述可信执行环境中生成密钥;采用预设摘要算法计算所述密钥的摘要数据,基于所述摘要数据生成所述密钥的远程证明材料。
141.在一示例性实施例中,所述装置还包括:持久化存储模块,用于基于硬件级安全指令获取持久化数据密钥;所述持久化数据密钥为根据所述服务器中内置的硬件保护的持久化根密钥生成;采用所述持久化数据密钥对所述密钥进行加密,以及采用所述所述持久化数据密钥对所述用户数据密钥进行加密;将加密的密钥和加密的用户数据密钥,存储至所述可信执行环境对应的持久化存储区域中。
142.在一示例性实施例中,所述部署模块308,用于从所述持久化存储区域中获取所述加密的密钥;采用所述持久化数据密钥对所述加密的密钥进行解密;采用解密后的所述密钥对所述加密的用户数据密钥进行解密,得到解密后的所述用户数据密钥。
143.在一示例性实施例中,所述装置还包括:数据传输模块,用于在所述可信执行环境与所述终端设备进行数据传输时,从所述持久化存储区域中获取所述加密的用户数据密钥;采用所述持久化数据密钥对所述加密的用户数据密钥进行解密;采用解密后的所述用户数据密钥,对所述可信执行环境与所述终端设备之间传输的数据进行加密后传输。
144.在一示例性实施例中,所述持久化存储区域允许授权的可信执行环境获取所述加密的密钥和所述加密的用户数据密钥。
145.在一示例性实施例中,所述装置还包括:密钥传输模块,用于建立所述可信执行环境和其他可信执行环境之间的可信加密信道;所述其他可信执行环境为其他服务器中的支持机密计算的可信执行环境;在所述其他可信执行环境与所述终端设备进行数据传输时,基于所述可信加密信道从所述可信执行环境获取所述用户数据密钥;采用所述用户数据密钥,对所述其他可信执行环境与所述终端设备之间传输的数据进行加密后传输。
146.在一示例性实施例中,所述服务器与所述终端设备之间通过在线方式或者离线方式进行数据传输。
147.本技术实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本技术实施例中各方法步骤的指令(instructions)。
148.本技术实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本技术实施例中,所述电子设备包括终端设备、服务器(集群)等各类型的设备。
149.本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括终端设备、服务器(集群)等电子设备。图4示意性地示出了可被用于实现本技术中所述的各个实施例的示例性装置400。
150.对于一个实施例,图4示出了示例性装置400,该装置具有一个或多个处理器402、被耦合到(一个或多个)处理器402中的至少一个的控制模块(芯片组)404、被耦合到控制模块404的存储器406、被耦合到控制模块404的非易失性存储器(nvm)/存储设备408、被耦合到控制模块404的一个或多个输入/输出设备410,以及被耦合到控制模块404的网络接口412。
151.处理器402可包括一个或多个单核或多核处理器,处理器402可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,装置400能够作为本技术实施例中所述终端设备、服务器(集群)等设备。
152.在一些实施例中,装置400可包括具有指令414的一个或多个计算机可读介质(例如,存储器406或nvm/存储设备408)以及与该一个或多个计算机可读介质相合并被配置为执行指令414以实现模块从而执行本公开中所述的动作的一个或多个处理器402。
153.对于一个实施例,控制模块404可包括任意适当的接口控制器,以向(一个或多个)处理器402中的至少一个和/或与控制模块404通信的任意适当的设备或组件提供任意适当的接口。
154.控制模块404可包括存储器控制器模块,以向存储器406提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
155.存储器406可被用于例如为装置400加载和存储数据和/或指令414。对于一个实施例,存储器406可包括任意适当的易失性存储器,例如,适当的dram。在一些实施例中,存储器406可包括双倍数据速率类型四同步动态随机存取存储器(ddr4sdram)。
156.对于一个实施例,控制模块404可包括一个或多个输入/输出控制器,以向nvm/存储设备408及(一个或多个)输入/输出设备410提供接口。
157.例如,nvm/存储设备408可被用于存储数据和/或指令414。nvm/存储设备408可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(hdd)、一个或多个光盘(cd)驱动器和/或一个或多个数字通用光盘(dvd)驱动器)。
158.nvm/存储设备408可包括在物理上作为装置400被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如,nvm/存储设备408可通过网络经由(一个或多个)输入/输出设备410进行访问。
159.(一个或多个)输入/输出设备410可为装置400提供接口以与任意其他适当的设备通信,输入/输出设备410可以包括通信组件、音频组件、传感器组件等。网络接口412可为装置400提供接口以通过一个或多个网络通信,装置400可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如wifi、2g、3g、4g、5g等,或它们的组合进行无线通信。
160.对于一个实施例,(一个或多个)处理器402中的至少一个可与控制模块404的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器402中的至少一个可与控制模块404的一个或多个控制器的逻辑封装在一起以形成系统级封装(sip)。对于一个实施例,(一个或多个)处理器402中的至少一个可与控制模块404的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器402中的至少一个可与控制模块404的一个或多个控制器的逻辑集成在同一模具上以形
成片上系统(soc)。
161.在各个实施例中,装置400可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置400可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置400包括一个或多个摄像机、键盘、液晶显示器(lcd)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(asic)和扬声器。
162.其中,检测装置中可采用主控芯片作为处理器或控制模块,传感器数据、位置信息等存储到存储器或nvm/存储设备中,传感器组可作为输入/输出设备,通信接口可包括包括网络接口。
163.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
164.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
165.本技术实施例是参照根据本技术实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程基于可信执行环境的密钥管理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程基于可信执行环境的密钥管理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
166.这些计算机程序指令也可存储在能引导计算机或其他可编程基于可信执行环境的密钥管理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
167.这些计算机程序指令也可装载到计算机或其他可编程基于可信执行环境的密钥管理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
168.尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术实施例范围的所有变更和修改。
169.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
170.以上对本技术所提供的一种基于可信执行环境的密钥管理方法和装置,一种电子
设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献