CN117375832B - 密钥管理方法、装置、计算设备及计算机可读存储介质 - Google Patents
密钥管理方法、装置、计算设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117375832B CN117375832B CN202311657458.XA CN202311657458A CN117375832B CN 117375832 B CN117375832 B CN 117375832B CN 202311657458 A CN202311657458 A CN 202311657458A CN 117375832 B CN117375832 B CN 117375832B
- Authority
- CN
- China
- Prior art keywords
- key
- application
- session
- target
- external
- 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.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 142
- 238000000034 method Methods 0.000 claims abstract description 64
- 238000002347 injection Methods 0.000 claims abstract description 63
- 239000007924 injection Substances 0.000 claims abstract description 63
- 230000008569 process Effects 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims description 31
- 238000012795 verification Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 239000000243 solution Substances 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004883 computer application Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供了一种密钥管理方法及相关装置,该方法在TEE子系统中设置了目标可信应用,在REE子系统中设置了管理员应用,在接收到密钥注入请求时,所述目标可信应用利用与第一会话对应的会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证,只有在所述第一身份认证码验证通过时,才会将所述密钥注入请求携带的待注入数据存储于所述安全存储区域;其中,所述会话密钥为所述管理员应用与所述目标可信应用利用预共享密钥和第一随机数协商的密钥。如此,在目标可信应用与管理员应用进行会话时,通过会话密钥对彼此身份进行验证,可以有效防范中间人攻击和重放攻击,提高了外部密钥在注入过程中的安全性。
Description
技术领域
本说明书涉及计算机应用技术领域,具体地说,涉及计算机应用技术领域下的密钥管理技术,更具体地说,涉及一种密钥管理方法、装置、计算设备及计算机可读存储介质。
背景技术
密码引擎是设置于计算设备中的一种用于执行密码运算的硬件设备,相较于传统软件实现的加解密算法,密码引擎可以提供更高效和安全的加密性能。
在相关技术中,密码引擎执行密码运算时使用的密钥通常有两种来源,一种是密码引擎内置的内部密钥,比如硬件唯一密钥(Hardware UniqueKye,HUK),这类密钥通常存放在OTP(One-Time Programmable,一次性可编程器件)或者efuse(ElectricallyErasable Programmable Read-Only Memory,电可擦除可编程只读存储器)这类一次性写入的存储器中,且只能由密码引擎读取,安全性能相对较高;另一种则是由用户从外部导入的外部密钥,但由于外部密钥的需要从外部导入的特性,导致外部密钥在注入过程中存在一定的安全风险。
有必要提供一种密钥管理方法,提高外部密钥在注入过程中的安全性。
发明内容
本说明书实施例提供了一种密钥管理方法、装置、计算设备及计算机可读存储介质,实现了提高外部密钥在注入过程中的安全性的目的。
为实现上述技术目的,本说明书实施例提供了如下技术方案:
第一方面,本说明书的一个实施方式提供了一种密钥管理方法,应用于计算设备,所述计算设备包括富执行环境REE子系统和可信执行环境TEE子系统,所述REE子系统中运行有管理员应用,所述TEE子系统运行有目标可信应用,所述TEE子系统包括安全存储区域,所述密钥管理方法包括:
响应于密钥注入请求,所述目标可信应用利用与第一会话对应的会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证,在所述第一身份认证码验证通过时,将所述密钥注入请求携带的待注入数据存储于所述安全存储区域;
所述待注入数据包括用户口令和待注入的外部密钥;所述第一身份认证码包括所述管理员应用根据所述会话密钥和密文生成的加密数据,所述密文为基于所述待注入数据生成的加密数据。
在一个实施方式中,所述第一会话为建立所述管理员应用与所述目标可信应用之间的会话,所述会话密钥为建立所述第一会话时,所述管理员应用与所述目标可信应用利用预共享密钥和第一随机数协商的密钥。
在一个实施方式中,所述第一随机数包括管理员随机数和可信应用随机数,与所述第一会话对应的会话密钥的协商过程包括:
所述管理员应用向所述目标可信应用发送携带有所述管理员随机数的身份认证请求;
所述目标可信应用响应于所述身份认证请求,生成所述可信应用随机数并返回给所述管理员应用;
所述管理员应用和所述目标可信应用分别利用所述管理员随机数、所述可信应用随机数和所述预共享密钥执行HMAC操作,以得到与所述第一会话对应的会话密钥。
在一个实施方式中,所述REE子系统中还运行有普通应用,所述普通应用与所述管理员应用建立有安全通道,所述第一身份认证码的生成过程包括:
所述管理员应用响应于所述普通应用通过所述安全通道发送的公钥获取请求,通过所述第一会话向所述目标可信应用发送所述公钥获取请求;
所述目标可信应用响应于所述公钥获取请求,生成加密公钥并通过所述管理员应用返回给所述普通应用;
所述普通应用利用所述加密公钥对所述待注入数据进行加密,以获得密文并通过所述安全通道发送给所述管理员应用;
所述管理员应用利用所述会话密钥对所述密文执行HMAC操作,以获得所述第一身份认证码。
在一个实施方式中,所述目标可信应用响应于所述公钥获取请求,生成加密公钥并通过所述管理员应用返回给所述普通应用包括:
所述目标可信应用响应于所述公钥获取请求,生成非对称密钥对,所述非对称密钥对包括加密公钥和加密私钥,利用与所述第一会话对应的会话密钥对所述加密公钥进行基于密钥的散列消息认证码HMAC操作,以获得消息认证码,并将所述消息认证码和所述加密公钥通过所述第一会话返回给所述管理员应用;
所述管理员应用利用与所述第一会话对应的会话密钥对所述加密公钥执行所述HMAC操作,以获得消息验证码,并将所述消息验证码与所述消息认证码进行验证,若验证成功,则将所述加密公钥返回给所述普通应用。
在一个实施方式中,所述目标可信应用响应于所述公钥获取请求,生成加密公钥并通过所述管理员应用返回给所述普通应用包括:
所述目标可信应用响应于所述公钥获取请求,生成非对称密钥对,所述非对称密钥对包括加密公钥和加密私钥,利用与所述第一会话对应的会话密钥对所述加密公钥进行基于密钥的散列消息认证码HMAC操作,以获得消息认证码,并将所述消息认证码和所述加密公钥通过所述第一会话返回给所述管理员应用;
所述管理员应用利用与所述第一会话对应的会话密钥对所述加密公钥执行所述HMAC操作,以获得消息验证码,并将所述消息验证码与所述消息认证码进行验证,若验证成功,则将所述加密公钥返回给所述普通应用。
在一个实施方式中,所述响应于密钥注入请求,所述目标可信应用利用与所述第一会话对应的所述会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证包括:
响应于所述密钥注入请求,所述目标可信应用利用与所述第一会话对应的所述会话密钥对所述密文执行HMAC操作,将操作结果与所述第一身份认证码进行比对。
在一个实施方式中,所述将所述密钥注入请求携带的待注入数据存储于所述安全存储区域包括:
利用所述加密私钥对所述密文进行解密,以获得所述待注入数据,并将所述待注入数据存储于所述安全存储区域。
在一个实施方式中,所述将所述密钥注入请求携带的待注入数据存储于所述安全存储区域包括:
利用所述加密私钥对所述密文进行解密,以获得所述待注入数据,并将所述待注入数据存储于所述安全存储区域。
在一个实施方式中,所述计算设备还包括:设置于所述TEE子系统中的密码引擎;所述TEE子系统还包括:安全存储区域,所述安全存储区域用于存储外部密钥,所述密码引擎包括密钥管理单元,所述密钥管理单元用于从所述安全存储区域中加载所述外部密钥,所述密钥管理单元包括多个密钥槽,所述多个密钥槽中的各密钥槽分别对应一个密钥槽标识,所述密钥槽用于加载所述外部密钥;
所述密钥管理方法还包括:
响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方;
所述密钥调用请求携带有外部密钥索引,所述目标外部密钥包括与所述外部密钥索引对应的外部密钥,所述位置标识用于供所述密码引擎从所述密钥管理单元中调用所述目标外部密钥;所述位置标识包括所述密钥槽标识。
在一个实施方式中,所述响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给请求方包括:
若所述目标外部密钥已加载于所述密钥槽中,则将加载所述目标外部密钥的所述密钥槽对应的密钥槽标识作为所述位置标识返回给所述请求方;
若所述目标外部密钥未加载于任意一个所述密钥槽中,则根据所述外部密钥索引,从所述安全存储区域中读取所述目标外部密钥,将所述目标外部密钥加载于所述多个密钥槽中的一个未加载外部密钥的密钥槽中,并将加载所述目标外部密钥的所述密钥槽对应的密钥槽标识作为所述位置标识返回给所述请求方。
在一个实施方式中,所述REE子系统中运行有普通应用,所述将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方之前还包括:
在所述普通应用与所述目标可信应用之间建立第二会话,所述目标可信应用生成第二随机数作为挑战值返回给所述普通应用;
所述密钥调用请求还携带有第二身份认证码,所述第二身份认证码为所述普通应用利用所述用户口令对所述挑战值执行HMAC操作得到的,所述用户口令为存储于所述安全存储区域中的口令;
所述响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方包括:
响应于所述密钥调用请求,利用所述用户口令对所述挑战值执行所述HMAC操作得到第三身份认证码,若所述第二身份认证码与所述第三身份认证码相同,则将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方。
在一个实施方式中,还包括:
响应于携带有外部密钥索引的密钥卸载请求,将所述密钥管理单元中加载的待卸载外部密钥从所述密钥管理单元中擦除;所述待卸载外部密钥包括与所述密钥卸载请求携带的外部密钥索引对应的外部密钥;
响应于携带有外部密钥标识的密钥删除请求,根据所述外部密钥标识在所述安全存储区域中删除所述外部密钥标识表征的外部密钥。
在一个实施方式中,还包括:
响应于携带有所述外部密钥索引的计算请求,所述密码引擎根据所述位置标识调用所述密钥管理单元中存储的所述目标外部密钥执行计算任务。
第二方面,本说明书的一个实施方式还提供了一种密钥管理装置,应用于计算设备,所述计算设备包括富执行环境REE子系统和可信执行环境TEE子系统,所述REE子系统中运行有管理员应用,所述TEE子系统运行有目标可信应用,所述TEE子系统包括安全存储区域,所述密钥管理装置包括:
密钥注入模块,用于响应于密钥注入请求,所述目标可信应用利用与第一会话对应的会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证,在所述第一身份认证码验证通过时,将所述密钥注入请求携带的待注入数据存储于所述安全存储区域;
所述待注入数据包括用户口令和待注入的外部密钥;所述第一身份认证码包括所述管理员应用根据所述会话密钥和密文生成的加密数据,所述密文为基于所述待注入数据生成的加密数据;
在一个实施方式中,所述第一会话为建立所述管理员应用与所述目标可信应用之间的会话,所述会话密钥为建立所述第一会话时,所述管理员应用与所述目标可信应用利用预共享密钥和第一随机数协商的密钥。
可选地,所述第一随机数包括管理员随机数和可信应用随机数,与所述第一会话对应的会话密钥的协商过程包括:
所述管理员应用向所述目标可信应用发送携带有所述管理员随机数的身份认证请求;
所述目标可信应用响应于所述身份认证请求,生成所述可信应用随机数并返回给所述管理员应用;
所述管理员应用和所述目标可信应用分别利用所述管理员随机数、所述可信应用随机数和所述预共享密钥执行HMAC操作,以得到与所述第一会话对应的会话密钥。
可选地,所述REE子系统中还运行有普通应用,所述普通应用与所述管理员应用建立有安全通道,所述第一身份认证码的生成过程包括:
所述管理员应用响应于所述普通应用通过所述安全通道发送的公钥获取请求,通过所述第一会话向所述目标可信应用发送所述公钥获取请求;
所述目标可信应用响应于所述公钥获取请求,生成加密公钥并通过所述管理员应用返回给所述普通应用;
所述普通应用利用所述加密公钥对所述待注入数据进行加密,以获得密文并通过所述安全通道发送给所述管理员应用;
所述管理员应用利用所述会话密钥对所述密文执行HMAC操作,以获得所述第一身份认证码。
可选地,所述目标可信应用响应于所述公钥获取请求,生成加密公钥并通过所述管理员应用返回给所述普通应用包括:
所述目标可信应用响应于所述公钥获取请求,生成非对称密钥对,所述非对称密钥对包括加密公钥和加密私钥,利用与所述第一会话对应的会话密钥对所述加密公钥进行基于密钥的散列消息认证码HMAC操作,以获得消息认证码,并将所述消息认证码和所述加密公钥通过所述第一会话返回给所述管理员应用;
所述管理员应用利用与所述第一会话对应的会话密钥对所述加密公钥执行所述HMAC操作,以获得消息验证码,并将所述消息验证码与所述消息认证码进行验证,若验证成功,则将所述加密公钥返回给所述普通应用。
可选地,所述响应于密钥注入请求,所述目标可信应用利用与所述第一会话对应的所述会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证包括:
响应于所述密钥注入请求,所述目标可信应用利用与所述第一会话对应的所述会话密钥对所述密文执行HMAC操作,将操作结果与所述第一身份认证码进行比对。
可选地,所述将所述密钥注入请求携带的待注入数据存储于所述安全存储区域包括:
利用所述加密私钥对所述密文进行解密,以获得所述待注入数据,并将所述待注入数据存储于所述安全存储区域。
可选地,所述计算设备还包括:设置于所述TEE子系统中的密码引擎;所述TEE子系统还包括:安全存储区域,所述安全存储区域用于存储外部密钥,所述密码引擎包括密钥管理单元,所述密钥管理单元用于从所述安全存储区域中加载所述外部密钥,所述密钥管理单元包括多个密钥槽,所述多个密钥槽中的各密钥槽分别对应一个密钥槽标识,所述密钥槽用于加载所述外部密钥;
所述密钥管理装置还包括:
密钥加载模块,用于响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方;
所述密钥调用请求携带有外部密钥索引,所述目标外部密钥包括与所述外部密钥索引对应的外部密钥,所述位置标识用于供所述密码引擎从所述密钥管理单元中调用所述目标外部密钥;所述位置标识包括所述密钥槽标识。
可选地,所述密钥加载模块响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给请求方具体用于:
若所述目标外部密钥已加载于所述密钥槽中,则将加载所述目标外部密钥的所述密钥槽对应的密钥槽标识作为所述位置标识返回给所述请求方;
若所述目标外部密钥未加载于任意一个所述密钥槽中,则根据所述外部密钥索引,从所述安全存储区域中读取所述目标外部密钥,将所述目标外部密钥加载于所述多个密钥槽中的一个未加载外部密钥的密钥槽中,并将加载所述目标外部密钥的所述密钥槽对应的密钥槽标识作为所述位置标识返回给所述请求方。
可选地,所述REE子系统中运行有普通应用,所述密钥管理装置还包括:
第二建立模块,用于在所述普通应用与所述目标可信应用之间建立第二会话,所述目标可信应用生成第二随机数作为挑战值返回给所述普通应用;
所述密钥调用请求还携带有第二身份认证码,所述第二身份认证码为所述普通应用利用所述用户口令对所述挑战值执行HMAC操作得到的,所述用户口令为存储于所述安全存储区域中的口令;
所述密钥加载模块响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方具体用于:
响应于所述密钥调用请求,利用所述用户口令对所述挑战值执行所述HMAC操作得到第三身份认证码,若所述第二身份认证码与所述第三身份认证码相同,则将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方。
可选地,所述密钥管理装置还包括:
密钥卸载模块,用于响应于携带有外部密钥索引的密钥卸载请求,将所述密钥管理单元中加载的待卸载外部密钥从所述密钥管理单元中擦除;所述待卸载外部密钥包括与所述密钥卸载请求携带的外部密钥索引对应的外部密钥;
密钥删除模块,用于响应于携带有外部密钥标识的密钥删除请求,根据所述外部密钥标识在所述安全存储区域中删除所述外部密钥标识表征的外部密钥。
可选地,所述密钥管理装置还包括:
密钥计算模块,用于响应于携带有所述外部密钥索引的计算请求,所述密码引擎根据所述位置标识调用所述密钥管理单元中存储的所述目标外部密钥执行计算任务。
第三方面,本说明书的一个实施方式还提供了一种计算设备,包括:富执行环境REE子系统、可信执行环境TEE子系统和设置于所述TEE子系统中的密码引擎,所述TEE子系统包括安全存储区域和目标可信应用,所述安全存储区域用于存储外部密钥,所述密码引擎包括密钥管理单元,所述密钥管理单元用于从所述安全存储区域中加载所述外部密钥;其中,
所述目标可信应用被配置为:
响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方;
所述密钥调用请求携带有外部密钥索引,所述目标外部密钥包括与所述外部密钥索引对应的外部密钥,所述位置标识用于供所述密码引擎从所述密钥管理单元中调用所述目标外部密钥。
第四方面,本说明书的一个实施方式还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的密钥管理方法。
第五方面,本说明书实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序,所述处理器执行所述计算机程序时实现上述的密钥管理方法的步骤。
从上述技术方案可以看出,本说明书实施例提供的密钥管理方法在TEE子系统中设置了目标可信应用,在REE子系统中设置了管理员应用,在接收到密钥注入请求时,所述目标可信应用利用与第一会话对应的会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证,只有在所述第一身份认证码验证通过时,才会将所述密钥注入请求携带的待注入数据存储于所述安全存储区域;其中,所述会话密钥为所述管理员应用与所述目标可信应用利用预共享密钥和第一随机数协商的密钥。如此,在目标可信应用与管理员应用进行会话时,通过会话密钥对彼此身份进行验证,可以有效防范中间人攻击和重放攻击,提高了外部密钥在注入过程中的安全性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本说明书的一个实施方式提供的一种计算设备的结构示意图。
图2为本说明书的一个实施方式提供的一种密钥管理方法的流程示意图。
图3为本说明书的一个实施方式提供的一种可信固件的示意图。
图4为本说明书的一个实施方式提供的一种密钥管理方法的整体框架示意图。
图5为本说明书的一个实施方式提供的另一种密钥管理方法的流程示意图。
图6为本说明书的一个实施方式提供的一种会话密钥的建立过程示意图。
图7为本说明书的一个实施方式提供的一种外部密钥的注入过程的示意图。
图8为本说明书的一个实施方式提供的一种外部密钥的加载过程的示意图。
图9为本说明书的一个实施方式提供的一种计算设备的结构示意图。
具体实施方式
除非另外定义,本说明书实施例使用的技术术语或者科学术语应当为本说明书所属领域内具有一般技能的人士所理解的通常意义。本说明书实施例使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来避免构成要素的混同而设置的。
除非上下文另有要求,否则,在整个说明书中,“多个”表示“至少两个”,“包括”被解释为开放、包含的意思,即为“包含,但不限于”。在说明书的描述中,术语“一个实施例”、“一些实施例”、“示例性实施例”、“示例”、“特定示例”或“一些示例”等旨在表明与该实施例或示例相关的特定特征、结构、材料或特性包括在本说明书的至少一个实施例或示例中。上述术语的示意性表示不一定是指同一实施例或示例。
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
概述
硬件密码引擎利用计算机硬件处理数据的加解密,相比由软件实现的加解密算法,硬件引擎显然能够提供更高效、更安全的密码运算服务。硬件密码引擎通过专用的硬件资源处理密码运算任务,可以与CPU(Central Processing Unit,中央处理器)并行运行,因此,相较于软件实现的密码算法,硬件密码引擎既可以通过硬件加速带来极大的性能提升,还能够降低CPU负载。此外,硬件密码引擎的运算过程是在专门的硬件设备中完成的,一定程度上可以避免软件程序被攻击而导致的密钥泄露问题,部分硬件引擎甚至可对抗电磁、辐射等物理侧信道攻击,带来更高的安全性。
如背景技术中所述,密码引擎中的密钥来源通常包括密码引擎内置的内部密钥和需要由用户从外部导入的外部密钥,在相关技术中,外部密钥在调用时存在被截获的风险,为了避免外部密钥在调用过程中进入非安全区域,保障外部密钥在调用过程中的安全性,发明人通过研究发现,可以利用可信执行环境TEE子系统的安全特性,将密码引擎设置于TEE子系统中,并在设置于TEE子系统中的密码引擎中设置了密钥管理单元,该密钥管理单元用于从所述安全存储区域中加载所述外部密钥,并且该密钥管理方法在响应于密钥调用请求时,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方,该位置标识用于供所述密码引擎从所述密钥管理单元中调用所述目标外部密钥,通过该方式,使得在调用外部密钥的过程中,外部密钥自身并不会出TEE子系统的安全边界(REE子系统的密钥调用者不需要将外部密钥或密钥地址写入密码引擎,避免导致密钥在非安全内存区驻留),提高了外部密钥在调用过程中的安全性。
此外,在远程调用场景下,由于向所述密钥调用请求的请求方返回的是目标外部密钥的位置标识,而不是目标外部密钥自身,用户在调用密码引擎执行密码运算时不用再额外携带外部密钥,密码引擎可以根据目标外部密钥的位置标识直接从密钥管理单元中获取外部密钥,从而有利于减少携带有目标外部密钥的位置标识的网络报文的长度,有利于提高网络吞吐量。
另外,发明人还发现,在密钥注入过程中,也存在着外部密钥被截获的风险,攻击者可能通过中间人攻击或者重放攻击的方式,截获REE子系统和TEE子系统之间的交互数据,从而实现外部密钥的截获,为了在密钥注入过程中的安全性,发明人通过研究发现,可以在TEE子系统中设置了目标可信应用,在REE子系统中设置了管理员应用,在接收到密钥注入请求时,所述目标可信应用利用与第一会话对应的会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证,只有在所述第一身份认证码验证通过时,才会将所述密钥注入请求携带的待注入数据存储于所述安全存储区域;其中,所述会话密钥为所述管理员应用与所述目标可信应用利用预共享密钥和第一随机数协商的密钥。如此,在目标可信应用与管理员应用进行会话时,通过会话密钥对彼此身份进行验证,可以有效防范中间人攻击和重放攻击,提高了外部密钥在注入过程中的安全性。
基于上述的构思,本说明书实施方式提供了一种密钥管理方法,下面将结合附图对本说明书实施方式提供的密钥管理方法进行示例性描述。
示例性方法
本说明书的一个实施方式提供了一种密钥管理方法,应用于如图1所示的计算设备100,所述计算设备100包括富执行环境REE子系统10、可信执行环境TEE子系统20和设置于所述TEE子系统20中的密码引擎30,所述TEE子系统20包括安全存储区域,所述安全存储区域用于存储外部密钥,所述密码引擎30包括密钥管理单元,所述密钥管理单元用于从所述安全存储区域中加载所述外部密钥,如图2所示,所述密钥管理方法包括:
S201:响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方;
所述密钥调用请求携带有外部密钥索引,所述目标外部密钥包括与所述外部密钥索引对应的外部密钥,所述位置标识用于供所述密码引擎从所述密钥管理单元中调用所述目标外部密钥。
为便于理解,下面先对本说明书实施例中可能出现的部分名词或术语进行解释:
安全硬件架构,是为计算设备设计的一种系统架构,其目的是为计算设备构建一个安全框架来抵御各种可能的攻击。安全硬件架构的实现方式可以是将处理器的硬件和软件资源划分为安全(Secure World)和普通(Normal World)世界。所有需要保密的操作在安全世界执行(如指纹识别、密码处理、数据加解密和安全认证等),其余操作在普通世界执行(如用户操作系统、各种普通应用程序等),安全世界和普通世界通过一个名为监控模式(Monitor Mode)的模式进行转换。在处理器架构上,可以将物理的处理器核虚拟为两个核,一个非安全核(Non-secure Core,NS Core),运行普通世界的代码,另一个安全核(SecureCore),运行安全世界的代码。安全硬件架构的具体结构类型可参考Trust Zone(简称TZ)和SGX(Software Guard Extensions)技术。
可信固件(Trusted Firmware,TF)是一种安全解决方案,将计算设备启动和运行过程中的特权级进行了划分。这些特权级与安全硬件架构相结合,共同保障计算设备的启动过程的安全性。具体地,参考图3,可信固件技术划分了EL0(Exception Level 0)到EL3共四个特权级。从EL0到EL3,特权级依次递增。从高LE转低EL通过ERET指令,从低EL转高EL通过exception,从而可以严格区分不同的特权级。其中EL0、EL1和EL2可以分成NS-ELx(NoneSecure ELx,x=0,1,2,即普通世界ELx)和S-ELx(Secure ELx,x=0,1,2,即安全世界ELx),而EL3只有安全世界EL3一种。在一些情形中,计算设备的启动过程所需运行的固件可以包括BL1固件、BL2固件、BL31固件、BL32固件和BL33固件。
其中,BL1固件可以称为Trusted Boot ROM(可信启动ROM),是启动过程中运行最早的固件,也是存储于处理器ROM(Read-Only Memory,只读存储器)中的固件,BL1固件与计算设备的BIOS并不在一起,在一些类型的可信固件技术中,BL1固件是一切的信任根。BL1固件可以用于初始化计算设备的核心硬件(例如Trusted SRAM(可信静态随机存取存储器)、串口等),并找到BL2固件,一些情况下,BL1固件会对BL2固件进行验签。BL1固件运行在EL3特权级上。
BL2固件可以称为Trusted Boot Firmware(可信启动固件),BL2固件同样运行在EL3特权级上,BL2固件和BL1固件的显著不同是BL2固件可以存储在外置的可信存储设备上,它的可信可以是建立在BL1固件对它的验证上。BL2固件会初始化一些关键安全硬件和软件框架,BL2固件在初始化完成之后,会找到BL31。
BL31固件可以称为EL3 Runtime Firmware(EL3运行固件),BL31固件也运行在EL3特权级上,是EL3特权级最后的安全堡垒,BL31固件不像BL1固件和BL2固件是一次性运行的,它通过SMC(Secure Monitor Call,安全监视调用)为普通世界(Non-Secure)持续提供涉及安全的服务。
BL32固件可以包括OPTee OS(Open Portable Tee Operate System,开放可移植Tee操作系统,或者可以缩写为TEE OS)和可信应用,OPTee OS可以是指可信执行环境Tee的操作系统。BL32固件运行在S-EL1上,BL32固件上的可信应用运行在S-EL0。在一些情形下,OPTee OS运行完毕后,返回EL3的BL31固件,BL31固件找到BL33固件,BL31固件还可以验签BL33固件。
REE(Rich Execution Environment,富执行环境)子系统10可以用于运行BL33固件、OS(Operating System,操作系统)/VM(Virtual Manufacturing,虚拟机)和普通应用,其中,BL33固件可以包括运行在普通世界的固件(Non-Trusted Firmware),BL33固件可以包括面向桌面、服务器等领域的UEFI(Unified Extensible Firmware Interface,可扩展固件接口)固件或者U-boot(面向嵌入式领域的引导加载程序),也可以包括Linux Kernel(Linux内核),还可以包括基本输入输出系统(Basic Input Output System,BIOS)固件。BL33固件可以用于引导加载OS。在普通世界下,EL0、EL1、EL2、EL3的执行权限依次增大。其中,UEFI固件被配置运行在普通世界的EL2级别,OP-TEE被配置运行在安全世界的EL1级别。在进入UEFI(BL33)启动的时候,OP-TEE已经完成启动,而UEFI与OP-TEE之间可以通过安全监控调用(secure monitor call,SMC)接口进行通信。因此,在进行UEFI启动时,在对镜像文件进行完整性和安全性验证时,可以通过普通世界触发SMC方式调用安全世界的OP-TEE对应接口来实现某些功能,如此,可以将涉及到对镜像文件的验证过程传递到安全世界进行验证,并返回验证结果给普通世界。
密钥管理单元可以是密码引擎内部的一块硬件存储区域,密钥管理单元被配置为从所述安全存储区域中加载所述外部密钥,其中,加载外部密钥可以是指将外部密钥从TEE子系统的安全存储区域中读取到所述密钥管理单元中,在一些实施方式中,密钥管理单元在加载了外部密钥后,可以按照一定的顺序对加载的外部密钥进行存储,并为存储的外部密钥分配表征外部密钥在所述密钥管理单元中的存储位置的位置标识。该位置标识可以作为密钥调用请求的响应结果返回给请求方,请求方在获得该位置标识后,可以利用该位置标识实现基于外部密钥的密码运算。
TEE(Trusted Execution Environment,可信执行环境)子系统20可以用于运行可信应用(Trusted Application,TA),满足数字版权管理(Digital Rights Management,DRM)、移动支付和敏感数据保护等应用需求。TEE子系统20中可以用于运行TEE OS。在本实施方式中,TEE子系统20中还设置有密码引擎30,如此,可以利用TEE子系统20的安全特性为密码引擎30提供一个安全性较高的运行环境。此外,本说明书实施方式提供的密钥管理方法还利用TEE子系统的安全存储区域存储外部密钥,在响应密钥调用请求的过程中,通过密钥管理单元加载目标外部密钥,并将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方,在整个调用过程中,外部密钥始终驻留在安全存储区域,避免攻击者通过内存镜像窃取外部密钥的风险,提高了外部密钥在调用过程中的安全性。并且,在远程调用场景下,由于向所述密钥调用请求的请求方返回的是目标外部密钥的位置标识,而不是目标外部密钥自身,用户在调用密码引擎执行密码运算时不用再额外携带外部密钥,密码引擎可以根据目标外部密钥的位置标识直接从密钥管理单元中获取外部密钥,从而有利于减少携带有目标外部密钥的位置标识的网络报文的长度,有利于提高网络吞吐量。
为了便于管理加载的外部密钥,在本说明书的一个实施方式中,所述密钥管理单元包括多个密钥槽,所述多个密钥槽中的各密钥槽分别对应一个密钥槽标识;所述密钥槽用于加载所述外部密钥;
所述响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给请求方包括:
若所述目标外部密钥已加载于所述密钥槽中,则将加载所述目标外部密钥的所述密钥槽对应的密钥槽标识作为所述位置标识返回给所述请求方;
若所述目标外部密钥未加载于任意一个所述密钥槽中,则根据所述外部密钥索引,从所述安全存储区域中读取所述目标外部密钥,将所述目标外部密钥加载于所述多个密钥槽中的一个未加载外部密钥的密钥槽中,并将加载所述目标外部密钥的所述密钥槽对应的密钥槽标识作为所述位置标识返回给所述请求方。
如前文所述,密钥管理单元可以包括密码引擎中的一块存储区域,在本实施方式中,将这一块存储区域进一步划分为多个密钥槽,可以理解的是,每个密钥槽可以包括用于存储外部密钥的存储区域。每个密钥槽对应一个密钥槽标识,该密钥槽标识可以用于表征该密钥槽,密码引擎可以预先存储密钥槽与密钥槽标识的对应关系,如此,在用户获得了加载所述目标外部密钥的所述密钥槽对应的密钥槽标识后,可以利用该密钥槽标识请求密钥引擎执行相关的密码运算,密钥引擎根据该密钥槽标识即可利用密钥管理单元中与该密钥槽标识对应的密钥槽中加载的目标外部密钥执行密码运算。在整个过程中,不仅实现了在调用过程中外部密钥始终驻留在安全存储区域的目的,也避免了位置标识与外部密钥唯一对应的情况,如此,即使某一次调用过程中的位置标识与外部密钥索引被窃取,攻击者也无法利用该位置标识再次准确调用相同的外部密钥执行密码运算。举例来说,假设密钥管理单元中包括密钥槽1、密钥槽2和密钥槽3,这三个密钥槽分别对应密钥槽标识A、B和C,假设在一次密钥调用请求中,密钥槽2中加载了外部密钥i,将密钥槽2对应的密钥槽标识B返回给了请求方,若返回的密钥槽2对应的密钥槽标识B泄露,攻击者也无法通过密钥槽标识B准确调用外部密钥i,这是因为密钥槽2在下一次使用过程中加载的外部密钥可能是外部密钥j,如此,避免了攻击者使用泄露的密钥槽标识实现准确调用目标外部密钥的目的。
为了避免攻击者利用中间人攻击或者重放攻击等攻击方式获取TEE子系统与REE子系统之间的通信信息,在本说明书的一个实施方式中,参考图4,所述REE子系统中运行有管理员应用(运行于EL0),所述TEE子系统中运行有目标可信应用(在图4中以KMU PTA表示);
本说明书的一个实施方式还提供了另一种密钥管理方法,参考图5,所述密钥管理方法包括:
S501:响应于密钥注入请求,所述目标可信应用利用与第一会话对应的会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证,在所述第一身份认证码验证通过时,将所述密钥注入请求携带的待注入数据存储于所述安全存储区域;
所述待注入数据包括用户口令和待注入的外部密钥;所述第一身份认证码包括所述管理员应用根据所述会话密钥和密文生成的加密数据,所述密文为基于所述待注入数据生成的加密数据;
在一个实施方式中,所述第一会话为建立所述管理员应用与所述目标可信应用之间的会话,所述会话密钥为建立所述第一会话时,所述管理员应用与所述目标可信应用利用预共享密钥和第一随机数协商的密钥。
可选地,步骤S501具体可以包括以下步骤:
在所述管理员应用与所述目标可信应用之间建立第一会话,并协商与所述第一会话对应的会话密钥,所述会话密钥基于预共享密钥和第一随机数生成;所述预共享密钥预先设置于所述管理员应用和所述目标可信应用中;
响应于密钥注入请求,所述目标可信应用利用与所述第一会话对应的所述会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证,在所述第一身份认证码验证通过时,将所述密钥注入请求携带的待注入数据存储于所述安全存储区域;
所述待注入数据包括用户口令和待注入的外部密钥;所述第一身份认证码包括所述管理员应用根据所述会话密钥和密文生成的加密数据,所述密文为基于所述待注入数据生成的加密数据。
图4示出了密钥管理方法的整体框架示意图,普通应用运行于EL0,CEU Driver表示密码引擎CEU的驱动程序,该驱动程序用于实现普通应用与密码引擎之间的通信交互;TEE Driver表示TEE子系统的驱动程序,该驱动程序用于实现普通应用与TEE子系统之间的通信交互;EL3 Monitor运行于EL3,EL3 Monitor是可信固件的一部分,可以控制普通世界(Non-Secure)与安全世界(Secure)之间的切换通信。密码引擎30中可以包括两部分,这两部分分别为计算部件31和密码管理单元32,计算部件31可以用于执行密码运算。CEUDriver、TEE Driver运行于非安全世界EL1,KMU PTA运行于安全世界EL1;EL3 Monitor运行于安全世界EL3。
在本实施方式中,通过设定一个特别用于进行密钥注入和/或密钥删除任务的管理员应用,以保障外部密钥在密钥注入和/或密钥删除任务过程中的安全性。管理员应用可以是指具有上述密钥注入和/或密钥删除任务权限的普通应用(Client Applications,CA),目标可信应用可以是指TEE子系统内核服务暴露给外界调用的接口,在调用形式上与传统的可信应用一致,目标可信应用通常提供一些特权级别服务。在本实施方式中,通过目标可信应用,实现了向客户端提供密钥服务(包括密钥注入、密钥加载等安全服务)的目的。用户可以通过目标可信应用的密钥注入服务将自己的外部密钥安全传送到TEE子系统的安全存储区域中。
在管理员应用与目标可信应用进行通信的过程中,可能会遭遇中间人攻击(Man-in-the-Middle Attack)的情况,比如,中间人攻击者拦截管理员应用的请求并返回攻击者的公钥,这种情况下管理员应用无法感知到是否遭受到攻击,继续执行密钥注入等操作很可能会造成外部密钥的泄漏。为了应对这种情况,本实施方式通过在管理员应用和目标可信应用中预先设置了预共享密钥(pre-sharedkey),由于该预共享密钥只有管理员应用和目标可信应用知晓,故利用预共享密钥进行加密通信,通过预共享密钥对交互数据进行验证即可有效防御中间人攻击。在一些实施方式中,为了消除生产场景泄露预共享密钥带来的风险,在计算设备使用、部署阶段可以要求使用者首先修改预共享密钥。
预共享密钥可以解决中间人攻击的问题,但对于重放攻击(Replay Attack)却无能为力,重放攻击是指攻击者截获了有效的交互数据,并在稍后的时间内重新发送这些交互数据,以实现欺骗系统的目的。攻击者可以通过重放已经截获的数据包,绕过身份验证或其他安全机制,以达到非法目的。为了避免遭受重放攻击的欺骗,在本实施方式中,还要求管理员应用和目标可信应用建立第一会话时需要协商一个会话密钥(sessionkey)来彼此认证身份。
例如参考图6,所述第一随机数包括管理员随机数和可信应用随机数,所述协商与所述第一会话对应的会话密钥包括:
所述管理员应用向所述目标可信应用发送携带有所述管理员随机数的身份认证请求;
所述目标可信应用响应于所述身份认证请求,生成所述可信应用随机数并返回给所述管理员应用;
所述管理员应用和所述目标可信应用分别利用所述管理员随机数、所述可信应用随机数和所述预共享密钥执行HMAC操作,以得到与所述第一会话对应的会话密钥。
在本实施方式中,管理员应用首先向目标可信应用发起身份认证的请求(require),并附带自己生成的一个随机数rand(ca)(即管理员随机数),目标可信应用接收到请求后响应(respond)给管理员一个随机数rand(ta)(即可信应用随机数),随后两边分别使用预共享密钥(pre-sharedkey)执行HMAC操作得到会话密钥(sessionkey)。第一随机数可以保证每次建立会话所协商的密钥都不同,认证双方身份的同时还能够防御重放攻击;预共享密钥参与协商得到的会话密钥也只有管理员应用和目标可信应用知晓,使用会话密钥对双方交互数据进行认证可以有效防御中间人攻击和重放攻击。
在一个可选地实施方式中,如图7所示,所述REE子系统中还运行有普通应用,所述普通应用与所述管理员应用建立有安全通道,所述第一身份认证码的生成过程包括:
所述管理员应用响应于所述普通应用通过所述安全通道发送的公钥获取请求,通过所述第一会话向所述目标可信应用发送所述公钥获取请求;
所述目标可信应用响应于所述公钥获取请求,生成加密公钥并通过所述管理员应用返回给所述普通应用;
所述普通应用利用所述加密公钥对所述待注入数据进行加密,以获得所述密文并通过所述安全通道发送给所述管理员应用;
所述管理员应用利用所述会话密钥对所述密文执行HMAC操作,以获得所述第一身份认证码。
其中,所述目标可信应用响应于所述公钥获取请求,生成加密公钥并通过所述管理员应用返回给所述普通应用包括:
所述目标可信应用响应于所述公钥获取请求,生成非对称密钥对,所述非对称密钥对包括加密公钥和加密私钥,利用与所述第一会话对应的会话密钥对所述加密公钥进行基于密钥的散列消息认证码HMAC操作,以获得消息认证码,并将所述消息认证码和所述加密公钥通过所述第一会话返回给所述管理员应用;
所述管理员应用利用与所述第一会话对应的会话密钥对所述加密公钥执行所述HMAC操作,以获得消息验证码,并将所述消息验证码与所述消息认证码进行验证,若验证成功,则将所述加密公钥返回给所述普通应用。
所述响应于密钥注入请求,所述目标可信应用利用与所述第一会话对应的所述会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证包括:
响应于所述密钥注入请求,所述目标可信应用利用与所述第一会话对应的所述会话密钥对所述密文执行HMAC操作,将操作结果与所述第一身份认证码进行比对。
所述将所述密钥注入请求携带的待注入数据存储于所述安全存储区域包括:
利用所述加密私钥对所述密文进行解密,以获得所述待注入数据,并将所述待注入数据存储于所述安全存储区域。
安全通道可以是指普通应用与管理员应用之间的加密和保护通信数据的机制。在本实施方式中,所述普通应用与所述管理员应用通过建立的安全通道通信,有利于增加外部密钥注入过程中的安全性,降低外部密钥在注入过程中泄露的风险。
图7示出了第一身份认证码的生成过程以及外部密钥的注入过程,普通应用通过安全通道委托管理员应用获取目标可信应用的公钥(requireforpubkey),目标可信应用接收到管理员应用的公钥获取请求后,通过密钥派生得到非对称密钥对(privkey和pubkey,即加密私钥与加密公钥),并使用会话协商获得的会话密钥(sessionkey)对加密公钥(pubkey)执行HMAC操作生成消息认证码(mac),然后将mac与加密公钥响应(respond)给管理员应用。管理员应用收到响应后使用会话密钥对响应回的加密公钥再次执行HMAC操作,并将操作结果(消息验证码)与响应的mac进行对比检查(check),对比成功(Y)则说明该加密公钥由目标可信应用生成,通过安全通道交付(respond)给普通应用,如果对比失败(N),则说明通信异常,可以返回通信失败结果(failed)。
用户使用目标可信应用返回的加密公钥(pubkey)对注入数据(注入的外部密钥key和用户口令psword)进行加密(Enc),然后将密文(cipher)交付管理员应用并委托其将密钥注入(inject)。管理员应用接受委托后,使用会话密钥对cipher进行HMAC操作,操作结果可以作为管理员应用的第一身份认证码(authen,为了避免会话密钥泄露的风险,一般不直接使用会话密钥作为管理员应用认证码)。随后,管理员应用向目标可信应用发起密钥注入请求(inject),目标可信应用执行相同的HMAC操作对authen进行检查以确定管理员应用身份,认证通过(Y)后使用派生的加密私钥(privkey)对cipher进行解密,并利用TEE子系统的安全存储特性将用户的注入数据存储起来;若认证不通过(N),则返回通信失败结果(failed)。
在本实施方式中,所述密钥管理方法在TEE子系统中设置了目标可信应用,在REE子系统中设置了管理员应用,在接收到密钥注入请求时,所述目标可信应用利用与第一会话对应的会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证,只有在所述第一身份认证码验证通过时,才会将所述密钥注入请求携带的待注入数据存储于所述安全存储区域;其中,所述会话密钥为所述管理员应用与所述目标可信应用利用预共享密钥和第一随机数协商的密钥。如此,在目标可信应用与管理员应用进行会话时,通过会话密钥对彼此身份进行验证,可以有效防范中间人攻击和重放攻击,提高了外部密钥在注入过程中的安全性。
除了需要保障密钥注入/删除过程中,管理员应用与目标可信应用之间的交互数据安全之外,在密钥加载/卸载过程中,也需要保障普通应用与目标可信应用之间的交互数据安全,因此,在本说明书的一个实施方式中,所述REE子系统中运行有普通应用,所述TEE子系统中运行有目标可信应用;
所述将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方之前还包括:
在所述普通应用与所述目标可信应用之间建立第二会话,所述目标可信应用生成第二随机数作为挑战值返回给所述普通应用;
所述密钥调用请求还携带有第二身份认证码,所述第二身份认证码为所述普通应用利用用户口令对所述挑战值执行HMAC操作得到的,所述用户口令为存储于所述安全存储区域中的口令;
所述响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方包括:
响应于所述密钥调用请求,利用所述用户口令对所述挑战值执行所述HMAC操作得到第三身份认证码,若所述第二身份认证码与所述第三身份认证码相同,则将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方。
在本实施方式中,通过上述的加密通信方式,降低了普通应用与目标可信应用之间的交互数据由于遭受重放攻击而泄露的风险,具体地,参考图8,用户在发起密钥加载请求之前使用用户口令(psword)对目标可信应用的第二随机数(rand(ta),建立第二会话时目标可信应用响应给普通应用)执行HMAC操作,操作结果即为普通应用的第二身份认证码(在图8中用authen表示)。
目标可信应用接收到携带第二身份认证码的密钥加载请求后,利用所述用户口令对所述挑战值执行所述HMAC操作得到第三身份认证码,基于第三身份认证码对第二身份认证码进行检查(check),若检查通过(Y),则根据请求参数中的外部密钥索引keyindex找到对应的持久化对象并取出该用户注入的用户口令信息,然后执行相同的HMAC操作来对普通应用进行身份认证;若检查失败(N),则返回失败结果(failed)。
通过身份认证后,目标可信应用先查询外部密钥索引keyindex所指定的目标外部密钥的加载状态,如果目标外部密钥已经加载,则找到该目标外部密钥所在密钥槽的密钥槽索引(即位置索引,以key_id表示)并响应给普通应用;如果目标外部密钥未被加载,则随机寻找一个空的密钥槽,将目标外部密钥写入后把密钥槽索引响应给普通应用。在用户使用密钥时,将key_id作为命令参数传递给密码引擎,密码引擎可以根据key_id到对应的密钥槽中读取密钥,并使用密钥完成后续的密码操作。
通过上述的身份认证方式,可以保障普通应用与所述目标可信应用之间在每次建立第二会话时,均会基于第二随机数对彼此身份进行认证,有效地避免了重放攻击。
在一个可选地实施方式中,所述密钥管理方法还包括:响应于携带有外部密钥索引的密钥卸载请求,将所述密钥管理单元中加载的待卸载外部密钥从所述密钥管理单元中擦除;所述待卸载外部密钥包括与所述密钥卸载请求携带的外部密钥索引对应的外部密钥;
响应于携带有外部密钥标识的密钥删除请求,根据所述外部密钥标识在所述安全存储区域中删除所述外部密钥标识表征的外部密钥。
关于密钥卸载过程可参考密钥加载过程,关于密钥删除过程可以参考密钥注入过程,本说明书在此不做赘述。
在另一个可选地实施方式中,所述密钥管理方法还包括:
响应于携带有所述外部密钥索引的计算请求,所述密码引擎根据所述位置标识调用所述密钥管理单元中存储的所述目标外部密钥执行计算任务。
可选地,所述位置标识可以包括存储目标外部密钥的密钥槽的密钥槽索引。在本实施方式中,在远程调用场景下,由于向所述密钥调用请求的请求方返回的是目标外部密钥的位置标识,而不是目标外部密钥自身,用户在调用密码引擎执行密码运算时不用再额外携带外部密钥,密码引擎可以根据目标外部密钥的位置标识直接从密钥管理单元中获取外部密钥,从而有利于减少携带有目标外部密钥的位置标识的网络报文的长度,有利于提高网络吞吐量。
示例性装置
在本说明书的一个示例性实施例中,还提供了一种密钥管理装置,应用于计算设备,所述计算设备包括富执行环境REE子系统、可信执行环境TEE子系统和设置于所述TEE子系统中的密码引擎,所述TEE子系统包括安全存储区域,所述安全存储区域用于存储外部密钥,所述密码引擎包括密钥管理单元,所述密钥管理单元用于从所述安全存储区域中加载所述外部密钥,所述密钥管理装置包括:
密钥加载模块,用于响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方;
所述密钥调用请求携带有外部密钥索引,所述目标外部密钥包括与所述外部密钥索引对应的外部密钥,所述位置标识用于供所述密码引擎从所述密钥管理单元中调用所述目标外部密钥。
可选地,所述第一随机数包括管理员随机数和可信应用随机数,与所述第一会话对应的会话密钥的协商过程包括:
所述管理员应用向所述目标可信应用发送携带有所述管理员随机数的身份认证请求;
所述目标可信应用响应于所述身份认证请求,生成所述可信应用随机数并返回给所述管理员应用;
所述管理员应用和所述目标可信应用分别利用所述管理员随机数、所述可信应用随机数和所述预共享密钥执行HMAC操作,以得到与所述第一会话对应的会话密钥。
可选地,所述REE子系统中还运行有普通应用,所述普通应用与所述管理员应用建立有安全通道,所述第一身份认证码的生成过程包括:
所述管理员应用响应于所述普通应用通过所述安全通道发送的公钥获取请求,通过所述第一会话向所述目标可信应用发送所述公钥获取请求;
所述目标可信应用响应于所述公钥获取请求,生成加密公钥并通过所述管理员应用返回给所述普通应用;
所述普通应用利用所述加密公钥对所述待注入数据进行加密,以获得密文并通过所述安全通道发送给所述管理员应用;
所述管理员应用利用所述会话密钥对所述密文执行HMAC操作,以获得所述第一身份认证码。
可选地,所述目标可信应用响应于所述公钥获取请求,生成加密公钥并通过所述管理员应用返回给所述普通应用包括:
所述目标可信应用响应于所述公钥获取请求,生成非对称密钥对,所述非对称密钥对包括加密公钥和加密私钥,利用与所述第一会话对应的会话密钥对所述加密公钥进行基于密钥的散列消息认证码HMAC操作,以获得消息认证码,并将所述消息认证码和所述加密公钥通过所述第一会话返回给所述管理员应用;
所述管理员应用利用与所述第一会话对应的会话密钥对所述加密公钥执行所述HMAC操作,以获得消息验证码,并将所述消息验证码与所述消息认证码进行验证,若验证成功,则将所述加密公钥返回给所述普通应用。
可选地,所述响应于密钥注入请求,所述目标可信应用利用与所述第一会话对应的所述会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证包括:
响应于所述密钥注入请求,所述目标可信应用利用与所述第一会话对应的所述会话密钥对所述密文执行HMAC操作,将操作结果与所述第一身份认证码进行比对。
可选地,所述将所述密钥注入请求携带的待注入数据存储于所述安全存储区域包括:
利用所述加密私钥对所述密文进行解密,以获得所述待注入数据,并将所述待注入数据存储于所述安全存储区域。
可选地,所述计算设备还包括:设置于所述TEE子系统中的密码引擎;所述TEE子系统还包括:安全存储区域,所述安全存储区域用于存储外部密钥,所述密码引擎包括密钥管理单元,所述密钥管理单元用于从所述安全存储区域中加载所述外部密钥,所述密钥管理单元包括多个密钥槽,所述多个密钥槽中的各密钥槽分别对应一个密钥槽标识,所述密钥槽用于加载所述外部密钥;
所述密钥管理装置还包括:
密钥加载模块,用于响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方;
所述密钥调用请求携带有外部密钥索引,所述目标外部密钥包括与所述外部密钥索引对应的外部密钥,所述位置标识用于供所述密码引擎从所述密钥管理单元中调用所述目标外部密钥;所述位置标识包括所述密钥槽标识。
可选地,所述密钥加载模块响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给请求方具体用于:
若所述目标外部密钥已加载于所述密钥槽中,则将加载所述目标外部密钥的所述密钥槽对应的密钥槽标识作为所述位置标识返回给所述请求方;
若所述目标外部密钥未加载于任意一个所述密钥槽中,则根据所述外部密钥索引,从所述安全存储区域中读取所述目标外部密钥,将所述目标外部密钥加载于所述多个密钥槽中的一个未加载外部密钥的密钥槽中,并将加载所述目标外部密钥的所述密钥槽对应的密钥槽标识作为所述位置标识返回给所述请求方。
可选地,所述REE子系统中运行有普通应用,所述密钥管理装置还包括:
第二建立模块,用于在所述普通应用与所述目标可信应用之间建立第二会话,所述目标可信应用生成第二随机数作为挑战值返回给所述普通应用;
所述密钥调用请求还携带有第二身份认证码,所述第二身份认证码为所述普通应用利用所述用户口令对所述挑战值执行HMAC操作得到的,所述用户口令为存储于所述安全存储区域中的口令;
所述密钥加载模块响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方具体用于:
响应于所述密钥调用请求,利用所述用户口令对所述挑战值执行所述HMAC操作得到第三身份认证码,若所述第二身份认证码与所述第三身份认证码相同,则将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方。
可选地,所述密钥管理装置还包括:
密钥卸载模块,用于响应于携带有外部密钥索引的密钥卸载请求,将所述密钥管理单元中加载的待卸载外部密钥从所述密钥管理单元中擦除;所述待卸载外部密钥包括与所述密钥卸载请求携带的外部密钥索引对应的外部密钥;
密钥删除模块,用于响应于携带有外部密钥标识的密钥删除请求,根据所述外部密钥标识在所述安全存储区域中删除所述外部密钥标识表征的外部密钥。
可选地,所述密钥管理装置还包括:
密钥计算模块,用于响应于携带有所述外部密钥索引的计算请求,所述密码引擎根据所述位置标识调用所述密钥管理单元中存储的所述目标外部密钥执行计算任务。
关于密钥管理装置的具体限定可以参见上文中关于密钥管理方法的限定,在此不再赘述。上述密钥管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
示例性计算设备
本申请另一实施例还提出一种计算设备,参见图1和图9所示,本说明书的一个示例性实施例还提供了一种计算设备100,包括:富执行环境REE子系统10、可信执行环境TEE子系统20和设置于所述TEE子系统20中的密码引擎30,所述TEE子系统20包括安全存储区域和目标可信应用,所述安全存储区域用于存储外部密钥,所述密码引擎30包括密钥管理单元,所述密钥管理单元用于从所述安全存储区域中加载所述外部密钥;其中,
所述目标可信应用被配置为:
响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方;
所述密钥调用请求携带有外部密钥索引,所述目标外部密钥包括与所述外部密钥索引对应的外部密钥,所述位置标识用于供所述密码引擎30从所述密钥管理单元中调用所述目标外部密钥。
可选地,所述密钥管理单元包括多个密钥槽,所述多个密钥槽中的各密钥槽分别对应一个密钥槽标识;所述密钥槽用于加载所述外部密钥;
所述目标可信应用响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给请求方被配置为:
若所述目标外部密钥已加载于所述密钥槽中,则将加载所述目标外部密钥的所述密钥槽对应的密钥槽标识作为所述位置标识返回给所述请求方;
若所述目标外部密钥未加载于任意一个所述密钥槽中,则根据所述外部密钥索引,从所述安全存储区域中读取所述目标外部密钥,将所述目标外部密钥加载于所述多个密钥槽中的一个未加载外部密钥的密钥槽中,并将加载所述目标外部密钥的所述密钥槽对应的密钥槽标识作为所述位置标识返回给所述请求方。
可选地,所述REE子系统10中运行有管理员应用;
所述管理员应用和所述目标可信应用被配置为:在所述管理员应用与所述目标可信应用之间建立第一会话,并协商与所述第一会话对应的会话密钥,所述会话密钥基于预共享密钥和第一随机数生成;所述预共享密钥预先设置于所述管理员应用和所述目标可信应用中;
所述目标可信应用还用于,响应于密钥注入请求,利用与所述第一会话对应的所述会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证,在所述第一身份认证码验证通过时,将所述密钥注入请求携带的待注入数据存储于所述安全存储区域;
所述待注入数据包括用户口令和待注入的外部密钥;所述第一身份认证码包括所述管理员应用根据所述会话密钥和所述待注入数据生成的加密数据。
该计算设备的内部结构可以如图9所示,该计算设备100包括通过系统总线连接的处理器、存储器、网络接口和输入装置。其中,该计算设备的处理器用于提供计算和控制能力。该计算设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以本说明书上述实施例中描述的根据本说明书各种实施例的密钥管理方法中的步骤。
处理器可包括主处理器,还可包括基带芯片、调制解调器等。
存储器中保存有执行本发明技术方案的程序,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。更具体的,存储器可以包括只读存储器(read-only memory,ROM)、可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,RAM)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。
处理器可以是通用处理器,例如通用中央处理器(CPU)、微处理器等,也可以是特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
输入设备可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。
输出设备可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。
通信接口可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。
处理器执行存储器中所存放的程序,以及调用其他设备,可用于实现本申请上述实施例所提供的任意一种密钥管理方法的各个步骤。
该计算设备还可以包括显示组件和语音组件,该显示组件可以是液晶显示屏或者电子墨水显示屏,该计算设备的输入装置可以是显示组件上覆盖的触摸层,也可以是计算设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本说明书方案相关的部分结构的框图,并不构成对本说明书方案所应用于其上的计算设备的限定,具体的计算设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
示例性计算机程序产品和存储介质
除了上述方法和设备以外,本说明书实施例提供的密钥管理方法还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本说明书各种实施例的密钥管理方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本说明书实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行本说明书上述“示例性方法”部分中描述的根据本说明书各种实施例的密钥管理方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本说明书所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本说明书的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本说明书实施例提供的方案范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本说明书构思的前提下,还可以做出若干变形和改进,这些都属于本说明书的保护范围。因此,本说明书专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种密钥管理方法,其特征在于,应用于计算设备,所述计算设备包括富执行环境REE子系统和可信执行环境TEE子系统,所述REE子系统中运行有管理员应用,所述TEE子系统运行有目标可信应用,所述TEE子系统包括安全存储区域,所述密钥管理方法包括:
响应于密钥注入请求,所述目标可信应用利用与第一会话对应的会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证,在所述第一身份认证码验证通过时,将所述密钥注入请求携带的待注入数据存储于所述安全存储区域;
所述待注入数据包括用户口令和待注入的外部密钥;所述第一身份认证码包括所述管理员应用根据所述会话密钥和密文生成的加密数据,所述密文为基于所述待注入数据生成的加密数据;
所述第一会话为建立所述管理员应用与所述目标可信应用之间的会话,所述会话密钥为建立所述第一会话时,所述管理员应用与所述目标可信应用利用预共享密钥和第一随机数协商的密钥;所述第一随机数用于保证每次建立会话所协商的密钥都不同。
2.根据权利要求1所述的方法,其特征在于,所述第一随机数包括管理员随机数和可信应用随机数,与所述第一会话对应的会话密钥的协商过程包括:
所述管理员应用向所述目标可信应用发送携带有所述管理员随机数的身份认证请求;
所述目标可信应用响应于所述身份认证请求,生成所述可信应用随机数并返回给所述管理员应用;
所述管理员应用和所述目标可信应用分别利用所述管理员随机数、所述可信应用随机数和所述预共享密钥执行HMAC操作,以得到与所述第一会话对应的会话密钥。
3.根据权利要求1所述的方法,其特征在于,所述REE子系统中还运行有普通应用,所述普通应用与所述管理员应用建立有安全通道,所述第一身份认证码的生成过程包括:
所述管理员应用响应于所述普通应用通过所述安全通道发送的公钥获取请求,通过所述第一会话向所述目标可信应用发送所述公钥获取请求;
所述目标可信应用响应于所述公钥获取请求,生成加密公钥并通过所述管理员应用返回给所述普通应用;
所述普通应用利用所述加密公钥对所述待注入数据进行加密,以获得密文并通过所述安全通道发送给所述管理员应用;
所述管理员应用利用所述会话密钥对所述密文执行HMAC操作,以获得所述第一身份认证码。
4.根据权利要求3所述的方法,其特征在于,所述目标可信应用响应于所述公钥获取请求,生成加密公钥并通过所述管理员应用返回给所述普通应用包括:
所述目标可信应用响应于所述公钥获取请求,生成非对称密钥对,所述非对称密钥对包括加密公钥和加密私钥,利用与所述第一会话对应的会话密钥对所述加密公钥进行基于密钥的散列消息认证码HMAC操作,以获得消息认证码,并将所述消息认证码和所述加密公钥通过所述第一会话返回给所述管理员应用;
所述管理员应用利用与所述第一会话对应的会话密钥对所述加密公钥执行所述HMAC操作,以获得消息验证码,并将所述消息验证码与所述消息认证码进行验证,若验证成功,则将所述加密公钥返回给所述普通应用。
5.根据权利要求3所述的方法,其特征在于,所述响应于密钥注入请求,所述目标可信应用利用与所述第一会话对应的所述会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证包括:
响应于所述密钥注入请求,所述目标可信应用利用与所述第一会话对应的所述会话密钥对所述密文执行HMAC操作,将操作结果与所述第一身份认证码进行比对。
6.根据权利要求3所述的方法,其特征在于,所述将所述密钥注入请求携带的待注入数据存储于所述安全存储区域包括:
利用所述加密私钥对所述密文进行解密,以获得所述待注入数据,并将所述待注入数据存储于所述安全存储区域。
7.根据权利要求1所述的方法,其特征在于,所述计算设备还包括:设置于所述TEE子系统中的密码引擎;所述TEE子系统还包括:安全存储区域,所述安全存储区域用于存储外部密钥,所述密码引擎包括密钥管理单元,所述密钥管理单元用于从所述安全存储区域中加载所述外部密钥,所述密钥管理单元包括多个密钥槽,所述多个密钥槽中的各密钥槽分别对应一个密钥槽标识,所述密钥槽用于加载所述外部密钥;
所述密钥管理方法还包括:
响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方;
所述密钥调用请求携带有外部密钥索引,所述目标外部密钥包括与所述外部密钥索引对应的外部密钥,所述位置标识用于供所述密码引擎从所述密钥管理单元中调用所述目标外部密钥;所述位置标识包括所述密钥槽标识。
8.根据权利要求7所述的方法,其特征在于,所述响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给请求方包括:
若所述目标外部密钥已加载于所述密钥槽中,则将加载所述目标外部密钥的所述密钥槽对应的密钥槽标识作为所述位置标识返回给所述请求方;
若所述目标外部密钥未加载于任意一个所述密钥槽中,则根据所述外部密钥索引,从所述安全存储区域中读取所述目标外部密钥,将所述目标外部密钥加载于所述多个密钥槽中的一个未加载外部密钥的密钥槽中,并将加载所述目标外部密钥的所述密钥槽对应的密钥槽标识作为所述位置标识返回给所述请求方。
9.根据权利要求7所述的方法,其特征在于,所述REE子系统中运行有普通应用,所述将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方之前还包括:
在所述普通应用与所述目标可信应用之间建立第二会话,所述目标可信应用生成第二随机数作为挑战值返回给所述普通应用;
所述密钥调用请求还携带有第二身份认证码,所述第二身份认证码为所述普通应用利用所述用户口令对所述挑战值执行HMAC操作得到的,所述用户口令为存储于所述安全存储区域中的口令;
所述响应于密钥调用请求,将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方包括:
响应于所述密钥调用请求,利用所述用户口令对所述挑战值执行所述HMAC操作得到第三身份认证码,若所述第二身份认证码与所述第三身份认证码相同,则将所述密钥管理单元中加载的目标外部密钥的位置标识返回给所述密钥调用请求的请求方。
10.根据权利要求7~9任一项所述的方法,其特征在于,还包括:
响应于携带有外部密钥索引的密钥卸载请求,将所述密钥管理单元中加载的待卸载外部密钥从所述密钥管理单元中擦除;所述待卸载外部密钥包括与所述密钥卸载请求携带的外部密钥索引对应的外部密钥;
响应于携带有外部密钥标识的密钥删除请求,根据所述外部密钥标识在所述安全存储区域中删除所述外部密钥标识表征的外部密钥。
11.根据权利要求7~9任一项所述的方法,其特征在于,还包括:
响应于携带有所述外部密钥索引的计算请求,所述密码引擎根据所述位置标识调用所述密钥管理单元中存储的所述目标外部密钥执行计算任务。
12.一种密钥管理装置,其特征在于,应用于计算设备,所述计算设备包括富执行环境REE子系统和可信执行环境TEE子系统,所述REE子系统中运行有管理员应用,所述TEE子系统运行有目标可信应用,所述TEE子系统包括安全存储区域,所述密钥管理装置包括:
密钥注入模块,用于响应于密钥注入请求,所述目标可信应用利用与第一会话对应的会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证,在所述第一身份认证码验证通过时,将所述密钥注入请求携带的待注入数据存储于所述安全存储区域;
所述待注入数据包括用户口令和待注入的外部密钥;所述第一身份认证码包括所述管理员应用根据所述会话密钥和密文生成的加密数据,所述密文为基于所述待注入数据生成的加密数据;
所述第一会话为建立所述管理员应用与所述目标可信应用之间的会话,所述会话密钥为建立所述第一会话时,所述管理员应用与所述目标可信应用利用预共享密钥和第一随机数协商的密钥;所述第一随机数用于保证每次建立会话所协商的密钥都不同。
13.一种计算设备,其特征在于,包括:富执行环境REE子系统和可信执行环境TEE子系统,所述REE子系统中运行有管理员应用,所述TEE子系统运行有目标可信应用,所述TEE子系统包括安全存储区域,所述目标可信应用被配置为:
响应于密钥注入请求,利用与第一会话对应的会话密钥,对所述管理员应用通过所述第一会话发送的第一身份认证码进行验证,在所述第一身份认证码验证通过时,将所述密钥注入请求携带的待注入数据存储于所述安全存储区域;
所述待注入数据包括用户口令和待注入的外部密钥;所述第一身份认证码包括所述管理员应用根据所述会话密钥和密文生成的加密数据,所述密文为基于所述待注入数据生成的加密数据;
所述第一会话为建立所述管理员应用与所述目标可信应用之间的会话,所述会话密钥为建立所述第一会话时,所述管理员应用与所述目标可信应用利用预共享密钥和第一随机数协商的密钥;所述第一随机数用于保证每次建立会话所协商的密钥都不同。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~11任一项所述的密钥管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311657458.XA CN117375832B (zh) | 2023-12-06 | 2023-12-06 | 密钥管理方法、装置、计算设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311657458.XA CN117375832B (zh) | 2023-12-06 | 2023-12-06 | 密钥管理方法、装置、计算设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117375832A CN117375832A (zh) | 2024-01-09 |
CN117375832B true CN117375832B (zh) | 2024-02-27 |
Family
ID=89391353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311657458.XA Active CN117375832B (zh) | 2023-12-06 | 2023-12-06 | 密钥管理方法、装置、计算设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117375832B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209369A (zh) * | 2016-07-01 | 2016-12-07 | 中国人民解放军国防科学技术大学 | 基于身份密码系统的单交互认证密钥协商协议 |
CN109981259A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | 一种存储数字证书密钥的方法、装置及系统 |
CN111625829A (zh) * | 2019-02-27 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 基于可信执行环境的应用激活方法及装置 |
CN113821835A (zh) * | 2021-11-24 | 2021-12-21 | 飞腾信息技术有限公司 | 密钥管理方法、密钥管理装置和计算设备 |
CN114257382A (zh) * | 2022-01-30 | 2022-03-29 | 支付宝(杭州)信息技术有限公司 | 密钥管理和业务处理方法、装置及系统 |
CN114826596A (zh) * | 2022-04-24 | 2022-07-29 | 南京邮电大学 | 一种建立可信执行环境安全级别的密钥交换加速方法 |
CN115442032A (zh) * | 2022-08-30 | 2022-12-06 | 飞腾信息技术有限公司 | 一种数据处理方法、片上系统及可读存储介质 |
CN115706981A (zh) * | 2021-08-12 | 2023-02-17 | 荣耀终端有限公司 | 一种密钥协商方法及电子设备 |
-
2023
- 2023-12-06 CN CN202311657458.XA patent/CN117375832B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209369A (zh) * | 2016-07-01 | 2016-12-07 | 中国人民解放军国防科学技术大学 | 基于身份密码系统的单交互认证密钥协商协议 |
CN109981259A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | 一种存储数字证书密钥的方法、装置及系统 |
CN111625829A (zh) * | 2019-02-27 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 基于可信执行环境的应用激活方法及装置 |
CN115706981A (zh) * | 2021-08-12 | 2023-02-17 | 荣耀终端有限公司 | 一种密钥协商方法及电子设备 |
CN113821835A (zh) * | 2021-11-24 | 2021-12-21 | 飞腾信息技术有限公司 | 密钥管理方法、密钥管理装置和计算设备 |
CN114257382A (zh) * | 2022-01-30 | 2022-03-29 | 支付宝(杭州)信息技术有限公司 | 密钥管理和业务处理方法、装置及系统 |
WO2023143037A1 (zh) * | 2022-01-30 | 2023-08-03 | 支付宝(杭州)信息技术有限公司 | 密钥管理和业务处理 |
CN114826596A (zh) * | 2022-04-24 | 2022-07-29 | 南京邮电大学 | 一种建立可信执行环境安全级别的密钥交换加速方法 |
CN115442032A (zh) * | 2022-08-30 | 2022-12-06 | 飞腾信息技术有限公司 | 一种数据处理方法、片上系统及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117375832A (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10489574B2 (en) | Method and system for enterprise network single-sign-on by a manageability engine | |
JP5497171B2 (ja) | セキュア仮想マシンを提供するためのシステムおよび方法 | |
US11722300B2 (en) | Chip, private key generation method, and trusted certification method | |
US8190916B1 (en) | Methods and systems for modifying an integrity measurement based on user authentication | |
CN108429719B (zh) | 密钥保护方法及装置 | |
US10726132B2 (en) | Enclave launch and authentication | |
US20140270179A1 (en) | Method and system for key generation, backup, and migration based on trusted computing | |
US20080077592A1 (en) | method and apparatus for device authentication | |
TW201428535A (zh) | 用於管理存取控制之基於原則技術 | |
JP2016506107A (ja) | 仮想マシンのための管理制御方法、装置及びシステム | |
US20220245631A1 (en) | Authentication method and apparatus of biometric payment device, computer device, and storage medium | |
WO2015117523A1 (zh) | 访问控制方法及装置 | |
CN112765637A (zh) | 数据处理方法、密码服务装置和电子设备 | |
CN109586898A (zh) | 双系统通信密钥生成方法及计算机可读存储介质 | |
CN109474431B (zh) | 客户端认证方法及计算机可读存储介质 | |
CN117453343A (zh) | 虚拟机度量、机密计算认证方法、设备、系统及存储介质 | |
Kurnikov et al. | Keys in the clouds: auditable multi-device access to cryptographic credentials | |
CN115314495B (zh) | 一种面向5g边缘计算节点的容器加固系统及加固方法 | |
CN117375832B (zh) | 密钥管理方法、装置、计算设备及计算机可读存储介质 | |
CN117353921B (zh) | 密钥管理方法、装置、计算设备及计算机可读存储介质 | |
CN114491565B (zh) | 固件安全启动方法、装置、计算设备和可读存储介质 | |
US11757648B2 (en) | System and method for remote startup management | |
TWI773146B (zh) | 計算裝置及包含有用於經授權應用程式所作bios動作請求之指令的非暫時性有形電腦可讀媒體 | |
Hao et al. | Trusted block as a service: Towards sensitive applications on the cloud | |
CN114520735A (zh) | 一种基于可信执行环境的用户身份鉴定方法、系统及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |