CN111125705A - 一种能力开放方法及装置 - Google Patents

一种能力开放方法及装置 Download PDF

Info

Publication number
CN111125705A
CN111125705A CN201811478516.1A CN201811478516A CN111125705A CN 111125705 A CN111125705 A CN 111125705A CN 201811478516 A CN201811478516 A CN 201811478516A CN 111125705 A CN111125705 A CN 111125705A
Authority
CN
China
Prior art keywords
tee
security
session
attribute information
attribute
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.)
Granted
Application number
CN201811478516.1A
Other languages
English (en)
Other versions
CN111125705B (zh
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.)
Huawei Device Co Ltd
Original Assignee
Huawei Device 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 Huawei Device Co Ltd filed Critical Huawei Device Co Ltd
Priority to PCT/CN2019/112731 priority Critical patent/WO2020088323A1/zh
Priority to EP19879640.1A priority patent/EP3866385A4/en
Priority to US17/290,497 priority patent/US12010250B2/en
Publication of CN111125705A publication Critical patent/CN111125705A/zh
Application granted granted Critical
Publication of CN111125705B publication Critical patent/CN111125705B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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
    • H04L9/3268Cryptographic 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 using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3242Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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 digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种能力开放方法及装置,用以解决现有技术中通过TEE+SE安全架构执行业务的安全性不能得到保证的问题。本申请中,SE与TEE建立用于通信的会话,SE通过该会话向TEE发送用于获取TEE的安全证明的获取指令,TEE通过该会话接收来自SE的该获取指令,TEE接收到该获取指令后,根据TEE的属性信息生成安全证明,并通过该会话向SE发送生成的安全证明,SE通过该会话接收TEE发送的安全证明后,SE根据该安全证明以及预设的安全策略,确定TEE处于安全状态,SE在确定TEE处于安全状态之后,SE将第一能力开放给SE内的第三方业务,其中,第一能力基于TEE的第二能力实现。

Description

一种能力开放方法及装置
本申请要求在2018年11月01日提交中国专利局、申请号为201811297353.7、发明名称为“一种SE验证TEE并激活TUI能力的方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及终端安全验证技术领域,尤其涉及一种能力开放方法及装置。
背景技术
为保证终端执行业务的安全性,在终端中引入了可信执行环境(trustedexecution environment,TEE)+安全单元(secure element,SE)安全架构,该TEE+SE安全架构通过安全级别较高的SE配合安全级别低于该SE的TEE执行终端中对安全性要求较高的业务。
现有技术中,当通过TEE+SE安全架构执行业务时,SE与TEE配合执行该业务,由于该TEE的安全级别低于该SE,这样,在TEE自身存在安全漏洞的情况下,可能会导致通过TEE+SE安全架构执行业务的安全性不能得到保证。
发明内容
本申请实施例提供一种能力开放方法及装置,用以解决现有技术中通过TEE+SE安全架构执行业务的安全性不能得到保证的问题。
第一方面,本申请实施例提供一种能力开放方法,该方法可由SE或能够支持SE实现该方法的装置(例如芯片***)执行,在本申请中,以由SE执行该方法为例进行描述。该方法包括:SE与TEE建立用于通信的会话,SE通过该会话向TEE发送用于获取TEE的安全证明的获取指令,TEE通过该会话接收来自SE的该获取指令,TEE接收到该获取指令后,根据TEE的属性信息生成安全证明,并通过该会话向SE发送生成的安全证明,SE通过该会话接收TEE发送的安全证明后,SE根据该安全证明以及预设的安全策略,确定TEE处于安全状态,SE在确定TEE处于安全状态之后,SE将第一能力开放给SE内的第三方业务,其中,第一能力基于TEE的第二能力实现。
通过上述方法,当通过TEE+SE安全架构执行业务时,SE可以在执行业务之前与TEE建立用于通信的会话,可通过该会话请求获取TEE的安全证明,进而可根据TEE的安全证明以及预设的安全策略,确定TEE处于安全状态,并在确定TEE处于安全状态之后,将第一能力开放给SE内的第三方业务,这样,在保证TEE自身处于安全状态的情况下,才开放能力给SE内的第三方业务,可以保证在TEE+SE安全架构下执行业务的安全性。
在一种可能的设计中,TEE可以使用密钥对TEE的属性信息进行数字签名或消息认证码(message authentication code,MAC)操作,生成安全证明。生成的安全证明中可以包括TEE的属性信息。密钥可以包括TEE的私钥、预先配置的密钥或者TEE与SE协商的密钥。
在一种可能的设计中,TEE的安全证明中可以包括TEE的属性信息。在这种设计中,SE可以通过确定TEE的属性信息满足预设的安全策略,来确定TEE处于安全状态。这样,可以由SE自身设定TEE处于安全状态的条件,使得TEE在满足SE认定的安全状态的情况下,SE才能够将基于TEE的第二能力实现的第一能力开放给SE内的第三方业务,可提高业务执行的安全性。
本申请实施例中,对TEE的第二能力不做限定。在一种可能的设计中,TEE的第二能力可以包括可信用户界面(trusted user interface,TUI)能力,在该种设计中,TEE的属性信息可以包括TEE的平台属性信息和/或TUI能力的属性信息。其中,TEE的平台属性信息可以包括但不限于以下至少一项:TEE的标识、TEE的供应商或开发者标识、TEE的操作***版本、TEE的启动状态、TEE的生命周期状态、TEE应用程序接口API版本信息、TEE的防回滚等级或TEE中交互应用的版本信息,交互应用为TEE中用于与SE进行通信的可信应用。TUI能力的属性信息包括TUI的外设类型和/或TUI的外设属性。
本申请实施例中,SE与TEE建立用于通信的会话,可以是由SE主动发起建立,也可以是由TEE主动发起建立。本申请着重说明由SE主动发起建立该会话的方法。
在一种可能的设计中,由SE主动发起建立用于与TEE通信的会话。SE向TEE发送会话建立请求消息,会话建立请求消息用于请求与TEE建立会话,SE接收TEE发送的会话建立响应消息,会话建立响应消息用于指示确认建立该会话。通过该方法,由SE主动发起建立会话的过程,可以在SE有通信需求的情况下与TEE建立会话,可避免不必要的通信资源的浪费。
在一种可能的设计中,若由SE主动发起会话建立,则在SE向TEE发送会话建立请求消息之前,SE还可以通过通信模块触发中断信号,中断信号用于指示TEE接收会话建立请求消息。通过该方法,SE在发起会话建立之前,可以触发一个中断信号,通过该中断信号来指示TEE接收SE即将发送的会话建立请求消息,可使TEE更准确的接收该会话建立请求消息。
在一种可能的设计中,SE在根据安全证明以及预设的安全策略确定TEE处于安全状态之前,还可以对安全证明进行认证,确定安全证明是由TEE生成,且未被篡改。这样,SE既要对TEE发送的安全证明进行安全验证,保证该安全证明是由该TEE生成,且未被篡改,即,保证该安全证明的完整性和安全性,还要确定TEE处于安全状态,通过该方法实现对TEE的双重安全验证,使得对TEE的验证结果更准确。
在一种可能的设计中,SE在向TEE发送的获取指令中可以包括TEE的属性标识,该获取指令用于指示TEE使用TEE的属性标识对应的TEE属性生成安全证明。在该种设计中,TEE可以使用密钥对TEE的属性标识对应的TEE属性进行数字签名或MAC操作,生成安全证明。通过该方法,SE在向TEE发送的获取指令中携带TEE的属性标识,可以指示SE需要验证的TEE的属性,而不需要TEE发送其全部的属性信息,可节省信令开销。
在一种可能的设计中,SE确定TEE处于安全状态之后,还可以与TEE协商通信密钥,协商的该通信密钥与TEE的状态绑定,该通信密钥用于SE与TEE进行通信,当SE确定TEE重新启动或TEE的属性改变时,删除通信密钥。通过该方法,SE在验证TEE处于安全状态之后,与TEE协商用于通信的通信密钥,该通信密钥与TEE的状态绑定,也就是说,只要TEE的状态未发生改变,TEE与SE的通信一直使用该通信密钥,SE不需要每次通信都去验证TEE的安全状态,可提高通信效率。此外,当SE确定TEE状态改变时,可以删除通信密钥,再次使用本申请提供的方法对TEE进行安全验证,并重新协商通信密钥。
第二方面,本申请实施例提供一种能力开放装置,所述装置具有实现上述第一方面方法示例中SE行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可能的设计中,所述装置包括通信模块以及处理模块,在一些可能的实现中还可以包括存储模块,这些模块可以执行上述第一方面中方法示例中相应功能,具体参见方法示例中的详细描述,此处不做赘述。
在另一种可能的设计中,所述装置的结构中包括处理器、存储器以及收发器,其中,所述处理器、所述存储器以及所述收发器可以通过总线连接;所述处理器调用存储在所述存储器中的指令,执行上述方法。
第三方面,本申请实施例提供一种能力开放装置,所述装置具有实现上述第一方面方法示例中TEE行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可能的设计中,所述装置包括通信模块以及处理模块,在一些可能的实现中还可以包括存储模块,这些模块可以执行上述第一方面中方法示例中相应功能,具体参见方法示例中的详细描述,此处不做赘述。
在另一种可能的设计中,所述装置的结构中包括处理器、存储器以及收发器,其中,所述处理器、所述存储器以及所述收发器可以通过总线连接;所述处理器调用存储在所述存储器中的指令,执行上述方法。
第四方面,本申请实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时,使所述计算机执行上述第一方面或第一方面的任意一种设计提供的方法。
第五方面,本申请实施例中还提供一种计算机程序产品,所述计算机程序产品中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意一种设计提供的方法。
附图说明
图1为现有的一种能力开放架构示意图;
图2为本申请实施例提供的一种能力开放方法的实施流程图;
图3为本申请实施例提供的一种架构示意图;
图4为本申请实施例提供的另一种能力开放方法的实施流程图;
图5为本申请实施例提供的一种能力开放装置结构示意图;
图6为本申请实施例提供的另一种能力开放装置结构示意图。
具体实施方式
下面结合说明书附图对本申请进行具体说明。
首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
1)、终端,可以是指向用户提供语音和/或数据连通性的设备,又称之为用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。例如,具有无线连接功能的手持式设备、车载设备等。目前,一些终端的举例为:手机(mobile phone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internetdevice,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmentedreality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(selfdriving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等。
2)、富执行环境(rich execution environment,REE),是指终端中不具备特定安全功能的运行环境。例如,Android操作***就是一种富执行环境。
3)、可信执行环境(trusted execution environment)TEE,是与普通执行环境(或者称之为富执行环境(rich execution environment,REE))共同存在于终端中的运行环境。
TEE通过硬件的支撑,具有安全能力并且能够满足一定的安全需求,可实现与REE相隔离的运行机制。TEE有自身的运行空间,定义了严格的保护措施,因此比REE的安全级别更高,能够保护TEE中的资产(如数据,软件等)免受软件攻击,抵抗特定类型的安全威胁。只有授权的安全软件才能在TEE中执行,同时它也保护了安全软件的资源和数据的机密性。相比REE,由于其隔离和权限控制等保护机制,TEE能够更好的保护数据和资源的安全性。
4)、可信应用(trusted application,TA),是指运行在TEE中的应用,能够为运行在TEE之外的客户端应用(client application,CA)提供安全相关的服务。
5)、客户端应用(client application,CA),通常是指运行在REE中的应用,但在某些TA调用TA的情况下,主动发起调用的TA也可作为CA。CA可以通过客户应用程序编程接口(application programming interface,API)对TA进行调用并使TA执行相应的安全操作。
6)、安全单元(secure element,SE),是指具备防篡改、防硬件攻击能力的硬件单元,具备独立的处理器,能够为在其中运行的小程序(applet)或第三方业务提供安全的运行环境,并且能够保证存储在其中的资产的安全性和机密性。常见的安全单元有嵌入式安全单元(embedded secure element,eSE),集成到手机***级芯片(system on chip,SoC)之中的inSE,通用集成电路卡(universal integrated circuit card,UICC)等。
7)、可信用户界面(trusted user interface,TUI),是TEE操作***提供的一项安全功能,可以理解为是由TEE控制的安全显示界面,能够为在TEE中运行的各TA提供可信的用户交互界面,可确保在被TA使用时,内容无法被REE甚至其他TA获取,可提升业务的安全性。全球平台组织(global platform)对TUI的常用API进行了标准化,方便TA开发者利用这些API进行TUI的开发。通过TUI,可以实现安全显示、安全输入、安全指示标记三项最基础的安全用户交互功能。在基于TEE+SE的安全架构下开展的业务,通常TEE提供的就是TUI的能力。比如在金融领域,央行的手机盾规范中,就明确要求通过TUI保障输密、签名内容显示界面的安全性。
8)、信任根(root of trust),是指共同存在于同一个平台上的计算引擎、代码以及可能存在的一些数据,能够提供安全服务。没有其他实体能够为信任根中代码和数据的初始状态提供可信的证明(以摘要或其他形式)。比较通俗的理解,某些代码或硬件已经被加固得足够好,以至于不太可能被破坏,或者根本不能被修改,或者不能在没有密码凭证的情况下进行修改,因此这些代码或硬件能够作为信任的基点,相关领域称为信任根。信任根一般是设备启动后加载到随机存取存储器(random access memory,RAM)或者直接在芯片内运行的第一块代码。以安全启动过程为例,基于信任根,可以延伸出一个信任链——信任根保存了下一模块/启动代码(bootloader)的签名,在启动过程中运行下一模块之前,信任根中的代码首先验证下一模块的签名(确保只有被授权且未被篡改的代码可以被执行),验证通过后才允许下一模块执行;同理,经过验证的模块继续验证其下一级模块的签名,这样逐级验证直到***完全启动。在这个场景下,启动过程从信任根开始,扩展出了一条安全启动的信任链。
基于信任根可以提供的安全服务包括鉴别(authentication),授权(authorization),加密(confidentiality),识别(identification),完整性(integrity)验证,度量(measurement),报告(reporting),升级(update),或核实(verification)等。
其中,度量可以提供一种可靠地生成平台特性(platform characteristics)的能力。报告可以以一种不可否认的方式报告平台特性。将度量和报告结合,可以让设备生成安全证明,远端服务器通过对设备上报的安全证明进行验证,即可判断设备软硬件、固件的状态和可信性。
9)、可信执行环境(trusted execution environment,TEE)+安全单元(secureelement,SE)安全架构,是指通过TEE与SE结合共同为应用提供安全服务的架构。
10)、手机盾,是一种用手机实现银行U盾(usbkey)功能的产品或者应用程序。手机盾采用TEE+SE的安全架构,手机的SE可以为手机盾提供密码运算和CA数字证书等全部功能所需的高安全环境。手机盾为移动互联网应用提供了密码运算支撑能力,用于身份认证、电子签名、数据保护等。
下面以手机盾业务为例,介绍现有TEE+SE安全架构下的业务执行流程。在TEE+SE安全架构下,手机盾签名密钥被保存在SE中,所有签名操作都在SE内执行,进而确保签名的过程达到金融级安全。用户可以在手机上执行一些大额交易或其他高敏感操作,当一笔业务需要手机盾签名才能进行时,待签名信息被发送到TEE,通过TUI显示并由用户进行确认,用户确认无误后输入手机盾个人通用身份标识码(personal identification number,PIN),该PIN被发送到SE内的签名小程序进行验证,验证通过后,用户确认过的交易信息被发送到小程序进行签名,通过数字签名技术确保交易不可抵赖。
在上述手机盾业务执行流程中,TUI有两个重要作用:1、确保用户输入PIN的安全性,仅有手机盾才能访问,REE侧的应用和TEE内的其他应用都无法通过读屏,读键盘等方式获取用户输入,确保PIN不会泄露,同时也能保证PIN是实时输入的。2、保证“所见即所签”(或者反过来说“所签即所见”),即,通过TUI保证送入手机盾进行签名的交易信息,不会被篡改或替换,这样,在用户确认交易信息无误后,送入到SE内进行签名的信息就是用户确认过的信息。目前,业界普遍认为REE侧是不安全的,各种攻击方式都可以实现,如果没有TEE的引入,交易信息、用户PIN等都有可能被恶意程序获取、篡改,进而恶意程序/黑客能够跳过用户进行交易,或者是修改交易内容进行欺诈。显然,TUI的引入,对REE侧常规的恶意攻击手段起到明显的防御作用。
11)、在本申请的描述中,除非另有说明,“多个”是指两个或两个以上,其它量词与之类似。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
参阅图1所示,其为现有的一种能力开放架构示意图。如图1所示,该架构包括三个部分,分别为SE、TEE以及REE,其中,REE中可运行CA,TEE中可运行TA,SE中可运行第三方业务(也可以称之为第三方小程序(applet)),此外,REE中还可以包括SE访问接口,SE访问接口可用于访问SE中的第三方业务,TEE中还可以包括SE驱动,SE驱动实现与SE的通信能力,TEE中还可以包括TEE操作***(TEE OS),TEE OS用于管理以及维护TEE的运行,TEE OS可以为SE提供一些TEE的功能,例如,可以提供TUI能力,SE中还可以包括通信模块,SE可通过该通信模块向TEE发送消息或者接收TEE发送的消息。应理解,图1所示的架构中仅示出部分模块,实际应用中该架构还可以包括更多或者更少的模块,本申请仅以图1中架构示意,而不引以为限。
在基于图1所示的架构执行业务时,SE可以与TEE配合执行该业务,TEE主要提供TUI能力,SE主要执行安全或密码学相关的运算。在SE使用TEE的TUI能力时,TEE内的TA通过TUI与用户交互完成后,通过SE驱动向SE的通信模块返回交互结果,SE通过通信模块接收到该交互结果后直接执行,由于该TEE的安全级别低于该SE,这样,在TEE自身存在安全漏洞的情况下,可能会导致通过TEE+SE安全架构执行业务的安全性不能得到保证。
基于上述存在的问题,本申请提供一种能力开放方法,用以解决现有技术中通过TEE+SE安全架构执行业务的安全性不能得到保证的问题。
参阅图2所示,其为本申请实施例提供的一种能力开放方法的实施流程图。参阅图2所示,该方法包括:
S101:SE与TEE建立用于通信的会话。
本申请实施例中,SE与TEE建立用于通信的会话,可以由SE主动发起建立,也可以由TEE主动发起建立。由TEE主动发起建立该会话的方法中,TEE在检测/扫描到可建立连接的SE后,可通过SE驱动主动与SE建立会话,向SE发送建立会话的请求,SE被动响应该建立会话的请求,本申请对由TEE主动发起建立该会话的方法不做详述,本申请着重说明由SE主动发起建立该会话的方法。
当由SE主动发起建立用于与TEE通信的会话时,SE向TEE发送会话建立请求消息,该会话建立请求消息用于请求与TEE建立会话,TEE接收到该会话建立请求消息之后,向SE发送会话建立响应消息,该会话建立响应消息用于指示确认建立会话,SE接收TEE发送的会话建立响应消息,完成与TEE的会话建立。通过该方法,由SE主动发起建立会话的过程,可以在SE有通信需求的情况下与TEE建立会话,可避免不必要的通信资源浪费。本申请中对SE主动发起建立会话的时机不做限定。在一种可能的实现方式中,上述由SE主动发起建立会话的流程,可以在SE的运行环境初始化的过程(可理解为SE的上电启动过程)中,或在SE的运行环境初始化结束的一段时间后执行。
在一个可能的实例中,若由SE主动发起会话建立,则在SE向TEE发送会话建立请求消息之前,SE还可以通过通信模块触发中断信号,该中断信号用于指示TEE接收会话建立请求消息。可以理解为,该中断信号可作为由SE主动发起会话建立的信号,这样,SE一旦通过底层的通信模块触发该中断信号,SE与TEE均可以获知SE即将主动发起会话建立,进而可做好会话建立的准备,在SE和TEE的上层通过TEE和SE交互的标准API接口实现指令的交互,可使TEE更准确的接收该会话建立请求消息。
可选的,上述用于触发中断信号的通信模块可以是核间通信(interprocesscommunication,IPC)模块或者其它底层硬件模块。
本申请中,SE向TEE发送的会话建立请求消息,可以是为SE发起会话建立专门设置的IPC指令,可以通过IPC指令的标志位指示SE请求与TEE建立会话。当TEE通过mailbox接收该IPC指令时,执行接收SE发送的会话建立请求消息。
本申请实施例中,为实现由SE主动发起会话建立并使用TUI,可以在SE内专门设置TUI代理(TUI agent),此外,为配合实现SE使用TUI,可以在TEE内专门设置应用模块(SE-TA),如图3所示。具体功能详见下文描述。
可选的,SE与TEE建立用于通信的会话,可以由SE内的TUI代理(TUI agent)与TEE内的SE-TA,通过TEE和SE交互的标准API建立该会话。
一种实现方式中,由SE内的TUI代理与TEE内的SE-TA建立该会话的过程中,TEE内的SE驱动(可以作为SE的通信代理)在获取到中断信号后,解析该中断信号,并触发TEE内的SE-TA通过TEE与SE之间的API与SE内的TUI代理建立会话。
另一种实现方式中,由SE内的TUI代理与TEE内的SE-TA建立该会话的过程中,在SE内设置/实现客户端API(client API)通讯模块,SE内的TUI代理通过标准的TA访问接口,作为客户端(client)主动向TEE内的SE-TA发送建立会话的指令。
又一种实现方式中,由SE内的TUI代理与TEE内的SE-TA建立该会话的过程中,TEE内的SE驱动在获取到中断信号后,作为SE的通信代理,由SE驱动作为client通过clientAPI与TEE内的SE-TA建立会话。
S102:SE通过该会话向TEE发送用于获取TEE的安全证明的获取指令,TEE通过该会话接收来自SE的该获取指令。
一个可能的实例中,SE可以通过SE内的TUI agent向TEE内的SE-TA发送该获取指令,TEE通过TEE内的SE-TA接收该获取指令。在该实例中,TEE内的SE-TA在接收到该获取指令后,可以验证TUI agent的标识信息,待验证通过后获取TEE的属性信息生成安全证明。
本申请实施例中,TEE的属性信息可以包括TEE的平台属性信息和/或TUI能力的属性信息。其中,TEE的平台属性信息可以包括但不限于以下至少一项:TEE的标识、TEE的供应商或开发者标识、TEE的操作***版本、TEE的启动状态、TEE的生命周期状态、TEE应用程序接口API版本信息、TEE的防回滚等级或TEE中交互应用的版本信息,交互应用为TEE中用于与SE进行通信的可信应用。TUI能力的属性信息可以包括TUI的外设类型和/或TUI的外设属性。其中,TEE的标识用于唯一标识TEE。TEE的供应商或开发者标识用于唯一标识TEE的供应商或开发者。
一些可能的实例中,TEE的平台属性信息还可以包括SE-TA的版本信息、设备证书、SE-TA的应用证书等。
其中,TEE的启动状态可以包括TEE安全启动或TEE未安全启动。
其中,TUI的外设属性可以包括TEE控制(TEE controllable)或TEE独占(TEEownable)。当TUI的外设属性为TEE controllable时,该TUI的外设可以由TEE和REE共同使用,但由TEE控制。当TUI的外设属性为TEE ownable时,该TUI的外设完全由TEE独占。
可选的,该获取指令中可以包括TEE的属性标识,在该种情况下,该获取指令用于指示TEE使用TEE的属性标识对应的TEE属性生成安全证明。
需要说明的是,当该获取指令中包括TEE的属性标识时,该TEE的属性标识可以是由SE根据预设的安全策略确定的。例如,若预设的安全策略包括TEE的操作***版本需要为某特定版本之上的版本,则该TEE的属性标识可以包括TEE的操作***版本的标识。
S103:TEE接收到该获取指令后,根据TEE的属性信息生成安全证明。
一种可能的实现方式,该获取指令中不包括TEE的属性标识,在这种情况下,TEE根据自身能够获取到的全部属性信息或者预设的属性信息生成安全证明。具体的,TEE使用密钥对TEE的属性信息进行数字签名或消息认证码(message authentication code,MAC)操作,生成安全证明。TEE使用密钥对TEE的属性信息进行MAC操作,可以理解为,TEE使用密钥生成MAC,通过MAC确保TEE的属性信息的完整性。
其中,该安全证明中包括TEE的属性信息,密钥包括TEE的私钥、预先配置的密钥或者TEE与SE协商的密钥。密钥可以是对称密钥或非对称密钥。
另一种可能的实现方式,该获取指令中包括TEE的属性标识,在这种情况下,TEE根据该获取指令中包括的TEE的属性标识对应的TEE属性生成安全证明。具体的,TEE查询/获取属性标识对应的TEE属性,并按照预设格式排列,使用密钥对TEE的属性标识对应的TEE属性进行数字签名或MAC操作,生成安全证明。该安全证明中包括TEE的属性标识对应的TEE属性信息。
可选的,TEE还可以使用TEE提供的信任根(root of trust,RoT)服务接口(如度量、报告)生成TEE的安全证明。
可以理解,TEE可以通过TEE内的SE-TA生成安全证明。
S104:TEE通过该会话向SE发送生成的安全证明,SE通过该会话接收TEE发送的安全证明。
可以理解,TEE可以通过TEE内的SE-TA向SE内的TUI agent发送该生成的安全证明。
S105:SE通过该会话接收TEE发送的安全证明后,SE根据该安全证明以及预设的安全策略,确定TEE处于安全状态。
一种实现方式中,安全证明中包括TEE的属性信息,SE在确定TEE的属性信息满足预设的安全策略时,确定TEE处于安全状态。本申请中,安全策略的数目可以是一条,也可以是多条。当安全策略的数目为多条时,SE在确定TEE的属性信息满足全部安全策略时,确定TEE处于安全状态。
可以理解SE可以通过SE内的TUI agent确定TEE处于安全状态。
下面以几个实例对SE如何通过SE内的TUI agent,根据TEE的属性信息以及预设的安全策略确定TEE处于安全状态进行说明。
例如,SE内的TUI agent预设的安全策略为仅当TUI的外设属性为TEE ownable时确定TEE安全,这样,当SE确定TUI的外设属性为TEE独占时,可以确定TEE处于安全状态。
又例如,SE内的TUI agent预设的安全策略为当TEE的操作***版本为20180101xxx以上时确定TEE安全,这样,当SE确定TEE的操作***版本为20180101xxx以上时,可以确定TEE处于安全状态。
S106:SE在确定TEE处于安全状态之后,SE将第一能力开放给SE内的第三方业务。其中,第一能力基于TEE的第二能力实现,可以理解为第一能力基于第二能力封装得到。本申请实施例中,对TEE的第二能力不做限定,TEE的第二能力可以包括TUI能力。
本申请实施例中,SE在确定TEE处于安全状态之后,还可以通知TEE完成认证过程。
以TEE的第二能力为TUI能力为例,SE在确定TEE处于安全状态之后,可以将基于TEE的TUI能力实现的第一能力(在SE内可以称之为SE的TUI服务)注册为SE的全局服务(global service)开放给SE内的第三方业务。
其中,将第一能力注册为SE的global service之后,SE内的第三方业务均可以调用该第一能力。
在一个可能的实例中,SE可以发送广播给注册需要使用该global service的第三方业务。
本申请实施例中,SE接收到TEE的安全证明后,还可以存储该安全证明。在第三方业务注册使用该global service时,响应第三方业务的请求,可以同时将该安全证明发送给第三方业务。此时第三方业务也可以设置一些安全策略,用于判断是否使用该globalservice。
通过上述方法,当通过TEE+SE安全架构执行业务时,SE可以在执行业务之前与TEE建立用于通信的会话,可通过该会话请求获取TEE的安全证明,进而可根据TEE的安全证明以及预设的安全策略,确定TEE处于安全状态,并在确定TEE处于安全状态之后,将第一能力开放给SE内的第三方业务,这样,在保证TEE自身处于安全状态的情况下,才开放能力给SE内的第三方业务,可以保证在TEE+SE安全架构下执行业务的安全性。
一个可能的实例中,SE在根据安全证明以及预设的安全策略确定TEE处于安全状态之前,还可以对安全证明进行认证,确定安全证明是由TEE生成,且未被篡改。可以理解为,SE对安全证明进行认证,确保安全证明来自合法的TEE。
以通过SE内的TUI agent对安全证明进行认证为例。一种可能的实现方式中,TUIagent可以调用预置的验证密钥验证安全证明,确保安全证明来自合法或自己信任的TEE。
通过本申请实施例提供的方法,SE既要对TEE发送的安全证明进行安全验证,保证该安全证明是由该TEE生成,且未被篡改,即,保证该安全证明的完整性和真实性,还要基于安全策略确定TEE处于SE认可的安全状态,通过该方法实现对TEE的双重安全验证,使得SE使用并开放TEE能力时更高的安全保障。
一个可能的实例中,SE确定TEE处于安全状态之后,还可以与TEE协商通信密钥,协商的该通信密钥与TEE的状态绑定,该通信密钥用于SE在后续使用第二能力过程中进行加密,当SE确定TEE重新启动或TEE的属性改变时,删除通信密钥。
通过该方法,SE在验证TEE处于安全状态之后,与TEE协商用于通信的通信密钥,该通信密钥与TEE的状态绑定,也就是说,只要TEE的状态未发生改变,TEE与SE的通信一直使用该通信密钥,SE不需要每次通信都去验证TEE的安全状态,可提高通信效率。此外,当SE确定TEE状态改变时,可以删除通信密钥,再次使用本申请提供的方法对TEE进行安全验证,并重新协商通信密钥。
可选的,该通信密钥可以包括基于该通信密钥导出的会话密钥。
需要说明的是,当SE所在的设备存在多个TEE时,SE可以获取多个TEE的安全证明,并分别对多个TEE的安全证明进行验证,确定满足安全策略的多个TEE。在确定出多个满足安全策略的TEE之后,还可以分别基于这些满足安全策略的TEE的TUI能力实现对应的第一能力。SE在将第一能力开放给SE内的第三方业务时,可以显示有多个基于TEE的TUI能力实现的第一能力可用,由第三方业务选择使用哪个第一能力。
本申请实施例上述提供的是一种在SE对TEE进行安全验证的方法,但是本申请不限定只能在SE对TEE进行安全验证。一种可能的实现方式中,SE可以将预设的安全策略发送至TEE,在TEE完成TEE对SE的认证,并向SE发送认证结果,若验证结果为验证通过,即,TEE的属性满足SE预设的安全策略,则SE在接收到该认证结果后,可以将第一能力开放给SE内的第三方业务。
下面结合图3-图4,对本申请实施例提供的能力开放方法进行举例说明。
参阅图3所示,为本申请实施例提供的一种架构示意图,图3中架构除包括图1所示的架构中的全部模块之外,还包括为实现由SE主动发起会话建立并使用TUI,可以在SE内专门设置TUI代理(TUI agent),此外,还包括为配合实现SE使用TUI,在TEE内专门设置应用模块(SE-TA),该架构中与图1中相同的模块作用也相同,不再赘述。应理解,图3所示的架构中仅示出部分模块,实际应用中该架构还可以包括更多或者更少的模块,图3仅作为示意,而不引以为限。
本申请实施例以下提供一种基于图3所示架构实施本申请实施例的方法。参阅图4所示,为本申请实施例提供的另一种能力开放方法流程图,图4中以SE通过SE内的TUIagent、TEE通过TEE内的SE-TA实施本申请提供的能力开放方法为例说明。
图4所示的方法包括以下步骤:
S201:TUI agent与SE-TA建立用于通信的会话。
需要说明的是,本申请中所涉及的TUI agent均是指SE内的TUI agent,所涉及的SE-TA均是指TEE内的SE-TA。
下文中以TUI agent主动发起会话建立为例说明。
在TUI agent主动发起会话建立之前,SE还可以通过通信模块触发中断信号,该中断信号用于指示由TUI agent主动发起会话建立。具体如何触发可以参见图2中相关描述,此处不再赘述。
S202:TUI agent通过建立的会话向SE-TA发送用于获取TEE的安全证明的获取指令,SE-TA通过建立的会话接收该获取指令。
可选的,该获取指令中可以包括TEE的属性标识,在该种情况下,该获取指令用于指示TEE使用TEE的属性标识对应的TEE属性生成安全证明。
S203:SE-TA接收到该获取指令后,可以验证TUI agent的标识信息,待验证通过后可以获取TUI能力的属性信息以及TEE的平台属性信息。
一种可能的实现方式中,SE-TA可以通过TEE操作***提供的TUI查询接口获取TUI能力的属性信息,通过TEE操作***提供的平台属性查询接口获取TEE的平台属性信息。
S204:SE-TA获取到TUI能力的属性信息以及TEE的平台属性信息后,生成安全证明。
在一个可能的实例中,SE-TA获取到TUI能力的属性信息以及TEE的平台属性信息后,还可以将获取到的TUI能力的属性信息以及TEE的平台属性信息发送给TEE操作***,由TEE操作***来根据TEE的平台属性信息以及TUI能力的属性信息生成安全证明,TEE操作***生成安全证明后向SE-TA发送该安全证明,参见S205-S207。
S205:SE-TA向TEE操作***发送TUI能力的属性信息以及TEE的平台属性信息。
S206:TEE操作***根据TEE的平台属性信息以及TUI能力的属性信息生成安全证明。
S207:TEE操作***向SE-TA发送该安全证明。
具体如何生成安全证明,以及TEE的平台属性信息、TUI能力的属性信息所包含的内容可参见上述图2所示方法中的描述。
S208:SE-TA通过该会话向TUI agent发送安全证明,TUI agent通过该会话接收该安全证明。
S209:TUI agent通过该会话接收到该安全证明后,TUI agent可以调用预置的验证密钥验证安全证明,确保安全证明来自合法或自己信任的TEE。
S210:TUI agent根据该安全证明以及预设的安全策略,确定TEE处于安全状态。具体如何确定可以参见上述图2所示方法中的描述。
S211:TUI agent在确定TEE处于安全状态之后,将第一能力开放给SE内的第三方业务。
可选的,TUI agent可以发送广播给注册需要使用该global service的第三方业务。当然,该广播也可以发送给SE-TA,参见图4的S212。
可选的,TUI agent在确定TEE处于安全状态之后,还可以与TEE协商通信密钥,协商的该通信密钥与TEE的状态绑定,该通信密钥用于SE在后续使用第二能力过程中进行加密,当SE确定TEE重新启动或TEE的属性改变时,删除通信密钥。该过程可参见图4的S213。
通过本申请提供的方法,当通过TEE+SE安全架构执行业务时,SE可以在执行业务之前与TEE建立用于通信的会话,可通过该会话请求获取TEE的安全证明,进而可根据TEE的安全证明以及预设的安全策略,确定TEE处于安全状态,并在确定TEE处于安全状态之后,将第一能力开放给SE内的第三方业务,这样,在保证TEE自身处于安全状态的情况下,才开放能力给SE内的第三方业务,可以保证在TEE+SE安全架构下执行业务的安全性。
基于与方法实施例的同一发明构思,本申请实施例还提供了一种能力开放装置。可以理解的是,该能力开放装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在采用集成单元的情况下,图5示出了本申请实施例涉及的能力开放装置的一种可能的结构示意图,该能力开放装置500可以以软件的形式存在,也可以为终端内的SE。如图5所示,能力开放装置500包括处理模块501以及通信模块502。通信模块502用于支持能力开放装置500与其他设备或模块的交互,处理模块501用于对能力开放装置500的动作进行控制管理。例如,处理模块501可以用于执行图2中的S105-S106等技术过程,还可以用于执行图4中的S208-S210等技术过程,通信模块502可以用于执行图2中的S101、S102技术过程,还可以用于执行图4中的S201、S202、S211-S212等技术过程,通信模块502可以用于执行图2中的S104技术过程,还可以用于执行图4中的S207、S212等技术过程。能力开放装置500还可以包括存储模块503,用于存储能力开放装置500的程序代码和数据。
在采用集成单元的情况下,图6示出了本申请实施例涉及的能力开放装置的另一种可能的结构示意图,该能力开放装置600可以以软件的形式存在,也可以为终端内的TEE。如图6所示,能力开放装置600包括处理模块601以及通信模块602。通信模块602用于支持能力开放装置600与其他设备或模块的交互,处理模块601用于对能力开放装置600的动作进行控制管理。例如,处理模块601可以用于执行图2中的S103等技术过程,还可以用于执行图4中的S203、S205等技术过程,通信模块602可以用于执行图2中的S101、S104技术过程,还可以用于执行图4中的S201、S207、S212等技术过程,通信模块602可以用于执行图2中的S102技术过程,还可以用于执行图4中的S202、S211-S212等技术过程。能力开放装置600还可以包括存储模块603,用于存储能力开放装置600的程序代码和数据。
应理解以上装置中单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件又可以成为处理器,可以是一种具有信号的处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。
在一个例子中,以上任一装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integratedcircuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA),或这些集成电路形式中至少两种的组合。再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上***(system-on-a-chip,SOC)的形式实现。
基于与上述方法实施例相同构思,本申请实施例中还提供一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令在被计算机调用时,使所述计算机执行上述提供的方法实施例中的各个实施例的具体过程。本申请实施例中,对所述计算机可读存储介质不做限定,例如,可以是RAM(random-access memory,随机存取存储器)、ROM(read-only memory,只读存储器)等。
基于与上述方法实施例相同构思,本申请实施例中还提供一种计算机程序产品,所述计算机程序产品中存储有指令,当其在计算机上运行时,使得计算机执行上述任意一种可能的设计中提供的方法。
本领域内的技术人员应明白,本申请实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请中一些可能的实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括本申请实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (28)

1.一种能力开放方法,其特征在于,包括:
安全单元SE与可信执行环境TEE建立用于通信的会话;
所述SE通过所述会话向所述TEE发送用于获取所述TEE的安全证明的获取指令;
所述SE通过所述会话接收所述TEE发送的所述安全证明;
所述SE根据所述安全证明以及预设的安全策略,确定所述TEE处于安全状态;
所述SE将第一能力开放给所述SE内的第三方业务,所述第一能力基于所述TEE的第二能力实现。
2.根据权利要求1所述的方法,其特征在于,所述安全证明中包括所述TEE的属性信息;
所述SE根据所述安全证明以及预设的安全策略,确定所述TEE处于安全状态,包括:
所述SE确定所述TEE的属性信息满足预设的安全策略时,确定所述TEE处于安全状态。
3.根据权利要求2所述的方法,其特征在于,所述第二能力包括可信用户界面TUI能力,所述TEE的属性信息包括所述TEE的平台属性信息和/或所述TUI能力的属性信息;
所述TEE的平台属性信息包括以下至少一项:
所述TEE的标识、所述TEE的开发者标识、所述TEE的操作***版本、所述TEE的启动状态、所述TEE的生命周期状态、所述TEE应用程序接口API版本信息、所述TEE的防回滚等级或所述TEE中交互应用的版本信息,所述交互应用为所述TEE中用于与所述SE进行通信的可信应用;
所述TUI能力的属性信息包括TUI的外设类型和/或TUI的外设属性。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述SE与TEE建立用于通信的会话,包括:
所述SE向所述TEE发送会话建立请求消息,所述会话建立请求消息用于请求与所述TEE建立所述会话;
所述SE接收所述TEE发送的会话建立响应消息,所述会话建立响应消息用于指示确认建立所述会话。
5.根据权利要求4所述的方法,其特征在于,所述SE向所述TEE发送会话建立请求消息之前,还包括:
所述SE通过通信模块触发中断信号,所述中断信号用于指示所述TEE接收所述会话建立请求消息。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述SE根据所述安全证明以及预设的安全策略,确定所述TEE处于安全状态之前,还包括:
所述SE对所述安全证明进行认证,确定所述安全证明是由所述TEE生成,且未被篡改。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述获取指令中包括所述TEE的属性标识,所述获取指令用于指示所述TEE使用所述TEE的属性标识对应的TEE属性生成所述安全证明。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述SE确定所述TEE处于安全状态之后,还包括:
所述SE与所述TEE协商通信密钥,所述通信密钥与所述TEE的状态绑定,所述通信密钥用于所述SE与所述TEE进行通信;
当所述SE确定所述TEE重新启动或所述TEE的属性改变时,删除所述通信密钥。
9.一种能力开放方法,其特征在于,包括:
可信执行环境TEE与安全单元SE建立用于通信的会话;
所述TEE通过所述会话接收来自所述SE的用于获取所述TEE的安全证明的获取指令;
所述TEE根据所述TEE的属性信息生成所述安全证明;
所述TEE通过所述会话向所述SE发送所述安全证明。
10.根据权利要求9所述的方法,其特征在于,所述TEE根据所述TEE的属性信息生成所述安全证明,包括:
所述TEE使用密钥对所述TEE的属性信息进行数字签名或消息认证码MAC操作,生成所述安全证明,所述安全证明中包括所述TEE的属性信息,所述密钥包括所述TEE的私钥、预先配置的密钥或者所述TEE与所述SE协商的密钥。
11.根据权利要求9或10所述的方法,其特征在于,所述TEE的属性信息包括所述TEE的平台属性信息和/或TUI能力的属性信息;
所述TEE的平台属性信息包括以下至少一项:
所述TEE的标识、所述TEE的开发者标识、所述TEE的操作***版本、所述TEE的启动状态、所述TEE的生命周期状态、所述TEE应用程序接口API版本信息、所述TEE的防回滚等级或所述TEE中交互应用的版本信息,所述交互应用为所述TEE中用于与所述SE进行通信的可信应用;
所述TUI能力的属性信息包括TUI的外设类型和/或TUI的外设属性。
12.根据权利要求10所述的方法,其特征在于,所述获取指令中包括所述TEE的属性标识,所述获取指令用于指示所述TEE使用所述TEE的属性标识对应的TEE属性生成所述安全证明;
所述TEE根据所述TEE的属性信息生成所述安全证明,包括:
所述TEE使用所述密钥对所述TEE的属性标识对应的TEE属性进行数字签名或消息认证码MAC操作,生成所述安全证明。
13.根据权利要求9至12任一项所述的方法,其特征在于,所述TEE通过所述会话向所述SE发送所述安全证明之后,还包括:
所述TEE与所述SE协商通信密钥,所述通信密钥与所述TEE的状态绑定,所述通信密钥用于所述SE与所述TEE进行通信;
当所述TEE重新启动或所述TEE的属性改变时,删除所述通信密钥。
14.一种能力开放装置,应用于安全单元SE,其特征在于,包括:
通信模块,用于与可信执行环境TEE建立用于通信的会话;
所述通信模块,还用于通过所述会话,向所述TEE发送用于获取所述TEE的安全证明的获取指令,通过所述会话,接收所述TEE发送的所述安全证明;
处理模块,用于根据所述通信模块接收到的所述安全证明以及预设的安全策略,确定所述TEE处于安全状态,并将第一能力开放给所述SE内的第三方业务,所述第一能力基于所述TEE的第二能力实现。
15.根据权利要求14所述的装置,其特征在于,所述安全证明中包括所述TEE的属性信息;
所述处理模块采用如下方式根据所述安全证明以及预设的安全策略,确定所述TEE处于安全状态:
所述处理模块确定所述TEE的属性信息满足预设的安全策略时,确定所述TEE处于安全状态。
16.根据权利要求15所述的装置,其特征在于,所述第二能力包括可信用户界面TUI能力,所述TEE的属性信息包括所述TEE的平台属性信息和/或所述TUI能力的属性信息;
所述TEE的平台属性信息包括以下至少一项:
所述TEE的标识、所述TEE的开发者标识、所述TEE的操作***版本、所述TEE的启动状态、所述TEE的生命周期状态、所述TEE应用程序接口API版本信息、所述TEE的防回滚等级或所述TEE中交互应用的版本信息,所述交互应用为所述TEE中用于与所述SE进行通信的可信应用;
所述TUI能力的属性信息包括TUI的外设类型和/或TUI的外设属性。
17.根据权利要求14至16任一项所述的装置,其特征在于,所述通信模块采用如下方式与TEE建立用于通信的会话:
向所述TEE发送会话建立请求消息,所述会话建立请求消息用于请求与所述TEE建立所述会话;
接收所述TEE发送的会话建立响应消息,所述会话建立响应消息用于指示确认建立所述会话。
18.根据权利要求17所述的装置,其特征在于,所述通信模块还用于:
在向所述TEE发送会话建立请求消息之前,触发中断信号,所述中断信号用于指示所述TEE接收所述会话建立请求消息。
19.根据权利要求14至18任一项所述的装置,其特征在于,所述处理模块还用于:
在根据所述安全证明以及预设的安全策略,确定所述TEE处于安全状态之前,对所述安全证明进行认证,确定所述安全证明是由所述TEE生成,且未被篡改。
20.根据权利要求14至19任一项所述的装置,其特征在于,所述获取指令中包括所述TEE的属性标识,所述获取指令用于指示所述TEE使用所述TEE的属性标识对应的TEE属性生成所述安全证明。
21.根据权利要求14至20任一项所述的装置,其特征在于,所述通信模块还用于:
在所述处理模块确定所述TEE处于安全状态之后,与所述TEE协商通信密钥,所述通信密钥与所述TEE的状态绑定,所述通信密钥用于所述SE与所述TEE进行通信;
所述处理模块还用于:
当确定所述TEE重新启动或所述TEE的属性改变时,删除所述通信密钥。
22.一种能力开放装置,应用于可信执行环境TEE,其特征在于,包括:
通信模块,用于与安全单元SE建立用于通信的会话;
所述通信模块,还用于通过所述会话,接收来自所述SE的用于获取所述TEE的安全证明的获取指令;
处理模块,用于根据所述TEE的属性信息生成所述安全证明;
所述通信模块,还用于通过所述会话,向所述SE发送所述安全证明。
23.根据权利要求22所述的装置,其特征在于,所述处理模块采用如下方式根据所述TEE的属性信息生成所述安全证明:
使用密钥对所述TEE的属性信息进行数字签名或消息认证码MAC操作,生成所述安全证明,所述安全证明中包括所述TEE的属性信息,所述密钥包括所述TEE的私钥、预先配置的密钥或者所述TEE与所述SE协商的密钥。
24.根据权利要求22或23所述的装置,其特征在于,所述TEE的属性信息包括所述TEE的平台属性信息和/或TUI能力的属性信息;
所述TEE的平台属性信息包括以下至少一项:
所述TEE的标识、所述TEE的开发者标识、所述TEE的操作***版本、所述TEE的启动状态、所述TEE的生命周期状态、所述TEE应用程序接口API版本信息、所述TEE的防回滚等级或所述TEE中交互应用的版本信息,所述交互应用为所述TEE中用于与所述SE进行通信的可信应用;
所述TUI能力的属性信息包括TUI的外设类型和/或TUI的外设属性。
25.根据权利要求23所述的装置,其特征在于,所述获取指令中包括所述TEE的属性标识,所述获取指令用于指示所述TEE使用所述TEE的属性标识对应的TEE属性生成所述安全证明;
所述处理模块采用如下方式根据所述TEE的属性信息生成所述安全证明:
使用所述密钥对所述TEE的属性标识对应的TEE属性进行数字签名或消息认证码MAC操作,生成所述安全证明。
26.根据权利要求22至25任一项所述的装置,其特征在于,所述通信模块还用于:
在通过所述会话向所述SE发送所述安全证明之后,与所述SE协商通信密钥,所述通信密钥与所述TEE的状态绑定,所述通信密钥用于所述SE与所述TEE进行通信;
所述处理模块还用于:
当确定所述TEE重新启动或所述TEE的属性改变时,删除所述通信密钥。
27.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至8中任一项所述的方法。
28.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求9至13中任一项所述的方法。
CN201811478516.1A 2018-11-01 2018-12-05 一种能力开放方法及装置 Active CN111125705B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/CN2019/112731 WO2020088323A1 (zh) 2018-11-01 2019-10-23 一种能力开放方法及装置
EP19879640.1A EP3866385A4 (en) 2018-11-01 2019-10-23 SKILL EXPOSURE METHOD AND DEVICE
US17/290,497 US12010250B2 (en) 2018-11-01 2019-10-23 Capability enabling method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811297353 2018-11-01
CN2018112973537 2018-11-01

Publications (2)

Publication Number Publication Date
CN111125705A true CN111125705A (zh) 2020-05-08
CN111125705B CN111125705B (zh) 2022-08-19

Family

ID=70494965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811478516.1A Active CN111125705B (zh) 2018-11-01 2018-12-05 一种能力开放方法及装置

Country Status (3)

Country Link
US (1) US12010250B2 (zh)
EP (1) EP3866385A4 (zh)
CN (1) CN111125705B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115618364A (zh) * 2022-12-16 2023-01-17 飞腾信息技术有限公司 实现安全可信启动的方法、安全架构***及相关设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114598541B (zh) * 2022-03-18 2024-03-29 维沃移动通信有限公司 一种安全评估方法及装置、电子设备和可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2037388A1 (en) * 2006-07-03 2009-03-18 Panasonic Corporation Certifying device, verifying device, verifying system, computer program and integrated circuit
EP3040924A1 (en) * 2014-12-30 2016-07-06 Telefonica Digital España, S.L.U. Method and system for providing device based authentication, integrity and confidentiality for transactions performed by mobile device users
CN105790938A (zh) * 2016-05-23 2016-07-20 ***股份有限公司 基于可信执行环境的安全单元密钥生成***及方法
US20160234176A1 (en) * 2015-02-06 2016-08-11 Samsung Electronics Co., Ltd. Electronic device and data transmission method thereof
CN106650461A (zh) * 2016-11-23 2017-05-10 北京握奇智能科技有限公司 移动终端和基于该移动终端的嵌入式安全模块的访问方法
CN107292177A (zh) * 2017-05-05 2017-10-24 深圳市金立通信设备有限公司 一种安全控制方法、及终端设备
CN108229956A (zh) * 2017-12-13 2018-06-29 北京握奇智能科技有限公司 网银交易方法、装置、***以及移动终端
CN108279914A (zh) * 2016-12-30 2018-07-13 北京润信恒达科技有限公司 对安全元件中的数据进行升级的方法、***及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107004091B (zh) * 2014-09-26 2021-07-13 英特尔公司 安全地交换车辆传感器信息
DE102015006435A1 (de) 2015-05-18 2016-11-24 Giesecke & Devrient Gmbh Verfahren zur Implementierung von Sicherheitsregeln in einem Endgerät
WO2017156784A1 (zh) 2016-03-18 2017-09-21 华为技术有限公司 一种通知消息处理方法、装置及终端
CN107562689A (zh) 2016-07-01 2018-01-09 华为技术有限公司 一种***级芯片和终端
US10579820B2 (en) * 2016-12-09 2020-03-03 Blackberry Limited Verified privacy mode devices
US11423403B2 (en) * 2019-08-29 2022-08-23 Visa International Service Association Systems, methods, and computer program products for authorizing a transaction

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2037388A1 (en) * 2006-07-03 2009-03-18 Panasonic Corporation Certifying device, verifying device, verifying system, computer program and integrated circuit
EP3040924A1 (en) * 2014-12-30 2016-07-06 Telefonica Digital España, S.L.U. Method and system for providing device based authentication, integrity and confidentiality for transactions performed by mobile device users
US20160234176A1 (en) * 2015-02-06 2016-08-11 Samsung Electronics Co., Ltd. Electronic device and data transmission method thereof
CN105790938A (zh) * 2016-05-23 2016-07-20 ***股份有限公司 基于可信执行环境的安全单元密钥生成***及方法
CN106650461A (zh) * 2016-11-23 2017-05-10 北京握奇智能科技有限公司 移动终端和基于该移动终端的嵌入式安全模块的访问方法
CN108279914A (zh) * 2016-12-30 2018-07-13 北京润信恒达科技有限公司 对安全元件中的数据进行升级的方法、***及电子设备
CN107292177A (zh) * 2017-05-05 2017-10-24 深圳市金立通信设备有限公司 一种安全控制方法、及终端设备
CN108229956A (zh) * 2017-12-13 2018-06-29 北京握奇智能科技有限公司 网银交易方法、装置、***以及移动终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HONGFENG CHAI 等: "TEEI - A Mobile Security Infrastructure for TEE Integration", 《2014 IEEE 13TH INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS》 *
李智聪 等: "NFC移动支付实现方案的安全性能分析", 《微型电脑应用》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115618364A (zh) * 2022-12-16 2023-01-17 飞腾信息技术有限公司 实现安全可信启动的方法、安全架构***及相关设备

