CN113626777A - 身份认证方法、存储介质和电子设备 - Google Patents

身份认证方法、存储介质和电子设备 Download PDF

Info

Publication number
CN113626777A
CN113626777A CN202010383065.4A CN202010383065A CN113626777A CN 113626777 A CN113626777 A CN 113626777A CN 202010383065 A CN202010383065 A CN 202010383065A CN 113626777 A CN113626777 A CN 113626777A
Authority
CN
China
Prior art keywords
tee
user
equipment
identity authentication
user equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010383065.4A
Other languages
English (en)
Inventor
刘玭娉
高贵锦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010383065.4A priority Critical patent/CN113626777A/zh
Publication of CN113626777A publication Critical patent/CN113626777A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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/3271Cryptographic 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 challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请提供了一种身份认证的方法、存储介质和电子设备。方法包括IDP根据用户设备的认证请求,确定与用户设备关联的TEE设备;用户设备与TEE设备建立通信连接,向TEE设备发送用户设备的身份认证参数;TEE设备将用户设备的身份认证参数发送至IDP;IDP还接收TEE设备发送的用户设备的身份认证参数,并根据身份认证参数并利用TEE设备对用户设备的用户进行身份认证。本申请的身份认证方法能够部署在非TEE的电子设备上,使得非TEE设备可以借助于TEE设备为用户提供安全的认证服务。

Description

身份认证方法、存储介质和电子设备
技术领域
本申请的一个或多个实施例通常涉及信息安全技术的身份认证领域,具体涉及一种身份认证方法、存储介质和电子设备。
背景技术
可信执行环境(Trusted Execution Environment,TEE)是主处理器内的安全区域。它可以运行在一个相对独立的环境中且与主操作***并行运行。在TEE中加载的代码和数据的机密性和完整性都可以得到保护。通过同时使用硬件和软件来保护数据和代码,这个并行***比传统***(即Rich Execution Environment,富执行环境)更加安全。在TEE中运行的受信任应用程序可以访问设备主处理器和内存的全部功能,同时通过硬件隔离保护这些TEE中的组件不受主操作***中运行的由用户安装的应用程序的影响。
当前,智能设备的全场景业务已在全球广泛应用,在全场景业务中,为了提供用户操作的便利性,需要每个智能设备支持用户使用用户账号登录并进行相应的应用安全认证,数据同步,网络浏览,消息应用操作等,这就要求所有的智能设备必须使用TEE芯片,否则将出现数据、账号被篡改或仿冒等问题,进而导致用户的账号信息的泄露和用户账户被恶意控制。
可以理解,如果所有智能设备都使用TEE芯片,这会显著地增加了芯片复杂度和工艺/研发成本。此外,用户之前购买的未配置TEE芯片的智能设备也会在越发普及的全场景业务中带来安全隐患。
发明内容
本申请的一些实施方式提供了一种身份认证方法、存储介质和电子设备。以下从多个方面介绍本申请,以下多个方面的实施方式和有益效果可互相参考。
为了应对上述场景,第一方面,本申请的实施方式提供了一种用于身份认证***的身份认证方法,其中身份认证***包括不具有可信执行环境(TEE)单元的用户设备,具有TEE单元的TEE设备,和身份提供方(IDP),TEE设备将辅助用户设备进行身份认证,该方法包括:IDP根据用户设备发送的认证请求,确定与用户设备关联的TEE设备;在确定用户设备的关联TEE设备之后,用户设备与该关联的TEE设备建立通信连接,向TEE设备发送用户设备的身份认证参数,这些身份认证参数将用于IDP执行的身份认证;TEE设备将用户设备的身份认证参数发送至IDP;IDP接收TEE设备发送的用户设备的身份认证参数,并根据身份认证参数并与TEE设备进行认证协议的认证步骤,从而实现对用户设备的用户进行身份认证。
从上述第一方面的实施方式中可以看出,本申请的实施方式可以部署在非TEE的电子设备上,使得非TEE设备可以借助于诸如智能手机等的TEE设备为用户提供安全的SSO服务,解决了非TEE设备无法获得安全保护的问题。并且通过利用TEE机制,用户设备的整个认证过程的安全性都受TEE的保护。
结合第一方面,在一些实施方式中,用户设备还用于:将指示用户设备不具有TEE单元的标记发送给IDP。
结合第一方面,在一些实施方式中,确定与用户设备关联的TEE设备,包括:IDP接收来自用户设备的身份认证账号与来自TEE设备的身份认证账号;IDP在用户设备的身份认证账号与来自TEE设备的身份认证账号相同或关联的情况下,确定用户设备具有关联的TEE设备。
结合第一方面,在一些实施方式中,身份认证***还包括关联设备,其中方法还包括:关联设备接收来自用户设备的身份认证账号,以及至少部分地指示用户设备不具有TEE单元的标记;关联设备接收来自TEE设备的身份认证账号,以及至少部分地指示TEE设备具有TEE单元的标记;和关联设备在确定用户设备的身份认证账号与TEE设备的身份认证账号相同的情况下,将用户设备与TEE设备相关联于身份认证账号。
结合第一方面,在一些实施方式中,确定与用户设备关联的TEE设备包括:IDP向关联设备发送询问用户设备是否具有关联的TEE设备的请求;IDP根据关联设备的响应,确定与用户设备关联的TEE设备。
第二方面,本申请的实施方式提供了用于用户设备的身份认证方法,其中用户设备不具有可信执行环境(TEE)单元,方法包括:与具有TEE单元的TEE设备建立通信连接,其中TEE设备与用户设备关联;和向TEE设备发送用户设备的身份认证参数,用于TEE设备发送身份认证参数至身份提供方(IDP)后,IDP根据身份认证参数并利用TEE设备对用户设备的用户进行身份认证。
从上述第二方面的实施方式中可以看出,本申请的实施方式可以部署在非TEE的电子设备上,使得非TEE设备可以借助于诸如智能手机等的TEE设备为用户提供安全的SSO服务,解决了非TEE设备无法获得安全保护的问题。并且,通过利用TEE机制,用户设备的整个认证过程的安全性都受TEE的保护。并且只要用户设备关联了至少一个TEE设备,该TEE设备就可以为不具有可信执行环境的各种用户设备提供可信执行环境,实现用户设备的安全认证和登录。
结合第二方面,在一些实施方式中,还包括:向IDP发送至少部分地指示用户设备不具有TEE单元的标记;接收来自IDP的确认是否使用TEE设备进行身份认证的请求;和向IDP发送确定使用TEE设备对用户设备的用户进行身份认证的信息。
结合第二方面,在一些实施方式中,还包括:向IDP发送用户设备的身份认证账号。
结合第二方面,在一些实施方式中,还包括:向关联设备发送用户设备的身份认证账号和至少部分地指示用户设备不具有TEE单元的标记。
结合第二方面,在一些实施方式中,在用户设备的身份认证账号与来自TEE设备的身份认证账号相同或关联的情况下,TEE设备与用户设备关联。
在本申请的实施方式中只要用户的身份认证账号下注册了至少一个TEE设备,该TEE设备就可以为用户的身份认证账号下的其他不具有可信执行环境的各种用户设备提供可信执行环境,实现用户设备的安全登录。
结合第二方面,在一些实施方式中,身份认证参数包括用户设备的设备序列号和设备识别号中的至少一个。
结合第二方面,在一些实施方式中,用户设备具有另一个身份认证账号,其中用户设备的另一个身份认证账号与另一个TEE设备的身份认证账号相同,其中另一个TEE设备具有TEE单元。
第三方面,本申请的实施方式提供了一种用于可信执行环境(TEE)设备的身份认证方法,其中TEE设备具有TEE单元;其特征在于,包括:与用户设备建立通信连接,其中用户设备不具有TEE单元,其中,TEE设备与用户设备关联;接收来自用户设备的身份认证参数,其中身份认证参数用于对用户设备的用户进行的身份认证;和将身份认证参数发送到身份提供方(IDP),以用于IDP根据身份认证参数并利用TEE设备对用户设备的用户进行身份认证。
从上述第三方面的实施方式中可以看出,本申请的实施方式可以只要用户设备关联了至少一个TEE设备,该TEE设备就可以为不具有可信执行环境的各种用户设备提供可信执行环境,实现用户设备的安全认证和登录。
结合第三方面,在一些实施方式中,与用户设备建立通信连接,包括:接收来自IDP的确定TEE设备是否在线的请求;响应于请求,与用户设备建立通信连接;和向IDP发送TEE设备在线的信息。
结合第三方面,在一些实施方式中,还包括:向关联设备发送TEE设备的身份认证账号,以及至少部分地指示TEE设备具有TEE单元的标记。
结合第三方面,在一些实施方式中,还包括:向IDP发送TEE设备的身份认证账号,以及至少部分地指示TEE设备具有TEE单元的标记。
结合第三方面,在一些实施方式中,在用户设备的身份认证账号与来自TEE设备的身份认证账号相同或关联的情况下,TEE设备与用户设备关联。
结合第三方面,在一些实施方式中,身份认证参数包括用户设备的设备序列号和设备识别号中的至少一个。
第四方面,本申请的实施方式提供了一种用于身份提供方(IDP)的身份认证方法,其特征在于,包括:接收到用户设备的认证请求,其中用户设备不具有可信执行环境(TEE)单元;响应于认证请求,确定用户设备是否具有关联的TEE设备,其中TEE设备具有TEE单元;和至少部分地基于用户设备具有关联的TEE设备的情况下,接收TEE设备发送的用户设备的身份认证参数,并根据身份认证参数并利用TEE设备对用户设备的用户进行身份认证。
从上述第四方面的实施方式中可以看出,在本申请的实施方式中只要用户的身份认证账号下注册了至少一个TEE设备,该TEE设备就可以为用户的身份认证账号下的其他不具有可信执行环境的各种用户设备提供可信执行环境,实现用户设备的安全登录。
结合第四方面,在一些实施方式中,还包括:接收来自用户设备的指示用户设备不具有可信执行环境(TEE)单元的信息。
结合第四方面,在一些实施方式中,确定用户设备是否具有关联的TEE设备,还包括:向关联设备发送询问用户设备是否具有关联的TEE设备的请求。
结合第四方面,在一些实施方式中,确定用户设备是否具有关联的TEE设备,还包括:接收来自用户设备的身份认证账号与来自TEE设备的身份认证账号;在用户设备的身份认证账号与来自TEE设备的身份认证账号相同或关联的情况下,确定用户设备具有关联的TEE设备;和在用户设备的身份认证账号与来自TEE设备的身份认证账号不同或不关联的情况下,确定用户设备不具有关联的TEE设备。
结合第四方面,在一些实施方式中,还包括:在用户设备具有关联的TEE设备的情况下,向TEE设备发送确认TEE设备在线的请求;接收来自TEE设备的确认TEE设备在线的信息;和接收TEE设备发送的用户设备的身份认证参数,并根据身份认证参数对用户设备的用户进行身份认证。
结合第四方面,在一些实施方式中,根据身份认证参数并利用TEE设备对用户设备的用户进行身份认证,包括:利用身份认证参数,通过与TEE设备交互基于身份认证参数的加密数据,对用户设备的用户进行身份认证。
结合第四方面,在一些实施方式中,加密数据包括:用加密密钥加密的挑战值以及用验证密钥加密的凭据值,其中加密密钥和验证密钥是基于身份认证参数产生的。
结合第四方面,在一些实施方式中,身份认证参数包括用户设备的设备序列号和设备识别号中的至少一个。
第五方面,本申请的实施方式提供了一种用于关联设备的身份认证方法,其特征在于,包括:接收用户设备和TEE设备发送的身份认证账号,其中用户设备不具有可信执行环境(TEE)单元,TEE设备具有TEE单元;根据接收的身份认证账号,建立用户设备与TEE设备的关联;响应身份提供方(IDP)的请求,确定与请求身份认证的用户设备关联的TEE设备,以用于TEE设备将用户设备的身份认证参数发送给IDP,由IDP根据身份认证参数并利用TEE设备对用户设备的用户进行身份认证。
从上述第五方面的实施方式中可以看出,在本申请的实施方式中只要用户的身份认证账号下注册了至少一个TEE设备,该TEE设备就可以为用户的身份认证账号下的其他不具有可信执行环境的各种用户设备提供可信执行环境,实现用户设备的安全登录。
结合第五方面,在一些实施方式中,根据接收的身份认证账号,建立用户设备与TEE设备的关联包括:在确定用户设备的身份认证账号与TEE设备的身份认证账号相同或关联的的情况下,将用户设备与TEE设备相关联。
结合第五方面,在一些实施方式中,响应身份提供方(IDP)的请求,确定与请求身份认证的用户设备关联的TEE设备包括:接收来自身份提供方(IDP)的查询用户设备是否与TEE设备相关联的请求;查询到用户设备与TEE设备相关联;和向IDP返回用户设备与TEE设备相关联的信息。
第六方面,本申请提供了一种计算机可读存储介质,该存储介质可以是非易失性的。该存储介质中包含指令,该指令在执行后实施如前述任意一个方面或实施方式所描述的方法。
第七方面,本申请提供了一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及处理器,用于执行存储器中的指令,以执行根据前述任意一个方面或实施方式所描述的方法。
附图说明
图1示出根据本申请实施方式的示例的身份认证***的示意图。
图2示出根据本申请实施方式的示例身份认证方法的交互示意图。
图3示出了根据本申请实施方式的一种身份认证方法的流程示意图。
图4示出根据本申请实施方式的另一种身份认证方法的流程示意图。
图5示出根据本申请实施方式的另一种身份认证方法的流程示意图。
图6示出根据本申请实施方式的另一种身份认证方法的流程示意图。
图7示出根据本申请实施方式的用户设备注册的交互示意图。
图8示出根据本申请实施方式的用户设备认证的交互示意图。
图9示出根据本申请实施方式的身份提供方提供注册的流程示意图。
图10示出根据本申请实施方式的TEE设备辅助注册的流程示意图。
图11示出根据本申请实施方式的身份提供方提供认证的流程示意图。
图12示出根据本申请实施方式的TEE设备辅助认证的流程示意图。
图13示出根据本申请实施方式的电子装置的示意图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本申请的其他优点及功效。虽然本申请的描述将结合较佳实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本申请的权利要求而有可能延伸出的其它选择或改造。为了提供对本申请的深度了解,以下描述中将包含许多具体的细节。本申请也可以不使用这些细节实施。此外,为了避免混乱或模糊本申请的重点,有些具体细节将在描述中被省略。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
此外,各种操作将以最有助于理解说明性实施例的方式被描述为多个离散操作;然而,描述的顺序不应被解释为暗示这些操作必须依赖于顺序。特别是,这些操作不需要按呈现顺序执行。
除非上下文另有规定,否则术语“包含”,“具有”和“包括”是同义词。短语“A/B”表示“A或B”。短语“A和/或B”表示“(A和B)或者(A或B)”。
应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
如本文所使用的,术语“模块或单元”可以指或者包括专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享的、专用的或组)和/或存储器(共享的、专用的或组)、组合逻辑电路、和/或提供所描述的功能的其他合适的组件,或者可以是专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享的、专用的或组)和/或存储器(共享的、专用的或组)、组合逻辑电路、和/或提供所描述的功能的其他合适的组件的一部分。
目前比较流行的用户登录方式是单点登录(Single Sign On,SSO),所谓SSO就是用户的一次性认证登录。简而言之,当用户在身份认证服务器上登录一次以后,即可获得访问单点登录***中其他关联的***和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用***中,用户只需一次登录就可以访问所有相互信任的应用***。这种方式减少了由登录产生的时间消耗。但是这种方式的中央认证服务的安全性仅依赖于SSL(Secure Sockets Layer,安全套接层),使得其存在一定的安全风险。
本申请的技术方案希望提供一种基于诸如以ARM公司Trustzone、Intel公司的SGX为架构的可信执行环境(Trusted Execution Environment,TEE)的身份认证方法,该方法兼容现有的所有SSO协议,并通过利用TEE机制,从而大大增强了单点登录的安全性。此外,本申请的身份认证方法能够部署在非TEE的电子设备上,使得非TEE设备可以借助于诸如智能手机等的TEE设备为用户提供安全的SSO服务。
图1示出根据本申请实施方式的示例的身份认证***的示意图。
身份认证***10可以包括用户设备110、网络120、一个或多个具有诸如以ARM公司Trustzone、Intel公司的SGX为架构的可信执行环境(Trusted Execution Environment,TEE)的电子设备,以下为了简便,简称为TEE设备130和身份提供方(Identity Provider,IDP)140。用户设备110还包括控制单元111和收发单元112。TEE设备130可以包括TEE单元132和收发单元133,可选或附加地,TEE设备130还可以包括控制单元131。身份提供方140可以包括控制单元141、TEE单元142和收发单元143。其中,在图1和其余的附图中,引用编号之后的字母,例如“130a”,表示对具有该特定引用编号的元素的引用。文本中没有后续字母的引用编号,例如“130”,表示对带有该引用编号的元素的实施方式的总体引用。可以理解的是,本发明实施例示意的结构并不构成对用户设备110、TEE设备130和身份提供方140的具体限定。在本申请另一些实施例中,用户设备110、TEE设备130和身份提供方140可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
用户设备110可以包括但不局限于,智能音箱、智能冰箱、家庭机器人、可穿戴设备(例如,显示眼镜或护目镜,手表,手环,耳机,臂带,珠宝等),IoT设备,以及各种其他通常不具备可信执行环境的电子设备。
网络120可以包括用于使用户设备110、TEE设备130和身份提供方140进行数据通信的各种传输介质,例如网络120可以是局域网,也可以是通过中继(Relay)设备转接的广域网。例如,局域网可以包括WiFi热点网络、WiFi P2P网络、蓝牙网络、Zigbee网络或近场通信(Near Field Communication,NFC)网络等近距离通信网络。广域网可以包括第三代移动通信技术(3rd-generation mobile communication technology,3G)网络、***移动通信技术(the 4th generation mobile communication technology,4G)网络、第五代移动通信技术(5th-generation mobile communication technology,5G)网络、和/或未来演进的公共陆地移动网络(Public Land Mobile Network,PLMN)或因特网等。
TEE设备130可以包括智能手机、平板电脑、个人电脑、智能电视和车载信息娱乐设备(例如,车载智能屏幕),以及各种其他通常具备可信执行环境的电子设备。
身份提供方140通常为认证服务器,负责对用户身份的认证工作。用户设备110和/或TEE设备130可以在身份提供方140进行注册,从而将注册的设备与用户的身份认证账号相关联,之后,在用户使用用户设备110和/或TEE设备130登录用户的身份认证账号时,身份提供方140提供用户的身份认证服务。
可选地或附加地,本申请的身份认证***10还可以包括关联设备(未示出),关联设备可以用于提供用户的身份认证账号和设备的注册和管理服务,以及将相同的账号下的多个设备相关联,例如建立用户的身份认证账号和设备的关联关系表等。作为另一个示例,关联设备还可以从服务提供商获得用户身份认证帐号和设备关联关系表。在身份认证***10包括关联设备的情况中,身份提供方140可以为关联设备的服务提供商提供安全认证服务,例如,用户150在关联设备上注册用户设备110后,或者,用户150的服务提供商将用户150的用户身份认证帐号和设备关联关系表发送到关联设备后,关联设备可以将用户150的身份认证账号信息和用户设备110的设备信息发送给身份提供方140,以便身份提供方140提供相应地安全认证服务。
在一个或多个其他实施方式中,关联设备可以仅用于提供用户的身份认证账号和设备的注册服务,以及将相同的身份认证账号下的多个设备相关联。在这种情况下,身份提供方140可以提供身份认证的服务,用户所请求的服务的服务提供商可以是其他未示出的设备。可选地,身份提供方140也可以是用户所请求的服务的服务提供商,并且身份提供方140还可以提供身份认证的服务。
在一个或多个其他实施方式中,关联设备还可以是身份提供方140的一部分,也就是说,关联设备可以作为组件或单元包含在身份提供方140中,身份提供方140可以实施关联设备的全部功能。在这种情况下,如图1所示,身份认证***10无需具备独立于身份提供方140之外的关联设备。
根据本申请的实施方式,用户设备110、TEE设备130和身份提供方140各自的控制单元(111、131和141)可以以硬件,软件或软件和硬件的组合实现,其中硬件包括但不限于中央处理器CPU(Central Processing Unit)、应用处理器(Application Processor)、或微处理器MCU(Micro-programmed Control Unit)等的处理电路。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。在本文的实施例中,控制单元(111、131和141)可以被配置为执行下文描述的一个或多个交互过程和方法流程中的部分或全部。
在一些实施方式中,TEE设备130和身份提供方140各自的TEE单元(132和142)可以包括具备可信执行环境的控制单元,例如,TEE单元(132和142)可以是具备可信执行环境的中央处理器CPU(Central Processing Unit)、应用处理器(Application Processor)、或微处理器MCU(Micro-programmed Control Unit)等的处理电路。在这种情况下,如图1所示,TEE设备130和身份提供方140可以不包括控制单元131和控制单元141,TEE设备130的TEE单元132可以实现控制单元131的全部功能,身份提供方140的TEE单元142可以实现控制单元141的全部功能。
在另一些实施方式中,TEE设备130和身份提供方140各自的TEE单元(132和142)可以是提供可信执行环境的安全芯片,例如,以ARM公司Trustzone、Intel公司的SGX为架构的TEE安全芯片,为TEE设备130和身份提供方140提供TEE安全框架和安全应用的全生命周期管理。在这种情况下,TEE设备130和身份提供方140各自的TEE单元(132和142)可以例如分别作为TEE设备130的控制单元131和身份提供方140的控制单元141的协处理器共同实施本申请的一个或多个实施方式。
用户设备110可以利用它的收发单元112通过网络120与TEE设备130和身份提供方140进行数据通信,类似地,TEE设备130可以利用它的收发单元133通过网络120与用户设备110和身份提供方140进行数据通信,以及身份提供方140可以利用它的收发单元143通过网络120与用户设备110和TEE设备130进行数据通信。
在一些身份认证***10的可能场景中,用户设备110或TEE设备130可以基于第五代移动通信技术(5th-generation mobile communication technology,5G)网络与身份提供方140通信地连接。作为一个示例,随着5G网络的部署,其可以为用户提供超大的接入带宽,其数据传输速率远远高于以前的蜂窝网络,最高可达10Gbit/s,比当前的有线互联网的传输速度快,比现在的4G LTE蜂窝网络快100倍。5G网络的另一个优点是较低的网络延迟(更快的响应时间),一般低于1毫秒。
在另一些身份认证***10的可能场景中,用户设备110可以与TEE设备130基于WiFi热点网络、WiFi P2P网络、蓝牙网络、Zigbee网络或近场通信(Near FieldCommunication,NFC)网络进行安全地数据通信。
以下简要说明TEE设备130和身份提供方140之间的安全认证过程,在身份认证***10中,如果用户150使用TEE设备130通过网络120在身份提供方140进行用户身份认证账号的注册时,TEE设备130的TEE单元132产生一对非对称密钥对,该密钥对包含私钥和公钥,并与用户150本地的身份信息,例如,指纹、面容、瞳纹等生物特征等进行关联。私钥在TEE设备130的TEE单元132中保留,黑客无法读取,公钥传给身份提供方140的TEE单元142,身份提供方140将此公钥和用户对应的用户身份认证账号相关联。
随后,在用户150登录身份提供方140进行认证时,TEE设备130的TEE单元132中的私钥对身份提供方140的挑战数据(Challenge)做签名,身份提供方140使用对应的公钥做验证。TEE设备130的TEE单元132中的私钥,必须经过本地用户150的身份识别,例如按键、按下指纹、或扫描面容等,才能被用来做签名操作。
以下介绍身份认证***10的一些示例性场景。例如,在用户150需要通过用户设备110进行移动支付的场景中,用户设备110可以是具备移动支付功能的智能手表或手环等,TEE设备可以是用户150的智能手机,身份提供方140可以是用户选择的支付平台,例如,支付宝、微信、Google Pay、Apple Pay等,身份提供方140还可以是为支付平台提供安全认证的第三方服务提供者,这里不作具体限制。
作为一个示例,当用户150在商店、餐馆、超市等营业场所进行结账支付时,用户150希望使用腕部穿戴的诸如智能手环或智能手表的用户设备110就能进行快速方便地支付,而无需从衣物口袋、随身手袋、背包中取出诸如智能手机的TEE设备130来进行移动支付。在这种情况下,如果用户设备110是如图1中所示的不支持TEE的设备,用户设备110在需要登录用户身份认证账号完成支付时,可以借助相同的用户身份认证账号下的TEE设备130,完成与身份提供方140的安全认证,并在用户设备110上完成相应的支付操作。
在身份认证***10的另一可能场景中,例如,在用户150具有各种智能家居产品的家中。用户设备110可以是通常不具备可信执行环境,但支持安装应用或者触发智能支付的智能家居配件或低端家庭网关,例如,智慧冰箱、家用机器人、智能音箱等。TEE设备130可以是家中的智慧电视机、平板电脑、高端家庭网关以及用户150和/或其他家庭成员的智能手机。身份提供方140可以是诸如应用商店等的应用安装平台,或者是用户选择的支付平台,例如,支付宝、微信、Google Pay、Apple Pay等。当用户150需要为用户设备110安装应用时,例如,用户150为诸如智能音箱的用户设备110安装音乐播放应用,或者用户150为诸如智能蒸烤箱的用户设备110安装烹饪应用,或者用户150为诸如智能冰箱用户设备110安装食品监控应用或食谱应用等,用户150需要通过用户设备110登录应用安装平台进行应用的购买、下载和安装,在这种情况下,在用户设备110在需要登录应用安装平台的用户身份认证账号时,可以借助相同的用户身份认证账号下的TEE设备130,例如,智能电视等,完成与身份提供方140的安全认证,并在用户设备110上完成相应的应用安装,其中,身份提供方140可以是应用安装平台,也可以是为应用安装平台提供安全认证的第三方服务提供者,这里不作具体限制。
在上述场景中,只要用户的身份认证账号下注册了至少一个TEE设备130,该TEE设备130就可以为用户的身份认证账号下的其他不具有可信执行环境的各种用户设备提供可信执行环境,实现用户设备的安全登录。
作为另一个示例,在一些情况下,用户150的家中可能具有多个家庭成员,多个家庭成员中的部分或全部成员可以通过诸如智能手机的TEE设备130控制家中的各种智能家居设备。如图1所示,假设TEE设备130为智能手机,家庭成员A(用户150)可以使用TEE设备130a控制家中的各种智能家居设备,家庭成员B可以使用TEE设备130b控制家中的各种智能家居设备,以及家庭成员C可以使用TEE设备130c控制家中的各种智能家居设备。通常,可以由一个家庭成员建立家庭账号或家庭圈,使得各个家庭成员共享对各种智能家居设备的使用,建立家庭账号或家庭圈的家庭成员一般被称为家庭主成员,家庭主成员对各个智能家居设备具有主要控制权限,例如,对智能家居设备进行配置、账号设置、***更新、设备共享等的权限。以用户150为家庭主成员为例,用户150使用TEE设备130a建立家庭圈,家庭成员B和C加入家庭圈后,TEE设备130a、TEE设备130b和TEE设备130c基于家庭圈相互关联。用户150可以将家中的部分或全部智能家居设备共享给家庭圈中的各个成员,当家庭成员B或家庭成员C需要使用智能家居设备时,他们通过各自的TEE设备130b的用户账号和TEE设备130c的用户账号登录已共享的智能家居设备,例如用户设备110。由此,诸如用户设备110的低端电子设备,可以被多个支持TEE的设备控制。在这种场景下,当用户设备110需要进行前述的应用下载安装或触发智能支付时,用户设备110可以借助于任一家庭成员的用户账号完成安全认证。可选地或附加地,在用户设备110借助的用户账号的权限不足的情况下,用户设备110还可以通过家庭圈借助于其他权限符合要求的TEE设备130(例如,TEE设备130a)完成安全认证。例如,如果用户设备110借助于家庭成员B的TEE设备130b或家庭成员C的TEE设备130c进行安全认证,但是TEE设备130b和TEE设备130c没有对用户设备110的主要控制权限,无法辅助用户设备110进行安全认证,那么通过家庭圈,用户设备110可以请求具有主要控制权限的TEE设备130a辅助用户设备110进行安全认证。
在上述场景中,非家庭主成员的其他家庭成员使用各自的账号登录不具备TEE的用户设备时,可以借助家庭主成员的账户和TEE设备完成安全认证。这样即可以实现对不具备TEE的用户设备的安全认证,又可以控制家庭成员的部分TEE设备的授权登录,从而实现本申请的身份认证技术的跨账号授权。
以下将结合附图和上述应用场景,对本申请实施方式提供的身份认证方法进行示例性地描述。图2示出本申请的身份认证方法的交互过程。如图2所示,图2中未示出本领域的部分现有技术,例如包括,用户150在身份提供方140注册身份认证账号的过程;用户150如何操作用户设备110和TEE设备130在关联设备160进行设备注册,以及关联设备160将用户150的身份认证账号的信息,用户设备110的设备信息和TEE设备130的设备信息相互关联并保存;以及,用户150操作TEE设备130a建立家庭圈,并将其他的TEE设备130b和TEE设备130c加入建立的家庭圈和三个TEE设备130a、130b和130c在家庭圈中相互关联的过程。以下以用户150使用智能手表(用户设备110)进行第三方应用登录的场景为示例,说明各设备之间的交互过程。在这种场景中,例如用户设备110可以是不具备TEE的智能手表,TEE设备130可以是用户150的智能手机,关联设备160可以是用于保存用户注册的身份认证账号信息和设备信息的设备,身份提供方140可以是对用户150身份进行安全认证的设备。可选地,身份提供方140还可以应用服务提供商并且可以对用户的身份进行认证。
如图2所示,在201a:发送用户的身份认证账号的信息和TEE设备的设备信息。在用户150向关联设备160注册诸如智能手机的TEE设备130时,TEE设备130可以将用户150的身份认证账号的信息和TEE设备130的设备信息发送到关联设备160。身份认证账号的信息可以包括用户150注册的身份认证账号的名称等,其中身份认证账号可以例如是用户已注册的谷歌账号、苹果账号或华为账号等。设备信息可以包括唯一识别TEE设备130的ID编号和序列号,以及标识TEE设备130具备TEE单元132的标记等。
在其他实施方式中,在图1中描述的家庭圈的场景中,在用户150使用TEE设备130a建立家庭圈,家庭成员B和C加入家庭圈后,TEE设备130a、TEE设备130b和TEE设备130c基于家庭圈相互关联,该家庭圈中的各设备的关联信息,以及TEE设备130a为家庭主成员设备,TEE设备130b和TEE设备130c为非家庭主成员设备的权限信息都可以保存在关联设备160中。
在201b:发送用户的身份认证账号的信息和用户设备的设备信息。与上述块201a类似,在用户150向关联设备160注册诸如智能手表的用户设备110时,用户设备110可以将用户150的身份认证账号的信息和用户设备110的设备信息发送到关联设备160。身份认证账号的信息可以包括用户150注册的身份认证账号的名称等。设备信息可以包括唯一识别用户设备110的ID编号和序列号,以及标识用户设备110不具备TEE单元的标记等。
在可选的实施方式中,在用户注册TEE设备130和用户设备110的各自过程中,用户的身份认证账号的信息以及TEE设备130和用户设备110的设备信息也可以发送给身份提供方140,本申请对此不作具体限制。
可以理解,关联设备160可以基于用户150的身份认证账号的信息,将用户150的用户设备110和TEE设备130关联在一起,例如,建立用户150的身份认证账号与用户设备110和TEE设备130三者的关联关系表等。
在用户设备110和TEE设备130的注册完成后,当用户150使用用户设备110进行基于SSO的第三方应用的登录时,例如,用户150需要使用已注册的身份认证账号登录智能手表(用户设备110)上已安装的第三方应用时,在202:用户设备110向身份提供方140发送基于SSO的应用登录请求和指示用户设备110不具有TEE单元的信息。这里,身份提供方140可以是该第三方应用的运营机构,也可以是该第三方应用指定的提供身份认证服务的机构。在身份提供方140为该第三方应用指定的提供身份认证服务的机构的情况下,用户设备110发起的登录请求也可以通过该第三方应用被引导至身份提供方140。在本申请描述的各种场景中,由于对用户设备110需要登录的第三方应用并无具体的限制,因此为了便于理解,本申请的实施方式以用户设备110直接向身份提供方140发送登录请求为例进行示例性的描述。可选或附加地,在登录请求中可以包括用户设备的设备ID,这样身份提供方140可以确定登录请求的发送方是用户设备110。
身份提供方140根据用户设备110发送的信息,确定该用户设备110不具有TEE单元,即用户设备110不具有可信执行环境后,身份提供方140向关联设备160,在203:发送查询该用户设备110是否具有关联的TEE设备的查询请求。其中查询请求中可以包括用户设备110的设备ID,用户的身份认证账号的信息,或者可以包括用户设备110的设备ID和用户的身份认证账号的信息。
在另一些实施方式中,在用户设备110借助于家庭圈中不具备登录权限的设备,例如使用TEE设备130b或TEE设备130c的账号登录时,身份提供方140确定用户设备110不具有可信执行环境,并且TEE设备130b或TEE设备130c的账号对用户设备110没有主要控制权限时,身份提供方140可以向关联设备160查询用户设备110关联的家庭圈主设备。
关联设备160收到来自身份提供方140的查询请求后,关联设备160可以查询例如关联关系表或者家庭圈,检索是否有与用户设备110相关联的TEE设备或家庭主设备(TEE设备130a),并在204:向身份提供方140发送对于用户设备110的查询结果。
在可选的其他实施方式中,在202,用户设备110也可以不发送指示用户设备110不具有TEE单元的信息。由于用户设备110在关联设备160中注册时,已经提供了不具有TEE单元的信息,在这种情况下,身份提供方140可以在接收到登录请求后,直接向关联设备160发送查询请求,关联设备160可以根据身份提供方140在查询请求中提供的用户设备110的设备ID,查询到该用户设备110为不具有TEE单元的设备,之后进一步查询该用户设备110是否有相关联的TEE设备,并将查询结果发送到身份提供方140。
身份提供方140接收到来自关联设备160的查询结果后,假如该查询结果中包括了与用户设备110相关联的TEE设备130的信息,则身份提供方140在205:发送确认该TEE设备130在线的请求。在一些实施方式中,确认该TEE设备130在线的请求可以是基于通信协议的简单的握手请求,例如,身份提供方140向TEE设备130发送诸如ACK报文的请求报文,如果TEE设备130对请求报文进行响应,并且两个设备完成握手,则身份提供方140可以确定TEE设备130处于网络在线状态。
在另一些实施方式中,确认该TEE设备130在线的请求可以通过触发TEE设备130执行以下的示例操作,而后将相关的操作结果发送到身份提供方140的方式,使得身份提供方140确认TEE设备130处于网络在线状态。
示例性地,TEE设备130接收到来自身份提供方140的确认该TEE设备130在线的请求后,TEE设备130在206:发送与用户设备110建立通信连接的请求和设备认证请求。例如,TEE设备130可以通过诸如USB、蓝牙、WiFi等短距离的通信协议与用户设备110进行通信连接,这些通信协议支持现有的安全远程口令(Secure Remote Password,SRP)认证协议和口令认证密钥交换(Password-Authenticated Key Exchange,PAKE)协议。通过在短距离通信协议中采用SRP协议或PAKE协议,使得TEE设备130和用户设备110能够对彼此进行设备认证,并在TEE设备130和用户设备110之间建立安全的通信。这里的设备认证是确保通信连接两端的设备并没有被可能的攻击者用其他设备冒充,例如,设备认证可以使用户设备110确保与其进行连接的设备是与用户设备110相关联的TEE设备130,而不是攻击者用于冒充TEE设备130的其他设备,并且同时,设备认证可以使TEE设备130确保与其进行连接的设备与TEE设备130相关联的是用户设备110,而不是用于冒充用户设备110的其他设备。
在TEE设备130和用户设备110之间的设备认证成功后,用户设备110在207:发送设备认证通过的信息和用户设备110的身份认证参数到TEE设备130。用户设备110的身份认证参数包括设备ID和设备序列号等参数。TEE设备130可以保存用户设备110的身份认证参数,并将这些参数用于后续的认证过程。
随后,TEE设备130在208:发送设备认证通过的信息和用户设备110的身份认证参数到身份提供方140。TEE设备130向身份提供方140表示本地的TEE设备130和用户设备110都互相设备认证完成,并表明TEE设备130是网络在线并可用于后续的认证过程。身份提供方140可以保存用户设备110的身份认证参数,以用于后续的身份认证过程。
身份提供方140接收到来自TEE设备130的认证结果好,在209:向用户设备110发送确认使用TEE设备130对用户设备110的用户进行身份认证的请求。
用户150在用户设备110上对来自身份提供方的请求进行确认,并在210:向身份提供方140发送确定使用TEE设备130对用户设备1110的用户进行身份认证的信息。
身份提供方140接收到来自用户设备110的确认信息后,身份提供方140在211:与TEE设备103交互基于身份认证参数的加密数据,对用户设备110的用户进行身份认证。本申请的后续的一个或多个实施方式将进一步描述对用户设备110的用户进行身份认证的具体过程。
在TEE设备130辅助用户设备110进行与身份提供方140之间认证完成后,TEE设备130在212:向身份提供方140发送认证成功的信息。身份提供方140接收到来自TEE设备130的认证成功的信息后,在213:向用户设备110发送用户设备100的用户身份认证成功的信息,通知用户设备110登录成功。
根据本申请的上述交互过程,只要用户的身份认证账号下注册了至少一个TEE设备130,该TEE设备130就可以为用户的身份认证账号下的其他不具有可信执行环境的各种用户设备提供可信执行环境,实现用户设备的安全登录。
根据本申请的实施方式,通过利用TEE机制,用户设备的整个认证过程的安全性都受TEE的保护。此外,本申请的身份认证方法能够部署在非TEE的电子设备上,使得非TEE设备可以借助于诸如智能手机等的TEE设备为用户提供安全的SSO服务,解决了非TEE设备无法获得安全保护的问题。
以下结合附图进一步说明图2所示的各个设备执行的身份认证方法。
图3示出了根据示例性实施方式的用户设备110的身份认证方法300的流程示意图。其中,在一些实施方式中,方法300的部分或全部可以在如图1中所示的用户设备110上实施。在另一些实施方式中,如图1所示的用户设备110的不同组件可以实施方法300的不同部分或全部。
对于上述方法和示例场景的实施方式中未描述的内容,可以参见下述方法实施方式;同样地,对于下述方法实施方式中未描述的内容,可参见上述方法和示例场景的实施方式。例如,图3所示的身份认证方法300是对图2所示的实施方式的进一步说明,在前述各实施方式中已描述的内容,以下将简略描述或不再赘述。
如图3所示,在301:向关联设备发送用户设备的身份认证账号和至少部分地指示用户设备不具有TEE单元的标记。在用户150向关联设备160注册诸如智能手表的用户设备110时,用户设备110可以将用户150的身份认证账号的信息和用户设备110的设备信息发送到关联设备160。设备信息可以包括指示用户设备110不具有TEE单元的标记。
在其他实施方式中,例如在上述多个家庭用户组成家庭圈的场景中,用户设备110可以具有多个身份认证账号,每个身份认证账号对应一位家庭成员。在家庭成员中包括一个以上的主成员的情况下,用户设备110可以具有另一个与家庭主成员对应的身份认证账号,该身份认证账号可以与另一个家庭主成员的TEE设备130的身份认证账号相同。
在302:向身份提供方发送基于SSO的应用登录请求和指示用户设备不具有TEE单元的标记。在用户设备110注册完成后,当用户150使用用户设备110进行基于SSO的第三方应用的登录时,用户设备110向身份提供方140发送基于SSO的应用登录请求和指示用户设备110不具有TEE单元的信息。
在303:与具有TEE单元的TEE设备建立通信。在TEE设备130向用户设备110发送建立通信连接的请求和设备认证请求之后,用户设备110可以通过诸如USB、蓝牙、WiFi等短距离的通信协议与TEE设备130进行通信连接。
在304:向TEE设备提供用户设备的身份认证参数。在用户设备110与TEE设备130直接通信连接建立并且双方之间的设备认证成功后,用户设备110可以向TEE设备130发送用户设备110的设备ID和设备序列号等身份认证参数。可选或附加地,用户设备110还可以进一步确认用户设备110登录的身份认证账号与TEE设备130的身份认证账号是否相同,如果账号相同,用户设备110发送身份认证参数给TEE设备130。
之后,用户设备110会接收来自身份提供方140的确认请求,该请求要求用户设备110确认在305:是否使用TEE设备进行身份认证。用户150可以操作用户设备110对身份提供方140的请求进行确认,如果用户同意使用TEE设备130进行身份认证,则在306:用户设备110向身份提供方140发送确定使用TEE设备对用户设备的用户进行身份认证的信息。
图4示出了根据示例性实施方式的TEE设备130的身份认证方法400的流程示意图。其中,在一些实施方式中,方法400的部分或全部可以在如图1中所示的TEE设备130上实施。在另一些实施方式中,如图1所示的TEE设备130的不同组件可以实施方法400的不同部分或全部。
对于上述方法和示例场景的实施方式中未描述的内容,可以参见下述方法实施方式;同样地,对于下述方法实施方式中未描述的内容,可参见上述方法和示例场景的实施方式。例如,图4所示的身份认证方法400是对图2和图3的实施方式的进一步说明,在前述各实施方式中已描述的内容,以下将简略描述或不再赘述。
如图4所示,TEE设备130在401:向关联设备发送TEE设备的身份认证账号和指示TEE设备具有TEE单元的标记。在用户150向关联设备160注册诸如智能手机的TEE设备130时,TEE设备130可以将用户150的身份认证账号的信息和TEE设备130的设备信息发送到关联设备160。
在402:接收来自身份提供方的确定TEE设备是否在线的请求。TEE设备130接收到该身份提供方140的请求后,可以根据该请求的要求执行与用户设备110通信的操作,例如,TEE设备130在403:响应于请求,与用户设备建立通信。TEE设备130可以通过诸如USB、蓝牙、WiFi等短距离的通信协议与用户设备110进行通信连接。
在TEE设备130和用户设备110通过SRP协议、PAKE协议等安全协议认证成功后,TEE设备130在404:接收来自用户设备的身份认证参数。TEE设备130可以保存用户设备110的身份认证参数,并将这些参数用于后续的认证过程。
在一些实施方式中,TEE设备130可以在405:将TEE设备在线的信息和身份认证参数发送到身份提供方。
当用户设备110同意使用TEE设备130进行身份认证后,身份提供方140会与TEE设备130交互加密的身份认证参数等,例如,TEE设备130通过TEE单元132在406:帮助身份提供方对用户设备的用户进行身份认证。TEE设备130与身份提供方140的这部分交互内容将在以下详细描述。
图5示出了根据示例性实施方式的关联设备160的身份认证方法500的流程示意图。其中,在一些实施方式中,方法500的部分或全部可以在如图1中所示的关联设备160上实施。在另一些实施方式中,如图1所示的关联设备160的不同组件可以实施方法500的不同部分或全部。
对于上述方法和示例场景的实施方式中未描述的内容,可以参见下述方法实施方式;同样地,对于下述方法实施方式中未描述的内容,可参见上述方法和示例场景的实施方式。例如,图5所示的身份认证方法500是对图2-4的实施方式的进一步说明,在前述各实施方式中已描述的内容,以下将简略描述或不再赘述。
如图5所示,在用户150在操作用户设备110和TEE设备130在关联设备160进行设备注册时,关联设备160可以在501:接收来自TEE设备的身份认证账号,以及至少部分地指示用户TEE设备具有TEE单元的标记。例如,TEE设备130可以将用户150的身份认证账号的信息和TEE设备130的设备信息发送到关联设备160。身份认证账号的信息可以包括用户150注册的身份认证账号的名称等,其中身份认证账号可以例如是用户已注册的谷歌账号、苹果账号或华为账号等。设备信息可以包括唯一识别TEE设备130的ID编号和序列号,以及标识TEE设备130具备TEE单元132的标记等。
类似地,在用户设备110注册时,关联设备160可以在502:接收来自用户设备110的身份认证账号,以及至少部分地指示用户设备不具有TEE单元的标记。
关联设备160可以通过TEE设备130和用户设备110注册时的身份认证账号,在503:在确定用户设备110的身份认证账号与TEE设备130的身份认证账号相同的情况下,将用户设备110与TEE设备130相关联。例如,在关联设备160中建立用户150的身份认证账号与用户设备110和TEE设备130三者的关联关系表等。
随后,在用户设备110发起SSO应用登录后,关联设备160可以在504:接收来自身份提供方140的查询用户设备110是否与支持TEE单元的设备相关联的请求。关联设备160可以查询例如关联关系表,检索是否有与用户设备110相关联的TEE设备。
在505:在根据用户设备的标记确认用户设备不支持TEE单元的情况下,查询到用户设备与支持TEE单元的TEE设备相关联。关联设备160可以根据身份提供方140在查询请求中提供的用户设备110的设备ID,查询到该用户设备110为不具有TEE单元的设备,之后进一步查询该用户设备110与TEE设备130相关联。
之后,关联设备160在506:向身份提供方140发送该用户设备110的查询结果。关联设备可以将与用户设备110关联的TEE设备130的设备信息发送给身份提供方140,以便身份提供方140可以与TEE设备130进行通信。
图6示出了根据示例性实施方式的身份提供方140的身份认证方法600的流程示意图。其中,在一些实施方式中,方法600的部分或全部可以在如图1中所示的身份提供方140上实施。在另一些实施方式中,如图1所示的身份提供方140的不同组件可以实施方法600的不同部分或全部。
对于上述方法和示例场景的实施方式中未描述的内容,可以参见下述方法实施方式;同样地,对于下述方法实施方式中未描述的内容,可参见上述方法和示例场景的实施方式。例如,图6所示的身份认证方法600是对图2-5的实施方式的进一步说明,在前述各实施方式中已描述的内容,以下将简略描述或不再赘述。
如图6所示,当用户150使用用户设备110进行基于SSO的第三方应用的登录时,身份提供方140在601:接收来自用户设备110的指示用户设备110不具有TEE单元的信息。在这种情况下,身份提供方140需要确定602:用户设备110是否具有关联的TEE设备。
作为一个示例,身份提供方140可以向向关联设备160发送询问用户设备110是否具有关联的TEE设备的请求。身份提供方140可以根据关联设备160的查询结果,确定用户设备具有关联的TEE设备130。
作为另一示例,在用户150注册TEE设备130和用户设备110的各自过程中,用户设备110和TEE设备130已将用户150的身份认证账号的信息以及TEE设备130和用户设备110的设备信息发送给身份提供方140的情况下,身份提供方140通过判断用户设备110登录的身份认证账号与来自TEE设备130的注册的身份认证账号相同,可以确定用户设备110具有关联的TEE设备130。反之,在用户设备110登录的身份认证账号与来自TEE设备130的注册的身份认证账号不相同的情况下,身份提供方140可以确定用户设备110不具有关联的TEE设备130。
在身份提供方140确定用户设备具有关联的TEE设备130后,身份提供方140在603:向TEE设备130发送确认TEE设备在线的请求。在一些实施方式中,确认该TEE设备130在线的请求可以是基于通信协议的简单的握手请求。在另一些实施方式中,确认该TEE设备130在线的请求可以触发TEE设备130执行图2和图4所示的身份认证方法中的一个或多个部分。
身份提供方140向TEE设备130发送确认其是否在线的请求后,如果TEE设备130在线,身份提供方140可以在604:接收来自TEE设备130的确认其在线的信息。
在一些实施方式中,身份提供方140在接收来自TEE设备130的确认其在线的信息时,还可以在605:接收来自TEE设备130的用户设备110的身份认证参数。身份提供方140可以保存用户设备110的身份认证参数,以便后续对在用户设备110上登录应用的用户的身份进行认证。
之后,身份提供方140通过TEE单元142在606:利用身份认证参数,通过与TEE设备130交互基于身份认证参数的加密数据,对用户设备110的用户进行身份认证。作为一个示例,加密数据可以包括用加密密钥加密的挑战值以及用验证密钥加密的凭据值,其中,身份提供方140可以利用用户设备110的身份认证参数产生加密密钥和验证密钥。以下结合附图对上述内容进行详细描述。
图7示出了本申请实施方式的用户设备利用TEE设备在身份提供方进行示例性的用户身份认证账号注册的交互示意图。图7所示的所示的交互过程是对图2中未示出的现有技术实施部分的改进。
在一些用户150在身份提供方140注册身份认证账号的可能场景中,用户可以通过操作用户设备110发起向身份提供方140注册用户的身份认证账号并将用户设备110与身份认证账号进行绑定。在这种场景中,为了保护用户的身份认证账号的注册信息的安全性,用户设备110可以利用TEE设备130对注册过程进行辅助。相比于现有技术而言,用户设备110通过利用TEE机制,使得用户设备110的注册过程的安全性都受TEE的保护,从而实现实现保护用户的身份认证账号的注册信息的目的。
图7示出了各个设备彼此之间的数据交互。如图7所示,在用户150将用户设备110首次绑定或注册到身份提供方140时,用户设备110的收发单元112在701:发送用于用户设备注册的信息发送到身份提供方140。用于用户设备注册的信息可以包括,用户150的身份认证账号的名称和密码,以及用户设备110的设备信息,例如用户设备110的设备ID和序列号等。
身份提供方140的收发单元143接收到来自用户设备110的信息后,利用这些信息在身份提供方140的TEE单元142中生成用户设备的对应的密钥和签名值。身份提供方140的收发单元143之后在702:发送签名值和用户设备110的注册的信息到TEE设备130。
TEE设备130的收发单元133接收到来自身份提供方140的签名值和用户设备110的注册的信息后,TEE设备130在TEE单元132中对签名值进行验证,在签名值验证通过的情况下,TEE设备130在TEE单元132中生成挑战数据和消息认证码。之后,TEE设备130的收发单元133在703:发送挑战数据和消息认证码到身份提供方140。
随后,身份提供方140在TEE单元143中对消息认证码解密和验证,在消息认证码验证通过后,收发单元143在704:发送注册成功的信息到用户设备110。用户设备110的注册完成。
图8示出了本申请实施方式的用户设备利用TEE设备在身份提供方进行身份认证的交互示意图。图8所示的交互过程是对图2所示的交互过程的进一步说明,尤其是对图2所示的块211、212和213部分的进一步说明,在前述各实施方式中已描述的内容,以下将简略描述或不再赘述。
如图8所示,TEE设备130的收发单元133在801:发送用户设备110的身份认证参数到身份提供方140。其中,TEE设备130发送身份认证参数的场景可以参考前述各种实施方式,例如参考图2中块208部分的描述,在此不再赘述。在可选的实施方式中,身份认证参数中可以包含用户设备的设备信息,例如设备ID等。以下参考图8的后续过程对图2所示的块211部分进行描述,图2中块209-块210的部分不再赘述。
身份提供方140的收发单元143接收到来自TEE设备130的用户设备110的身份认证参数后,在身份提供方140的TEE单元142中生成用户设备110的对应的密钥和签名值。身份提供方140的收发单元143之后在802:发送签名值到TEE设备130。
TEE设备130的收发单元133接收到来自身份提供方140的签名值后,TEE设备130在TEE单元132中对签名值进行验证,在签名值验证通过的情况下,TEE设备130在TEE单元132中生成第一挑战数据和第一消息认证码。之后,TEE设备130的收发单元133在803:发送第一挑战数据和第一消息认证码到身份提供方140。
随后,身份提供方140在TEE单元143中对第一消息认证码解密和验证,在第一消息认证码验证通过后,身份提供方140在TEE单元142生成第二挑战数据和第二消息认证码,并通过收发单元143在804:发送第二挑战数据和第二消息认证码到TEE设备130。
TEE设备130接收到来自身份提供方140的第二挑战数据和第二消息认证码后,身份提供方140在TEE单元143中对第二消息认证码解密和验证,在第二消息认证码验证通过后,TEE设备130通过收发单元133在805:通知身份提供方140,身份认证通过。
身份提供方140接收到TEE设备130的身份认证通过的应答后,在806:同意用户设备110通过身份认证到用户设备110。该信息可以通过收发单元143发送给用户设备110,并完成身份认证。
以下结合附图具体描述上述图7和图8中TEE设备和身份提供方各自的TEE单元执行注册和认证的流程。
图9示出了本申请实施方式的身份提供方140的TEE单元142执行注册操作的流程。
如图9所示,在901:根据注册的信息,生成用户设备110的对应的密钥和签名值。作为一个示例,在TEE单元142计算身份提供方140的私钥对应的签名值Sign(RND1,RND2)Ski,其中RND1和RND2是身份提供方140产生的两个随机数,Ski是身份提供方140的证书私钥。
同时,TEE单元142使用注册的身份认证账号的密码,生成用户设备110的密钥,其中密钥包括用于加密数据的对称加密密钥(Encrypt Key,EK)和用来认证的对称验证密钥(Authentication Key,AK),其中:
EK=KDF1(Hash(PWD),RND1);
AK=KDF2(Hash(PWD),RND2)
Hash(PWD)是用户密码PWD的哈希,KDF1和KDF2分别为密钥派生算法(KeyDerivation Function,KDF)。
之后,收发单元143在902:发送签名值和用户设备的注册的信息到TEE设备130。其中,签名值为Sign(RND1,RND2)Ski,用户设备110的注册的信息可以包括用户密码PWD和设备ID。
在903:对消息认证码进行解密和验证。身份提供方140接收到来自TEE设备130的挑战数据C和消息认证码(Message Authentication Code,MAC)的值(Tag)后,其中C=E(RND2,Kp,IDp_dev,MF)EK;Tag=MAC(RND2,Kp,IDp_dev,MF)AK。TEE单元142通过EK和AK对挑战数据C和消息认证码进行解密,获得RND2、Kp、IDp_dev和MF,其中,Kp是用户和认证中心的共享对称密钥,IDp_dev是用户设备110的设备ID,MF是认证需要的多因子认证数据(Multi-factor,MF)。随后,TEE单元142对MAC进行验证。
如果MAC验证通过,那么,TEE单元142在904:在消息认证码通过验证的情况下,存储多因子认证数据MF和共享对称密钥Kp
图10示出了本申请实施方式的TEE设备130的TEE单元132执行辅助注册操作的流程。
如图10所示,TEE设备130接收到来自身份提供方140的签名值Sign(RND1,RND2)Ski和用户设备110的设备ID后,TEE单元132在1001:对签名值进行验证。TEE设备130通过自身预先存储的身份提供方140的证书公钥,对签名值Sign(RND1,RND2)Ski进行验证。
在1002:在签名值验证通过的情况下,生成挑战数据和消息认证码。在TEE单元132对签名值Sign(RND1,RND2)Ski验证通过后,TEE单元132生成EK=KDF1(Hash(PWD),RND1)和AK=KDF2(Hash(PWD),RND2),并且生成共享对称密钥Kp
随后,TEE单元132使用上述参数和用户设备110的IDp_dev和Kp计算挑战数据C和MAC的值,其中:
C=E(RND2,Kp,IDp_dev,MF)EK
Tag=MAC(RND2,Kp,IDp_dev,MF)AK
其中,RND2,Kp,IDp_dev,MF这些数据使用EK做对称加密生成C,并使用AK做对称加密生成MAC的值(Tag)。之后TEE设备130将挑战数据和消息认证码发送给身份提供方140。
图11示出了本申请实施方式的身份提供方140的TEE单元142执行认证操作的流程。对于图9已描述的内容,以下将简略描述或不再赘述。
在1101:根据注册的信息,生成用户设备110的对应的密钥和签名值。TEE单元142执行的过程与图9中块901的过程类似,在此不再赘述。
在1102:对第一消息认证码进行解密和验证。身份提供方140接收到来自TEE设备130的第一挑战数据C1和第一消息认证码MAC的值Tag1后,TEE单元142通过EK和AK对挑战数据C1和Tag1进行解密,随后,TEE单元142对MAC进行验证。
如果MAC验证通过,那么,TEE单元142在1103:在第一消息认证码通过验证的情况下,生成第二挑战数据和第二消息认证码。作为一个示例,TEE单元142根据用户设备110和用户设备110登录应用的服务提供商(例如,可以是身份提供方140,也可以是应用的运营商)之间的密钥Kps,以及身份提供方140和服务提供商之间的密钥Ksp,生成新的密钥EK’和AK’,如下:
EK'=KDF1(Ksp,RND3),
AK'=KDF2(Ksp,RND3),
其中,RND3是身份提供方140生成的随机数。之后,TEE单元142使用密钥EK’和AK’计算凭证值T,如下:
T=E(Kps,IDp_dev)EK',RND3,MAC(KPS,RND3,IDp_dev)AK'
TEE单元142根据凭证值T和密钥Kps计算第二挑战数据和第二消息认证码,其中第二挑战数据为C2=E(Kps,T)EK,第二消息认证码为Tag2=MAC(Kps,T)AK。之后身份提供方140将第二挑战数据和第二消息认证码发送到TEE设备130。
图12示出了本申请实施方式的TEE设备130的TEE单元132执行辅助认证操作的流程。对于图10已描述的内容,以下将简略描述或不再赘述。
如图12所示,TEE设备130接收到来自身份提供方140的签名值Sign(RND1,RND2)Ski后,TEE单元132在1201:对签名值进行验证。这里可以参考图10的块1001的描述,这里不再赘述。
在1202:在签名值验证通过的情况下,生成第一挑战数据和第一消息认证码。在TEE单元132对签名值Sign(RND1,RND2)Ski验证通过后,TEE单元132生成EK=KDF1(Hash(PWD),RND1,RND2,Kp,MF)和AK=KDF2(Hash(PWD),RND1,RND2,Kp,MF)。随后,TEE单元132使用上述参数计算第一挑战数据C1和第一消息认证码的值Tag1,其中,C1=E(RND2)EK,Tag1=MAC(RND2)AK。之后TEE设备130将第一挑战数据C1和第一消息认证码的值Tag1发送到身份提供方140。
TEE设备130接收到来自身份提供方140的第二挑战数据和第二消息认证码后,TEE单元132在1203:对第二消息认证码进行解密和验证。TEE单元132使用EK和AK对第二挑战数据C2=E(Kps,T)EK,第二消息认证码的值Tag2=MAC(Kps,T)AK进行解密,并对Tag2进行验证。
如果验证通过,TEE单元132在1204:在第二消息认证码通过验证的情况下,存储密钥Kps和凭证T。
根据本申请的实施方式,通过利用TEE机制,用户设备的整个认证过程的安全性都受TEE的保护。此外,本申请的身份认证方法能够部署在非TEE的电子设备上,使得非TEE设备可以借助于诸如智能手机等的TEE设备为用户提供安全的SSO服务,解决了非TEE设备无法获得安全保护的问题。
现在参考图13,所示为根据本申请的一个实施例的电子设备1300的框图。电子设备1300可以是用户设备110、TEE设备130、关联设备160和身份提供方140中任何一个。设备1300可以包括一个或多个处理器1302,与处理器1302中的至少一个连接的***控制逻辑1308,与***控制逻辑1308连接的***内存1304,与***控制逻辑1308连接的非易失性存储器(NVM)1306,以及与***控制逻辑1308连接的网络接口1310。
处理器1302可以包括一个或多个单核或多核处理器。处理器1302可以包括通用处理器和专用处理器(例如,微型处理器,应用处理器等)的任何组合。在本文的实施例中,处理器1302可以被配置为实现图1所示的控制单元(111、131和141)各自的功能并执行根据如图2-12所示的各种实施例的一个或多个实施例。在另一些实施例中,处理器1302可以被配置为实现图1所示的TEE单元(132和142)各自的功能并执行根据如图2-12所示的各种实施例的一个或多个实施例。
在一种可能的实施方式中,处理器1302可以运行操作***,例如,Android、iOS、Windows OS、Linux和鸿蒙操作***等。在另一些可能的实施方式中,处理器1302可以运行特定的应用程序。
处理器1302中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器1302中的存储器为高速缓冲存储器。该存储器可以保存处理器1302刚用过或循环使用的指令或数据。如果处理器1302需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器1302的等待时间,因而提高了***的效率。
在一些实施例中,***控制逻辑1308可以包括任意合适的接口控制器,以向处理器1302中的至少一个和/或与***控制逻辑1308通信的任意合适的设备或组件提供任意合适的接口。
在一些实施例中,***控制逻辑1308可以包括一个或多个存储器控制器,以提供连接到***内存1304的接口。***内存1304可以用于加载以及存储数据和/或指令。在一些实施例中设备1300的内存1304可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。
NVM/存储器1306可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM/存储器1306可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(Hard Disk Drive,硬盘驱动器),CD(Compact Disc,光盘)驱动器,DVD(Digital Versatile Disc,数字通用光盘)驱动器中的至少一个。
NVM/存储器1306可以包括安装在设备1300的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口1310通过网络访问NVM/存储1306。
特别地,***内存1304和NVM/存储器1306可以分别包括:指令1320的暂时副本和永久副本。指令1320可以包括:由处理器1302中的至少一个执行时导致设备1300实施如图3-图6和图9-图12所示的方法的指令。在一些实施例中,指令1320、硬件、固件和/或其软件组件可另外地/替代地置于***控制逻辑1308,网络接口1310和/或处理器1302中。
网络接口1310可以包括收发器,用于为设备1300提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信,从而实现如图1所示的各个收发单元(112、133和143)的功能。在一些实施例中,网络接口1310可以集成于设备1300的其他组件。例如,网络接口1310可以集成于处理器1302的,***内存1304,NVM/存储器1306,和具有指令的固件设备(未示出)中的至少一种,当处理器1302中的至少一个执行所述指令时,设备1300实现图2-12所示的各种实施例的一个或多个实施例。
网络接口1310可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口1310可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。
在一个实施例中,处理器1302中的至少一个可以与用于***控制逻辑1308的一个或多个控制器的逻辑封装在一起,以形成***封装(SiP)。在一个实施例中,处理器1302中的至少一个可以与用于***控制逻辑1308的一个或多个控制器的逻辑集成在同一管芯上,以形成片上***(SoC)。
设备1300可以进一步包括:输入/输出(I/O)设备1312。I/O设备1312可以包括用户界面,使得用户能够与设备1300进行交互;***组件接口的设计使得***组件也能够与设备1300交互。在一些实施例中,设备1300还包括传感器,用于确定与设备1300相关的环境条件和位置信息的至少一种。
在一些实施例中,用户界面可包括但不限于显示器(例如,液晶显示器,触摸屏显示器等),扬声器,麦克风,一个或多个相机(例如,静止图像照相机和/或摄像机),手电筒(例如,发光二极管闪光灯)和键盘。
在一些实施例中,***组件接口可以包括但不限于非易失性存储器端口、音频插孔和电源接口。
在一些实施例中,传感器可包括但不限于陀螺仪传感器,加速度计,近程传感器,环境光线传感器和定位单元。定位单元还可以是网络接口1310的一部分或与网络接口1310交互,以与定位网络的组件(例如,全球定位***(GPS)卫星)进行通信。
本申请的各方法实施方式均可以以软件、磁件、固件等方式实现。
可将程序代码应用于输入指令,以执行本文描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理***包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何***。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理***通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
至少一个实施例的一个或多个方面可以由存储在计算机可读存储介质上的表示性指令来实现,指令表示处理器中的各种逻辑,指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的计算机可读存储介质上,并被提供给多个客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
在一些情况下,指令转换器可用来将指令从源指令集转换至目标指令集。例如,指令转换器可以变换(例如使用静态二进制变换、包括动态编译的动态二进制变换)、变形、仿真或以其它方式将指令转换成将由核来处理的一个或多个其它指令。指令转换器可以用软件、硬件、固件、或其组合实现。指令转换器可以在处理器上、在处理器外、或者部分在处理器上且部分在处理器外。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质的途径分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制、但不限于、软盘、光盘、光盘、只读存储器(CD-ROM)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于通过电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)通过因特网传输信息的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可以不需要这样的特定布置和/或排序。在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包含结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元或是数据,但是这些单元或数据不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一特征可以被称为第二特征,并且类似地第二特征可以被称为第一特征。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。

Claims (31)

1.一种用于身份认证***的身份认证方法,其中所述身份认证***包括不具有可信执行环境(TEE)单元的用户设备,具有TEE单元的TEE设备,和身份提供方(IDP),其特征在于,所述方法包括:
所述IDP用于:根据所述用户设备的认证请求,确定与所述用户设备关联的TEE设备;
所述用户设备用于:与所述TEE设备建立通信连接,向所述TEE设备发送所述用户设备的身份认证参数;
所述TEE设备用于:将所述用户设备的身份认证参数发送至所述IDP;
所述IDP还用于:接收所述TEE设备发送的所述用户设备的身份认证参数,并根据所述身份认证参数并利用所述TEE设备对所述用户设备的用户进行所述身份认证。
2.如权利要求1所述的方法,其特征在于,所述用户设备还用于:将指示所述用户设备不具有所述TEE单元的标记发送给所述IDP。
3.如权利要求1所述的方法,其特征在于,确定与所述用户设备关联的TEE设备,包括:
所述IDP接收来自所述用户设备的所述身份认证账号与来自所述TEE设备的所述身份认证账号;
所述IDP在所述用户设备的所述身份认证账号与来自所述TEE设备的所述身份认证账号相同或关联的情况下,确定所述用户设备具有关联的所述TEE设备。
4.如权利要求1所述的方法,其特征在于,所述身份认证***还包括关联设备,其中所述方法还包括:
所述关联设备接收来自所述用户设备的所述身份认证账号,以及至少部分地指示所述用户设备不具有所述TEE单元的标记;
所述关联设备接收来自所述TEE设备的所述身份认证账号,以及至少部分地指示所述TEE设备具有所述TEE单元的标记;和
所述关联设备在确定所述用户设备的所述身份认证账号与所述TEE设备的所述身份认证账号相同的情况下,将所述用户设备与所述TEE设备相关联于所述身份认证账号。
5.如权利要求4所述的方法,其特征在于,所述确定与所述用户设备关联的TEE设备包括:
所述IDP向所述关联设备发送询问所述用户设备是否具有关联的TEE设备的请求;
所述IDP根据所述关联设备的响应,确定与所述用户设备关联的所述TEE设备。
6.一种用于用户设备的身份认证方法,其中所述用户设备不具有可信执行环境(TEE)单元,其特征在于,包括:
与具有所述TEE单元的TEE设备建立通信连接,其中所述TEE设备与所述用户设备关联;和
向所述TEE设备发送所述用户设备的身份认证参数,用于所述TEE设备发送所述身份认证参数至身份提供方(IDP)后,所述IDP根据所述身份认证参数并利用所述TEE设备对所述用户设备的用户进行身份认证。
7.如权利要求6所述的方法,其特征在于,还包括:
向所述IDP发送至少部分地指示所述用户设备不具有所述TEE单元的标记;
接收来自所述IDP的确认是否使用所述TEE设备进行所述身份认证的请求;和
向所述IDP发送确定使用所述TEE设备对所述用户设备的所述用户进行所述身份认证的信息。
8.如权利要求6-7中任一项所述的方法,其特征在于,还包括:
向所述IDP发送所述用户设备的所述身份认证账号。
9.如权利要求6-7中任一项所述的方法,其特征在于,还包括:
向关联设备发送所述用户设备的所述身份认证账号和至少部分地指示所述用户设备不具有所述TEE单元的标记。
10.如权利要求6-7中任一项所述的方法,其特征在于,在所述用户设备的身份认证账号与来自所述TEE设备的身份认证账号相同或关联的情况下,所述TEE设备与所述用户设备关联。
11.如权利要求6-7中任一项所述的方法,其特征在于,所述身份认证参数包括所述用户设备的设备序列号和设备识别号中的至少一个。
12.如权利要求6-11中任一项所述的方法,其特征在于,所述用户设备具有另一个身份认证账号,其中所述用户设备的所述另一个身份认证账号与另一个TEE设备的身份认证账号相同,其中所述另一个TEE设备具有所述TEE单元。
13.一种用于可信执行环境(TEE)设备的身份认证方法,其中所述TEE设备具有TEE单元;其特征在于,包括:
与用户设备建立通信连接,其中所述用户设备不具有所述TEE单元,其中,所述TEE设备与所述用户设备关联;
接收来自所述用户设备的身份认证参数,其中所述身份认证参数用于对所述用户设备的用户进行的身份认证;和
将所述身份认证参数发送到身份提供方(IDP),以用于所述IDP根据所述身份认证参数并利用所述TEE设备对所述用户设备的用户进行所述身份认证。
14.如权利要求13所述的方法,其特征在于,所述与用户设备建立通信连接,包括:
接收来自所述IDP的确定所述TEE设备是否在线的请求;
响应于所述请求,与所述用户设备建立通信连接;和
向所述IDP发送所述TEE设备在线的信息。
15.如权利要求13-14中的任一项所述的方法,其特征在于,还包括:
向关联设备发送所述TEE设备的身份认证账号,以及至少部分地指示所述TEE设备具有所述TEE单元的标记。
16.如权利要求13-14中任一项所述的方法,其特征在于,还包括:
向所述IDP发送所述TEE设备的身份认证账号,以及至少部分地指示所述TEE设备具有所述TEE单元的标记。
17.如权利要求13-14中任一项所述的方法,其特征在于,在所述用户设备的身份认证账号与来自所述TEE设备的身份认证账号相同或关联的情况下,所述TEE设备与所述用户设备关联。
18.如权利要求13-16中任一项所述的方法,其特征在于,所述身份认证参数包括所述用户设备的设备序列号和设备识别号中的至少一个。
19.一种用于身份提供方(IDP)的身份认证方法,其特征在于,包括:
接收到用户设备的认证请求,其中所述用户设备不具有可信执行环境(TEE)单元;
响应于所述认证请求,确定所述用户设备是否具有关联的TEE设备,其中所述TEE设备具有所述TEE单元;和
至少部分地基于所述用户设备具有关联的所述TEE设备的情况下,接收所述TEE设备发送的所述用户设备的身份认证参数,并根据所述身份认证参数并利用所述TEE设备对所述用户设备的用户进行所述身份认证。
20.如权利要求19所述的方法,其特征在于,还包括:接收来自所述用户设备的指示所述用户设备不具有可信执行环境(TEE)单元的信息。
21.如权利要求19所述的方法,其特征在于,所述确定所述用户设备是否具有关联的TEE设备,还包括:
向关联设备发送询问所述用户设备是否具有关联的TEE设备的请求。
22.如权利要求19所述的方法,其特征在于,所述确定所述用户设备是否具有关联的TEE设备,还包括:
接收来自所述用户设备的身份认证账号与来自所述TEE设备的身份认证账号;
在所述用户设备的所述身份认证账号与来自所述TEE设备的所述身份认证账号相同或关联的情况下,确定所述用户设备具有关联的所述TEE设备;和
在所述用户设备的所述身份认证账号与来自所述TEE设备的所述身份认证账号不同或不关联的情况下,确定所述用户设备不具有关联的所述TEE设备。
23.如权利要求19-22中任一项所述的方法,其特征在于,还包括:
在所述用户设备具有关联的所述TEE设备的情况下,向所述TEE设备发送确认所述TEE设备在线的请求;
接收来自所述TEE设备的确认所述TEE设备在线的信息;和
接收所述TEE设备发送的所述用户设备的所述身份认证参数,并根据所述身份认证参数对所述用户设备的用户进行所述身份认证。
24.如权利要求19-23中任一项所述的方法,其特征在于,所述根据所述身份认证参数并利用所述TEE设备对所述用户设备的用户进行所述身份认证,包括:
利用所述身份认证参数,通过与所述TEE设备交互基于所述身份认证参数的加密数据,对所述用户设备的用户进行所述身份认证。
25.如权利要求24所述的方法,其特征在于,所述加密数据包括:用加密密钥加密的挑战值以及用验证密钥加密的凭据值,其中所述加密密钥和验证密钥是基于所述身份认证参数产生的。
26.如权利要求19-25,其特征在于,所述身份认证参数包括所述用户设备的设备序列号和设备识别号中的至少一个。
27.一种用于关联设备的身份认证方法,其特征在于,包括:
接收用户设备和TEE设备发送的身份认证账号,其中用户设备不具有可信执行环境(TEE)单元,所述TEE设备具有TEE单元;
根据接收的所述身份认证账号,建立所述用户设备与所述TEE设备的关联;;
响应身份提供方(IDP)的请求,确定与请求身份认证的所述用户设备关联的所述TEE设备,以用于所述TEE设备将所述用户设备的身份认证参数发送给所述IDP,由所述IDP根据所述身份认证参数并利用所述TEE设备对所述用户设备的用户进行所述身份认证。
28.如权利要求27所述的身份认证方法,其特征在于,根据接收的所述身份认证账号,建立所述用户设备与所述TEE设备的关联包括:在确定所述用户设备的所述身份认证账号与所述TEE设备的所述身份认证账号相同或关联的的情况下,将所述用户设备与所述TEE设备相关联。
29.如权利要求27所述的身份认证方法,其特征在于,响应身份提供方(IDP)的请求,确定与请求身份认证的所述用户设备关联的所述TEE设备包括:
接收来自所述身份提供方(IDP)的查询所述用户设备是否与所述TEE设备相关联的请求;
查询到所述用户设备与所述TEE设备相关联;和
向所述IDP返回所述用户设备与所述TEE设备相关联的信息。
30.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,该指令在计算机上执行时使所述计算机执行根据权利要求1-29中任一项所述的方法。
31.一种电子设备,其特征在于,包括:
存储器,用于存储由所述电子设备的一个或多个处理器执行的指令,以及
处理器,用于执行所述存储器中的所述指令,以执行根据权利要求1-29中任一项所述的方法。
CN202010383065.4A 2020-05-08 2020-05-08 身份认证方法、存储介质和电子设备 Pending CN113626777A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010383065.4A CN113626777A (zh) 2020-05-08 2020-05-08 身份认证方法、存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010383065.4A CN113626777A (zh) 2020-05-08 2020-05-08 身份认证方法、存储介质和电子设备

Publications (1)

Publication Number Publication Date
CN113626777A true CN113626777A (zh) 2021-11-09

Family

ID=78377264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010383065.4A Pending CN113626777A (zh) 2020-05-08 2020-05-08 身份认证方法、存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN113626777A (zh)

Similar Documents

Publication Publication Date Title
JP7457173B2 (ja) モノのインターネット(iot)デバイスの管理
US10412061B2 (en) Method and system for encrypted communications
EP3602388B1 (en) Blockchain node communication method and apparatus
US8606234B2 (en) Methods and apparatus for provisioning devices with secrets
US9807610B2 (en) Method and apparatus for seamless out-of-band authentication
US9900774B2 (en) Shared network connection credentials on check-in at a user's home location
WO2014142617A1 (en) Secure mobile payment using media binding
EP2887615A1 (en) Cloud-based scalable authentication for electronic devices
US20140181517A1 (en) Cloud Centric Application Trust Validation
EP2879421B1 (en) Terminal identity verification and service authentication method, system, and terminal
US11564094B1 (en) Secondary device authentication proxied from authenticated primary device
CN104205891A (zh) 虚拟sim卡云平台
KR20160127167A (ko) 다중 팩터 인증 기관
JP2014524073A (ja) サービスアクセス認証方法およびシステム
JP2018517367A (ja) サービスプロバイダ証明書管理
KR20120055728A (ko) 신뢰성있는 인증 및 로그온을 위한 방법 및 장치
CN110278084B (zh) eID建立方法、相关设备及***
WO2019134494A1 (zh) 验证信息处理方法、通信设备、业务平台及存储介质
WO2019056971A1 (zh) 一种鉴权方法及设备
CN115065703B (zh) 物联网***及其认证与通信方法、相关设备
EP3085007B1 (en) Push-based trust model for public cloud applications
CN113626777A (zh) 身份认证方法、存储介质和电子设备
CN106789013A (zh) 一种门锁加密芯片和sdk之间互信及加解密方法与装置

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