CN118282644A - 密钥托管方法、装置、设备、存储介质及产品 - Google Patents

密钥托管方法、装置、设备、存储介质及产品 Download PDF

Info

Publication number
CN118282644A
CN118282644A CN202410414302.7A CN202410414302A CN118282644A CN 118282644 A CN118282644 A CN 118282644A CN 202410414302 A CN202410414302 A CN 202410414302A CN 118282644 A CN118282644 A CN 118282644A
Authority
CN
China
Prior art keywords
key
server
client
tee
encrypted data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410414302.7A
Other languages
English (en)
Inventor
仲梓源
潘晓丰
高宏民
唐志军
叶可可
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Information Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Information Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202410414302.7A priority Critical patent/CN118282644A/zh
Publication of CN118282644A publication Critical patent/CN118282644A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种密钥托管方法、装置、设备、存储介质及计算机程序产品,该方法通过获取用户身份信息与所述客户端对应的客户端TEE公钥,以根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP;发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果;根据所述签名验证结果,若所述远程证明验证成功,则获取服务端TEE公钥,根据所述服务端TEE公钥对所述VP和预先生成的密钥操作请求数据进行加密,得到第一加密数据,并将所述第一加密数据发送至所述服务端,以供所述服务端对所述第一加密数据进行解密,得到目标解密结果。如此,可以提高密钥安全性,从而减少密钥托管安全风险。

Description

密钥托管方法、装置、设备、存储介质及产品
技术领域
本发明涉及数据安全技术领域,尤其涉及一种密钥托管方法、装置、设备、存储介质及计算机程序产品。
背景技术
在Web3.0场景下,用户的账户密钥是一切数藏、通证等数字资产操作的基础,代表了数字资产的所有权,因而私钥保存与使用的安全尤为关键。密钥托管是一种密钥管理方法,其中密钥的生成、存储和使用都由第三方机构或服务器进行管理。在密钥托管中,授权方(例如政府代理机构)使用专用软件可以从加密数据中恢复密钥。这种方法主要是为了确保密钥的安全性和可靠性,降低密钥丢失或被非法使用的风险。
现有的密钥托管方法包括基于KMS(Key Management Service,密钥管理服务)的云平台密钥管理服务、基于向客户端分配的AK(Access Key ID,访问密钥ID)和SK(SecretAccess Key,访问密钥)来实现用户身份和权限的认证。然而,AK和SK的管理维护过程繁琐复杂,并且一旦泄露,攻击者就可以直接使用密钥。此外,由于密钥存储在中心化服务中,无法限制服务提供方对密钥的操作。综上所述,目前业界常用的密钥托管方法密钥安全性不高,存在安全风险。
发明内容
本发明的主要目的在于提供一种密钥托管方法、装置、设备及计算机程序产品,旨在提高密钥安全性,从而减少密钥托管安全风险。
为实现上述目的,本发明提供一种密钥托管方法,所述方法应用于客户端,所述密钥托管方法包括如下步骤:
获取用户身份信息与所述客户端对应的客户端TEE公钥,以根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP;
发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果;
根据所述签名验证结果,若所述远程证明验证成功,则获取服务端TEE公钥,根据所述服务端TEE公钥对所述VP和预先生成的密钥操作请求数据进行加密,得到第一加密数据,并将所述第一加密数据发送至所述服务端,以供所述服务端对所述第一加密数据进行解密,得到目标解密结果。
可选地,所述根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP的步骤包括:
调用分布式数字身份DID认证服务,并通过默克尔树方式根据所述用户身份信息与所述客户端TEE公钥组装信息,得到可验证凭证VC;
通过所述DID认证服务根据所述VC进行默克尔树根签名,得到VP,其中,所述VP包括所述用户身份信息对应的身份ID和所述客户端TEE公钥。
可选地,所述连接请求包括随机挑战值,所述发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果的步骤包括:
发送所述随机挑战值至所述服务端,以供所述服务端根据预先获取的当前运行代码逻辑生成第一完整性证明;
通过服务端根据所述第一完整性证明和所述随机挑战值进行组装,得到组装数据,并根据预先生成的服务端TEE私钥对所述组装数据进行签名,以供所述服务端根据签名后的组装数据生成所述远程证明;
接收所述服务端发送的所述远程证明,根据预先获取的服务端TEE公钥和预先获取的第二完整性证明验证所述远程证明,得到所述签名验证结果。
本发明还提供一种密钥托管方法,所述方法应用于服务端,所述密钥托管方法包括如下步骤:
响应于接收到的客户端发送的连接请求,生成远程证明并发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成第一加密数据;
接收所述客户端发送的所述第一加密数据,并根据所述服务端对应的服务端TEE私钥解密所述第一加密数据,得到目标解密结果。
可选地,所述目标解密结果包括密钥操作请求数据和VP,所述VP包括用户身份信息对应的身份ID和客户端TEE公钥,所述接收所述客户端发送的所述第一加密数据,并根据所述服务端对应的服务端TEE私钥解密所述第一加密数据,得到目标解密结果的步骤之后包括:
根据所述VP进行用户身份认证,并在用户身份认证通过的情况下,加载所述身份ID对应的用户密钥,以根据所述用户密钥执行所述密钥操作请求数据对应的密钥操作任务,得到原始密钥操作结果;
根据所述客户端TEE公钥对所述原始密钥操作结果进行加密,得到第二加密数据;
发送所述第二加密数据至所述客户端,以供所述客户端根据对应的客户端TEE私钥对所述第二加密数据进行解密,得到目标密钥操作结果。
可选地,所述连接请求包括随机挑战值,所述响应于接收到的客户端发送的连接请求,生成远程证明并发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成第一加密数据的步骤包括:
响应于接收到的所述随机挑战值,根据预先获取的当前运行代码逻辑生成第一完整性证明;
根据所述第一完整性证明和所述随机挑战值进行组装,得到组装数据,并根据预先生成的服务端TEE私钥对所述组装数据进行签名,得到所述远程证明;
发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成所述第一加密数据。
此外,为实现上述目的,本发明还提供一种密钥托管装置,应用于客户端,所述密钥托管装置包括:
第一数据获取模块,用于获取用户身份信息与所述客户端对应的客户端TEE公钥,以根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP;
第一通信连接模块,用于发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果;
第一密钥操作模块,用于根据所述签名验证结果,若所述远程证明验证成功,则获取服务端TEE公钥,根据所述服务端TEE公钥对所述VP和预先生成的密钥操作请求数据进行加密,得到第一加密数据,并将所述第一加密数据发送至所述服务端,以供所述服务端对所述第一加密数据进行解密,得到目标解密结果。
可选地,所述第一数据获取模块还用于:
调用分布式数字身份DID认证服务,并通过默克尔树方式根据所述用户身份信息与所述客户端TEE公钥组装信息,得到可验证凭证VC;
通过所述DID认证服务根据所述VC进行默克尔树根签名,得到VP,其中,所述VP包括所述用户身份信息对应的身份ID和所述客户端TEE公钥。
可选地,所述第一通信连接模块还用于:
发送所述随机挑战值至所述服务端,以供所述服务端根据预先获取的当前运行代码逻辑生成第一完整性证明;
通过服务端根据所述第一完整性证明和所述随机挑战值进行组装,得到组装数据,并根据预先生成的服务端TEE私钥对所述组装数据进行签名,以供所述服务端根据签名后的组装数据生成所述远程证明;
接收所述服务端发送的所述远程证明,根据预先获取的服务端TEE公钥和预先获取的第二完整性证明验证所述远程证明,得到所述签名验证结果。
此外,为实现上述目的,本发明还提供一种密钥托管装置,应用于服务端,所述密钥托管装置包括:
第二通信连接模块,用于响应于接收到的客户端发送的连接请求,生成远程证明并发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成第一加密数据;
第二数据接收模块,用于接收所述客户端发送的所述第一加密数据,并根据所述服务端对应的服务端TEE私钥解密所述第一加密数据,得到目标解密结果。
可选地,所述目标解密结果包括密钥操作请求数据和VP,所述VP包括用户身份信息对应的身份ID和客户端TEE公钥,所述第二数据接收模块还用于:
根据所述VP进行用户身份认证,并在用户身份认证通过的情况下,加载所述身份ID对应的用户密钥,以根据所述用户密钥执行所述密钥操作请求数据对应的密钥操作任务,得到原始密钥操作结果;
根据所述客户端TEE公钥对所述原始密钥操作结果进行加密,得到第二加密数据;
发送所述第二加密数据至所述客户端,以供所述客户端根据对应的客户端TEE私钥对所述第二加密数据进行解密,得到目标密钥操作结果。
可选地,所述第二通信连接模块还用于:
响应于接收到的所述随机挑战值,根据预先获取的当前运行代码逻辑生成第一完整性证明;
根据所述第一完整性证明和所述随机挑战值进行组装,得到组装数据,并根据预先生成的服务端TEE私钥对所述组装数据进行签名,得到所述远程证明;
发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成所述第一加密数据。
此外,为实现上述目的,本发明还提供一种密钥托管设备,所述设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的密钥托管程序,所述密钥托管程序被所述处理器执行时实现如上所述的密钥托管方法。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有密钥托管程序,所述密钥托管程序被处理器执行时实现如上文所述的密钥托管方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机程序产品,所述计算机程序产品包括密钥托管程序,所述密钥托管程序被处理器执行时实现如上文所述的密钥托管方法的步骤。
本发明实施例提出的一种密钥托管方法、装置、设备、存储介质及计算机程序产品,通过获取用户身份信息与所述客户端对应的客户端TEE公钥,以根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP;发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果;根据所述签名验证结果,若所述远程证明验证成功,则获取服务端TEE公钥,根据所述服务端TEE公钥对所述VP和预先生成的密钥操作请求数据进行加密,得到第一加密数据,并将所述第一加密数据发送至所述服务端,以供所述服务端对所述第一加密数据进行解密,得到目标解密结果。本发明实施例在获取用户身份信息与所述客户端对应的客户端TEE公钥的基础上,在所述远程证明验证成功后与服务端建立连接,并根据所述服务端TEE公钥与所述VP生成所述第一加密数据,如此,可以提高密钥安全性,从而减少密钥托管安全风险。
附图说明
图1为本发明密钥托管装置所属终端设备的功能模块示意图;
图2为本发明密钥托管方法密钥托管***的***架构图;
图3为本发明密钥托管方法第一示例性实施例的流程示意图;
图4为本发明密钥托管方法第一示例性实施例的VC申请的逻辑示意图;
图5为本发明密钥托管方法第一示例性实施例的VP生成的逻辑示意图;
图6为本发明密钥托管方法第二示例性实施例的流程示意图;
图7为本发明密钥托管方法第二示例性实施例中验证远程证明的交互示意图;
图8为本发明密钥托管方法第三示例性实施例的流程示意图;
图9为本发明密钥托管方法第四示例性实施例的流程示意图;
图10为本发明密钥托管方法第四示例性实施例中的密钥托管业务流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:获取用户身份信息与所述客户端对应的客户端TEE公钥,以根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP;发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果;根据所述签名验证结果,若所述远程证明验证成功,则获取服务端TEE公钥,根据所述服务端TEE公钥对所述VP和预先生成的密钥操作请求数据进行加密,得到第一加密数据,并将所述第一加密数据发送至所述服务端,以供所述服务端对所述第一加密数据进行解密,得到目标解密结果。
本发明实施例涉及的技术术语:
DID,Decentralized Identifier,分布式数字身份;DID是一种数字身份识别技术,它可以帮助用户在网络上建立并管理数字身份。它是一种在区块链或其他分布式账本技术上实现的数字身份标识,主要特点包括:
去中心化:DID没有一个中心机构来控制身份,身份数据存储在区块链等去中心化网络上。用户对自己的数字身份拥有完全控制权。
自主权:用户可以自行创建和管理DID,不需要通过第三方机构。DID与用户的实体身份解耦。
可验证:DID内置了验证机制,可以防止身份被伪造或篡改。其他组织可以可靠地验证DID持有者的身份。
隐私保护:用户可以选择披露部分身份信息给其他组织,避免泄漏过多隐私。
互操作性:DID***按标准制定,可以与其他***集成,实现不同***间的数字身份互认。
VC,Verifiable Credentials,可验证凭证;VC是包含实体身份信息的数字凭证,类似实体世界中的身份证、驾照、学位证等。它遵循标准格式,内容经过数字签名,能够被验证。
VP,Verifiable Presentations,可验证声明;VP是基于VC的可验证数字声明。持有VC的实体可以选择披露VC中的部分信息,生成VP来申明自己的特定身份或属性,而***露全部身份信息。
TEE,Trusted Execution Environment,可信执行环境;TEE是一种用于安全执行敏感计算的技术。TEE提供了一个隔离的执行环境,使得敏感数据和代码可以在被信任的环境中进行处理,而不受操作***或其他应用程序的干扰。TEE主要包含以下两个特征:
安全执行环境:TEE提供了一个在处理器级别实现的安全隔离执行环境,其中敏感的计算可以在安全的容器中进行,以保护数据的机密性和完整性。TEE通常提供安全的内存、加密算法、安全协议和访问控制机制,以确保执行环境的安全性,并防止恶意软件和攻击者对其进行访问或篡改。
可信应用程序:在TEE中运行的应用程序被称为可信应用程序。这些应用程序经过验证,并且可以对外提供远程证明。可信应用程序可以处理敏感数据,如加密密钥、数字身份和支付信息,而不会泄露给不受信任的环境。
密钥托管;密钥托管是一种密钥管理方法,其中密钥的生成、存储和使用都由第三方机构或服务器进行管理。在密钥托管中,授权方(例如政府代理机构)使用专用软件可以从加密数据中恢复密钥。这种方法主要是为了确保密钥的安全性和可靠性,降低密钥丢失或被非法使用的风险。然而,密钥托管也可能存在一些风险和问题,例如被托管方不透明、托管成本高、托管过程可能存在安全漏洞等。因此,在进行密钥托管时,需要仔细考虑风险和成本,并选择可靠的托管服务机构。
KMS,Key Management Service,密钥管理服务;KMS,都是将密钥存在服务端。KMS的主要功能包括:
密钥生成:KMS可以通过HRNG(Hardware Random Numeral Generator,硬件随机数生成器)生成高强度对称和非对称密钥;
密钥存储:密钥由KMS托管存储,不直接暴露给用户,KMS会加密密钥然后存储到HSM(Hardware Security Module,硬件安全模块)中;
密钥访问控制:通过访问策略,可以细粒度控制密钥的使用权限,只有获得授权的服务才能使用;
密钥轮换:定期自动轮换密钥;可以降低密钥泄露风险;
密钥监管:所有密钥的使用都会被KMS记录在审计日志中,确保可追溯;
密钥删除:当密钥不再需要时,可以永久删除密钥。
本申请实施例考虑到,当前业界中的密钥托管方法,AK和SK的管理维护过程繁琐复杂,并且一旦泄露,攻击者就可以直接使用密钥。此外,由于密钥存储在中心化服务中,无法限制服务提供方对密钥的操作。综上所述,目前业界常用的密钥托管方法密钥安全性不高,存在安全风险。
基于此,本申请实施例提供一种解决方案,在获取用户身份信息与所述客户端对应的客户端TEE公钥的基础上,在所述远程证明验证成功后与服务端建立连接,并根据所述服务端TEE公钥与所述VP生成所述第一加密数据,如此,可以提高密钥安全性,从而减少密钥托管安全风险。
具体地,参照图1,图1为本申请密钥托管装置所属终端设备的功能模块示意图。该密钥托管装置可以为独立于终端设备的、能够进行密钥托管的装置,其可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备或服务器等,此外,该密钥托管装置还可以承载于密钥托管***中。
在本实施例中,该密钥托管装置所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。
存储器130中存储有操作***以及密钥托管程序;输出模块110可为显示屏等。通信模块140可以包括WIFI模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。
其中,存储器130中的密钥托管程序被处理器执行时实现以下步骤:
获取用户身份信息与所述客户端对应的客户端TEE公钥,以根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP;
发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果;
根据所述签名验证结果,若所述远程证明验证成功,则获取服务端TEE公钥,根据所述服务端TEE公钥对所述VP和预先生成的密钥操作请求数据进行加密,得到第一加密数据,并将所述第一加密数据发送至所述服务端,以供所述服务端对所述第一加密数据进行解密,得到目标解密结果。
进一步地,存储器130中的密钥托管程序被处理器执行时还实现以下步骤:
调用分布式数字身份DID认证服务,并通过默克尔树方式根据所述用户身份信息与所述客户端TEE公钥组装信息,得到可验证凭证VC;
通过所述DID认证服务根据所述VC进行默克尔树根签名,得到VP,其中,所述VP包括所述用户身份信息对应的身份ID和所述客户端TEE公钥。
进一步地,存储器130中的密钥托管程序被处理器执行时还实现以下步骤:
发送所述随机挑战值至所述服务端,以供所述服务端根据预先获取的当前运行代码逻辑生成第一完整性证明;
通过服务端根据所述第一完整性证明和所述随机挑战值进行组装,得到组装数据,并根据预先生成的服务端TEE私钥对所述组装数据进行签名,以供所述服务端根据签名后的组装数据生成所述远程证明;
接收所述服务端发送的所述远程证明,根据预先获取的服务端TEE公钥和预先获取的第二完整性证明验证所述远程证明,得到所述签名验证结果。
进一步地,存储器130中的密钥托管程序被处理器执行时还实现以下步骤:
响应于接收到的客户端发送的连接请求,生成远程证明并发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成第一加密数据;
接收所述客户端发送的所述第一加密数据,并根据所述服务端对应的服务端TEE私钥解密所述第一加密数据,得到目标解密结果。
进一步地,存储器130中的密钥托管程序被处理器执行时还实现以下步骤:
根据所述VP进行用户身份认证,并在用户身份认证通过的情况下,加载所述身份ID对应的用户密钥,以根据所述用户密钥执行所述密钥操作请求数据对应的密钥操作任务,得到原始密钥操作结果;
根据所述客户端TEE公钥对所述原始密钥操作结果进行加密,得到第二加密数据;
发送所述第二加密数据至所述客户端,以供所述客户端根据对应的客户端TEE私钥对所述第二加密数据进行解密,得到目标密钥操作结果。
进一步地,存储器130中的密钥托管程序被处理器执行时还实现以下步骤:
响应于接收到的所述随机挑战值,根据预先获取的当前运行代码逻辑生成第一完整性证明;
根据所述第一完整性证明和所述随机挑战值进行组装,得到组装数据,并根据预先生成的服务端TEE私钥对所述组装数据进行签名,得到所述远程证明;
发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成所述第一加密数据。
本实施例通过上述方案,通过获取用户身份信息与所述客户端对应的客户端TEE公钥,以根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP;发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果;根据所述签名验证结果,若所述远程证明验证成功,则获取服务端TEE公钥,根据所述服务端TEE公钥对所述VP和预先生成的密钥操作请求数据进行加密,得到第一加密数据,并将所述第一加密数据发送至所述服务端。本发明实施例在获取用户身份信息与所述客户端对应的客户端TEE公钥的基础上,在所述远程证明验证成功后与服务端建立连接,并根据所述服务端TEE公钥与所述VP生成所述第一加密数据,如此,可以提高密钥安全性,从而减少密钥托管安全风险。
本申请密钥托管方法实施例涉及客户端与服务端,其中,所述客户端与服务端可同时承载于密钥托管***中。
参照图2,图2为本申请密钥托管方法密钥托管***的***架构图;如图2所示,密钥托管***的整体架构需要包括DID认证、客户端与服务端TEE环境、密钥操作模块。其中,DID是基于区块链构建,对外提供身份认证的相关服务,主要包含可验证声明的申请以及相关验证信息的同步。此外TEE同时应用于移动客户端和中心化的服务端,保证全流程的可信。另外客户端TEE的公钥可以作为当前设备的标识与身份进行绑定,确保了只有当前设备可以对账户密钥进行操作。同时,移动客户端通过密码、人脸识别、指纹识别等方式保证用户的身份。密钥操作模块则根据用户(客户端操作人员)输入的密钥操作命令执行对应的密钥操作流程。
基于上述设备架构与如图2所示的密钥托管***的***架构但不限于上述架构,提出本申请方法第一实施例。
参照图3,图3为本申请密钥托管方法第一示例性实施例的流程示意图。所述密钥托管方法运用于客户端,所述客户端支持可信执行环境TEE,所述密钥托管方法包括:
步骤S10,获取用户身份信息与所述客户端对应的客户端TEE公钥,以根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP;
需要说明的是,本实施例运用于如图3所示的密钥托管***中,并具体可运用于密钥托管场景中。在Web3.0场景下,用户的账户密钥是一切数藏、通证等数字资产操作的基础,代表了数字资产的所有权,因而私钥保存与使用的安全尤为关键。具体地,私钥的重要性体现在控制资产所有权、进行交易签名、授权访问智能合约等方面。
当前私钥的托管主要通过两种方式实现,一种是传统中心化的托管服务,一种是完全去中心化的自托管方式。传统中心化的托管服务是将私钥的控制权完全交给了密钥托管服务提供方,私钥的安全性完全依赖用户对于服务提供方的信任,用户没有办法进行审计和验证。所以服务提供方如果使用私钥作恶,用户无法阻止。而对于完全去中心化的自托管方式,用户需要自己保存和管理密钥,并要自己保证私钥在使用过程中的安全性。这种方式虽然对私钥的掌控力强,但也相对中心化的托管方式有着较高的使用门槛,用户因私钥丢失、被盗而导致数字资产丢失的事件时有发生。目前业界常用的密钥托管方法,包括中心化密钥托管方法,例如云平台的KMS,都是将密钥存在服务端。
可以理解地,使用KMS管理密钥比自行开发密钥管理要安全得多,可以减少用户的维护成本,并利用云平台提供的安全机制来保护密钥,是云上部署的最佳实践。然而,传统的密钥权限认证机制维护不便,并且存在一定的安全隐患。传统的密钥托管认证是基于给客户端分配的AK、SK来实现用户身份和权限的认证。但AK、SK如密钥一样管理维护繁琐复杂,且为了一定的安全保证需要定期更新轮换,因而还需要配有过期更新机制。此外,一旦AK、SK泄露,攻击者就可以直接使用密钥,有一定的安全风险。此外,现有技术无法防止中心化服务端作恶并缺乏可信性验证。由于密钥是存储在中心化服务中,无法限制服务提供方可以对密钥进行的操作,因而存在服务提供方滥用用户密钥,盗取用户数字资产的风险。此外,用户也无法对服务提供方的可信性进行验证,只能基于对服务提供方的单方面信任。
基于此,本实施例基于TEE和DID技术对上述中心化的密钥托管方案进行改造,首先需要获取用户身份信息与所述客户端对应的客户端TEE公钥,其中,所述用户身份信息即用户对应的身份信息,包括身份ID;所述客户端TEE公钥指的是客户端的TEE中的公钥。TEE是一种安全的计算环境,可用于保护敏感数据和执行安全操作。在TEE中,公钥通常用于加密通信、数字签名和身份验证等安全操作。每个客户端TEE都会生成一对公钥和私钥,其中公钥用于加密和验证数据,私钥则用于解密和签署数据。通过使用TEE的公钥,可以确保通信和操作的安全性和完整性。目前市场上主流的移动客户端(安卓/IOS)基本都对TEE进行了支持。TEE中包含内建的私钥和公钥,私钥是绑定在硬件内部,与TEE是唯一对应的,且无法取出和修改,只能在TEE内部使用。所以设备的TEE公钥(也即客户端TEE公钥)就可以作为当前设备的唯一标识与身份ID进行绑定。而在后端中心化服务会将身份ID与用户私钥(也即客户端TEE私钥)进行绑定,这样就实现了设备与用户私钥的绑定。此后***会将所有提供给该用户的数据都用此TEE公钥进行加密,这样只有拥有该设备的用户(例如客户端操作人员)才能对数据进行解密,从而最大限度地保证数据的安全。
此外,本实施例还根据所述用户身份信息与所述客户端TEE公钥,可以得到可验证声明VP。
进一步地,在本实施例中,所述根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP的步骤可以包括:
步骤A1,调用分布式数字身份DID认证服务,并通过默克尔树方式根据所述用户身份信息与所述客户端TEE公钥组装信息,得到可验证凭证VC;
具体地,参照图4,图4为本申请密钥托管方法VC申请的逻辑示意图;如图4所示,VC为DID体系用户认证的核心,用户通过客户端调用DID认证服务,将身份信息以及客户端TEE公钥等信息上传,DID认证服务对上述信息审核之后将所有信息组装成VC。具体的信息组装方式可以采用默克尔树方式,其中,默克尔树是一种树状数据结构,用于有效地验证大型数据集中数据的完整性和一致性。在默克尔树中,每个叶节点代表一个数据块,而非叶节点则是其子节点的哈希值的组合。具体而言,对每一对相邻的数据块进行Hash(哈希)运算,然后将它们的哈希值合并成一个新的哈希值,这个过程会递归地进行下去,直到形成根节点,也就是默克尔根。通过比对默克尔根,可以快速、高效地验证数据集中某个特定数据块是否被篡改,因为任何一个数据块的更改都会导致根节点哈希值的改变。默克尔树在数据完整性检查、快速验证和加速数据同步等方面有着广泛的应用,特别是在区块链技术中被广泛采用。
步骤A2,通过所述DID认证服务根据所述VC进行默克尔树根签名,得到VP,其中,所述VP包括所述用户身份信息对应的身份ID和所述客户端TEE公钥。
具体地,参照图5,图5为本申请密钥托管方法VP生成的逻辑示意图;如图5所示,VC中的各信息以默克尔树的方式进行组织,而后DID认证服务会对默克尔树的树根进行签名,生成VP。所述VP用于向第三方证明自己的身份。不同于VC,VP不需要包含全量信息,只需要选择性地对信息进行披露。VP的生成不需要依赖认证服务,用户在客户端本地就可以用VC来生成。在本实施例中,VP主要包含默克尔树根、默克尔树根对应的签名、客户端TEE公钥、身份ID,以及客户端TEE公钥和身份ID对应的默克尔证明。
此外,如果用户的设备发生丢失或者无法使用需要进行更换,则需要吊销之前的VC,并用新设备的客户端TEE公钥申请新的VC。此时服务端将从DID认证服务同步认证信息,可以对基于吊销VC的VP做出判断。
步骤S20,发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果;
具体地,客户端发送连接请求至服务端,以在客户端与服务端之间建立可信的通信连接。可以理解的是,本实施例通过接收并验证所述服务端响应所述连接请求生成的远程证明,来证明服务端所提供的密钥用户身份认证服务和密钥操作服务是可信的,也即所述远程证明可基于服务端的密钥用户身份认证和密钥操作两个关键流程的代码逻辑生成。
步骤S30,根据所述签名验证结果,若所述远程证明验证成功,则获取服务端TEE公钥,根据所述服务端TEE公钥对所述VP和预先生成的密钥操作请求数据进行加密,得到第一加密数据,并将所述第一加密数据发送至所述服务端,以供所述服务端对所述第一加密数据进行解密,得到目标解密结果。
具体的,本实施例中的签名验证结果包括远程证明是否验证成功,若所述远程证明验证成功,则说明客户端与服务端之间可以建立可信的通信连接,即可获取所述服务端TEE公钥,并根据所述服务端TEE公钥对所述VP和预先生成的密钥操作请求数据进行加密,得到第一加密数据,并将所述第一加密数据发送至所述服务端以供所述服务端对所述第一加密数据进行解密,得到目标解密结果,所述目标解密结果包括密钥操作请求数据和VP,所述VP包括用户身份信息对应的身份ID和客户端TEE公钥,其中,所述VP用于服务端验证用户身份,所述密钥操作请求数据用于服务端执行具体的密钥操作任务。在实际实施过程中,所述密钥操作请求数据可以根据用户在客户端上输入的密钥操作指令生成,所述密钥操作指令具体可以包括密钥生成、密钥备份和恢复、密钥销毁、加解密运算、签名与验签、密钥监控审计等等。
本实施例通过上述方案,具体通过获取用户身份信息与所述客户端对应的客户端TEE公钥,以根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP;发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果;根据所述签名验证结果,若所述远程证明验证成功,则获取服务端TEE公钥,根据所述服务端TEE公钥对所述VP和预先生成的密钥操作请求数据进行加密,得到第一加密数据,并将所述第一加密数据发送至所述服务端,以供所述服务端对所述第一加密数据进行解密,得到目标解密结果。本发明实施例采用的认证机制是采用DID将设备与身份进行绑定,验证了用户身份的同时,保证私钥只能由被绑定的设备进行操作,从而提高***的安全性和有效性。本发明实施例还构建了一条从客户端到服务端的全链路TEE环境,保证数据在进入客户端之前不会被任何第三方得知,如此,可以提高密钥安全性,从而减少密钥托管安全风险。
参照图6,图6为本申请密钥托管方法第二示例性实施例的流程示意图。
基于第一实施例,提出本申请第二实施例,本申请第二实施例与第一实施例的区别在于:本实施例对步骤S20,发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果进行细化。
在本实施例中,步骤S20,发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果可以包括:
步骤S201,发送所述随机挑战值至所述服务端,以供所述服务端根据预先获取的当前运行代码逻辑生成第一完整性证明;
具体地,参照图7,图7是本申请密钥托管方法验证远程证明的交互示意图;如图7所示,所述连接请求包括随机挑战值,所述随机挑战值可记为c,所述服务端在接收到c后,将通过服务端的TEE环境根据当前运行代码逻辑预先生成measurement(TEE完整性证明),所述measurement即步骤S201生成的第一完整性证明,也即图7中的M。
步骤S202,通过服务端根据所述第一完整性证明和所述随机挑战值进行组装,得到组装数据,并根据预先生成的服务端TEE私钥对所述组装数据进行签名,以供所述服务端根据签名后的组装数据生成所述远程证明;
具体地,本实施例通过服务端的TEE环境将用户发送的随机挑战值c与预先获取的第一完整性证明M组装到一起得到组装数据,同时使用内建的服务端TEE私钥对所述组装数据进行签名,得到签名后的组装数据,并根据所述签名后的组装数据生成所述远程证明,其中,所述远程证明包括随机挑战值c与第一完整性证明M的签名。
步骤S203,接收所述服务端发送的所述远程证明,根据预先获取的服务端TEE公钥和预先获取的第二完整性证明验证所述远程证明,得到所述签名验证结果。
具体的,本实施例通过所述客户端接收所述服务端发送的所述远程证明,同时,提供密钥托管服务的服务端会公开其密钥用户身份认证以及密钥操作两个流程的代码逻辑作为第二完整性证明,所述第二完整性证明由客户端预先获取。其中,对所述远程证明进行验证的步骤具体包括:
步骤B1,根据所述服务端TEE公钥进行签名验证,得到第一签名验证结果;
步骤B2,根据所述第一签名验证结果,若所述第一签名验证结果为验证成功,则对比所述第一完整性证明与所述第二完整性证明,得到所述第二签名验证结果。
具体地,客户端在收到所述远程证明后,会先用已经被公开的服务端TE公钥进行签名验证,得到第一签名验证结果,显然,若第一签名验证结果为验证失败,客户端会拒绝与服务端建立连接。若第一签名验证结果为验证成功,则客户端会继续对比所述远程证明中的第一完整性证明与已经公开的第二完整性证明,若两者相同,则说明服务端有关密钥用户身份认证以及密钥操作两个流程的代码逻辑是符合预期,客户端与服务端之间可以建立可信连接,并且用户后续发给服务端的数据都用公开的服务端TEE公钥进行加密。
本实施例通过上述方案,具体通过发送所述随机挑战值至所述服务端,以供所述服务端根据预先获取的当前运行代码逻辑生成第一完整性证明;通过服务端根据所述第一完整性证明和所述随机挑战值进行组装,得到组装数据,并根据预先生成的服务端TEE私钥对所述组装数据进行签名,得到所述远程证明;接收所述远程证明,根据预先获取的服务端TEE公钥和预先获取的第二完整性证明验证所述远程证明,得到所述签名验证结果。本发明实施例基于TEE的远程证明能力,利用根据托管操作代码生成的完整性证明,对密钥托管服务进行可信验证,从而构建了一条从移动客户端到服务器端的全链路TEE环境,保证数据在进入客户端之前不会被任何第三方得知。如此,可以提高密钥安全性,减少安全风险。
基于上述设备架构与如图2所示的密钥托管***的***架构但不限于上述架构,提出本申请方法第三实施例。
参照图8,图8为本申请密钥托管方法第三示例性实施例的流程示意图。所述方法应用于服务端,所述服务端支持TEE,所述密钥托管方法包括以下步骤:
步骤K10,响应于接收到的客户端发送的连接请求,生成远程证明并发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成第一加密数据;
具体的,本实施例中,所述服务端首先需要接收客户端发送的连接请求,生成远程证明并发送所述远程证明至所述客户端,来证明服务端所提供的密钥用户身份认证服务和密钥操作服务是可信的,也即所述远程证明可基于服务端的密钥用户身份认证和密钥操作两个关键流程的代码逻辑生成。其中,所述远程证明包括随机挑战值c与第一完整性证明M的签名。本实施例通过所述客户端接收所述远程证明,同时,提供密钥托管服务的服务端会公开其密钥用户身份认证以及密钥操作两个流程的代码逻辑作为第二完整性证明,所述第二完整性证明由客户端预先获取。
进一步的,在本实施例中,步骤K10,响应于接收到的客户端发送的连接请求,生成远程证明并发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成第一加密数据可以包括:
步骤C1,响应于接收到的所述随机挑战值,根据预先获取的当前运行代码逻辑生成第一完整性证明;
具体地,所述连接请求包括随机挑战值,所述随机挑战值可记为c,所述服务端在接收到c后,将通过服务端的TEE环境根据当前运行代码逻辑预先生成所述第一完整性证明。
步骤C2,根据所述第一完整性证明和所述随机挑战值进行组装,得到组装数据,并根据预先生成的服务端TEE私钥对所述组装数据进行签名,得到所述远程证明;
具体地,本实施例通过服务端的TEE环境将用户发送的随机挑战值c与预先获取的第一完整性证明M组装到一起得到组装数据,同时使用内建的服务端TEE私钥对所述组装数据进行签名,得到所述远程证明。
步骤C3,发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成所述第一加密数据。
具体地,本实施例通过所述服务端发送所述远程证明至所述客户端,同时,提供密钥托管服务的服务端会公开其密钥用户身份认证以及密钥操作两个流程的代码逻辑作为第二完整性证明,所述第二完整性证明由客户端预先获取。参照上述第二实施例,客户端在收到所述远程证明后,会先用已经被公开的服务端TE公钥进行签名验证,得到第一签名验证结果,显然,若第一签名验证结果为验证失败,客户端会拒绝与服务端建立连接。若第一签名验证结果为验证成功,则客户端会继续对比所述远程证明中的第一完整性证明与已经公开的第二完整性证明,若两者相同,则说明服务端有关密钥用户身份认证以及密钥操作两个流程的代码逻辑是符合预期,客户端与服务端之间可以建立可信连接,并且用户后续发给服务端的数据都用公开的服务端TEE公钥进行加密。
步骤K20,接收所述客户端发送的所述第一加密数据,并根据所述服务端对应的服务端TEE私钥解密所述第一加密数据,得到目标解密结果。
具体地,本实施例通过服务端接收所述客户端发送的所述第一加密数据,并根据所述服务端对应的服务端TEE私钥解密所述第一加密数据以得到目标解密结果。其中,所述目标解密结果包括密钥操作请求数据和VP,所述VP包括用户身份信息对应的身份ID和客户端TEE公钥,所述服务端TEE私钥与所述服务端TEE公钥相互对应。此外,本实施例中的密钥操作请求数据即所述密钥操作请求数据可以根据用户在客户端上输入的密钥操作指令生成,所述密钥操作指令具体可以包括密钥生成、密钥备份和恢复、密钥销毁、加解密运算、签名与验签、密钥监控审计等等;所述VP用于向第三方证明自己的身份。不同于VC,VP不需要包含全量信息,只需要选择性地对信息进行披露。VP的生成不需要依赖认证服务,用户在客户端本地就可以用VC来生成。在本实施例中,VP主要包含默克尔树根、默克尔树根对应的签名、客户端TEE公钥、身份ID,以及客户端TEE公钥和身份ID对应的默克尔证明。
本实施例通过上述方案,具体通过响应于接收到的客户端发送的连接请求,生成远程证明并发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成第一加密数据;接收所述客户端发送的所述第一加密数据,并根据所述服务端对应的服务端TEE私钥解密所述第一加密数据,得到密钥操作请求数据和VP;根据所述VP进行用户身份认证,并在用户身份认证通过的情况下,执行所述密钥操作请求数据对应的密钥操作任务,生成第二加密数据并将所述第二加密数据发送至所述客户端。本发明实施例采用的认证机制是采用DID将设备与身份进行绑定,验证了用户身份的同时,保证私钥只能由被绑定的设备进行操作,从而提高***的安全性和有效性。本发明实施例还构建了一条从客户端到服务端的全链路TEE环境,保证数据在进入客户端之前不会被任何第三方得知,如此,可以提高密钥安全性,从而减少密钥托管安全风险。
参照图9,图9为本申请密钥托管方法第四示例性实施例的流程示意图。
基于第三实施例,提出本申请第四实施例,本申请第四实施例与第三实施例的区别在于:
在本实施例中,所述目标解密结果包括密钥操作请求数据和VP,所述VP包括用户身份信息对应的身份ID和客户端TEE公钥,步骤K20,接收所述客户端发送的所述第一加密数据,并根据所述服务端对应的服务端TEE私钥解密所述第一加密数据,得到目标解密结果之后可以包括:
步骤K30,根据所述VP进行用户身份认证,并在用户身份认证通过的情况下,加载所述身份ID对应的用户密钥,以根据所述用户密钥执行所述密钥操作请求数据对应的密钥操作任务,得到原始密钥操作结果;
具体地,本实施例根据所述VP进行用户身份认证,并在用户身份认证通过的情况下,执行所述密钥操作请求数据对应的密钥操作任务。所述密钥操作请求数据对应的密钥操作任务为可信密钥操作,也是密钥托管***的核心功能,所述可信密钥操作主要包括:
密钥生成:使用经验证的密钥生成算法(如RSA非对称算法、椭圆曲线数字签名算法),等生成密钥对,生成时用真随机数生成器确保密钥熵,同时支持设置密钥长度、加密算法参数等;
密钥备份与恢复:用户可以将本地私钥备份在托管平台中,从而可以在私钥丢失或损坏时,用备份在托管平台的私钥进行恢复;
密钥销毁:当密钥生命周期结束时,托管平台通过软件销毁或物理销毁,确保销毁后无法恢复密钥。同时,销毁后更新密钥数据库,标记密钥状态;
加解密运算:对敏感数据使用密钥进行加解密计算,支持对称加密与非对称加密算法;
签名与验证签名:使用托管在平台的私钥进行签名操作,或者对给定的签名进行验证操作,且支持各种加密算法;
密钥监控审计:通过监控密钥状态、密钥使用、访问失败等事件,对操作进行记录,从而用于审计追溯并设置风险阈值并触发报警、异常处理。
服务端执行上述可信密钥操作的结果经过服务端加密后生成第二加密数据,所述第二加密数据由服务端反馈给客户端,以供客户端获取所述可信密钥操作的结果。
更具体地,所述VP用于向第三方证明自己的身份。在本实施例中,VP主要包含默克尔树根、默克尔树根对应的签名、客户端TEE公钥、身份ID,以及客户端TEE公钥和身份ID对应的默克尔证明。本实施例根据所述VP验证用户的身份,然后加载与所述身份ID相关联的用户密钥,所述用户密钥可以由用户根据用户身份信息自行设定,也可以是绑定用户客户端所属设备的客户端TEE私钥。本实施例根据所述用户密钥执行所述密钥操作请求数据对应的密钥操作任务,得到原始密钥操作结果。
步骤K31,根据所述客户端TEE公钥对所述原始密钥操作结果进行加密,得到第二加密数据;
具体地,本实施例在服务端得到所述原始密钥操作结果后,会用VP中的客户端TEE公钥对所述原始密钥操作结果进行加密,得到第二加密数据,以保证所述第二加密数据中的原始密钥操作结果对外不透明。
步骤K32,发送所述第二加密数据至所述客户端,以供所述客户端根据对应的客户端TEE私钥对所述第二加密数据进行解密,得到目标密钥操作结果。
具体的,本实施例发送所述第二加密数据至所述客户端,用户通过客户端使用所述客户端TEE私钥对所述第二加密数据进行解密,从而还原出目标密钥操作结果(其中信息与所述原始密钥操作结果保持一致),如此,即完成了在一条客户端到服务端的全链路TEE环境中进行密钥操作的步骤。
更具体地,参照图10,图10为本申请密钥托管方法的密钥托管业务流程示意图。如图10所示,所述密钥托管方法包括:
首先,初始化用户的移动客户端程序,获取客户端TEE的内建公钥(即上述实施例中的客户端TEE公钥);
然后,客户端根据用户的身份信息以及所述客户端TEE公钥去DID认证服务申请VC;
然后,客户端在本地空间基于VC生成VP(可参照上述第一实施例中基于VC生成VP的相关步骤),所述VP包含身份ID和客户端TEE公钥;
然后,客户端向服务端发起连接请求,并验证服务端传来的远程证明,所述远程证明验证通过后,客户端与服务端建立可信连接;
然后,客户端将密钥操作请求和VP用公开的服务端TEE公钥加密,然后发送到服务端;
然后,服务端在接收到所述密钥操作请求和VP的加密数据后,在服务端内部的TEE环境中用服务端TEE私钥进行解密以得到所述密钥操作请求和VP,并通过验证VP来认证用户的身份,若VP验证成功,则加载所述VP中的身份ID所对应的用户密钥;
然后,服务端根据所述用户密钥完成相应的密钥操作,并将生成的密钥操作结果用VP中的公钥进行加密后返回给用户的客户端;
最后,客户端在得到所述服务端加密后的密钥操作结果后,用客户端TEE私钥对其进行解密,以得到所述密钥操作结果,并执行后续相关操作,其中,所述后续相关操作不属于本方案的发明点,故在此不再赘述。
本实施例通过上述方案,具体通过根据所述VP进行用户身份认证,并在用户身份认证通过的情况下,加载所述身份ID对应的用户密钥,以根据所述用户密钥执行所述密钥操作请求数据对应的密钥操作任务,得到原始密钥操作结果;根据所述客户端TEE公钥对所述原始密钥操作结果进行加密,得到第二加密数据;发送所述第二加密数据至所述客户端,以供所述客户端根据对应的客户端TEE私钥对所述第二加密数据进行解密,得到目标密钥操作结果。本发明实施例提出的密钥托管方案,可以保证在整个流程中数据只有在两端(客户端与服务端)的TEE环境内部是明文表示,其他时候都是以密文形态存在,而TEE环境内部与外界是隔离的(硬件保证),所以用户密钥操作的全流程都是对外界保密的,即使是服务端也不知道用户的请求和返回值的具体内容。这就保证了整个密钥托管的在全链路上的安全可信。如此,可以提高密钥安全性,减少密钥托管中的安全风险。
需要说明的是,上述各实施例可以根据实际情况进行合理的组合实施,本实施例对此不再赘述。
此外,本申请实施例还提供一种密钥托管装置,应用于客户端,所述密钥托管装置包括:
第一数据获取模块,用于获取用户身份信息与所述客户端对应的客户端TEE公钥,以根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP;
第一通信连接模块,用于发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果;
第一密钥操作模块,用于根据所述签名验证结果,若所述远程证明验证成功,则获取服务端TEE公钥,根据所述服务端TEE公钥对所述VP和预先生成的密钥操作请求数据进行加密,得到第一加密数据,并将所述第一加密数据发送至所述服务端,以供所述服务端对所述第一加密数据进行解密,得到目标解密结果。
本实施例实现密钥托管的原理及实施过程,请参照上述各实施例,在此不再赘述。
此外,本申请实施例还提供一种密钥托管装置,应用于服务端,所述密钥托管装置包括:
第二通信连接模块,用于响应于接收到的客户端发送的连接请求,生成远程证明并发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成第一加密数据;
第二数据接收模块,用于接收所述客户端发送的所述第一加密数据,并根据所述服务端对应的服务端TEE私钥解密所述第一加密数据,得到目标解密结果。
本实施例实现密钥托管的原理及实施过程,请参照上述各实施例,在此不再赘述。
此外,本申请实施例还提出一种设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的密钥托管程序,所述密钥托管程序被所述处理器执行时实现如上所述的密钥托管方法的步骤。
由于本密钥托管程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有密钥托管程序,所述密钥托管程序被处理器执行时实现如上文所述的密钥托管方法的步骤。
此外,本发明实施例还提出一种计算机程序产品,包括密钥托管程序,所述密钥托管程序被处理器执行时实现如上所述的密钥托管方法的步骤。
本发明计算机程序产品具体实施方式与上述密钥托管方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例排序仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (11)