Also Published As

Publication number Publication date
US20210359867A1 (en) 2021-11-18
CN111125705B (zh) 2022-08-19
EP3866385A4 (en) 2021-12-01
EP3866385A1 (en) 2021-08-18
US12010250B2 (en) 2024-06-11

Similar Documents

Publication Publication Date Title
TWI667585B (zh) 一種基於生物特徵的安全認證方法及裝置
CN109074466B (zh) 用于服务器的平台证明和注册
EP3061027B1 (en) Verifying the security of a remote server
US9867043B2 (en) Secure device service enrollment
EP3039604B1 (en) Method of authorizing an operation to be performed on a targeted computing device
JP6392879B2 (ja) モバイル通信装置およびその動作方法
JP5497171B2 (ja) セキュア仮想マシンを提供するためのシステムおよび方法
KR20160054556A (ko) 모바일 통신 디바이스 및 그 작동 방법
WO2020088323A1 (zh) 一种能力开放方法及装置
JP2004508619A (ja) トラステッド・デバイス
CN108200078B (zh) 签名认证工具的下载安装方法及终端设备
US11709929B2 (en) Interaction method and apparatus
CN108335105B (zh) 数据处理方法及相关设备
WO2008122171A1 (fr) Procédé de pilotage de sécurité et système associé, procédé de génération d'une signature de codage et procédé d'authentification
US11424915B2 (en) Terminal registration system and terminal registration method with reduced number of communication operations
CN111125705B (zh) 一种能力开放方法及装置
Cooijmans et al. Secure key storage and secure computation in Android
US20240113898A1 (en) Secure Module and Method for App-to-App Mutual Trust Through App-Based Identity
CN115618306A (zh) 一种软件保护方法、装置、***、cpu芯片及电子设备
KR101350438B1 (ko) 모바일기기 내의 se를 이용하는 전자서명 시스템
Vossaert et al. Client-side biometric verification based on trusted computing
CN116629855A (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