CN109150811B - 一种实现可信会话的方法及装置、计算设备 - Google Patents
一种实现可信会话的方法及装置、计算设备 Download PDFInfo
- Publication number
- CN109150811B CN109150811B CN201710500986.2A CN201710500986A CN109150811B CN 109150811 B CN109150811 B CN 109150811B CN 201710500986 A CN201710500986 A CN 201710500986A CN 109150811 B CN109150811 B CN 109150811B
- Authority
- CN
- China
- Prior art keywords
- tee
- session
- digest algorithm
- initial key
- passed
- 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
Images
Classifications
-
- 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
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- 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
- H04L63/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
-
- 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
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- 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/12—Applying verification of the received information
-
- 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/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
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)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本文公布了一种实现可信会话的方法及装置、计算设备,包括:在客户应用CA与可信执行环境TEE之间的会话开始时,TEE验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA;在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作;在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作。本申请能够确保客户应用跟TEE的安全业务交互过程是完整、连续并且可信的。
Description
技术领域
本发明涉及通信领域,具体涉及一种实现可信会话的方法及装置、计算设备。
背景技术
可信执行环境(TEE,Trusted Execution Environment)是由Global Platform组织定义的一种技术框架,可用以支持非可信执行环境和可信执行环境的软硬件隔离,把普通操作系统和其承载的各种应用程序都运行在非可信执行环境中,涉及到安全相关的算法和用户数据被隔离在可信执行环境中运行。
TEE和REE(Rich Execution Environment普通执行环境)的整体系统框架如图1所示。从应用模型的角度,普通应用和可信应用之间符合客户端-服务器模型,即普通应用可以作为客户端程序、TEE上的可信应用作为服务端程序,客户应用(Client Application,CA)调用可信应用(Trusted Application,TA)服务的过程称为会话。客户端-服务端可以通过通用寄存器或共享内存进行通信。采用TEE框架,可以把软件分成非安全和安全两部分来实施,比如数字版权管理(DRM,Digital Rights Management)版权保护、指纹识别、电子支付、条件访问等安全业务应用都可以放到TEE环境中进行安全隔离,这些业务可以应用在目前具有高安全风险的通用系统(如安卓)上。
图2介绍了TEE框架下CA和TA的主要会话交互流程,包括如下步骤:
步骤201,CA向TEE申请建立上下文;TEE基于当前运行资源情况,分配对应的上下文资源。
步骤202,CA提请建立目标为通用唯一识别码(UUID,Universal UniqueIdentification)的TA会话;TEE收到UUID请求后,检查对应TA是否存在,如果TEE中不存在,则通过代理程序加载对应TA镜像到TEE中,通过TA镜像的安全验证签名后,提取并运行该TA程序,然后返回对应的会话句柄给CA。如果TA已经存在,则直接返回对应的会话句柄。
步骤203,CA有安全业务的调用需求时,准备好对应的调用参数,并通过会话句柄进入TEE环境。由TEE环境转接这些调用参数,并重映射给对应的TA。TA根据收到的调用参数,进行相应的安全服务功能分支处理,完成后把对应结果返回给TEE,进而TEE把该结果重映射给CA。
CA可以在会话的有效期内,重复上述安全业务调用请求任意多次。
步骤204,CA可以根据自身业务情况,在完成所有安全业务请求后,把会话句柄发给TEE,提请结束当前会话。
步骤205,TEE首先会通知TA程序结束所有服务,并销毁该TA对应的会话句柄,同时根据自身资源情况,决定是否销毁对应的TA程序本身。
步骤206,CA向TEE申请结束上下文,TEE释放该上下文,并做对应的环境清理。
由上可知,目前的TEE框架中定义了安全隔离的框架,但客户应用和TEE之间的会话交互没有安全保证,即任意的普通应用程序,都可以对TEE框架进行同等调用。而目前,针对TEE操作系统的主要攻击实例都是通过对TEE的刺探调用作为开始,分析调用过程和数据结果,逐步突破直至整个TEE操作系统被攻破。因此,只有TEE框架和可信应用是不能充分确保安全的,还需要保证TEE会话交互过程的完整和可信。
发明内容
为了解决上述技术问题,本发明实施例提供了一种实现可信会话的方法及装置、计算设备,能够确保客户应用跟TEE的交互过程完整和可信。
本申请提供了:
一种实现可信会话的方法,包括:
在客户应用CA与可信执行环境TEE之间的会话开始时,TEE验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA;
在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作;
在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作。
其中,在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作,包括:在CA与TEE之间的会话进行时,TEE生成随机码并提供给所述CA;在CA与TEE之间的会话进行时,利用所述随机码、所述摘要算法以及初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作。
其中,所述利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作,包括:CA利用所述摘要算法和初始密钥将信息加密后携带在所述消息中送至TEE,所述TEE利用所述摘要算法和初始密钥验证所述消息,并在验证通过后执行相应的操作;
其中,所述信息为如下之一:
通用唯一识别码UUID;
调用参数及来自TEE的随机码;
会话句柄及来自TEE的随机码;
上下文句柄。
其中,所述CA利用所述摘要算法和初始密钥将消息加密后送至所述TEE,包括:所述CA利用所述摘要算法和初始密钥对信息进行摘要计算,将摘要计算结果连同所述信息一起携带在请求消息中发送给所述TEE;所述TEE利用所述摘要算法和初始密钥验证所述消息,包括:TEE利用所述摘要算法和初始密钥对所述请求消息中的信息进行摘要计算,将摘要计算结果与所述请求消息中携带的摘要计算结果进行比对,在摘要计算结果与所述请求消息中携带的摘要计算结果一致时验证通过。
其中,所述消息为如下之一:会话申请请求、调用申请请求、会话结束请求、上下文终止请求;和/或,
所述消息为会话申请请求时,在所述校验通过后执行相应的操作,包括:获得会话句柄并生成随机码,将所述会话句柄以及所述随机码返回给CA;和/或,
所述消息为调用申请请求时,在所述校验通过后执行相应的操作,包括:执行相应可信应用TA的操作,记录所述会话句柄,并生成新的随机码连同调用结果一起返回给所述CA;和/或,
所述消息为会话结束请求时,在所述校验通过后执行相应的操作,包括:TEE销毁自身记录的所述会话句柄;和/或,
所述消息为上下文终止请求时,在所述校验通过后执行相应的操作,包括:销毁所述初始秘钥,释放上下文,并做相应的环境清理。
其中,所述选择摘要算法,包括:TEE根据自身的安全策略选择摘要算法;和/或;在CA与TEE之间的会话进行时,还包括:TEE根据自身的安全策略和所述CA需调用的TA的安全等级,更新所述摘要算法及所述初始密码,并将更新的摘要算法及所述初始密钥提供给所述CA,以便所述CA在会话进行时使用更新后的摘要算法及初始密钥。
其中,所述TEE验证CA身份的合法性之前,还包括:在TEE中预置根证书,在所述CA中预置所述根证书签名的数字证书;所述TEE验证CA身份的合法性,包括:TEE利用CA提供的所述数字证书验证所述CA身份的合法性。
其中,所述会话开始,包括:建立上下文;和/或,所述会话进行,包括:建立会话、至少一次调用安全服务功能、关闭会话;和/或,所述会话结束,包括:结束上下文。
其中,所述在CA与TEE之间的会话开始时,TEE验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA,包括:CA在向TEE申请上下文时向所述TEE提供所述数字证书;TEE验证所述CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥,使用所述数字证书对应的公钥对所述初始密钥加密后连同所述摘要算法、以及为所述CA分配的上下文句柄一起送至CA;CA使用所述数字证书对应的私钥解密出所述初始密钥,并保存所述初始密钥、摘要算法以及上下文句柄。
其中,所述在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作,至少包括如下之一或多项:
建立会话的过程中,CA利用所述摘要算法和初始密钥将UUID加密后携带在会话申请请求中送至所述TEE,TEE利用所述摘要算法和初始密码对所述会话申请请求进行验证,在验证通过后获得会话句柄并生成随机码,将所述会话句柄以及所述随机码返回给CA;
关闭会话的过程中,CA将所述TEE最近一次返回的随机码与所述会话句柄合并后利用所述摘要算法和初始密钥加密并携带在会话结束请求中送至所述TEE,TEE利用所述摘要算法和初始密码对所述会话结束请求进行验证,在验证通过后TEE销毁自身记录的所述会话句柄。
其中,所述在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作,包括:
调用安全服务功能的过程中,CA将相应的调用参数与所述TEE提供的随机码合并后利用所述摘要算法和初始密钥加密并携带在调用申请请求中送至所述TEE,TEE利用所述摘要算法和初始密码对所述调用申请请求进行验证,在验证通过后执行相应可信应用TA的操作,记录所述会话句柄,并生成新的随机码连同调用结果一起返回给所述CA。
其中,所述在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作,包括:结束上下文的过程中,CA利用所述摘要算法和初始密钥对上下文句柄加密并携带在上下文终止请求中送至所述TEE,TEE利用所述摘要算法和初始密码对所述上下文终止请求进行验证,在验证通过后销毁所述初始秘钥,释放上下文,并做相应的环境清理。
一种实现可信会话的装置,包括:可信执行环境TEE操作系统和非可信执行环境REE操作系统,所述REE上安装有客户应用CA,所述TEE上安装有可信应用TA,所述CA通过所述TEE调用所述TA实现安全服务功能;其特征在于,
所述TEE操作系统,用于在CA与TEE之间的会话开始时,验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA;以及,用于在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作;在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作。
其中,所述TEE操作系统,还用于在CA与TEE之间的会话进行时,生成随机码并提供给所述CA;在CA与TEE之间的会话进行时,利用所述随机码、所述摘要算法以及初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作。
其中,所述CA,用于利用所述摘要算法和初始密钥将信息加密后携带在所述消息中送至TEE;所述TEE操作系统,用于利用所述摘要算法和初始密钥验证所述消息,并在验证通过后执行相应的操作;
所述信息为如下之一:
通用唯一识别码UUID;
调用参数及来自TEE的随机码;
会话句柄及来自TEE的随机码;
上下文句柄。
其中,所述消息为如下之一:会话申请请求、调用申请请求、会话结束请求、上下文终止请求;和/或,所述消息为会话申请请求时,所述TEE操作系统用于在所述校验通过后执行相应的操作,包括:获得会话句柄并生成随机码,将所述会话句柄以及所述随机码返回给CA;和/或,所述消息为调用申请请求时,所述TEE操作系统用于在所述校验通过后执行相应的操作,包括:执行相应可信应用TA的操作,记录所述会话句柄,并生成新的随机码连同调用结果一起返回给所述CA;和/或,所述消息为会话结束请求时,所述TEE操作系统用于在所述校验通过后执行相应的操作,包括:TEE销毁自身记录的所述会话句柄;和/或,所述消息为上下文终止请求时,所述TEE操作系统用于在所述校验通过后执行相应的操作,包括:销毁所述初始秘钥,释放上下文,并做相应的环境清理。
其中,所述CA,还用于预置根证书签名的数字证书;所述TEE操作系统,用于预置有所述根证书;以及,用于利用所述CA提供的所述数字证书验证所述CA身份的合法性。
其中,所述TEE操作系统,具体用于根据自身的安全策略选择摘要算法;和/或;所述TEE操作系统,还用于在CA与TEE之间的会话进行时,根据自身的安全策略和所述CA需调用的TA的安全等级,更新所述摘要算法及所述初始密码,并将更新的摘要算法及所述初始密钥提供给所述CA,以便所述CA在会话进行时使用更新后的摘要算法及初始密钥。
其中,所述会话开始,包括:建立上下文;和/或,所述会话进行,包括:建立会话、至少一次调用安全服务功能、关闭会话;和/或,所述会话结束,包括:结束上下文。
一种计算设备,包括:
存储有实现可信会话程序的存储器;
处理器,配置为执行所述实现可信会话程序以执行下述操作:在客户应用CA与可信执行环境TEE之间的会话开始时,TEE验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA;在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作;在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作。
一种计算机可读存储介质,所述计算机可读存储介质上存储有实现可信会话的程序,所述实现可信会话的程序被处理器执行时实现上述实现可信会话的方法的步骤。
一方面,本发明实施例中,对客户应用进行信任检测,在信任检测通过后使用TEE指定的摘要算法和秘钥对会话进行过程和会话结束时的消息进行验证,从而可以在全球平台(Global Platform)TEE框架上提供可信的交互过程给合法的客户端应用程序,能够确保客户应用跟TEE的安全业务交互过程是完整、连续并且可信的,在TEE的调用接口层面,还可以防止非法应用的刺探攻击,阻止无授权应用的非法调用。
另一方面,本发明实施例中,CA使用TEE指定的摘要算法和秘钥对会话中使用的信息进行摘要计算,同时在TEE内进行比对,从而保证会话过程中每一步骤的参数完整可信和过程连续可信。对功能调用过程还使用TEE提供的随机码(如,一个只被使用一次的任意或非重复的随机数值(NONCE))作为辅助参数进行摘要计算,可以确保摘要计算和结果比对不仅快速高效而且准确。
再一方面,本发明实施例可应用多种类型的摘要算法,不限于具体的交互验证用的摘要算法,TEE可以根据自身软硬件的资源情况,进行灵活的选择。
又一方面,本发明实施例不需要针对不同厂商提供的可信应用做任何调整,在TEE框架层面解决了交互会话的可信问题,不影响也不需要重新部署已有的各种安全服务,兼容性好,应用成本低,实现效率高。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为TEE框架示意图;
图2为相关技术中TEE框架下CA和TA的交互流程示意图;
图3本申请实施例一实现可信会话的方法流程示意图;
图4本申请实施例二实现可信会话的装置结构示意图;
图5本申请实施例三中计算设备的示例性结构图;
图6本申请实例中可信交互会话的流程示意图;
图7本申请实例中可信交互会话的信任基础示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一
如图3所示,本实施例提供一种实现可信会话的方法,包括:
步骤301,在客户应用CA与可信执行环境TEE之间的会话开始时,TEE验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA;
步骤302,在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作;
步骤303,在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作。
在一种实现方式中,在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作,可以包括:在CA与TEE之间的会话进行时,TEE生成随机码并提供给所述CA;在CA与TEE之间的会话进行时,利用所述随机码、所述摘要算法以及初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作。如此,对CA与TEE会话进行中的信息(如调用参数等),基于初始秘钥的摘要算法并结合NONCE,可以确保验证过程中摘要计算和结果比对不仅快速高效而且准确。
一种实现方式中,所述利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作,可以包括:CA利用所述摘要算法和初始密钥将信息加密后携带在所述消息中送至TEE,所述TEE利用所述摘要算法和初始密钥验证所述消息,并在验证通过后执行相应的操作;其中,所述信息为如下之一:1)UUID;2)调用参数及来自TEE的随机码;3)会话句柄及来自TEE的随机码;4)上下文句柄。
具体的,CA利用所述摘要算法和初始密钥对信息进行摘要计算,将摘要计算结果连同所述信息一起携带在请求消息中发送给所述TEE;TEE利用所述摘要算法和初始密钥对所述请求消息中的信息进行摘要计算,将摘要计算结果与所述请求消息中携带的摘要计算结果进行比对,在摘要计算结果与所述请求消息中携带的摘要计算结果一致时验证通过。如此,CA使用TEE指定的摘要算法和秘钥对会话中使用的信息进行摘要计算,同时在TEE内进行比对,从而保证会话过程中每一步骤的参数完整可信。
本实施例中,所述消息可以为如下之一:会话申请请求、调用申请请求、会话结束请求、上下文终止请求。
本实施例中,消息的类型不同,在所述校验通过后执行的相应操作就不同。一般来说,执行的相应操作跟消息的作用是对应的。比如,所述消息为会话申请请求时,在所述校验通过后执行相应的操作,可以包括:获得会话句柄并生成随机码,将所述会话句柄以及所述随机码返回给CA。再比如,所述消息为调用申请请求时,在所述校验通过后执行相应的操作,可以包括:执行相应可信应用TA的操作,记录所述会话句柄,并生成新的随机码连同调用结果一起返回给所述CA。又比如,所述消息为会话结束请求时,在所述校验通过后执行相应的操作,可以包括:TEE销毁自身记录的所述会话句柄。再例如,所述消息为上下文终止请求时,在所述校验通过后执行相应的操作,可以包括:销毁所述初始秘钥,释放上下文,并做相应的环境清理。
需要说明的是,本文所述摘要算法可以是多种类型。在实际应用中,可以根据安全业务、需调用的安全服务功能、CA等的不同采用不同的摘要算法。比如,摘要算法可以为基于HASH的摘要算法(如HMAC_SHA256/512/MD5)、基于Cipher的摘要算法(如AES/DES/3DES_CMAC)等。
本发明实施例中,支持TEE根据自身的安全策略和可信应用的安全等级,在不同的会话过程中使用不同的摘要算法以及在会话过程中秘钥和摘要算法的动态更新。一种实现方式中,在客户应用CA与可信执行环境TEE之间的会话开始时,验证CA身份的合法时,TEE可以根据自身的安全策略选择摘要算法。另一种实现方式中,在CA与TEE之间的会话进行时,还可以包括:TEE根据自身的安全策略和所述CA需调用的TA的安全等级,更新所述摘要算法及所述初始密码,并将更新的摘要算法及所述初始密钥提供给所述CA,以便所述CA在会话进行时使用更新后的摘要算法及初始密钥。
本实施例中,所述TEE验证CA身份的合法性之前,还包括:在TEE中预置根证书,在所述CA中预置所述根证书签名的数字证书;所述TEE验证CA身份的合法性,包括:TEE利用CA提供的所述数字证书验证所述CA身份的合法性。如此,TEE可在会话开始时通过相应的数字证书对CA进行认证,在认证通过之后再与CA建立会话。
本实施例中,所述会话开始的过程可以包括:建立上下文;所述会话进行的过程包括:建立会话、至少一次调用安全服务功能、关闭会话;所述会话结束的过程可以包括:结束上下文。
一种实现方式中,所述在CA与TEE之间的会话开始时,TEE验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA,可以包括:CA在向TEE申请上下文时向所述TEE提供所述数字证书;TEE验证所述CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥,使用所述数字证书对应的公钥对所述初始密钥加密后连同所述摘要算法、以及为所述CA分配的上下文句柄一起送至CA;CA使用所述数字证书对应的私钥解密出所述初始密钥,并保存所述初始密钥、摘要算法以及上下文句柄。
一种实现方式中,所述在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作,至少可以包括如下之一或多项:1)建立会话的过程中,CA利用所述摘要算法和初始密钥将UUID加密后携带在会话申请请求中送至所述TEE,TEE利用所述摘要算法和初始密钥(TEE内部生成的初始密钥)对所述会话申请请求进行验证,在验证通过后获得会话句柄并生成随机码,将所述会话句柄以及所述随机码返回给CA;2)关闭会话的过程中,CA将所述TEE最近一次返回的随机码与所述会话句柄合并后利用所述摘要算法和初始密钥加密并携带在会话结束请求中送至所述TEE,TEE利用所述摘要算法和初始密码对所述会话结束请求进行验证,在验证通过后TEE销毁自身记录的所述会话句柄。
一种实现方式中,所述在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作,可以包括:调用安全服务功能的过程中,CA将相应的调用参数与所述TEE提供的随机码合并后利用所述摘要算法和初始密钥加密并携带在调用申请请求中送至所述TEE,TEE利用所述摘要算法和初始密码对所述调用申请请求进行验证,在验证通过后执行相应可信应用TA的操作,记录所述会话句柄,并生成新的随机码连同调用结果一起返回给所述CA。
一种实现方式中,所述在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作,可以包括:结束上下文的过程中,CA利用所述摘要算法和初始密钥对上下文句柄加密并携带在上下文终止请求中送至所述TEE,TEE利用所述摘要算法和初始密码对所述上下文终止请求进行验证,在验证通过后销毁所述初始秘钥,释放上下文,并做相应的环境清理。
需要说明的是,本文中安全业务是指在应用场景中涉及到安全相关的功能集合,,在一个安全业务中可能包含多个或多种类型的安全服务功能,安全服务功能可以是安全业务中的一个步骤、一个环节、一项加解密运算或者按需要完成安全验证的一个操作。安全服务功能或安全业务是可以在TEE和REE共存的环境中实现的功能或业务。比如,安全业务可以是DRM、指纹识别、电子支付、条件访问等相关的业务,安全服务功能可以是DRM中针对加密视频码流指定帧的解密操作;安全服务功能也可以是电子支付中通过TA提供的可信用户界面(Trusted UI)下输入用户密码并加密其结果的操作;安全服务功能还可以是指纹识别中通过指纹识别TA完成的指纹提取和校验操作等。在其他实施例中,安全服务功能和安全业务还可以是其他的实现形式,对此,本文不作限制。
本实施例中,对客户应用进行信任检测,在信任检测通过后使用TEE指定的摘要算法和秘钥对会话进行过程和会话结束时的消息进行验证,从而可以在Global PlatformTEE框架上提供可信的交互过程给合法的客户端应用程序,能够确保客户应用跟TEE的安全业务交互过程是完整、连续并且可信的,在TEE的调用接口层面,还可以防止非法应用的刺探攻击,阻止无授权应用的非法调用。此外,本实施例的上述方法不需要针对不同厂商提供的可信应用做任何调整,在TEE框架层面解决了交互会话的可信问题,不影响也不需要重新部署已有的各种安全服务,兼容性好,应用成本低,实现效率高。
实施例二
提供一种实现可信会话的装置,如图4所示,包括:TEE操作系统41和REE操作系统42,所述REE上安装有CA 43,所述TEE上安装有TA 44,所述CA通过所述TEE调用所述TA实现安全服务功能;其中,所述TEE操作系统,用于在CA与TEE之间的会话开始时,验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA;以及,用于在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作;在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作。
一种实现方式中,所述TEE操作系统41,还可以用于在CA与TEE之间的会话进行时,生成随机码并提供给所述CA;在CA与TEE之间的会话进行时,利用所述随机码、所述摘要算法以及初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作。如此,对CA与TEE会话进行中的信息(如调用参数等),基于初始秘钥的摘要算法并结合NONCE,可以确保验证过程中摘要计算和结果比对不仅快速高效而且准确。
本实施例中,所述CA 43,可用于利用所述摘要算法和初始密钥将信息加密后携带在所述消息中送至TEE;所述TEE操作系统41,可用于利用所述摘要算法和初始密钥验证所述消息,并在验证通过后执行相应的操作;其中,所述信息可以为如下之一:通用唯一识别码UUID;调用参数及来自TEE的随机码;会话句柄及来自TEE的随机码;上下文句柄。
具体的,所述CA 43,具体可用于利用所述摘要算法和初始密钥对信息进行摘要计算,将摘要计算结果连同所述信息一起携带在请求消息中发送给所述TEE操作系统41;所述TEE操作系统41,具体可用于利用所述摘要算法和初始密钥对所述请求消息中的信息进行摘要计算,将摘要计算结果与所述请求消息中携带的摘要计算结果进行比对,在摘要计算结果与所述请求消息中携带的摘要计算结果一致时验证通过。如此,CA使用TEE操作系统指定的摘要算法和秘钥对会话中使用的信息进行摘要计算,同时在TEE内进行比对,从而保证会话过程中每一步骤的参数完整可信。
本实施例中,所述消息为如下之一:会话申请请求、调用申请请求、会话结束请求、上下文终止请求。
本实施例中,消息的类型不同,所述TEE操作系统41在所述校验通过后执行的相应操作就不同。比如,所述消息为会话申请请求时,所述TEE操作系统41用于在所述校验通过后执行相应的操作,可以包括:获得会话句柄并生成随机码,将所述会话句柄以及所述随机码返回给CA。再比如,所述消息为调用申请请求时,所述TEE操作系统41用于在所述校验通过后执行相应的操作,可以包括:执行相应可信应用TA的操作,记录所述会话句柄,并生成新的随机码连同调用结果一起返回给所述CA。再比如,所述消息为会话结束请求时,所述TEE操作系统41可用于在所述校验通过后执行相应的操作,可以包括:TEE销毁自身记录的所述会话句柄。又比如,所述消息为上下文终止请求时,所述TEE操作系统41用于在所述校验通过后执行相应的操作,可以包括:销毁所述初始秘钥,释放上下文,并做相应的环境清理。
本实施例中,所述CA 43,还用于预置根证书签名的数字证书;所述TEE操作系统41,还可用于预置有所述根证书;以及,具体可用于利用所述CA提供的所述数字证书验证所述CA身份的合法性。
需要说明的是,上述实现可信会话的装置所采用的摘要算法可以是多种类型。在实际应用中,可以根据安全业务、需调用的安全服务功能、CA等的不同采用不同的摘要算法。比如,摘要算法可以为基于HASH的摘要算法(如HMAC_SHA256/512/MD5)、基于Cipher的摘要算法(如AES/DES/3DES_CMAC)等。
本发明实施例中,TEE操作系统41支持根据自身的安全策略和可信应用的安全等级,在不同的会话过程中使用不同的摘要算法以及在会话过程中秘钥和摘要算法的动态更新。一种实现方式中,在客户应用CA与可信执行环境TEE之间的会话开始时,验证CA身份的合法时,所述TEE操作系统41,具体可用于根据自身的安全策略选择摘要算法。另一种实现方式中,所述TEE操作系统41,还可用于在CA与TEE之间的会话进行时,根据自身的安全策略和所述CA需调用的TA的安全等级,更新所述摘要算法及所述初始密码,并将更新的摘要算法及所述初始密钥提供给所述CA,以便所述CA在会话进行时使用更新后的摘要算法及初始密钥。
本实施例中,所述会话开始的过程可以包括:建立上下文;所述会话进行的过程包括:建立会话、至少一次调用安全服务功能、关闭会话;所述会话结束的过程可以包括:结束上下文。
本实施例实现可信会话的装置可实现上述实施例一所述方法的所有细节,不再赘述。实际应用中,本实施例实现可信会话的装置可以体现为计算设备,具体可以通过计算设备的处理器和存储器来实现。这里,所述计算设备可以为能够执行本文所述功能的任何类型的设备。比如,所述计算设备可以为使用安卓或其他类似开放式操作系统的计算设备。
本实施例实现可信会话的装置,可以在Global Platform TEE框架上提供可信的交互过程给合法的客户端应用程序,能够确保客户应用跟TEE的安全业务交互过程是完整、连续并且可信的,在TEE的调用接口层面,还可以防止非法应用的刺探攻击,阻止无授权应用的非法调用。此外,不需要针对不同厂商提供的可信应用做任何调整,在TEE框架层面解决了交互会话的可信问题,不影响也不需要重新部署已有的各种安全服务,兼容性好,应用成本低,实现效率高。
实施例三
一种计算设备,包括:
存储有实现可信会话程序的存储器;
处理器,配置为执行所述实现可信会话程序以执行下述操作:在CA与TEE之间的会话开始时,TEE验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA;在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作;在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作。
本实施例实现可信会话的装置可实现上述实施例一所述方法的所有细节,不再赘述。
本文中,所述计算设备可以为用于执行本文所述功能的任何类型的设备。例如,计算设备可以被体现为(但不限于)桌面型计算机、笔记本计算机、移动计算设备、智能电话、平板电脑、手持装置、消息收发设备、可佩戴计算设备、车载信息处理设备、多处理器系统、消费电子设备、嵌入式控制器和/或被配置为执行本文所述功能的任何其他计算设备。比如,所述计算设备可以为使用安卓或其他类似开放式操作系统的计算设备。
如图5所示,为本文计算设备的示例性结构。计算设备可以包括:处理器51、输入输出子系统52、存储器53。当然,在其他实施例中,计算设备还可以包括其他或附加的部件。例如,输入设备、输出设备、通信电路54等。此外,在一些实施例中,示例性部件中的一个或多个可以并入另一个部件,例如,在一些实现方式中,存储器或其他部分可以并入处理器中。
处理器51可以为能够执行本文所述功能的任何类型的处理器。例如,处理器可以为单一或多核处理器、数字信号处理器、微处理器、或其他处理器或处理/控制电路。在一些实现方式中,计算设备可以包括一个或一个以上的处理器。
存储器53可以为能够执行本文所述功能的任何类型的存储器。存储器可存储计算设备的操作器件使用的各种数据和软件,比如,操作系统、应用、程序、库和驱动程序。
存储器53通过所述输入输出子系统52通信地耦合到处理器,输入输出子系统52可以为有助于处理器51、存储器53和计算设备的其他部件的输入/输出操作的电路或部件。在一些实现方式中,输入输出子系统可以形成片上系统的一部分,并且与处理器、存储器及计算设备的其他部件一起并入在单个集成电路芯片上。
所述通信电路53可以被配置为使用任何一个或多个通信技术(例如,无线或有线通信)和相关联的协议(如,以太网、蓝牙、WiFi、WiMAX、CDMA、TD-CDMA、LTE等)来实现这样的通信。该通信电路可以为包括无线网络适配器的网络适配器。
本实施例的计算设备,可以在Global Platform TEE框架上提供可信的交互过程给合法的客户端应用程序,能够确保客户应用跟TEE的安全业务交互过程是完整、连续并且可信的,在TEE的调用接口层面,还可以防止非法应用的刺探攻击,阻止无授权应用的非法调用。此外,不需要针对不同厂商提供的可信应用做任何调整,在TEE框架层面解决了交互会话的可信问题,不影响也不需要重新部署已有的各种安全服务,兼容性好,应用成本低,实现效率高。
实施例四
一种计算机可读存储介质,所述计算机可读存储介质上存储有实现可信会话的程序,所述实现可信会话的程序被处理器执行时实现上述实施例一所述实现可信会话的方法的步骤。
本实施例中,所述实现可信会话的程序被处理器执行时至少实现如下步骤:在CA与TEE之间的会话开始时,TEE验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA;在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作;在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作。
本实施例中,所述实现可信会话的程序被处理器执行时可实现实施例一所述方法的所有细节,不再赘述。本实施例中的具体示例可以参考上述实施例及下文所描述的实例,本实施例在此不再赘述。
实际应用中,所述计算机可读介质可以包括永久性和非永久性、可移动和非可移动存储介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
下面以具体实例详细说明本申请上述各实施例的示例性实现方式。
实例
本实例包括可信会话的实现流程,该流程是上文实现可信会话方法的一种示例性实现方式。实际应用中,还可以采用其他实施方式。例如,可以在本实例流程中增加其他步骤,或者根据实际需要或具体应用场景的不同调整本流程中某些步骤的执行顺序。
如图6所示,本实例中示例性流程可以包括:
1)CA向TEE申请上下文的过程:
步骤601,CA向TEE申请建立上下文,CA向TEE申请建立上下文时,CA需要向TEE提供证明自身合法性的数字证书;
具体的,CA向TEE提供的可信应用证书,可以是基于X.509规范的证书格式,且经过TEE根证书签名的CA证书,。如图7所示,为本实例中TEE与CA之间可信交互会话的信任基础示例图。从图7可知,CA需要使用TEE根证书签名的客户端应用证书在交互之初通过TEE的认证。
步骤602,TEE验证CA证书,在验证CA证书通过的基础上,创建上下文,并选择使用一种摘要算法ALGO,生成初始秘钥KEY作为后续所有交互的验证秘钥,TEE使用CA证书中的公钥对KEY进行加密后,将加密后的KEY连同KEY使用的摘要算法ALGO、以及上下文句柄一起返回给CA。
本实施例中ALGO是摘要算法的一个代号。
本实施例中,TEE环境下KEY的产生应具有随机性。
本实例中TEE分配初始秘钥KEY时所使用的摘要算法可以是多种。例如,所述摘要算法可以是:基于HASH的摘要算法(如HMAC_SHA256/512/MD5)、基于Cipher的摘要算法(如AES/DES/3DES_CMAC)等。实际应用中,使用哪一种摘要算法取决于TEE的选择。
步骤603,CA接收TEE返回的上下文句柄、加密后的KEY以及KEY使用的摘要算法ALGO,保存所述上下文句柄,并使用与CA证书公钥对应的私钥解密并提取出初始秘钥KEY,并记录所述KEY使用的摘要算法ALGO。
至此,上下文建立过程结束。
2)CA跟TA建立会话的过程:
步骤604,CA向TEE提请建立目标为UUID的TA会话:CA以KEY作为秘钥、采用摘要算法ALGO把UUID等全部请求信息进行摘要计算,把对应的摘要计算结果连同请求信息一起以消息认证码(MAC(ALGO(UUID,KEY)))形式携带在会话申请请求中发送给TEE。
步骤605,TEE收到CA的会话申请请求后,按照摘要算法ALGO、并使用内部记录的KEY对所述请求中的请求信息进行运算得到摘要计算结果,并将所得到的摘要计算结果与CA送入的摘要计算结果进行比对,如果TEE的摘要计算结果与CA送入的摘要计算结果不一致,则终止会话申请请求,返回给CA失败结果;如果TEE的摘要计算结果与CA送入的摘要计算结果一致,则加载、验证、运行所述UUID对应的TA,获得并记录对应的会话句柄。具体的,TA在加载时需要向TEE提供自身的可信应用证书,该可信应用证书是使用TEE根证书签名的证书。TEE根据自身的根证书对动态加载的TA证书做签名校验,通过后使用TA证书对其动态加载的代码数据做签名校验,签名比对一致即确认TA的可信性,进而TEE可以分配资源并运行该TA;如果签名比对不一致,则认为TA不具有可信性,TEE即停止加载该TA程序,并直接返回。
步骤606,TEE生成NONCE,连同会话句柄一起返回给CA。
这里,TEE在生成NONCE时,必须满足随机性。比如,NONCE可以是TEE环境中基于硬件随机数发生器产生的随机值。
步骤607,CA接收会话句柄和NONCE,并保存在自己的数据区中备用。
至此,CA与TEE之间的会话建立过程完成。
3)CA安全业务的调用过程
步骤608,CA需要调用安全服务功能时,需要准备好对应的调用参数PARAM,先按照{PARAM||NONCE}的拼接作为输入,按照指定的摘要算法ALGO、使用秘钥KEY进行摘要计算后,得到的结果连同调用参数一起以消息认证码(MAC(ALGO(PARAM||NONCE,KEY)))形式携带在调用申请请求中发送给TEE。
步骤609,TEE接收所述调用申请请求,根据内部记录的NONCE、按照相同拼接方式、按照KEY和指定的摘要算法ALGO,重新进行摘要计算,得到摘要计算结果,并将摘要计算结果与CA送入的摘要计算结果进行比对,如果TEE的摘要计算结果与CA送入的摘要计算结果不一致,则终止该安全业务的调用申请请求,返回给CA失败结果;如果TEE的摘要计算结果与CA送入的摘要计算结果一致,则进行后续常规的转接安全服务功能操作,如调用参数的转接和重映射处理、TA对收到调用参数的安全服务功能分支处理等。
具体的,CA通过调用参数来指定TA。调用参数中还可以包含安全服务功能的ID号,这个ID号用于标识需调用的安全服务功能。。在安全业务的调用阶段,TEE向CA提供NONCE,CA将NONCE与调用参数PARAM合并,进行摘要计算,得到摘要计算结果,并将消息认证码(MAC(ALGO(PARAM||NONCE,KEY)))携带在调用申请请求中发送给TEE,TEE通过比对摘要计算结果对CA进行验证。验证通过后,TEE将相应的安全服务功能转接给TA进行具体的操作处理。
步骤610,在TEE返回CA之前,需要重新生成新NONCE,连同调用结果一起返回给CA。具体的,这些结果可以包含申请的成功信息或失败信息,运算结果等。
步骤611,CA接收来自TEE的新NONCE,覆盖替换原值,完成NONCE的更新。
CA可以在会话的有效期内,重复上述安全业务的调用任意多次。其中,每次安全业务的调用过程中,CA对于调用参数、NONCE、秘钥KEY、摘要算法ALGO、以及TEE对摘要计算和结果比对处理、TEE重新计算NONCE值等处理,与上述步骤相同。所不同的是,NONCE的具体值、调用参数的内容等。
4)CA关闭会话的过程
步骤612,CA在完成所有安全业务请求后,结束当前会话时,同样需要通过更新后NONCE对参数(会话句柄)进行合并,基于秘钥KEY和摘要算法ALGO进行摘要计算,将摘要计算得到的结果连同合并后的参数(会话句柄||NONCE)一起以消息认证码(MAC(ALGO(会话句柄||NONCE,KEY)))的形式携带在会话结束请求中发给TEE,以提请结束当前会话。
步骤613,TEE收到会话结束请求后,按照内部记录的NONCE,基于KEY和摘要算法ALGO,对参数(会话句柄)进行对应的摘要计算,并将得到的摘要计算结果和CA送入的摘要计算结果进行比对,如果TEE的摘要计算结果与CA送入的摘要计算结果不一致,则终止该会话结束请求,返回给CA失败结果;如果TEE的摘要计算结果与CA送入的摘要计算结果一致,则通知TA结束所有服务,并销毁该TA对应的会话句柄。
结束会话的过程中,TEE不需要再生成或保存任何NONCE。返回后CA的会话过程结束,由于其会话句柄和NONCE值已经失效,所以CA不能重复使用原有会话句柄以进行安全业务调用的请求。
5)CA结束上下文
步骤614,CA向TEE申请结束上下文,使用秘钥KEY和摘要算法ALGO对上下文句柄进行摘要计算,将摘要计算的结果连同上下文句柄一起携带在上下文终止申请请求中发送给TEE。
步骤615,TEE收到上下文终止申请请求后,按照摘要算法ALGO和秘钥KEY进行摘要计算,将得到的摘要计算结果和CA送入的摘要计算结果进行比对,如果不一致,则终止该上下文终止申请,返回给CA失败结果;如果一致,则TEE销毁内部的秘钥KEY,释放所述上下文,并做对应的环境清理,返回CA表示上下文结束的结果。
至此,所有可信交互会话流程结束。
上述过程中,在安全业务调用时,TEE在返回结果给CA之前除了更新NONCE外,还可以根据自定义的安全策略,决定是否需要更新后续会话使用的秘钥KEY以及摘要算法ALGO。秘钥KEY的更新策略,可以是基于时间间隔来更新,也可以是按CA返回次数进行更新(极端情况可以是每次返回CA都做更新)。更新的时机,可以由TEE选择,如可以在会话过程结束后,主动更新秘钥KEY,也可以在安全业务调用过程中进行动态更新。另外,如果TEE认为对应TA的权限需要较高的安全策略,那么也可以动态更新摘要算法ALGO。CA收到TEE的返回结果后,需要替换原有秘钥KEY和算法ALGO。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本申请不限制于任何特定形式的硬件和软件的结合。
以上显示和描述了本申请的基本原理和主要特征和本申请的优点。本申请不受上述实施例的限制,上述实施例和说明书中描述的只是说明本申请的原理,在不脱离本申请精神和范围的前提下,本申请还会有各种变化和改进,这些变化和改进都落入要求保护的本申请范围内。
Claims (21)
1.一种实现可信会话的方法,包括:
在客户应用CA与可信执行环境TEE之间的会话开始时,TEE验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA;
在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作;
在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作。
2.根据权利要求1所述的方法,其特征在于,在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作,包括:
在CA与TEE之间的会话进行时,TEE生成随机码并提供给所述CA;
在CA与TEE之间的会话进行时,利用所述随机码、所述摘要算法以及初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作。
3.根据权利要求1所述的方法,其特征在于,所述利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作,包括:
CA利用所述摘要算法和初始密钥将信息加密后携带在所述消息中送至TEE,所述TEE利用所述摘要算法和初始密钥验证所述消息,并在验证通过后执行相应的操作;
其中,所述信息为如下之一:
通用唯一识别码UUID;
调用参数及来自TEE的随机码;
会话句柄及来自TEE的随机码;
上下文句柄。
4.根据权利要求3所述的方法,其特征在于,
所述CA利用所述摘要算法和初始密钥将信息加密后送至所述TEE,包括:所述CA利用所述摘要算法和初始密钥对信息进行摘要计算,将摘要计算结果连同所述信息一起携带在请求消息中发送给所述TEE;
所述TEE利用所述摘要算法和初始密钥验证所述消息,包括:TEE利用所述摘要算法和初始密钥对所述请求消息中的信息进行摘要计算,将摘要计算结果与所述请求消息中携带的摘要计算结果进行比对,在摘要计算结果与所述请求消息中携带的摘要计算结果一致时验证通过。
5.根据权利要求1所述的方法,其特征在于,
所述消息为如下之一:会话申请请求、调用申请请求、会话结束请求、上下文终止请求;和/或,
所述消息为会话申请请求时,在所述校验通过后执行相应的操作,包括:获得会话句柄并生成随机码,将所述会话句柄以及所述随机码返回给CA;和/或,
所述消息为调用申请请求时,在所述校验通过后执行相应的操作,包括:执行相应可信应用TA的操作,记录所述会话句柄,并生成新的随机码连同调用结果一起返回给所述CA;和/或,
所述消息为会话结束请求时,在所述校验通过后执行相应的操作,包括:TEE销毁自身记录的所述会话句柄;和/或,
所述消息为上下文终止请求时,在所述校验通过后执行相应的操作,包括:销毁所述初始秘钥,释放上下文,并做相应的环境清理。
6.根据权利要求1所述的方法,其特征在于,
所述选择摘要算法,包括:TEE根据自身的安全策略选择摘要算法;
和/或;在CA与TEE之间的会话进行时,还包括:TEE根据自身的安全策略和所述CA需调用的TA的安全等级,更新所述摘要算法及所述初始密钥,并将更新的摘要算法及所述初始密钥提供给所述CA,以便所述CA在会话进行时使用更新后的摘要算法及初始密钥。
7.根据权利要求1所述的方法,其特征在于,
所述TEE验证CA身份的合法性之前,还包括:在TEE中预置根证书,在所述CA中预置所述根证书签名的数字证书;
所述TEE验证CA身份的合法性,包括:TEE利用CA提供的所述数字证书验证所述CA身份的合法性。
8.根据权利要求1至7任一项所述的方法,其特征在于,
所述会话开始,包括:建立上下文;和/或,
所述会话进行,包括:建立会话、至少一次调用安全服务功能、关闭会话;和/或,
所述会话结束,包括:结束上下文。
9.根据权利要求8所述的方法,其特征在于,所述在CA与TEE之间的会话开始时,TEE验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA,包括:
CA在向TEE申请上下文时向所述TEE提供在所述CA中预置的数字证书;其中,所述数字证书为在TEE中预置的根证书签名的数字证书;
TEE验证所述CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥,使用所述数字证书对应的公钥对所述初始密钥加密后连同所述摘要算法、以及为所述CA分配的上下文句柄一起送至CA;
CA使用所述数字证书对应的私钥解密出所述初始密钥,并保存所述初始密钥、摘要算法以及上下文句柄。
10.根据权利要求8所述的方法,其特征在于,所述在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作,至少包括如下之一或多项:
建立会话的过程中,CA利用所述摘要算法和初始密钥将UUID加密后携带在会话申请请求中送至所述TEE,TEE利用所述摘要算法和初始密码对所述会话申请请求进行验证,在验证通过后获得会话句柄并生成随机码,将所述会话句柄以及所述随机码返回给CA;
关闭会话的过程中,CA将所述TEE最近一次返回的随机码与所述会话句柄合并后利用所述摘要算法和初始密钥加密并携带在会话结束请求中送至所述TEE,TEE利用所述摘要算法和初始密码对所述会话结束请求进行验证,在验证通过后TEE销毁自身记录的所述会话句柄。
11.根据权利要求8所述的方法,其特征在于,所述在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作,包括:
调用安全服务功能的过程中,CA将相应的调用参数与所述TEE提供的随机码合并后利用所述摘要算法和初始密钥加密并携带在调用申请请求中送至所述TEE,TEE利用所述摘要算法和初始密码对所述调用申请请求进行验证,在验证通过后执行相应可信应用TA的操作,记录所述会话句柄,并生成新的随机码连同调用结果一起返回给所述CA。
12.根据权利要求8所述的方法,其特征在于,所述在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作,包括:
结束上下文的过程中,CA利用所述摘要算法和初始密钥对上下文句柄加密并携带在上下文终止请求中送至所述TEE,TEE利用所述摘要算法和初始密码对所述上下文终止请求进行验证,在验证通过后销毁所述初始秘钥,释放上下文,并做相应的环境清理。
13.一种实现可信会话的装置,包括:可信执行环境TEE操作系统和非可信执行环境REE操作系统,所述REE上安装有客户应用CA,所述TEE上安装有可信应用TA,所述CA通过所述TEE调用所述TA实现安全服务功能;其特征在于,
所述TEE操作系统,用于在CA与TEE之间的会话开始时,验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA;以及,用于在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作;在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作。
14.根据权利要求13所述的装置,其特征在于,
所述TEE操作系统,还用于在CA与TEE之间的会话进行时,生成随机码并提供给所述CA;在CA与TEE之间的会话进行时,利用所述随机码、所述摘要算法以及初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作。
15.根据权利要求13所述的装置,其特征在于,
所述CA,用于利用所述摘要算法和初始密钥将信息加密后携带在所述消息中送至TEE;
所述TEE操作系统,用于利用所述摘要算法和初始密钥验证所述消息,并在验证通过后执行相应的操作;
所述信息为如下之一:
通用唯一识别码UUID;
调用参数及来自TEE的随机码;
会话句柄及来自TEE的随机码;
上下文句柄。
16.根据权利要求13所述的装置,其特征在于,
所述消息为如下之一:会话申请请求、调用申请请求、会话结束请求、上下文终止请求;和/或,
所述消息为会话申请请求时,所述TEE操作系统用于在所述校验通过后执行相应的操作,包括:获得会话句柄并生成随机码,将所述会话句柄以及所述随机码返回给CA;和/或,
所述消息为调用申请请求时,所述TEE操作系统用于在所述校验通过后执行相应的操作,包括:执行相应可信应用TA的操作,记录所述会话句柄,并生成新的随机码连同调用结果一起返回给所述CA;和/或,
所述消息为会话结束请求时,所述TEE操作系统用于在所述校验通过后执行相应的操作,包括:TEE销毁自身记录的所述会话句柄;和/或,
所述消息为上下文终止请求时,所述TEE操作系统用于在所述校验通过后执行相应的操作,包括:销毁所述初始秘钥,释放上下文,并做相应的环境清理。
17.根据权利要求13所述的装置,其特征在于,
所述CA,还用于预置根证书签名的数字证书;
所述TEE操作系统,用于预置有所述根证书;以及,用于利用所述CA提供的所述数字证书验证所述CA身份的合法性。
18.根据权利要求13所述的装置,其特征在于,
所述TEE操作系统,具体用于根据自身的安全策略选择摘要算法;
和/或;所述TEE操作系统,还用于在CA与TEE之间的会话进行时,根据自身的安全策略和所述CA需调用的TA的安全等级,更新所述摘要算法及所述初始密码,并将更新的摘要算法及所述初始密钥提供给所述CA,以便所述CA在会话进行时使用更新后的摘要算法及初始密钥。
19.根据权利要求13至18任一项所述的装置,其特征在于,
所述会话开始,包括:建立上下文;和/或,
所述会话进行,包括:建立会话、至少一次调用安全服务功能、关闭会话;和/或,
所述会话结束,包括:结束上下文。
20.一种计算设备,包括:
存储有实现可信会话程序的存储器;
处理器,配置为执行所述实现可信会话程序以执行下述操作:在客户应用CA与可信执行环境TEE之间的会话开始时,TEE验证CA身份的合法性,并在验证为合法时选择摘要算法、生成初始密钥并提供给所述CA;在CA与TEE之间的会话进行时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在所述校验通过后执行相应的操作;在CA与TEE之间的会话结束时,利用所述摘要算法和初始密钥对所述CA送至TEE的消息进行校验,并在校验通过后执行相应的操作。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有实现可信会话的程序,所述实现可信会话的程序被处理器执行时实现如权利要求1至12中任一项所述实现可信会话的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710500986.2A CN109150811B (zh) | 2017-06-27 | 2017-06-27 | 一种实现可信会话的方法及装置、计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710500986.2A CN109150811B (zh) | 2017-06-27 | 2017-06-27 | 一种实现可信会话的方法及装置、计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109150811A CN109150811A (zh) | 2019-01-04 |
CN109150811B true CN109150811B (zh) | 2021-05-28 |
Family
ID=64805035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710500986.2A Active CN109150811B (zh) | 2017-06-27 | 2017-06-27 | 一种实现可信会话的方法及装置、计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109150811B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021031084A1 (en) * | 2019-08-19 | 2021-02-25 | Nokia Technologies Oy | Verifiability for execution in trusted execution environment |
CN111431718B (zh) * | 2020-04-01 | 2022-12-27 | 中国人民解放军国防科技大学 | 基于tee扩展的计算机通用安全加密转换层方法及系统 |
CN112713987B (zh) * | 2020-12-10 | 2022-07-26 | 北京握奇数据股份有限公司 | 一种用于在ca与ta之间建立会话密钥的系统和方法 |
CN114491565B (zh) * | 2022-03-31 | 2022-07-05 | 飞腾信息技术有限公司 | 固件安全启动方法、装置、计算设备和可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102195957A (zh) * | 2010-03-19 | 2011-09-21 | 华为技术有限公司 | 一种资源共享方法、装置及系统 |
CN104010044A (zh) * | 2014-06-12 | 2014-08-27 | 北京握奇数据系统有限公司 | 基于可信执行环境技术的应用受限安装方法、管理器和终端 |
CN105978917A (zh) * | 2016-07-19 | 2016-09-28 | 恒宝股份有限公司 | 一种用于可信应用安全认证的系统和方法 |
-
2017
- 2017-06-27 CN CN201710500986.2A patent/CN109150811B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102195957A (zh) * | 2010-03-19 | 2011-09-21 | 华为技术有限公司 | 一种资源共享方法、装置及系统 |
CN104010044A (zh) * | 2014-06-12 | 2014-08-27 | 北京握奇数据系统有限公司 | 基于可信执行环境技术的应用受限安装方法、管理器和终端 |
CN105978917A (zh) * | 2016-07-19 | 2016-09-28 | 恒宝股份有限公司 | 一种用于可信应用安全认证的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109150811A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106850699B (zh) | 一种移动终端登录认证方法及系统 | |
CN113656806B (zh) | 区块链一体机的可信启动方法及装置 | |
CN106991298B (zh) | 应用程序对接口的访问方法、授权请求方法及装置 | |
US7526649B2 (en) | Session key exchange | |
CN109218260B (zh) | 一种基于可信任环境的认证保护系统及方法 | |
CN110784491A (zh) | 一种物联网安全管理系统 | |
US20140270179A1 (en) | Method and system for key generation, backup, and migration based on trusted computing | |
WO2020192406A1 (zh) | 数据存储、验证方法及装置 | |
CN111708991A (zh) | 服务的授权方法、装置、计算机设备和存储介质 | |
CN109150811B (zh) | 一种实现可信会话的方法及装置、计算设备 | |
CN108199827B (zh) | 客户端代码完整性校验方法、存储介质、电子设备及系统 | |
JP2010514000A (ja) | 電子装置にプログラム状態データをセキュアに記憶するための方法 | |
EP4222915A1 (en) | Providing cryptographically secure post-secrets-provisioning services | |
WO2021190197A1 (zh) | 生物支付设备的认证方法、装置、计算机设备和存储介质 | |
CN113609514B (zh) | 一种云硬盘加解密方法、装置、系统及可读存储介质 | |
CN112765637A (zh) | 数据处理方法、密码服务装置和电子设备 | |
WO2021103839A1 (zh) | 安全加固架构、加解密方法、车联网终端和车辆 | |
CN109274646B (zh) | 基于kmip协议的密钥管理客户端服务端方法和系统及介质 | |
CN112236770A (zh) | 数据处理 | |
CN106992978B (zh) | 网络安全管理方法及服务器 | |
CN117453343A (zh) | 虚拟机度量、机密计算认证方法、设备、系统及存储介质 | |
CN116680687A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN110990111A (zh) | 一种云环境下虚拟可信根的校验方法和系统 | |
WO2022206203A1 (en) | Connection resilient multi-factor authentication | |
CN117063174A (zh) | 用于通过基于app的身份的app间相互信任的安全模块及方法 |
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 |