1.一种密钥托管方法,其特征在于,所述方法应用于客户端,所述客户端支持可信执行环境TEE,所述密钥托管方法包括以下步骤:
获取用户身份信息与所述客户端对应的客户端TEE公钥,以根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP;
发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果;
根据所述签名验证结果,若所述远程证明验证成功,则获取服务端TEE公钥,根据所述服务端TEE公钥对所述VP和预先生成的密钥操作请求数据进行加密,得到第一加密数据,并将所述第一加密数据发送至所述服务端,以供所述服务端对所述第一加密数据进行解密,得到目标解密结果。
2.如权利要求1所述的密钥托管方法,其特征在于,所述根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP的步骤包括:
调用分布式数字身份DID认证服务,并通过默克尔树方式根据所述用户身份信息与所述客户端TEE公钥组装信息,得到可验证凭证VC;
通过所述DID认证服务根据所述VC进行默克尔树根签名,得到VP,其中,所述VP包括所述用户身份信息对应的身份ID和所述客户端TEE公钥。
3.如权利要求1所述的密钥托管方法,其特征在于,所述连接请求包括随机挑战值,所述发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果的步骤包括:
发送所述随机挑战值至所述服务端,以供所述服务端根据预先获取的当前运行代码逻辑生成第一完整性证明;
通过服务端根据所述第一完整性证明和所述随机挑战值进行组装,得到组装数据,并根据预先生成的服务端TEE私钥对所述组装数据进行签名,以供所述服务端根据签名后的组装数据生成所述远程证明;
接收所述服务端发送的所述远程证明,根据预先获取的服务端TEE公钥和预先获取的第二完整性证明验证所述远程证明,得到所述签名验证结果。
4.一种密钥托管方法,其特征在于,所述方法应用于服务端,所述服务端支持TEE,所述密钥托管方法包括以下步骤:
响应于接收到的客户端发送的连接请求,生成远程证明并发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成第一加密数据;
接收所述客户端发送的所述第一加密数据,并根据所述服务端对应的服务端TEE私钥解密所述第一加密数据,得到目标解密结果。
5.如权利要求4所述的密钥托管方法,其特征在于,所述目标解密结果包括密钥操作请求数据和VP,所述VP包括用户身份信息对应的身份ID和客户端TEE公钥,所述接收所述客户端发送的所述第一加密数据,并根据所述服务端对应的服务端TEE私钥解密所述第一加密数据,得到目标解密结果的步骤之后包括:
根据所述VP进行用户身份认证,并在用户身份认证通过的情况下,加载所述身份ID对应的用户密钥,以根据所述用户密钥执行所述密钥操作请求数据对应的密钥操作任务,得到原始密钥操作结果;
根据所述客户端TEE公钥对所述原始密钥操作结果进行加密,得到第二加密数据;
发送所述第二加密数据至所述客户端,以供所述客户端根据对应的客户端TEE私钥对所述第二加密数据进行解密,得到目标密钥操作结果。
6.如权利要求4所述的密钥托管方法,其特征在于,所述连接请求包括随机挑战值,所述响应于接收到的客户端发送的连接请求,生成远程证明并发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成第一加密数据的步骤包括:
响应于接收到的所述随机挑战值,根据预先获取的当前运行代码逻辑生成第一完整性证明;
根据所述第一完整性证明和所述随机挑战值进行组装,得到组装数据,并根据预先生成的服务端TEE私钥对所述组装数据进行签名,得到所述远程证明;
发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成所述第一加密数据。
7.一种密钥托管装置,其特征在于,应用于客户端,所述密钥托管装置包括:
第一数据获取模块,用于获取用户身份信息与所述客户端对应的客户端TEE公钥,以根据所述用户身份信息与所述客户端TEE公钥得到可验证声明VP;
第一通信连接模块,用于发送连接请求至服务端,接收并验证所述服务端响应所述连接请求生成的远程证明,得到签名验证结果;
第一密钥操作模块,用于根据所述签名验证结果,若所述远程证明验证成功,则获取服务端TEE公钥,根据所述服务端TEE公钥对所述VP和预先生成的密钥操作请求数据进行加密,得到第一加密数据,并将所述第一加密数据发送至所述服务端,以供所述服务端对所述第一加密数据进行解密,得到目标解密结果。
8.一种密钥托管装置,其特征在于,应用于服务端,所述密钥托管装置包括:
第二通信连接模块,用于响应于接收到的客户端发送的连接请求,生成远程证明并发送所述远程证明至所述客户端,以供所述客户端在所述远程证明验证成功的情况下,生成第一加密数据;
第二数据接收模块,用于接收所述客户端发送的所述第一加密数据,并根据所述服务端对应的服务端TEE私钥解密所述第一加密数据,得到目标解密结果。
9.一种密钥托管设备,其特征在于,所述设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的密钥托管程序,所述密钥托管程序被所述处理器执行时实现如权利要求1-6中任一项所述的密钥托管方法。
10.一种存储介质,其特征在于,所述存储介质上存储有密钥托管程序,所述密钥托管程序被处理器执行时实现如权利要求1-6中任一项所述的密钥托管方法的步骤。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括密钥托管程序,所述密钥托管程序被处理器执行时实现如权利要求1-6中任一项所述的密钥托管方法的步骤。
CN202410414302.7A 2024-04-07 2024-04-07 密钥托管方法、装置、设备、存储介质及产品 Pending CN118282644A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410414302.7A CN118282644A (zh) 2024-04-07 2024-04-07 密钥托管方法、装置、设备、存储介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410414302.7A CN118282644A (zh) 2024-04-07 2024-04-07 密钥托管方法、装置、设备、存储介质及产品

Publications (1)

Publication Number Publication Date
CN118282644A true CN118282644A (zh) 2024-07-02

Family

ID=91633447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410414302.7A Pending CN118282644A (zh) 2024-04-07 2024-04-07 密钥托管方法、装置、设备、存储介质及产品

Country Status (1)

Country Link
CN (1) CN118282644A (zh)

Similar Documents

Publication Publication Date Title
US10790976B1 (en) System and method of blockchain wallet recovery
CN109309565B (zh) 一种安全认证的方法及装置
CN110417750B (zh) 基于区块链技术的文件读取和存储的方法、终端设备和存储介质
US7571489B2 (en) One time passcode system
CN100561916C (zh) 一种更新认证密钥的方法和***
CN109361668A (zh) 一种数据可信传输方法
KR20210040078A (ko) 안전한 보관 서비스를 위한 시스템 및 방법
CN110492990A (zh) 区块链场景下的私钥管理方法、装置及***
US11831753B2 (en) Secure distributed key management system
WO2016164275A1 (en) Security system for data communications including key management and privacy
CN106936588B (zh) 一种硬件控制锁的托管方法、装置及***
CN107920052B (zh) 一种加密方法及智能装置
CN110445840B (zh) 一种基于区块链技术的文件存储和读取的方法
CN111131416A (zh) 业务服务的提供方法和装置、存储介质、电子装置
CN116601912A (zh) 提供加密安全的后秘密供应服务
EP3292654B1 (en) A security approach for storing credentials for offline use and copy-protected vault content in devices
CN116458117A (zh) 安全数字签名
CN111355591A (zh) 一种基于实名认证技术的区块链账号安全的管理方法
JP2010231404A (ja) 秘密情報管理システム、秘密情報管理方法、および秘密情報管理プログラム
CN117155549A (zh) 密钥分发方法、装置、计算机设备和存储介质
CN114244508A (zh) 数据加密方法、装置、设备及存储介质
CN112653553A (zh) 物联网设备身份管理***
Chase et al. Acsesor: A new framework for auditable custodial secret storage and recovery
CN113271207A (zh) 基于移动电子签名的托管密钥使用方法、***、计算机设备及存储介质
CN117294484A (zh) 数据交互的方法、装置、设备、介质和产品

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination