CN117176362B - 一种认证方法和装置 - Google Patents

一种认证方法和装置 Download PDF

Info

Publication number
CN117176362B
CN117176362B CN202311454820.3A CN202311454820A CN117176362B CN 117176362 B CN117176362 B CN 117176362B CN 202311454820 A CN202311454820 A CN 202311454820A CN 117176362 B CN117176362 B CN 117176362B
Authority
CN
China
Prior art keywords
application
electronic device
server
authentication
digital certificate
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
Application number
CN202311454820.3A
Other languages
English (en)
Other versions
CN117176362A (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.)
Honor Device Co Ltd
Original Assignee
Honor 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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202311454820.3A priority Critical patent/CN117176362B/zh
Publication of CN117176362A publication Critical patent/CN117176362A/zh
Application granted granted Critical
Publication of CN117176362B publication Critical patent/CN117176362B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例提供一种认证方法和装置,涉及通信技术领域,能够保证应用程序与服务器之间的安全通信。其方法应用于电子设备,电子设备中安装有第一应用,电子设备包括可信执行环境TEE;其方法包括:电子设备运行第一应用从TEE获取第一数字证书,第一数字证书包括第一应用的标识和应用签名证书指纹;电子设备向第一服务器发送第一数字证书;电子设备接收来自第一服务器的认证通过消息,认证通过消息用于指示第一数字证书认证通过,以及应用签名证书指纹认证通过;电子设备基于第一应用与第一服务器进行安全通信。

Description

一种认证方法和装置
技术领域
本申请涉及通信技术领域,尤其涉及一种认证方法和装置。
背景技术
为了保证应用程序与服务器之间的安全通信,可以对电子设备和应用程序(application,APP)进行安全认证,以确保应用程序和电子设备的合法性。目前,对电子设备和应用程序进行安全认证是基于软件能力实现的。
例如,进行设备认证时,可以通过本地代码(native code)实现设备唯一标识计算,进而完成设备的唯一性跟踪。进行APP认证时,可以将APP的签名信息(例如,应用ID和应用签名证书指纹)打包在APP的native code中,或者,APP的native code可以调用API获取签名信息,再将签名信息发送至服务器进行验签。然而,这种认证方式存在安全漏洞。应用程序的签名信息的安全性无法保障,存在签名信息被篡改的可能性,从而导致应用程序与服务器之间的安全通信无法保障。
发明内容
本申请实施例提供一种认证方法和装置,能够保证应用程序与服务器之间的安全通信。
第一方面,本申请实施例提供一种认证方法,应用于电子设备,电子设备中安装有第一应用,电子设备包括可信执行环境TEE;方法包括:电子设备运行第一应用从TEE获取第一数字证书,第一数字证书包括第一应用的标识和应用签名证书指纹;电子设备向第一服务器发送第一数字证书;电子设备接收来自第一服务器的认证通过消息,认证通过消息用于指示第一数字证书认证通过,以及第一应用的标识和应用签名证书指纹认证通过;电子设备基于第一应用与第一服务器进行安全通信。
基于本申请实施例提供的方法,电子设备的第一应用可以从TEE获取第一数字证书,并向第一服务器发送该证书。在该第一数字证书认证通过,且该证书中包含的应用签名证书指纹认证通过的情况下,第一应用可以与第一服务器进行安全通信。由于第一数字证书是从TEE直接获取的,可以避免端侧(电子设备侧)的恶意程序对第一数字证书中的第一应用的标识、应用签名证书指纹进行篡改的问题。并且,通过第一数字证书携带第一应用的标识、应用签名证书指纹到第一服务器,使得第一服务器既对第一数字证书进行认证,也可以对第一应用的标识和应用签名证书指纹进行认证,都认证通过后,第一应用可以与第一服务器进行通信,确保了第一应用与第一服务器之间的通信安全。
在一种可能的实施方式中,第一应用从TEE获取第一数字证书包括:电子设备运行第一应用调用通用密钥库***HUKS接口从TEE获取第一数字证书。其中,HUKS接口(即HUKSAPI)是HUKS组件向上层软件(例如,应用程序)开放的接口。HUKS组件在安全环境下运行,例如,TEE或者具备安全能力的芯片等。这样,可以保证第一数字证书的合法性。
在一种可能的实施方式中,第一数字证书还包括电子设备的唯一标识符和公钥。安全云服务器(第一服务器)首次接收到包含电子设备的唯一标识符(例如,第一UDID)的设备证书(第一数字证书)的情况下,安全云服务器可以基于第一UDID生成device Token,并建立device Token与公钥的对应关系。后续应用程序请求的数据可以使用公钥对应的私钥进行签名,并可以将签名后的数据和device Token发送给安全云服务器。安全云服务器可以校验device Token,以确保电子设备和应用程序的合法性。安全云服务器可以基于device Token对应的公钥对应用程序请求的数据进行验签,以确保报文的完整性。
在一种可能的实施方式中,认证通过消息包括第一令牌,第一令牌与公钥具有对应关系,第一令牌用于校验电子设备和第一应用的合法性。这样,可以根据第一令牌校验电子设备和第一应用的合法性,确保了第一应用与第一服务器之间的通信安全。
在一种可能的实施方式中,电子设备基于第一应用与第一服务器进行安全通信包括:电子设备基于第一应用,根据公钥对应的私钥对第一应用的第一业务数据进行签名得到签名数据;电子设备基于第一应用,向第一服务器发送签名数据和第一令牌。这样,可以根据第一令牌校验电子设备和第一应用的合法性,确保了第一应用与第一服务器之间的通信安全。
在一种可能的实施方式中,电子设备基于第一应用登录第一账号,第一账号通过双因子认证,双因子校验包括密码校验和验证码校验。若电子设备是双因子校验通过的设备(即电子设备登录的账号(应用程序登录的账号)通过双因子校验),且对电子设备或应用程序进行的应用程序认证、账号认证、设备认证中的至少一种认证通过(例如,应用程序认证、账号认证、设备认证都通过,或者,应用程序认证和设备认证通过,或者,应用程序认证通过),允许高敏感接口操作,即允许电子设备的应用程序调用高敏感接口对高敏感数据进行处理。这样,可以确保第一应用与第一服务器之间的通信安全。
第二方面,本申请实施例提供一种认证方法,应用于包括电子设备和第一服务器的认证***,电子设备中安装有第一应用,电子设备包括可信执行环境TEE,方法包括:电子设备运行第一应用从TEE获取第一数字证书,第一数字证书包括第一应用的标识、应用签名证书指纹;电子设备向第一服务器发送第一数字证书;第一服务器接收第一数字证书,基于证书链对第一数字证书进行认证;第一服务器对第一数字证书认证通过后,对第一应用的标识和应用签名证书指纹进行认证;第一服务器对第一应用的标识和应用签名证书指纹认证通过后,向第一应用发送认证通过消息,认证通过消息用于指示第一数字证书认证通过,以及第一应用的标识和应用签名证书指纹认证通过;电子设备接收来自第一服务器的认证通过消息;电子设备基于第一应用与第一服务器进行安全通信。
基于本申请实施例提供的方法,电子设备的第一应用可以从TEE获取第一数字证书,并向第一服务器发送该证书。第一服务器可以对第一数字证书进行认证,并且对第一应用的标识和应用签名证书指纹进行认证。在该第一数字证书认证通过,且该证书中包含的应用签名证书指纹认证通过的情况下,第一应用可以与第一服务器进行安全通信。由于第一数字证书是从TEE直接获取的,可以避免端侧(电子设备侧)的恶意程序对第一数字证书中的第一应用的标识、应用签名证书指纹进行篡改的问题。并且,通过第一数字证书携带第一应用的标识、应用签名证书指纹到第一服务器,使得第一服务器既对第一数字证书进行认证,也可以对第一应用的标识和应用签名证书指纹进行认证,都认证通过后,第一应用可以与第一服务器进行通信,确保了第一应用与第一服务器之间的通信安全。
在一种可能的实施方式中,电子设备运行第一应用从TEE获取第一数字证书包括:电子设备运行第一应用调用通用密钥库***HUKS接口从TEE获取第一数字证书。
在一种可能的实施方式中,第一数字证书还包括电子设备的唯一标识符和公钥。
在一种可能的实施方式中,方法还包括:第一服务器根据电子设备的唯一标识符生成第一令牌;第一服务器建立第一令牌与公钥的对应关系,第一令牌用于校验电子设备和第一应用的合法性。
在一种可能的实施方式中,认证通过消息包括第一令牌。
在一种可能的实施方式中,电子设备基于第一应用与第一服务器进行安全通信包括:电子设备基于第一应用,根据公钥对应的私钥对第一应用的第一业务数据进行签名得到签名数据;电子设备基于第一应用,向第一服务器发送签名数据和第一令牌;第一服务器接收签名数据和第一令牌;第一服务器根据第一令牌对应的公钥对签名数据进行验签。
在一种可能的实施方式中,电子设备基于第一应用登录第一账号,第一账号通过双因子认证,双因子校验包括密码校验和验证码校验。
第三方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令。当计算机指令在电子设备(如手机)上运行时,使得该电子设备执行如第一方面或第二方面及其任一种可能的设计方式所述的方法。
第四方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面或第二方面及其任一种可能的设计方式所述的方法。
第五方面,本申请实施例提供了一种认证装置,包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时使得所述装置实现上述第一方面或第二方面及其任一种可能的设计方式所述的方法。所述装置可以为电子设备或第一服务器;或可以为电子设备或第一服务器中的一个组成部分,如芯片。
第六方面,本申请实施例提供了一种认证装置,所述装置可以按照功能划分为不同的逻辑单元或模块,各单元或模块执行不同的功能,以使得所述装置执行上述第一方面或第二方面及其任一种可能的设计方式所述的方法。
第七方面,本申请提供一种认证***,包括电子设备和第一服务器,其中,电子设备可以执行如第一方面或第二方面及其任一种可能的设计方式所述的方法,第一服务器可以执行如第二方面及其任一种可能的设计方式所述的方法。
第八方面,本申请提供一种芯片***,该芯片***包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。上述芯片***可以应用于包括通信模块和存储器的电子设备或第一服务器。该接口电路用于从电子设备或第一服务器的存储器接收信号,并向处理器发送接收到的信号,该信号包括存储器中存储的计算机指令。当处理器执行该计算机指令时,电子设备或第一服务器可以执行如第一方面及其任一种可能的设计方式所述的方法。
可以理解地,上述提供的第三方面所述的计算机可读存储介质,第四方面所述的计算机程序产品,第五方面、第六方面所述的装置,第七方面所述的***,以及第八方面所述的芯片***所能达到的有益效果,可参考如第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种***架构示意图;
图2为本申请实施例提供的又一种***架构示意图;
图3为本申请实施例提供的一种加入信任环的流程示意图;
图4为本申请实施例提供的一种电子设备的硬件结构示意图;
图5为本申请实施例提供的一种电子设备的软件架构示意图;
图6为本申请实施例提供的一种云服务器的硬件结构示意图;
图7为本申请实施例提供的一种云服务器的软件架构示意图;
图8为本申请实施例提供的一种信号交互示意图;
图9为本申请实施例提供的一种显示示意图;
图10为本申请实施例提供的又一种信号交互示意图;
图11为本申请实施例提供的又一种信号交互示意图;
图12为本申请实施例提供的又一种信号交互示意图;
图13为本申请实施例提供的芯片***的结构示意图。
具体实施方式
为了下述各实施例的描述清楚简洁,首先给出相关概念或技术的简要介绍:
密钥:一种在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥。非对称密钥可以包括一个公钥(public key,pk)和一个私钥(secret key,sk),公钥可以自由发布,私钥则由用户秘密保存。
签名(signatures ):采用公钥或私钥对报文(或其他信息,例如,哈希值)进行加密(encryption)的过程相当于生成签名。
验签:采用与公钥对应的私钥,或者私钥对应的公钥进行解密的过程相当于验签(即验证签名),若采用公钥或私钥解密得到的报文与原报文一致,则验证签名成功。对报文进行签名可以保证报文的完整性,若采用公钥或私钥验签成功,则说明报文在传输过程中未被篡改。
RSA加密算法:是现在广泛使用的现代加密的第一代加密算法,基于大素数分解难的数学问题来保证加密算法的安全性。
基于椭圆曲线的加密算法(elliptic curve cryptography,ECC),也可以称为椭圆曲线密码学,是基于有限域的椭圆曲线和复杂的椭圆曲线离散对数。ECC可以实现非对称加密所需要的大部分能力,包括: 加密、签名等。ECC相对于RSA既能保证安全性又能节约计算资源。
数字证书:由证书授权中心(certificate authority ,CA)签发的包含公开密钥拥有者信息以及公开密钥的权威性的电子文档。例如,数字证书可以包含一个公开密钥、名称以及证书授权中心的数字签名。数字证书可以用于证明公开密钥拥有者的身份信息。
通用运行环境(rich execution environment,REE):也可以称为富执行环境或普通执行环境或不可信执行环境,是指移动端的***运行环境,其中可以运行Android、IOS和Linux等操作***。REE的开放和扩展性好但安全性不高。
可信执行环境(trusted execution environment,TEE):也可以称安全侧或安全区,是需要授权才能访问的区域。TEE与REE共存于电子设备中的运行环境,其通过硬件的支撑,实现与REE的隔离,具有安全能力并且能够抵御常规REE侧易遭受的软件攻击。TEE有自身的运行空间,定义了严格的保护措施,因此,比REE的安全级别更高,能够保护TEE中的资产(assets),如数据,软件等,免受软件攻击,抵抗特定类型的安全威胁。
REE+TEE架构:是指通过TEE与REE结合共同为应用提供服务的架构。也就是说,TEE与REE共同存在于电子设备中。示例性的,TEE通过硬件的支撑,可实现与REE相隔离的运行机制。TEE有自身的运行空间,比REE的安全级别更高,能够保护TEE中的资产(如数据,软件等)免受软件攻击。只有授权的安全软件才能在TEE中执行,同时它也保护了安全软件的资源和数据的机密性。相比REE,由于其隔离和权限控制等保护机制,TEE能够更好的保护数据和资源的安全性。
重放攻击(replay attacks) :又称重播攻击、回放攻击或新鲜性攻击(freshnessattacks),是指攻击者发送一个目的主机已接收过的包,来达到欺骗***的目的,主要用于身份认证过程,破坏认证的正确性。
目前,进行APP认证时,可以将APP的签名信息(例如,应用ID和应用签名证书指纹)打包在APP的本地代码(native code)中,或者,APP的native code可以调用API获取签名信息,再将签名信息发送至服务器进行验签。然而,这种认证方式存在安全漏洞。应用程序的签名信息的安全性无法保障,存在签名信息被篡改的可能性,从而导致应用程序与服务器之间的安全通信无法保障。
本申请实施例提供一种认证方法和装置,能够对电子设备和应用程序的合法性进行认证,从而保证应用程序与服务器之间的安全通信。
本申请实施例提供的认证方法和装置可以应用于以下场景:
(1)云服务器(例如,安全云服务器)对应用程序的合法性进行认证的场景。
(2)云服务器对应用程序的合法性和电子设备的合法性进行认证的场景。
(3)云服务器对应用程序的合法性,设备的合法性以及账号的可信设备(登录同一账号且通过认证的设备)进行认证的场景。
图1示例性地示出了本申请实施例适用的一种***架构示意图。如图1所示,该***架构包括:服务器001和电子设备002。其中,服务器001可通过通信网络与电子设备002连接。其中,服务器001可以是位于网络侧的云服务器或者服务器集群等。服务器001可以为安全云服务器。服务器001可以对电子设备002以及电子设备002上安装的应用程序进行认证,以保证电子设备002以及电子设备002上安装的应用程序的合法性。
图2示例性地示出了本申请实施例适用的另一种***架构示意图。如图2所示,该***架构包括:服务器001、电子设备002、电子设备003、电子设备004以及服务器005。其中,服务器001可通过通信网络与电子设备002、电子设备003和电子设备004连接。服务器005可通过通信网络与电子设备002、电子设备003和电子设备004连接。服务器001可通过通信网络与服务器005连接。其中,服务器001和服务器005是位于网络侧的云服务器或者服务器集群等。服务器001可以为安全云服务器,服务器005可以为账号云服务器。
图2中,服务器005能够与电子设备002、电子设备003和电子设备004进行信息交互。例如电子设备002、电子设备003和电子设备004可以从服务器005获取***认证帐号信息(例如,荣耀®账号),从而电子设备002、电子设备003和电子设备004之间可以验证对端是否登录同一***认证帐号。若电子设备002、电子设备003和电子设备004登录同一***认证帐号,可以认为电子设备002、电子设备003和电子设备004处于同一个信任环,从而电子设备002、电子设备003和电子设备004之间可以安全地进行数据共享。
图2中,服务器001可以对电子设备002、电子设备003和电子设备004中的任一个电子设备以及该电子设备上安装的应用程序进行认证。并且,服务器001还可以对电子设备002、电子设备003和电子设备004中的任一个电子设备是否属于信任环的可信设备(登录同一账号且通过认证的设备)进行认证。
图2中,电子设备002、电子设备003和电子设备004可以是各种不同类型的电子设备,例如,电子设备002可以是平板电脑,电子设备003可以是手机,电子设备004可以是笔记本电脑。
图2中,电子设备002、电子设备003和电子设备004之间通过有线和/或无线的方式建立连接,电子设备002、电子设备003和电子设备004与服务器001之间可以通过有线和/或无线的方式建立连接。例如,电子设备002、电子设备003和电子设备004之间可以通过无线通信网络互联。该无线通信网络可以是局域网,也可以是通过中继(relay)设备转接的广域网。当该通信网络为局域网时,示例性的,该通信网络可以是Wi-Fi热点网络、Wi-Fi P2P网络、蓝牙网络、zigbee网络或NFC网络等近距离通信网络。当该通信网络为广域网时,示例性的,该通信网络可以是第三代移动通信技术(3rd-generation wireless telephonetechnology,3G)网络、***移动通信技术(the 4th generation mobile communicationtechnology,4G)网络、第五代移动通信技术(5th-generation mobile communicationtechnology,5G)网络、未来演进的公共陆地移动网络(public land mobile network,PLMN)或因特网等。在图2所示的场景中,不同电子设备之间可以通过通信网络发送数据,例如发送图片、文本、视频,或者电子设备对图片、文本或视频等对象的检索结果等。
需要说明的是,上述***中还可以包括更多的电子设备,例如还可以包括智能电视、智能手表等等。或者上述***中可以包括少于三个电子设备,例如只包括手机和笔记本电脑,或者只包括手机和平板电脑等等,本申请实施例对此并不作限制。
在一种可能的设计中,电子设备(例如,电子设备002、电子设备003和电子设备004)可以采用荣耀®操作***(MagicOS)。MagicOS 可以为登录同一账号(例如,荣耀®帐号)的设备互联提供设备认证服务。各MagicOS设备(即采用MagicOS的电子设备)在登录荣耀®帐号后可以生成公私钥对作为各自的身份标识,并向安全云服务器申请对其公钥进行认证。认证通过的同一荣耀®帐号下的电子设备可以加入同一信任环,可在设备互联业务中互相认证并交换各自的公钥,确认对端是可信设备。进一步地,基于双方的公私钥对,登录同一荣耀®帐号的电子设备间可以进行密钥协商并建立安全通信通道。仿冒设备和非本帐号下的其他设备将无法通过认证鉴权。
如图3所示,以设备C为例,对设备C加入信任环(设备A和设备B组成的信任环)的过程进行说明。
1、设备C的应用程序(例如,荣耀®商城)登录荣耀®云服务器。
2、应用程序(例如,荣耀®商城)向信任环应用发送登录通知。
其中,登录通知可以包括应用程序登录的荣耀®账号。信任环应用可以通过信任环服务与信任环TA交互。信任环TA在安全环境下运行,例如,TEE或者具备安全能力的芯片等。信任环TA中可以保存设备C登录荣耀®帐号后生成的公钥(即设备C对应的公钥)和私钥。
3、信任环应用向安全云服务器进行设备注册,上传设备C对应的公钥。
信任环应用可以从信任环TA获取设备C对应的公钥(例如,公钥C),并将该公钥发送至安全云服务器。
4、安全云服务器向账号云服务器发送账号验证请求。
5、账号云服务器向安全云服务器发送验证确认消息。
账号云服务器对设备C登录的账号认证通过后,可以向安全云服务器发送验证确认消息,表示设备C是加入信任环的可信设备。
6、安全云服务器更新可信设备列表。
安全云服务器可以根据设备C登录的荣耀®账号将设备C的公钥和设备C的唯一标识符(例如,设备唯一标识符(unique device identifier,UDID))保存到该荣耀®账号对应的可信设备列表。并且,安全云服务器可以将可信设备列表同步到账号云服务器。
安全云服务器可以在原有的可信设备列表中新增设备C的标识(例如,UDID)和设备C的公钥得到新的可信设备列表。即信任环服务器可以更新可信设备列表的版本,例如,原有的可信设备列表的版本为version16,新的可信设备列表的版本可以为version17。
示例性的,原有的可信设备列表可以如表1所示,包括设备A的UDID和公钥(公钥A),以及设备B的UDID和公钥(公钥B),设备A和设备B登录的账号相同,例如可以为[email protected]
表1
新的可信设备列表可以如表2所示,可以包括设备A、设备B和设备C分别对应的UDID和公钥。其中,设备C对应的公钥为公钥C。
表2
7、安全云服务器向设备C发送安全云服务器签名的公钥属性凭据。
其中,公钥属性凭据用于指示认证通过的同一荣耀®帐号下的电子设备。
设备C保存公钥属性凭据。设备C可以在设备互联业务中,与认证通过的同一荣耀®帐号下的电子设备互相认证并交换各自的公钥,确认对端是可信设备。进一步地,基于双方的公私钥对,登录同一荣耀®帐号的电子设备间可以进行密钥协商并建立安全通信通道。
下面以电子设备(例如,电子设备002-电子设备004中的任一个电子设备)为电子设备100的硬件结构为例进行说明。图4示出了电子设备100的硬件结构示意图。电子设备100可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence, AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备,本申请实施例对该电子设备的具体类型不作特殊限制。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(Universal Serial Bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,摄像头193,显示屏194,以及用户标识模块(Subscriber Identification Module,SIM)卡接口195等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
其中,处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(Application Processor,AP),调制解调处理器,图形处理器(Graphics Processingunit,GPU),图像信号处理器(Image Signal Processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(Digital Signal Processor,DSP),基带处理器,和/或神经网络处理器(Neural-network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像视频播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。
在一些实施例中,处理器110可以包括一个或多个接口。USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与***设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备100,例如AR设备等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(Low Noise Amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(WirelessLocal Area Networks,WLAN)(如Wi-Fi网络),蓝牙(Bluetooth,BT),全球导航卫星***(Global Navigation Satellite System,GNSS),调频(Frequency Modulation,FM),NFC,红外技术(Infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。电子设备100可以设置至少一个麦克风170C。
耳机接口170D用于连接有线耳机。
传感器模块180可以包括1个或多个传感器,这些传感器可以为相同类型或不同类型。传感器模块180可以包括压力传感器,陀螺仪传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,触摸传感器,环境光传感器等。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(Liquid Crystal Display,LCD),有机发光二极管(Organic Light-EmittingDiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(Active-MatrixOrganic Light Emitting Diode的,AMOLED),柔性发光二极管(Flex Light-EmittingDiode,FLED),Mini LED,Micro LED,Micro-OLED,量子点发光二极管(Quantum Dot LightEmitting Diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100通过GPU、显示屏194以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现获取图像的功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像或视频。ISP还可以对图像的噪点,亮度,皮肤进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(Charge Coupled Device,CCD)或互补金属氧化物半导体(Complementary Metal-Oxide-Semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像或视频信号。ISP将数字图像或视频信号输出到DSP加工处理。DSP将数字图像或视频信号转换成标准的RGB,YUV等格式的图像或视频信号。
在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。例如,在一些实施例中,电子设备100可以利用N个摄像头193获取多个曝光系数的图像,进而,在视频后处理中,电子设备100可以根据多个曝光系数的图像,通过高动态范围(HighDynamic Range, HDR)技术合成HDR图像。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(Moving Picture Experts Group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(Neural-Network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过***SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
在一种可能的设计中,如图5所示,电子设备100可以包括应用程序和通用密钥库***(Harmony universal keystore,HUKS)组件/模块。其中,应用程序例如可以包括荣耀®商城、运动健康、信任环等。其中,荣耀®商城、运动健康等应用程序可以登录荣耀®账号,通过信任环应用加入信任环(体系)。信任环体系是一种公开密钥体系(public keyinfrastructure,PKI)。信任环体系的说明可以参见上文的相关说明,在此不做赘述。
HUKS组件用于向应用程序提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。HUKS环境可以包括密钥管理组件、密钥库组件、功能服务组件和对外接口等组件。
其中,密钥管理组件可以采用多级密钥管理方法(例如,根密钥、主密钥、密钥加密密钥、工作密钥)进行密钥管理。其中,根密钥是很少变化的密钥,根密钥可以保证主密钥的安全,主密钥可以派生出密钥加密密钥来保证密钥库中其他工作密钥的安全。本申请实施例中,应用程序调用HUKS接口生成的公钥和私钥属于工作密钥。
密钥库组件用于进行工作密钥存储、工作密钥读取、工作密钥更新等。
功能服务组件中定义了HUKS密钥管理提供的功能实现。对外接口可以提供接口函数(例如,HUKS接口)给上层(应用程序,例如,荣耀®商城、运动健康)使用。例如,应用程序(例如,荣耀®商城、运动健康)可以调用HUKS接口生成密钥(例如,公钥和私钥)。
本申请实施例中的云服务器(例如,安全云服务器或账号云服务器)可以通过图6中的通信设备来实现。其中,通信设备600包括至少一个处理器(例如,处理器601和处理器605),通信线路602,存储器603以及至少一个通信接口604。
处理器601可以是一个CPU,微处理器,ASIC,或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路602可包括一通路,在上述组件之间传送信息。
通信接口604,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,RAN,WLAN等。
存储器603可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路602与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器603用于存储执行本申请方案的计算机执行指令,并由处理器601来控制执行。处理器601用于执行存储器603中存储的计算机执行指令,从而实现本申请下述实施例提供的方法。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器601可以包括一个或多个CPU,例如图6中的CPU0和CPU1。
在具体实现中,作为一种实施例,通信设备600可以包括多个处理器,例如图6中的处理器601和处理器605。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
本申请实施例并未对本申请实施例提供的方法的执行主体的具体结构特别限定,只要能够通过运行记录有本申请实施例的提供的方法的代码的程序,以根据本申请实施例提供的方法进行通信即可。例如,本申请实施例提供的方法的执行主体可以是电子设备或云服务器,或者,是电子设备或云服务器中能够调用程序并执行程序的功能模块。
在一种可能的设计中,如图7所示,云服务器(例如,安全云服务器)可以包括证书认证模块,防重放模块,APP签名指纹获取模块,账号认证模块以及信任环模块。其中,证书认证模块也可以称为云证书服务(cloud certificate service,CCS)模块。
其中,CCS证书认证模块用于基于证书链校验设备证书以及中间证书等证书的合法性。
防重放模块用于判断安全云服务器接收到的请求在特定时间内(例如,5分钟、10分钟等)触发的次数,以防止重放攻击。
APP签名指纹获取模块用于对应用签名证书指纹进行认证,以判断应用程序的合法性。
账号认证模块用于对设备登录的账号(例如,荣耀®账号)进行认证。
信任环模块用于对设备是否是信任环的可信设备(登录同一账号且通过认证的设备)进行认证。
本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“至少一个”是指一个或多个, “多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
为了便于理解,以下结合附图对本申请实施例提供的认证方法进行具体介绍。
如图8所示,本申请实施例提供一种认证方法,包括账号认证过程、应用程序认证过程和设备认证过程。其中,账号认证过程包括如下步骤801-步骤803。
801、应用程序向安全云服务器发送用户认证请求。
响应于用户登录应用程序(例如,荣耀®商城)的操作,应用程序可以向安全云服务器发送用户认证请求。用户认证请求用于请求安全云服务器校验用户身份。其中,用户登录应用程序的操作例如可以是用户点击登录按钮进行登录的操作,也可以用户触发自动登录的操作,本申请不做限定。
其中,用户认证请求可以携带登录令牌(Token)。其中,登录Token是应用程序第一次登录成功时,安全云服务器下发至应用程序的。登录Token可以用于校验用户身份。若用户是第一次登录,用户认证请求中可以携带账号和密码,以便安全云服务器校验用户的账号(例如,荣耀®账号)和密码是否正确。
其中,应用程序可以是第一应用。安全云服务器可以是第一服务器。
802、安全云服务器进行账户认证,认证通过生成随机数。
安全云服务器接收到应用程序发送的用户认证请求后,解析得到登录Token,对登录Token进行校验。若校验通过,可以生成随机数作为Challenge,并向应用程序下发该随机数。
803、安全云服务器向应用程序发送账号认证成功消息和随机数。
应用程序从安全云服务器接收账号认证成功消息和随机数,并保存该随机数。
需要说明的是,步骤801-步骤803是可选的步骤。步骤801-步骤803可以在应用程序认证和设备认证的步骤(步骤804-步骤810)之前执行,也可以在步骤804-步骤810之后执行,也可以不执行,本实施例不作具体限定。
应用程序认证过程和设备认证过程包括如下步骤804-步骤810。
804、应用程序调用HUKS接口生成一对公私钥。
用户完成应用程序的安装后,第一次打开应用程序时,响应于用户第一次打开应用程序的操作,应用程序可以调用HUKS接口生成一对公私钥。
其中,HUKS接口(即HUKS API)是HUKS组件向上层软件(例如,应用程序)开放的接口。HUKS组件在安全环境下运行,例如,TEE或者具备安全能力的芯片等。HUKS接口可以是荣耀®MagicOS提供的HUKS应用层接口。
其中,公钥和私钥分别用于对应用程序的业务数据进行加密和验签。公钥和私钥可以是根据ECC或RSA算法生成的。
805a、应用程序调用HUKS接口生成设备证书。
应用程序可以基于步骤804生成的公钥和私钥调用HUKS接口,获取设备证书(第一数字证书的一种示例)。可以通过私钥对设备证书进行签名。其中,设备证书用于对电子设备(例如,手机)的合法性进行认证。
本申请实施例中,设备证书可以包括应用标识(identifier,ID),应用签名证书指纹,电子设备的唯一标识符(例如,UDID)以及公钥(步骤804中生成的公钥)。其中,电子设备的唯一标识符还可以是其他可以唯一标识电子设备的标识,本申请不做限定。
其中,应用签名证书指纹用于对应用程序的合法性进行校验。应用签名证书指纹用于确保应用程序与服务器(例如,安全云服务器)之间的通信是安全且受信任的,避免中间人攻击和恶意劫持的风险。应用签名证书指纹可以是根据应用程序的APK包的签名文件得到的。APK包的签名文件例如可以包括CERT.RSA和CERT.SF。CERT.RSA 和CERT.SF可以存储在META-INF目录下。其中,CERT.RSA中可以包含应用签名证书的公钥信息和发布机构信息。示例性的,应用签名证书指纹可以是一个哈希值,用于验证应用程序的合法性。
本申请实施例中,步骤804中生成的私钥和步骤805a中生成的设备证书可以保存在TEE中,避免私钥和设备证书被盗用或篡改。
可选的,应用程序还可以将随机数填入设备证书,即设备证书还可以包括随机数。
805b、应用程序上传设备证书到安全云服务器。
即应用程序将设备证书发送至安全云服务器。
806、安全云服务器校验设备证书的合法性。
安全云服务器接收到设备证书后,可以解析设备证书,提取应用ID,应用签名证书指纹,UDID,公钥等信息。可选的,安全云服务器还可以解析得到随机数等信息。
安全云服务器可以基于证书链校验设备证书的合法性。其中,证书链可以包括设备证书、一个或多个中间证书(例如,intermediate_cert_1, ..., intermediate_cert_n),以及根证书(例如,honor_root_cert)。其中,根证书可以是自签名证书,可以存储在安全云服务器中。
对于设备证书和所有中间证书中的每个证书,安全云服务器可以验证该证书的有效期是否在合法日期内,并验证该证书的签名是否由其颁发机构签发,即是否使用颁发机构的公钥签名。如果对设备证书和所有中间证书验证都成功,即证书链验证通过,确定设备证书合法。在设备证书合法的情况下,认为电子设备合法,即设备认证通过。
在设备证书合法的情况下,安全云服务器可以继续执行步骤807-810。若设备证书不合法,安全云服务器可以不做进一步的处理(即不再执行步骤808-810)。
807、安全云服务器判断随机数在特定时间内触发的次数,以防止重放攻击。
可选的,安全云服务器还可以判断随机数在特定时间内(例如,5分钟、10分钟等)触发的次数,以防止重放攻击。若随机数在特定时间内只触发了一次,确定未发生重放攻击,可以正常执行下述步骤(步骤808、步骤809等)。若随机数在特定时间内触发多次,可能发生重放攻击,安全云服务器可以不做进一步的处理(即不再执行步骤808、步骤809等)。
808、安全云服务器校验应用程序的合法性。
安全云服务器可以根据解析得到的应用ID和应用签名证书指纹校验应用程序的合法性。
在一种可能的设计中,安全云服务器可以将解析得到的应用ID和应用签名证书指纹与白名单做对比(匹配)。其中,白名单可以预置在安全云服务器上。白名单中可以记录多个合法应用的应用ID和应用签名证书指纹。若解析得到的应用ID和应用签名证书指纹存在于白名单内部,确定应用程序是合法应用(可信应用)。
809、安全云服务器生成设备令牌(device Token)。
需要说明的是,在设备证书中携带的UDID(例如,第一UDID)是首次注册的情况下,即安全云服务器首次接收到包含第一UDID的设备证书的情况下,安全云服务器可以基于UDID(例如,第一UDID)生成device Token,并建立device Token与公钥(步骤804生成的公钥)的对应关系。后续应用程序请求的数据可以使用公钥(步骤804生成的公钥)对应的私钥(步骤804生成的私钥)进行签名,并可以将签名后的数据和device Token发送给安全云服务器。安全云服务器可以校验device Token,以确保电子设备和应用程序的合法性。安全云服务器可以基于device Token对应的公钥对应用程序请求的数据进行验签,以确保报文的完整性。
其中,device Token是第一令牌的一种示例。
810、安全云服务器向应用程序下发device Token。
本申请实施例中,device Token可以用于校验电子设备和应用程序是否合法。校验通过,表示电子设备和应用程序是合法的。
本申请实施例中,应用程序可以将device Token保存在TEE中,避免device Token被盗用或篡改。
至此,应用程序认证和设备认证完成,安全云服务器可以与应用程序进行业务数据的交互。即本申请提供的方法还可以包括以下步骤:
811、应用程序向安全云服务器发送业务数据请求。
其中,业务数据请求可以包括device Token和根据私钥签名的业务数据。应用程序可以基于步骤804生成的私钥对预设的高敏感接口的业务数据进行签名。
其中,高敏感接口可以是应用程序的开发商预先设置的。高敏感接口涉及高敏感数据(例如,支付信息,生物特征信息等)的处理。高敏感数据在端侧(电子设备侧)需要进行加密和签名处理,在云侧(安全云服务器侧)需要进行验签,以保证高敏感数据的安全性。
812、安全云服务器基于device Token查询对应公钥进行验签。
安全云服务器接收到业务数据请求后,解析得到device Token,基于自身建立的device Token与公钥的对应关系,查询device Token对应的公钥。若查询到device Token对应的公钥,根据查询到的公钥对私钥签名的业务数据进行验签。
813、若验签通过,向应用程序发送业务数据响应。
若安全云服务器对签名的业务数据验签通过,确定电子设备和应用程序是合法的,即确定是合法设备的合法应用程序发起的业务数据请求,可以向应用程序发送业务数据响应,允许电子设备的应用程序调用高敏感接口对高敏感数据进行处理。
814、若验签未通过,向应用程序发送接口报错。
若安全云服务器对签名的业务数据验签未通过,无法确定发起业务数据请求的电子设备和应用程序是否合法,可以向应用程序发送接口报错,不允许电子设备的应用程序调用高敏感接口对高敏感数据进行处理。
示例性的,以应用程序为荣耀®商城为例,如图9中的(a)所示,用户在手机A打开荣耀®商城后,可以进入购物车界面901,响应于用户在购物车界面901点击结算按钮902的操作,手机可以向安全云服务器发送结算请求,结算请求中可以携带device Token和根据私钥签名的业务数据(例如,结算商品信息、结算金额等),安全云服务器可以基于deviceToken查询该device Toke对应公钥进行验签。若验签通过,允许电子设备的应用程序进行结算处理。例如,如图9中的(b)所示,手机可以显示支付订单界面903。支付订单界面903可以包括多种支付方式和确认支付按钮904。用户可以选择相应的支付方式并点击确认支付按钮904以进行支付。若验签未通过,向应用程序发送接口报错,不允许电子设备的应用程序进行结算处理。例如,如图9中的(c)所示,手机可以显示弹框905,弹框905用于提示用户结算失败。可选的,手机还可以向用户提示结算失败的原因,例如,电子设备和当前应用程序未通过认证。
基于本申请实施例提供的方法,电子设备的应用程序(第一应用)可以从TEE获取设备证书(第一数字证书),并向安全云服务器(第一服务器)发送该证书。安全云服务器可以对设备证书进行认证,并且对应用程序的标识和应用签名证书指纹进行认证。在该设备证书认证通过,且该证书中包含的应用签名证书指纹认证通过的情况下,应用程序可以与安全云服务器进行安全通信。由于设备证书是从TEE直接获取的,可以避免端侧(电子设备侧)的恶意程序对设备证书中的应用程序的标识、应用签名证书指纹进行篡改的问题。并且,通过设备证书携带应用程序的标识、应用签名证书指纹到安全云服务器,使得安全云服务器既对设备证书进行认证,也可以对应用程序的标识和应用签名证书指纹进行认证,都认证通过后,应用程序可以与安全云服务器进行通信,确保了应用程序与安全云服务器之间的通信安全。
如图10所示,本申请实施例提供一种认证方法,包括应用程序认证过程。
1001、应用程序调用HUKS接口生成一对公私钥。
具体过程可以参考步骤804,在此不做赘述。
1002、应用程序调用HUKS接口生成数字证书A。
其中,数字证书A(第一数字证书的一种示例)可以包括应用ID,应用签名证书指纹以及公钥等信息。
可选的,本申请实施例还可以包括账号认证过程。在账号认证过程,电子设备的应用程序可以从云服务器接收随机数。应用程序还可以将随机数填入数字证书A,即数字证书A还可以包括随机数。
1003、应用程序上传数字证书A到安全云服务器。
即应用程序将数字证书A发送至安全云服务器。
1004、安全云服务器校验数字证书A的合法性。
安全云服务器接收到数字证书A后,可以解析数字证书A,提取应用ID,应用签名证书指纹,公钥等信息。可选的,安全云服务器还可以解析得到随机数等信息。
安全云服务器可以基于证书链校验设备证书的合法性。具体过程可以参考步骤806,在此不做赘述。
在数字证书A合法的情况下,安全云服务器可以继续执行步骤1005。若数字证书A不合法,安全云服务器可以不做进一步的处理。
另外,安全云服务器还可以判断随机数在特定时间内触发的次数,以防止重放攻击。相关说明可以参考步骤807,在此不做赘述。
1005、安全云服务器校验应用程序的合法性。
安全云服务器可以根据解析得到的应用ID和应用签名证书指纹校验应用程序的合法性。相关说明可以参考步骤808,在此不做赘述。
应用程序认证通过的情况下,安全云服务器可以保存数字证书A中携带的公钥。可选的,应用程序可以建立应用ID与公钥(数字证书A中携带的公钥)的对应关系。
至此,应用程序认证完成,安全云服务器可以与应用程序进行业务数据的交互。即本申请提供的方法还可以包括以下步骤:
1006、应用程序向安全云服务器发送业务数据请求。
其中,业务数据请求可以包括根据私钥签名的业务数据。可选的,业务数据请求还可以包括应用ID。应用程序可以基于步骤1001生成的私钥对预设的高敏感接口的业务数据进行签名。高敏感接口的相关说明可以参考步骤811,在此不做赘述。
1007、安全云服务器对私钥签名的业务数据进行验签。
安全云服务器接收到业务数据请求后,解析得到应用ID,基于自身建立的应用ID与公钥的对应关系,查询应用ID对应的公钥。若查询到应用ID对应的公钥,根据查询到的公钥对私钥签名的业务数据进行验签。
1008、若验签通过,向应用程序发送业务数据响应。
相关说明可以参考步骤813,在此不做赘述。
1009、若验签未通过,向应用程序发送接口报错。
相关说明可以参考步骤814,在此不做赘述。
基于本申请实施例提供的方法,电子设备的应用程序(第一应用)可以从TEE获取数字证书A(第一数字证书),并向安全云服务器(第一服务器)发送该证书。安全云服务器可以对数字证书A进行认证,并且对应用程序的标识和应用签名证书指纹进行认证。在该数字证书A认证通过,且该证书中包含的应用签名证书指纹认证通过的情况下,应用程序可以与安全云服务器进行安全通信。由于数字证书A是从TEE直接获取的,可以避免端侧(电子设备侧)的恶意程序对数字证书A中的应用程序的标识、应用签名证书指纹进行篡改的问题。并且,通过数字证书A携带应用程序的标识、应用签名证书指纹到安全云服务器,使得安全云服务器既对数字证书A进行认证,也可以对应用程序的标识和应用签名证书指纹进行认证,都认证通过后,应用程序可以与安全云服务器进行通信,确保了应用程序与安全云服务器之间的通信安全。
如图11所示,本申请实施例提供一种认证方法,包括设备认证过程。
1101、应用程序调用HUKS接口生成一对公私钥。
1102、应用程序调用HUKS接口生成数字证书B。
其中,数字证书B(第一数字证书的一种示例)可以包括UDID,公钥等信息。
1103、应用程序上传数字证书B到安全云服务器。
即应用程序将数字证书B发送至安全云服务器。
可选的,本申请实施例还可以包括账号认证过程,在账号认证过程可以从云服务器接收到随机数,应用程序还可以将随机数填入数字证书B,即数字证书B还可以包括随机数。
1104、安全云服务器校验数字证书B的合法性。
安全云服务器接收到数字证书B后,可以解析数字证书B,提取UDID,公钥等信息。
安全云服务器可以基于证书链校验数字证书B的合法性。具体过程可以参考步骤806,在此不做赘述。
在数字证书B合法的情况下,安全云服务器可以继续执行步骤1105。
1105、安全云服务器生成设备令牌(device Token)。
需要说明的是,在数字证书B中携带的UDID(例如,第一UDID)是首次注册的情况下,即安全云服务器首次接收到包含第一UDID的数字证书(例如,数字证书B)的情况下,安全云服务器可以基于UDID(例如,第一UDID)生成device Token,并建立device Token与公钥(步骤1101生成的公钥)的对应关系。后续应用程序请求的数据可以使用公钥(步骤1101生成的公钥)对应的私钥(步骤1101生成的私钥)进行签名,并可以将签名后的数据和device Token发送给安全云服务器。安全云服务器可以校验device Token,以确保电子设备和应用程序的合法性。安全云服务器可以基于device Token对应的公钥对应用程序请求的数据进行验签,以确保报文的完整性。
1106、安全云服务器向应用程序下发device Token。
本申请实施例中,device Token可以用于校验电子设备是否合法。
本申请实施例中,应用程序可以将device Token保存在TEE中,避免device Token被盗用或篡改。
至此,设备认证完成,安全云服务器可以与应用程序进行业务数据的交互。即本申请提供的方法还可以包括以下步骤:
1107、应用程序向安全云服务器发送业务数据请求。
其中,业务数据请求可以包括device Token以及根据私钥签名的业务数据。应用程序可以基于步骤1101生成的私钥对预设的高敏感接口的业务数据进行签名。高敏感接口的相关说明可以参考步骤811,在此不做赘述。
1108、安全云服务器对私钥签名的业务数据进行验签。
相关说明可以参考步骤812,在此不做赘述。
1109、若验签通过,向应用程序发送业务数据响应。
相关说明可以参考步骤813,在此不做赘述。
1110、若验签未通过,向应用程序发送接口报错。
相关说明可以参考步骤814,在此不做赘述。
基于本申请实施例提供的方法,电子设备的应用程序(第一应用)可以从TEE获取数字证书B(第一数字证书),并向安全云服务器(第一服务器)发送该证书。安全云服务器可以对数字证书B进行认证。由于数字证书B是从TEE直接获取的,可以保证数字证书B的合法性。若该数字证书B认证通过,应用程序可以与安全云服务器进行安全通信。
在一些实施例中,安全云服务器还可以对电子设备是否为信任环的可信设备进行认证。其中,信任环的可信设备是指登录同一帐号(例如,荣耀®帐号),且通过安全云服务器认证的多个电子设备中的任一个电子设备。在电子设备是信任环的可信设备的情况下,安全云服务器可以向应用程序发送业务数据响应,允许电子设备的应用程序调用高敏感接口对高敏感数据进行处理。否则,安全云服务器可以向应用程序发送接口报错,不允许电子设备的应用程序调用高敏感接口对高敏感数据进行处理。
在一种可能的设计中,安全云服务器完成应用程序认证、账号认证、设备认证中的至少一种认证之后或之前,安全云服务器还可以对电子设备是否是信任环的可信设备进行认证,如图12所示,该过程包括如下步骤:
1201a、应用程序向安全云服务器发送帐号登录态和设备信息。
其中,帐号登录态用于指示是否已登录账号(例如,荣耀®账号),设备信息包括电子设备的唯一标识(例如,UDID)。
1201b、安全云服务器向账号云服务器查询电子设备的登录态合法性。
在电子设备已登录账号的情况下,安全云服务器可以向账号云服务器提交电子设备的登录态和设备信息。
1202、账号云服务器向安全云服务器返回电子设备的查询结果。
账号云服务器可以根据电子设备的登录态和设备信息查询可信设备列表。若电子设备的设备信息(例如,UDID)包含于可信设备列表(即可信设备列表包括电子设备的设备信息),即电子设备登录的账号通过双因子校验(即双因子认证),确定电子设备是信任环的可信设备。若可信设备列表不包括电子设备的设备信息,即电子设备登录的账号未通过双因子校验(即双因子认证),确定电子设备不是信任环的可信设备。其中,双因子校验也可以称为二因子校验,是指基于密码和验证码进行校验。
1203、安全云服务器根据电子设备的查询结果进行相应处理。
若电子设备是双因子校验通过的设备(即电子设备登录的账号(应用程序登录的账号)通过双因子校验),且对电子设备或应用程序进行的应用程序认证、账号认证、设备认证中的至少一种认证通过(例如,应用程序认证、账号认证、设备认证都通过,或者,应用程序认证和设备认证通过,或者,应用程序认证通过),允许高敏感接口操作,即允许电子设备的应用程序调用高敏感接口对高敏感数据进行处理。
若电子设备是非双因子校验的设备,即电子设备未通过双因子校验,可以进行高敏感接口操作报错,即可以向应用程序发送接口报错,不允许电子设备的应用程序调用高敏感接口对高敏感数据进行处理。这样,可以确保第一应用与第一服务器之间的通信安全。
本申请实施例还提供一种芯片***,如图13所示,该芯片***包括至少一个处理器1301和至少一个接口电路1302。处理器1301和接口电路1302可通过线路互联。例如,接口电路1302可用于从其它装置(例如,存储器)接收信号。又例如,接口电路1302可用于向其它装置(例如处理器1301)发送信号。
例如,接口电路1302可读取终端设备中存储器中存储的指令,并将该指令发送给处理器1301。当所述指令被处理器1301执行时,可使得电子设备(如图4所示的电子设备100)或云服务器(例如,如图6所示的通信设备600)执行上述实施例中的各个步骤。
当然,该芯片***还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在电子设备(如图4所示的电子设备100)或云服务器(例如,如图6所示的通信设备600)上运行时,使得电子设备(如图4所示的电子设备100)或云服务器(例如,如图6所示的通信设备600)执行上述方法实施例中电子设备(例如,手机)或安全云服务器执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中电子设备执行的各个功能或者步骤。
本申请实施例还提供了一种认证装置,所述认证装置可以按照功能划分为不同的逻辑单元或模块,各单元或模块执行不同的功能,以使得所述认证装置执行上述方法实施例中电子设备或云服务器执行的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (16)

1.一种认证方法,其特征在于,应用于电子设备,所述电子设备中安装有第一应用,所述电子设备包括可信执行环境TEE;所述方法包括:
所述电子设备运行所述第一应用从所述TEE获取第一数字证书,所述第一数字证书是在所述TEE中生成的,所述第一数字证书包括所述第一应用的标识、应用签名证书指纹和所述电子设备的唯一标识符;
所述电子设备向第一服务器发送所述第一数字证书;
所述电子设备接收来自所述第一服务器的认证通过消息,所述认证通过消息用于指示所述第一数字证书认证通过,以及所述第一应用的标识和所述应用签名证书指纹认证通过;
所述电子设备基于所述第一应用与所述第一服务器进行安全通信。
2.根据权利要求1所述的方法,其特征在于,所述第一应用从所述TEE获取第一数字证书包括:
所述电子设备运行所述第一应用调用通用密钥库***HUKS接口从所述TEE获取所述第一数字证书。
3.根据权利要求1所述的方法,其特征在于,
所述第一数字证书还包括所述电子设备的公钥。
4.根据权利要求3所述的方法,其特征在于,
所述认证通过消息包括第一令牌,所述第一令牌与所述公钥具有对应关系,所述第一令牌用于校验所述电子设备和所述第一应用的合法性。
5.根据权利要求4所述的方法,其特征在于,所述电子设备基于所述第一应用与所述第一服务器进行安全通信包括:
所述电子设备基于所述第一应用,根据所述公钥对应的私钥对所述第一应用的第一业务数据进行签名得到签名数据;
所述电子设备基于所述第一应用,向所述第一服务器发送所述签名数据和所述第一令牌。
6.根据权利要求1-5任一项所述的方法,其特征在于,
所述电子设备基于所述第一应用登录第一账号,所述第一账号通过双因子校验,所述双因子校验包括密码校验和验证码校验。
7.一种认证方法,其特征在于,应用于包括电子设备和第一服务器的认证***,所述电子设备中安装有第一应用,所述电子设备包括可信执行环境TEE,所述方法包括:
所述电子设备运行所述第一应用从所述TEE获取第一数字证书,所述第一数字证书是在所述TEE中生成的,所述第一数字证书包括所述第一应用的标识、应用签名证书指纹和所述电子设备的唯一标识符;
所述电子设备向第一服务器发送所述第一数字证书;
所述第一服务器接收所述第一数字证书,基于证书链对所述第一数字证书进行认证;
所述第一服务器对所述第一数字证书认证通过后,对所述第一应用的标识和所述应用签名证书指纹进行认证;
所述第一服务器对所述第一应用的标识和所述应用签名证书指纹认证通过后,向所述第一应用发送认证通过消息,所述认证通过消息用于指示所述第一数字证书认证通过,以及所述第一应用的标识和所述应用签名证书指纹认证通过;
所述电子设备接收来自所述第一服务器的所述认证通过消息;
所述电子设备基于所述第一应用与所述第一服务器进行安全通信。
8.根据权利要求7所述的方法,其特征在于,所述电子设备运行所述第一应用从所述TEE获取第一数字证书包括:
所述电子设备运行所述第一应用调用通用密钥库***HUKS接口从所述TEE获取所述第一数字证书。
9.根据权利要求7所述的方法,其特征在于,
所述第一数字证书还包括所述电子设备的公钥。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述第一服务器根据所述电子设备的唯一标识符生成第一令牌;
所述第一服务器建立所述第一令牌与所述公钥的对应关系,所述第一令牌用于校验所述电子设备和所述第一应用的合法性。
11.根据权利要求10所述的方法,其特征在于,
所述认证通过消息包括所述第一令牌。
12.根据权利要求11所述的方法,其特征在于,所述电子设备基于所述第一应用与所述第一服务器进行安全通信包括:
所述电子设备基于所述第一应用,根据所述公钥对应的私钥对所述第一应用的第一业务数据进行签名得到签名数据;
所述电子设备基于所述第一应用,向所述第一服务器发送所述签名数据和所述第一令牌;
所述第一服务器接收所述签名数据和所述第一令牌;
所述第一服务器根据所述第一令牌对应的所述公钥对所述签名数据进行验签。
13.根据权利要求7-12任一项所述的方法,其特征在于,
所述电子设备基于所述第一应用登录第一账号,所述第一账号通过双因子校验,所述双因子校验包括密码校验和验证码校验。
14.一种认证***,其特征在于,包括电子设备和第一服务器,所述电子设备和所述第一服务器执行如权利要求7-13中任一项所述的方法。
15.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于运行存储器中存储的计算机程序,以使得所述电子设备实现如权利要求1-6任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储计算机程序,所述计算机程序在处理器上运行时实现如权利要求1-6任一项所述的方法。
CN202311454820.3A 2023-11-03 2023-11-03 一种认证方法和装置 Active CN117176362B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311454820.3A CN117176362B (zh) 2023-11-03 2023-11-03 一种认证方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311454820.3A CN117176362B (zh) 2023-11-03 2023-11-03 一种认证方法和装置

Publications (2)

Publication Number Publication Date
CN117176362A CN117176362A (zh) 2023-12-05
CN117176362B true CN117176362B (zh) 2024-04-02

Family

ID=88930339

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311454820.3A Active CN117176362B (zh) 2023-11-03 2023-11-03 一种认证方法和装置

Country Status (1)

Country Link
CN (1) CN117176362B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108282467A (zh) * 2017-12-29 2018-07-13 北京握奇智能科技有限公司 数字证书的应用方法、***
CN108769043A (zh) * 2018-06-06 2018-11-06 中国联合网络通信集团有限公司 可信应用认证***和可信应用认证方法
WO2021127575A1 (en) * 2019-12-20 2021-06-24 HYPR Corp. Secure mobile initiated authentication
CN114362951A (zh) * 2020-10-13 2022-04-15 华为终端有限公司 用于更新证书的方法和装置
CN114465726A (zh) * 2022-04-13 2022-05-10 北京银联金卡科技有限公司 基于安全单元和可信执行环境的数字钱包安全框架***
CN115348023A (zh) * 2021-05-14 2022-11-15 华为技术有限公司 一种数据安全处理方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108282467A (zh) * 2017-12-29 2018-07-13 北京握奇智能科技有限公司 数字证书的应用方法、***
CN108769043A (zh) * 2018-06-06 2018-11-06 中国联合网络通信集团有限公司 可信应用认证***和可信应用认证方法
WO2021127575A1 (en) * 2019-12-20 2021-06-24 HYPR Corp. Secure mobile initiated authentication
CN114362951A (zh) * 2020-10-13 2022-04-15 华为终端有限公司 用于更新证书的方法和装置
CN115348023A (zh) * 2021-05-14 2022-11-15 华为技术有限公司 一种数据安全处理方法和装置
CN114465726A (zh) * 2022-04-13 2022-05-10 北京银联金卡科技有限公司 基于安全单元和可信执行环境的数字钱包安全框架***

Also Published As

Publication number Publication date
CN117176362A (zh) 2023-12-05

Similar Documents

Publication Publication Date Title
US11832095B2 (en) Wearable identity device for fingerprint bound access to a cloud service
CN107743133B (zh) 移动终端及其基于可信安全环境的访问控制方法和***
CN110995642B (zh) 使用预共享密钥提供安全连接
US9659160B2 (en) System and methods for authentication using multiple devices
US20200265418A1 (en) Electronic device and method for providing digital signature service of block chain using the same
US8112787B2 (en) System and method for securing a credential via user and server verification
US20190034917A1 (en) Tracking an Electronic Wallet Using Radio Frequency Identification (RFID)
US20190165947A1 (en) Signatures for near field communications
CN112765684B (zh) 区块链节点终端管理方法、装置、设备及存储介质
US20160125180A1 (en) Near Field Communication Authentication Mechanism
CN110278084B (zh) eID建立方法、相关设备及***
CN111935166B (zh) 通信认证方法、***、电子设备、服务器及存储介质
US12019717B2 (en) Method for the secure interaction of a user with a mobile terminal and a further entity
CN114245375B (zh) 一种密钥跨设备分发方法及电子设备
CN117176362B (zh) 一种认证方法和装置
CN113821787B (zh) 一种安全认证方法及电子设备
US20220209940A1 (en) Method for providing encrypted object and electronic device for supporting the same
CN115706993A (zh) 认证方法、可读介质和电子设备
CN115146253A (zh) 一种移动App登录方法、移动设备及***
CN113645024A (zh) 密钥分发方法、***、装置及可读存储介质和芯片
US20140273960A1 (en) Personal digital identity device with user authentication factor captured in mobile device
CN117852565B (zh) Nfc卡片生成方法、***、装置、电子设备及服务器
CN116049826B (zh) 基于tpm的数据保护方法、电子设备及存储介质
US20230379142A1 (en) Authentication mechanism for computational storage download program
Kanini Secure signaling and traffic exchanges in smart cities: a critical review of the current trends

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