CN110659474B - 应用间通信方法、装置、终端及存储介质 - Google Patents
应用间通信方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN110659474B CN110659474B CN201910958739.6A CN201910958739A CN110659474B CN 110659474 B CN110659474 B CN 110659474B CN 201910958739 A CN201910958739 A CN 201910958739A CN 110659474 B CN110659474 B CN 110659474B
- Authority
- CN
- China
- Prior art keywords
- application
- authentication
- information
- hash
- public key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种应用间通信方法、装置、终端及存储介质,属于信息安全领域。所述方法包括:第一应用向第二应用发送认证请求,认证请求中包含认证信息;第二应用根据认证请求,向第一应用发送第一消息,第一消息中包含第一响应信息,第一响应信息根据认证信息生成,且第一响应信息经过认证应用加密;第一应用根据第一消息,向第二应用发送第二消息,第二消息中包含第二响应信息,第二响应信息根据第一响应信息生成,且第二响应信息经过认证应用加密;若第二响应信息通过认证,第二应用则向第一应用发送认证成功响应;第一应用根据认证成功响应与第二应用进行应用间通信。
Description
技术领域
本申请实施例涉及信息安全领域,特别涉及一种应用间通信方法、装置、终端及存储介质。
背景技术
针对移动终端的开放环境,应用程序交互所产生的安全问题也越来越受到关注。如,第二应用程序入侵第一应用程序并进行数据窃取;又如,第二应用是被第一应用授权可与第一应用进行数据交互的应用,而第三应用冒充第二应用则也可以与第一应用进行数据交互。如上情况均会对移动终端中的应用程序的正常交互带来影响。
为了解决上述情况或其它相关情形所带来的安全问题,相关技术中,存在如下几种主流的解决方案:在特定的应用程序之间预置公私钥对(由公钥与私钥组成),以实现应用程序通过使用私钥和公钥进行信息加密与信息解密(包括数字签名)的方式进行数据交互前的安全认证;针对各个应用程序自定义预置的访问白名单,在访问白名单内的应用程序即可访问该访问白名单所对应的应用程序。
然而,在上述相关技术中的各个解决方案中,仍然存在一定的安全问题。如,在特定的应用程序之间预置公私钥对进行安全认证的方式实际上是一种静态的认证方式,若预置有公私钥对的应用程序遭到恶意程序的篡改或攻击,则基于该技术方案仍无法解决移动终端中应用程序进行数据交互时的安全问题,且该方案基于特定的应用程序,不具备广泛性,另外预置公私钥对在静态的认证过程中是易受到攻击的薄弱环节;又如,需要预先知道各个应用程序的信息才可以对各个应用程序设置访问白名单,且存在恶意程序冒充访问白名单内的应用程序时,也会对移动终端中应用程序进行数据交互带来安全问题。
发明内容
本申请实施例提供了一种应用间通信方法、装置、终端及存储介质,能够解决终端内应用程序间信息交互带来的安全问题。所述技术方案如下:
一方面,本申请实施例提供了一种应用间通信方法,所述方法用于终端,所述终端中安装有第一应用、第二应用和认证应用,所述第一应用和所述第二应用运行于系统的富执行环境(Rich execution environment,REE),所述认证应用运行于系统的可信执行环境(Trusted Execution Environment,TEE),所述方法包括:
所述第一应用向所述第二应用发送认证请求,所述认证请求中包含认证信息;
所述第二应用根据所述认证请求,向所述第一应用发送第一消息,所述第一消息中包含第一响应信息,所述第一响应信息根据所述认证信息生成,且所述第一响应信息经过所述认证应用加密;
所述第一应用根据所述第一消息,向所述第二应用发送第二消息,所述第二消息中包含第二响应信息,所述第二响应信息根据所述第一响应信息生成,且所述第二响应信息经过所述认证应用加密;
若所述第二响应信息通过认证,所述第二应用则向所述第一应用发送认证成功响应;
所述第一应用根据所述认证成功响应与所述第二应用进行应用间通信。
另一方面,本申请实施例提供了一种应用间通信装置,所述装置包括:第一应用模块、第二应用模块和认证应用模块,所述第一应用模块和所述第二应用模块运行于系统的REE,所述认证应用模块运行于系统的TEE;
所述第一应用模块,用于向所述第二应用模块发送认证请求,所述认证请求中包含认证信息;
所述第二应用模块,用于根据所述认证请求,向所述第一应用模块发送第一消息,所述第一消息中包含第一响应信息,所述第一响应信息根据所述认证信息生成,且所述第一响应信息经过所述认证应用模块加密;
所述第一应用模块,用于根据所述第一消息,向所述第二应用模块发送第二消息,所述第二消息中包含第二响应信息,所述第二响应信息根据所述第一响应信息生成,且所述第二响应信息经过所述认证应用模块加密;
所述第二应用模块,用于若所述第二响应信息通过认证,则向所述第一应用模块发送认证成功响应;
所述第一应用模块,用于根据所述认证成功响应与所述第二应用模块进行应用间通信。
另一方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面的应用间通信方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上述方面的应用间通信方法。
采用本申请实施例提供的应用间通信方法,当第一应用需要访问第二应用时,第一应用向第二应用发送认证请求,第二应用根据认证请求向第一应用返回包含第一响应信息的第一消息,相应的,第一应用根据第一消息向第二应用返回包含第二响应信息的第二消息,若第二响应信息通过第二应用的认证,则第一应用实现与第二应用的应用间通信;相较于相关技术中用于实现应用间通信的方法,本申请实施例中,多次认证交互下的信息都通过认证应用进行加密,该认证应用运行于终端系统的TEE中,使得认证交互下的信息受到TEE的安全保护,从而在认证过程中避免了第三方应用或其它系统的侵入,保证了第一应用与第二应用间的通信安全。
附图说明
图1示出了本申请一个示例性实施例提供的应用场景的示意图;
图2示出了本申请一个示例性实施例示出的应用间通信方法的流程图;
图3示出了本申请另一个示例性实施例示出的应用间通信方法的流程图;
图4示出了第一应用的注册过程的信息交互流程图;
图5示出了第二应用响应第一应用认证请求的信息交互流程图;
图6示出了第一应用通过认证应用实现加密签名的信息交互流程图;
图7示出了第二应用通过认证应用实现签名验证的信息交互流程图;
图8示出了图3所示的示例性实施例的全部信息交互流程图;
图9示出了本申请一个实施例提供的应用间通信装置的结构框图;
图10示出了本申请一个示例性实施例提供的终端的结构方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参考图1,其示出了本申请一个示例性实施例提供的应用场景的示意图,该应用场景中包括第一应用110、第二应用120和认证应用130。
在一种可能的实施方式中,第一应用110和第二应用120位于终端系统的REE中,认证应用130位于终端系统的TEE中。
其中,REE是一种通用执行环境,所有的移动终端均支持REE,REE用于为移动终端内的应用程序提供设备的所有功能,如联网功能、定位功能和摄像功能等。而TEE是一种移动终端内隔离于REE的执行环境,且位于REE中的应用程序只能通过特定的入口与TEE进行通信,此外,TEE提供可信存储机制,该可信存储机制能够保护数据的认证性、机密性和完整性,如与本申请实施例相关的,TEE包括有密钥使用安全存储机制。因此,TEE能够保护敏感数据免受REE中的应用程序和移动终端内其它环境的恶意行为,且TEE由移动终端内的硬件机制进行保护,该硬件机制仅受控于TEE。
示意性的,如图1所示,在一种可能的实施方式中,第一应用110为访问应用,第二应用120为被访问应用,当第一应用110通过第二应用120的访问接口对第二应用120进行访问时,需要向第二应用120发送认证请求,第二应用120在接收到该认证请求后,根据认证请求中的信息作出相应的认证响应,如认证失败响应或认证成功响应,当第二应用120做出作出认证成功响应时,表明第一应用110有权访问第二应用120,即第一应用110与第二应用120之间可进行数据通信。
在一种可能的实施方式中,在第一应用110向第二应用120发送认证请求之前,需要通过认证应用130生成该认证请求,认证应用130的主要功能为生成公私钥对、加密、解密和进行数字签名。可选的,第一应用110向认证应用130发送应用密码,认证应用130根据该应用密码生成包含公钥与私钥的公私钥对,公私钥对用于对第一应用110处生成的信息进行加密,和对第一应用110处接收的信息进行解密,相应的,该公私钥对还用于对第二应用120处生成的信息进行加密,和对第二应用120处接收的信息进行解密。其中,认证应用130将公私钥对存储于TEE中。
在本申请实施例中,认证应用130在服务于第一应用110和第二应用120的认证过程中,通过TEE提供的密钥使用安全存储机制,保障了认证过程的机密性和完整性,使得第一应用110在安全有效的环境下对第二应用120进行访问,并实现第一应用110与第二应用之间的数据通信。
请参考图2,其示出了本申请一个示例性实施例示出的应用间通信方法的流程图。本实施例以该方法应用于图1所示的应用场景来举例说明,且以该方法用于终端为例进行说明,终端中安装有第一应用、第二应用和认证应用,第一应用和第二应用运行于系统的REE,认证应用运行于系统的TEE。该方法包括:
步骤201,第一应用向第二应用发送认证请求,认证请求中包含认证信息。
在一种可能的实施方式中,终端内的第一应用为访问应用,第二应用为被访问应用,为实现应用之间的通信安全,第一应用在访问第二应用时需要向第二应用发送认证请求。
可选的,认证请求中包含认证信息,该认证信息用于第一应用的身份识别。
步骤202,第二应用根据认证请求,向第一应用发送第一消息,第一消息中包含第一响应信息,第一响应信息根据认证信息生成,且第一响应信息经过认证应用加密。
在一种可能的实施方式中,当第二应用接收到第一应用的认证请求后,获取认证请求中的认证信息,并生成包含第一响应信息的第一消息,其中,第一响应信息根据认证信息生成。
存在如下一种可能的情形,终端处的第三应用对第一应用和第二应用造成恶意侵袭,如在第二应用向第一应用发送第一消息的过程中冒充第一应用的身份,截取该第一消息,为了解决上述情形下的问题,第一响应信息经过认证应用加密。
在一种可能的实施方式中,第二应用将认证信息与第一响应信息发送给认证应用,认证应用根据认证信息对第一响应信息进行加密,且由于认证信息是第一应用处生成的,使得加密后的第一响应信息的发送对象唯一限定于第一应用。此外,由于第一应用和第二应用运行于系统的REE,认证应用运行于系统的TEE,使得在认证应用处经过加密的任何信息都受到TEE的安全保护,从而进一步提高了第一应用与第二应用之间的认证安全。
步骤203,第一应用根据第一消息,向第二应用发送第二消息,第二消息中包含第二响应信息,第二响应信息根据第一响应信息生成,且第二响应信息经过认证应用加密。
在一种可能的实施方式中,第一应用在接收到第一消息后,获取第一消息中的第一响应消息,由于第一响应消息是通过认证应用进行加密的,因此,第一应用将获取到的第一响应信息发送给认证应用,并通过认证应用对加密后的第一响应信息进行解密。
在一种可能的实施方式中,第一应用获取解密后的第一响应信息,并根据第一响应信息中携带有的认证信息,确认出该第一响应信息的发送者是第一应用想要进行访问的应用。确认完毕后,第一应用生成包含第二响应信息的第二消息,其中,第二响应信息根据第一响应信息生成。同样的,为了应用间的通信安全,第二响应信息经过认证应用加密。
在一种可能的实施方式中,第一应用将第一响应信息与第二响应信息发送给认证应用,认证应用根据第一响应信息对第二响应信息进行加密,使得加密后的第二响应信息的发送对象唯一限定于第二应用。
步骤204,若第二响应信息通过认证,第二应用则向第一应用发送认证成功响应。
在一种可能的实施方式中,由于第二响应信息是通过认证应用加密生成的,第二应用无法直接从第二消息中获取第二响应信息,故在第二应用接收到第一应用发送的第二消息之后,第二应用将第二消息发送给认证应用,认证应用对第二消息进行解密,并将解密后获取的第二响应信息返回给第二应用。
在一种可能的实施方式中,第二应用通过认证应用获取了第二消息中的第二响应信息,由于第二响应信息是根据第一响应信息生成的,第二应用通过第二响应信息确认第二消息是在第一响应信息的基础上生成的,故确认第一应用是第二应用可认证通过的应用。
因此,若第二响应信息通过第二应用的认证,第二应用则向第一应用发送认证成功响应。
步骤205,第一应用根据认证成功响应与第二应用进行应用间通信。
相应的,当第一应用获取到第二应用发送的认证成功响应后,即可通过第一应用提供的交互接口进行应用间通信。比如,该交互接口为基于代表性状态转移(Representational State Transfer,REST)原则的RESTful接口。
综上所述,采用本申请实施例提供的应用间通信方法,当第一应用需要访问第二应用时,第一应用向第二应用发送认证请求,第二应用根据认证请求向第一应用返回包含第一响应信息的第一消息,相应的,第一应用根据第一消息向第二应用返回包含第二响应信息的第二消息,若第二响应信息通过第二应用的认证,则第一应用实现与第二应用的应用间通信;相较于相关技术中用于实现应用间通信的方法,本申请实施例中,多次认证交互下的信息都通过认证应用进行加密,该认证应用运行于终端系统的TEE中,使得认证交互下的信息受到TEE的安全保护,从而在认证过程中避免了第三方应用或其它系统的侵入,保证了第一应用与第二应用间的通信安全。
请参考图3,其示出了本申请另一个示例性实施例示出的应用间通信方法的流程图。本实施例以该方法应用于图1所示的应用场景来举例说明,且以该方法用于终端为例进行说明,终端中安装有第一应用、第二应用和认证应用,第一应用和第二应用运行于系统的REE,认证应用运行于系统的TEE。该方法包括:
步骤301,第一应用向认证应用发送注册请求,注册请求中包含第一应用对应的应用密码。
在本申请实施例中,由于终端内的第一应用与第二应用是运行于系统的REE,而REE相较于TEE而言缺乏应用交互的安全性的执行环境,因此,第一应用和第二应用的认证过程借由运行于TEE的认证应用来实现。
此外,由于TEE与REE在终端的系统内是两个隔离的执行环境,第一应用无法直接与认证应用进行交互,在一种可能的实施方式中,第一应用向认证应用发送注册请求,且注册请求中包含第一应用对应的应用密码。
可选的,第一应用对应的应用密码可以是第一应用或系统随机生成的,又或者是终端用户自定义设置的,本申请实施例对应用密码的设置方法不作限定。
步骤302,认证应用根据应用密码生成公私钥对,并对公私钥对进行存储、公钥哈希和密码哈希进行关联存储,公钥哈希是对公私钥对中的公钥进行哈希得到,密码哈希是对应用密码进行哈希得到。
首先,对公私钥对与哈希值进行阐述。
公私钥对:包括一个公钥和一个私钥。其中,公钥是公私钥对中公开的内容,私钥则是非公开的内容,且公钥与私钥的使用须遵循一定的规则,即当通过公私钥对中的一个密钥进行信息加密时,则必须用公私钥对中的另一个密钥进行信息解密。可选的,如果通过公钥进行信息加密,则必须通过私钥进行信息解密,相应的,如果通过私钥进行信息加密,则必须通过公钥进行信息解密。
哈希值:通过哈希算法可以将较长的数据映射为较短的数据,这段较短的数据即为较长的数据的哈希值,通过哈希算法将原始数据映射为哈希值,实际上是对原始数据进行了加密,哈希值主要运用于信息的加密与解密以及信息的签名与验签。
在一种可能的实施方式中,公私钥对通过一种自定义算法得到,即认证应用根据应用密码生成公私钥对。由于该自定义算法涉及应用密码的输入,从而保证了公私钥对与应用密码的关联性以及公私钥对与应用密码基于哈希值的关联性,在系统的TEE中,认证应用对公私钥对进行存储、公钥哈希和密码哈希进行关联存储,其中,公钥哈希是对公私钥对中的公钥进行哈希得到的哈希值,密码哈希是对应用密码进行哈希得到的哈希值。
从上述示意性的例子可以看出,私钥是系统内非公开的内容,且私钥的生成与应用密码相关联,因此在后续步骤以及各个实施例中,私钥的私密性将由应用密码来保护。
在一种可能的实施方式中,认证应用中存储的公私钥对的格式如下:
(hash(pubKb),(pubKb,priKb),hash(password))
其中,pubKb为第一应用的公钥,priKb为第一应用的私钥,password为第一应用的应用密码,hash(pubKb)为第一应用的公钥哈希,hash(password)为第一应用的密码哈希。
步骤303,认证应用向第一应用发送公钥哈希。
在一种可能的实施方式中,认证应用只向第一应用发送公钥哈希,使得关于公私钥的具体信息不公开于REE,进一步提高认证过程的安全性。
步骤304,第一应用根据公钥哈希和第一随机数生成认证信息。
在一种可能的实施方式中,第一应用接收到公钥哈希后将公钥哈希进行存储,并根据公钥哈希和第一随机数生成认证信息。其中,第一随机数为第一应用随机生成的一个数,第一随机数用于当第一应用接收到信息时,第一应用通过该第一随机数确认信息的发送方是认证信息的接收方。
在一种可能的实施方式中,认证信息(r10)的格式如下:
r10=(hash(pubKb),nonceB)
其中,nonceB为第一应用生成的第一随机数。
步骤305,第一应用向第二应用发送包含认证信息的认证请求。
在一种可能的实施方式中,第一应用向第二应用发送认证请求,该认证请求中包含认证信息。
步骤306,第二应用根据认证信息生成第一未加密信息,第一未加密信息中包含公钥哈希、更新后的第一随机数和第二随机数。
在一种可能的实施方式中,第二应用接收到第一应用发送的认证请求后,获取认证请求中的认证信息,并根据认证信息生成第一未加密信息。
在一种可能的实施方式中,第一未加密信息中包含公钥哈希、更新后的第一随机数和第二随机数。其中,更新第一随机数的目的是为了当第一应用接收到第二应用返回的信息时,第一应用能够通过更新后的第一随机数确定第二应用已收到所发送的认证请求;生成第二随机数的目的是为了当第二应用接收到第一应用的返回信息时,第二应用通过该第二随机数确认返回信息的发送方是第一未加密信息的接收方,同时第二随机数可用于向第一应用表明第二应用的身份。
在一种可能的实施方式中,第一未加密信息(r20)的格式如下:
r20=(hash(pubKb),(nonceB+1),nonceA)
其中,(nonceB+1)为更新后的第一随机数,nonceA为第二随机数。
步骤307,第二应用向认证应用发送第一未加密信息。
在本申请实施例中,第一应用与第二应用之间的认证过程是通过系统的TEE保护的,因此,在一种可能的实施方式中,第二应用向运行于TEE的认证应用发送第一未加密信息,并通过认证应用对第一未加密信息进行加密。
认证应用为了确保认证过程的安全,认证应用只为已注册的应用进行认证服务,因此,当第二应用想要通过认证应用对第一未加密信息进行加密之前,认证应用需要确定第二应用所发送的信息中是否包含某一公钥哈希,若包含则对第二应用所发送第一未加密信息进行加密。
在一种可能的实施方式中,认证应用对外提供访问接口,任意公钥哈希与认证应用的访问接口存在关联性,即第二应用根据公钥哈希调用认证应用的访问接口,并通过该访问接口向认证应用发送第一未加密信息。
步骤308,认证应用查找公钥哈希对应的公钥。
在一种可能的实施方式中,认证应用为了确保认证过程的安全,认证应用只为已注册的应用进行认证服务,因此,当第二应用想要通过认证应用对第一未加密信息进行加密之前,认证应用需要确定第二应用所发送的信息中是否包含某一公钥哈希,若包含则获取该公钥哈希,并根据该公钥哈希在预存的公钥中查找该公钥哈希对应的公钥。
步骤309,认证应用根据公钥对第一未加密信息进行加密,得到第一响应信息。
在一种可能的实施方式中,认证应用根据公钥对第一未加密信息进行加密得到第一响应信息,关于具体的公钥加密算法本申请实施例不作限定。
在一种可能的实施方式中,第一响应信息(r21)的格式如下:
r21={(hash(pubKb),(nonceB+1),nonceA)}pubKb
其中,格式末尾的pubKb用于表示通过公钥对第一未加密信息进行加密。
步骤310,认证应用向第二应用发送第一响应信息。
在一种可能的实施方式中,认证应用完成对第一未加密信息的加密,向第二应用发送加密得到的第一响应信息。
步骤311,第二应用根据第一响应信息向第一应用发送第一消息。
在一种可能的实施方式中,第二应用将第一响应信息作为响应第一应用的信息,第二应用将包含第一响应信息的第一消息发送给第一应用。
步骤312,第一应用通过认证应用对第一响应信息进行解密,得到第一未加密信息。
第一应用接收到第二应用处发送的第一消息后获取第一消息所包含的第一响应信息,由于第一响应信息是加密过的信息,且是通过认证应用进行加密的,因此,在一种可能的实施方式中,第一应用通过认证应用对第一响应信息进行解密,得到第一未加密信息。
在一种可能的实施方式中,本步骤包括如下步骤。
一、第一应用向认证应用发送公钥哈希、密码哈希和第一响应信息。
在一种可能的实施方式中,第一应用根据公钥哈希调用认证应用的访问接口,并通过该访问接口向认证应用发送公钥哈希、密码哈希和第一响应信息。
二、认证应用对公钥哈希和密码哈希进行验证。
由于信息解密是认证过程中的关键步骤,认证应用在服务于为第一应用进行信息解密之前,需要对提供解密服务的应用对象进行验证。
在一种可能的实施方式中,认证应用通过公钥哈希和密码哈希对需要提供解密服务的应用对象进行验证。可选的,认证应用获取公钥哈希对应的公私钥对和密码哈希对应的公私钥对,若公钥哈希对应的公私钥对与密码哈希对应的公私钥对相同,认证应用则确定第一应用传入的公钥哈希和密码哈希通过验证。
相应的,若公钥哈希对应的公私钥对与密码哈希对应的公私钥对不同,认证应用则确定公钥哈希和密码哈希未通过验证,并停止对第一响应信息进行解密。
在另一种可能的实施方式中,认证应用通过第一应用传入的公钥哈希查找该公钥哈希对应的公私钥对,由于在认证应用中,公私钥对与密码哈希是关联存储的,因此,认证应用通过第一应用传入的公钥哈希查找该公钥哈希对应的公私钥对后,根据所查找到的公私钥对获取与该公私钥对关联存储的密码哈希,若第一应用传入的密码哈希与通过查找得到的密码哈希相同,认证应用则确定第一应用传入的公钥哈希和密码哈希通过验证。
相应的,若第一应用传入的密码哈希与通过查找得到的密码哈希不同,认证应用则确定公钥哈希和密码哈希未通过验证,并停止对第一响应信息进行解密。
三、公钥哈希和密码哈希通过验证,认证应用则根据公钥哈希对应的私钥,对第一响应信息进行解密,得到第一未加密信息。
根据上述所提及的内容,已知公私钥对的使用须遵循一定的规则,即当通过公私钥对中的一个密钥进行信息加密时,则必须用公私钥对中的另一个密钥进行信息解密,因此,在一种可能的实施方式中,认证应用确定公钥哈希和密码哈希通过验证后,认证应用根据公钥哈希对应的私钥,对第一响应信息进行解密,得到第一未加密信息。
步骤313,第一应用根据第一未加密信息生成第二未加密信息,第二未加密信息中包含公钥哈希、再次更新后的第一随机数和更新后的第二随机数。
在一种可能的实施方式中,认证应用将第一未加密信息返回给第一应用,第一应用获取第一未加密信息中的(nonceB+1),比对(nonceB+1)中的第一随机数是否正确。若正确,则根据第一未加密信息生成第二未加密信息;若不正确,则将第一未加密信息丢弃。
在一种可能的实施方式中,第二未加密信息中包含公钥哈希、再次更新后的第一随机数和更新后的第二随机数。其中,更新第二随机数的目的是为了当第二应用接收到第一应用返回的信息时,第二应用能够通过更新后的第二随机数确定第一应用已收到所发送的第一消息;再次更新第一随机数的目的是为了当第一应用接收到第二应用的返回信息时,第一应用通过再次更新后的第一随机数确认返回信息的发送方是第二未加密信息的接收方。
在一种可能的实施方式中,第二未加密信息(r30)的格式如下:
r30=(hash(pubKb),(nonceB+2),(nonceA+1))
其中,(nonceB+2)为再次更新后的第一随机数,(nonceA+1)为更新后的第二随机数。
步骤314,第一应用通过认证应用对第二未加密信息进行加密签名,得到第二响应信息。
可选的,公私钥还用于实现认证过程中的数字签名。数字签名实现了普通签章的数字化,在第一应用与第二应用的认证过程中,数字签名的实现包括两部分:第一部分为加密签名,使用私钥处理信息或者通过信息的哈希值对该信息产生数字签章,该部分对应本申请实施例中的步骤314;第二部分为签名验证,使用公钥验证该信息签章的真实性,该部分对应本申请实施例中的步骤318。
可选的,通过公私钥实现的信息加解密算法与数字签名机制包括RSA和DSA等其它较为流行的算法与机制,本申请实施例对所涉及的加解密算法与数字签名机制不作限定。
在一种可能的实施方式中,为了实现第二应用接收到第一应用的响应信息时,第二应用能够通过该响应信息确定响应信息的发送方,第一应用通过认证应用对第二未加密信息进行加密签名,得到第二响应信息。
在一种可能的实施方式中,本步骤包括如下步骤。
一、第一应用向认证应用发送公钥哈希、密码哈希和第二未加密信息。
在一种可能的实施方式中,第一应用根据公钥哈希调用认证应用的访问接口,并通过该访问接口向认证应用发送公钥哈希、密码哈希和第二未加密信息。
二、认证应用对公钥哈希和密码哈希进行验证。
在一种可能的实施方式中,步骤314的步骤二可参考步骤312中步骤二的说明内容,本申请实施例对此不再赘述。
三、公钥哈希和密码哈希通过验证,认证应用则根据公钥哈希对应的私钥,对第二未加密信息进行加密签名,得到第二响应信息。
在一种可能的实施方式中,认证应用确定公钥哈希和密码哈希通过验证后,认证应用根据公钥哈希对应的私钥,对第二未加密信息进行加密签名,得到第二响应信息。
在一种可能的实施方式中,第二响应信息(r31)的格式如下:
r31={(hash(pubKb),(nonceB+2),(nonceA+1))}priKb
其中,格式末尾的priKb用于表示通过私钥对第二未加密信息进行加密签名。
步骤315,第一应用根据第二响应信息向第二应用发送第二消息。
在一种可能的实施方式中,第一应用将第二响应信息作为响应第二应用的信息,第一应用将包含第二响应信息的第二消息发送给第二应用。
步骤316,第二应用向认证应用发送公钥哈希和第二响应信息。
第二应用接收到第一应用处发送的第二消息后获取第二消息所包含的第二响应信息,由于第二响应信息是加密签名过的信息,且是通过认证应用进行加密签名的,因此,在一种可能的实施方式中,第二应用通过认证应用对第二响应信息进行签名验证,得到第二未加密信息。
在一种可能的实施方式中,第二应用根据公钥哈希调用认证应用的访问接口,并通过该访问接口向认证应用发送公钥哈希和第二响应信息。
步骤317,认证应用查找公钥哈希对应的公钥。
在上述对公私钥还用于实现数字签名的说明中,已知第二应用通过认证应用对第二响应信息进行签名验证时,可选的,认证应用需通过公钥对第二响应信息进行签名验证,因此,在一种可能的实施方式中,认证应用在获取到第二应用发送的公钥哈希后,查找该公钥哈希对应的公钥。
步骤318,认证应用根据公钥对第二响应信息进行签名验证。
在一种可能的实施方式中,认证应用在查找到第二应用传入的公钥哈希所对应的公钥后,通过基于加密签名部分所涉及的相同数字签名机制对第二响应信息进行签名验证。
步骤319,若第二响应信息通过签名验证,认证应用则对第二响应信息进行解密,得到第二未加密信息。
在一种可能的实施方式中,若第二响应信息通过签名验证,认证应用则对第二响应信息进行解密,得到第二未加密信息;若第二响应信息未通过签名验证,认证应用则将第二响应信息丢弃。
步骤320,认证应用向第二应用发送第二未加密信息。
在一种可能的实施方式中,第二响应信息通过签名验证后,认证应用将对第二响应信息进行解密得到的第二未加密信息返回给第二应用。
步骤321,若第二未加密信息通过验证,第二应用则确定第二响应信息通过认证,并向第一应用发送认证成功响应。
在一种可能的实施方式中,认证应用将第二未加密信息返回给第二应用,第二应用获取第二未加密信息中的(nonceA+1),比对(nonceA+1)中的第二随机数是否正确。若正确,第二应用确定第二未加密信息通过验证,即确定第二响应信息通过认证,并向第一应用发送认证成功响应;若不正确,第二应用确定第二未加密信息未通过验证,即确定第二响应信息未通过认证,并将第二未加密信息丢弃。
步骤322,第一应用根据认证成功响应与第二应用进行应用间通信。
相应的,当第一应用获取到第二应用发送的认证成功响应后,即可通过第一应用提供的交互接口进行应用间通信。
综上所述,采用本申请实施例提供的应用间通信方法,当第一应用需要访问第二应用时,第一应用与第二应用之间存在多次认证交互,且该认证交互过程是通过公私钥对的信息加解密与数字签名机制实现的;相较于相关技术中用于实现应用间通信的方法,本申请实施例中,多次认证交互下的信息通过认证应用生成的公私钥对实现了信息加解密与数字签名,该认证应用运行于终端系统的TEE中,使得认证交互下的信息受到TEE中公私钥对机制的安全保护,从而在认证过程中避免了第三方应用或其它系统的侵入,保证了第一应用与第二应用间的通信安全。
进一步的,图3所示的实施例包括如图4至图7所示的信息交互流程。
在一种可能的实施方式中,在图3所示的实施例中,步骤301至步骤303实现了第一应用的注册过程,请参考图4,其示出了第一应用的注册过程的信息交互流程图。
如图4所示,第一应用处包含有应用密码password,并将包含应用密码password的注册请求发送至认证应用;认证应用根据应用密码password生成包含公钥pubKb和私钥priKb的公私钥对以及密码哈希hash(password),并将公钥pubKb的公钥哈希hash(pubKb)发送给第一应用;第一应用将公钥哈希hash(pubKb)进行存储。
在一种可能的实施方式中,在图3所示的实施例中,步骤304至步骤311实现了第二应用响应第一应用认证请求,请参考图5,其示出了第二应用响应第一应用认证请求的信息交互流程图。
如图5所示,第一应用生成第一随机数nonceB,根据第一随机数nonceB与存储的公钥哈希hash(pubKb)生成认证信息r10;第一应用将包含认证信息r10的认证请求发送至第二应用;第二应用生成第二随机数nonceA,根据第二随机数nonceA与认证信息r10中的hash(pubKb)和nonceB生成第一未加密信息r20;第二应用将第一未加密信息r20发送至认证应用;认证应用对第一未加密信息r20进行加密得到第一响应信息r21,并将第一响应信息r21返回至第二应用;第二应用将包含第一响应信息r21的第一消息发送至第一应用。
在一种可能的实施方式中,在图3所示的实施例中,步骤312至步骤315实现了第一应用通过认证应用实现加密签名,请参考图6,其示出了第一应用通过认证应用实现加密签名的信息交互流程图。
如图6所示,第一应用从第二应用处发送的第一消息中获取第一响应信息r21,并在生成密码哈希hash(password)后,将公钥哈希hash(pubKb)、密码哈希hash(password)和第一响应信息r21发送至认证应用;认证应用对第一响应信息r21进行解密,并将解密得到的第一未加密信息r20返回至第一应用;第一应用获取第一未加密信息r20中的(nonceB+1)进行第一随机数的验证,并在验证成功后生成第二未加密信息r30,将第二未加密信息r30发送至认证应用;认证应用对第二未加密信息r30进行加密签名得到第二响应信息r31,并将第二响应信息r31返回至第一应用;第一应用将包含第二响应信息r31的第二消息发送至第二应用。
在一种可能的实施方式中,在图3所示的实施例中,步骤316至步骤322实现了第二应用通过认证应用实现签名验证,请参考图7,其示出了第二应用通过认证应用实现签名验证的信息交互流程图。
如图7所示,第二应用从第一应用处发送的第二消息中获取第二响应信息r31,并将公钥哈希hash(pubKb)和第二响应信息r31发送至认证应用;认证应用获取存储的公钥pubKb对第二响应信息r31进行签名验证,并将签名验证通过第二响应信息r31解密,得到第二未加密信息r30返回至第二应用;第一应用获取第二未加密信息r30中的(nonceA+1)进行第二随机数的验证,并在验证成功后生成认证成功响应,将认证成功响应发送至第一应用。
在一种可能的实施方式中,请参考图8,其示出了图3所示的示例性实施例的完整信息交互流程图。
请参考图9,其示出了本申请一个实施例提供的应用间通信装置的结构框图。该装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:第一应用模块、第二应用模块和认证应用模块,第一应用模块和第二应用模块运行于系统的REE,认证应用模块运行于系统的TEE;
所述第一应用模块910,用于向所述第二应用模块920发送认证请求,所述认证请求中包含认证信息;
所述第二应用模块920,用于根据所述认证请求,向所述第一应用模块910发送第一消息,所述第一消息中包含第一响应信息,所述第一响应信息根据所述认证信息生成,且所述第一响应信息经过所述认证应用模块930加密;
所述第一应用模块910,用于根据所述第一消息,向所述第二应用模块920发送第二消息,所述第二消息中包含第二响应信息,所述第二响应信息根据所述第一响应信息生成,且所述第二响应信息经过所述认证应用模块930加密;
所述第二应用模块920,用于若所述第二响应信息通过认证,则向所述第一应用模块910发送认证成功响应;
所述第一应用模块910,用于根据所述认证成功响应与所述第二应用模块920进行应用间通信。
可选的,所述第一应用模块910,用于向所述第二应用模块920发送认证请求之前,所述装置包括:
所述第一应用模块910,用于向所述认证应用模块930发送注册请求,所述注册请求中包含所述第一应用模块910对应的应用密码;
所述认证应用模块930,用于根据所述应用密码生成所述公私钥对,并对所述公私钥对进行存储、公钥哈希和密码哈希进行关联存储,所述公钥哈希是对所述公私钥对中的公钥进行哈希得到,所述密码哈希是对所述应用密码进行哈希得到;
所述认证应用模块930,用于向所述第一应用模块910发送公钥哈希;
所述第一应用模块910,用于向所述第二应用模块920发送认证请求,包括:
所述第一应用模块910,用于根据所述公钥哈希和第一随机数生成所述认证信息;
所述第一应用模块910,用于向所述第二应用模块920发送包含所述认证信息的所述认证请求。
可选的,所述第二应用模块920,用于根据所述认证请求,向所述第一应用模块910发送第一消息,包括:
所述第二应用模块920,用于根据所述认证信息生成所述第一未加密信息,所述第一未加密信息中包含所述公钥哈希、更新后的所述第一随机数和第二随机数;
所述第二应用模块920,用于向所述认证应用模块930发送所述第一未加密信息;
所述认证应用模块930,用于查找所述公钥哈希对应的公钥;
所述认证应用模块930,用于根据所述公钥对所述第一未加密信息进行加密,得到所述第一响应信息;
所述认证应用模块930,用于向所述第二应用模块920发送所述第一响应信息;
所述第二应用模块920,用于根据所述第一响应信息向所述第一应用模块910发送所述第一消息。
可选的,所述第一应用模块910,用于根据所述第一消息,向所述第二应用模块920发送第二消息,包括:
所述第一应用模块910,用于通过所述认证应用模块930对所述第一响应信息进行解密,得到所述第一未加密信息;
所述第一应用模块910,用于根据所述第一未加密信息生成第二未加密信息,所述第二未加密信息中包含所述公钥哈希、再次更新后的所述第一随机数和更新后的第二随机数;
所述第一应用模块910,用于通过所述认证应用模块930对所述第二未加密信息进行加密签名,得到所述第二响应信息;
所述第一应用模块910,用于根据所述第二响应信息向所述第二应用模块920发送所述第二消息。
可选的,所述第一应用模块910,用于通过所述认证应用模块930对所述第一响应信息进行解密,得到所述第一未加密信息,包括:
所述第一应用模块910,用于向所述认证应用模块930发送所述公钥哈希、所述密码哈希和所述第一响应信息;
所述认证应用模块930,用于对所述公钥哈希和所述密码哈希进行验证;
若所述公钥哈希和所述密码哈希通过验证,所述认证应用模块930则根据所述公钥哈希对应的私钥,对所述第一响应信息进行解密,得到所述第一未加密信息。
可选的,所述第一应用模块910,用于通过所述认证应用模块930对所述第二未加密信息进行加密签名,得到所述第二响应信息,包括:
所述第一应用模块910,用于向所述认证应用模块930发送所述公钥哈希、所述密码哈希和所述第二未加密信息;
所述认证应用模块930,用于对所述公钥哈希和所述密码哈希进行验证;
所述认证应用模块930,用于若所述公钥哈希和所述密码哈希通过验证,则根据所述公钥哈希对应的私钥,对所述第二未加密信息进行加密签名,得到所述第二响应信息。
可选的,所述认证应用模块930,用于对所述公钥哈希和所述密码哈希进行验证,包括:
所述认证应用模块930,用于获取所述公钥哈希对应的公私钥对和所述密码哈希对应的公私钥对;
所述认证应用模块930,用于若所述公钥哈希对应的公私钥对与所述密码哈希对应的公私钥对相同,则确定所述公钥哈希和所述密码哈希通过验证。
可选的,所述第二应用模块920,用于所述若所述第二响应信息通过认证,则向所述第一应用模块910发送认证成功响应,包括:
所述第二应用模块920,用于向所述认证应用模块930发送所述公钥哈希和所述第二响应信息;
所述认证应用模块930,用于查找所述公钥哈希对应的公钥;
所述认证应用模块930,用于根据所述公钥对所述第二响应信息进行签名验证;
所述认证应用模块930,用于若所述第二响应信息通过签名验证,则对所述第二响应信息进行解密,得到所述第二未加密信息;
所述认证应用模块930,用于向所述第二应用模块920发送所述第二未加密信息;
所述第二应用模块920,用于若所述第二未加密信息通过验证,则确定所述第二响应信息通过认证,并向所述第一应用模块910发送认证成功响应。
请参考图10,其示出了本申请一个示例性实施例提供的终端1000的结构方框图。该终端1000可以是智能手机、平板电脑、电子书、便携式个人计算机等安装并运行有应用程序的电子设备。本申请中的终端1000可以包括一个或多个如下部件:处理器1100、存储器1200和屏幕1300。
处理器1100可以包括一个或者多个处理核心。处理器1100利用各种接口和线路连接整个终端1000内的各个部分,通过运行或执行存储在存储器1200内的指令、程序、代码集或指令集,以及调用存储在存储器1200内的数据,执行终端1000的各种功能和处理数据。可选地,处理器1100可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器1100可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责屏幕1300所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1100中,单独通过一块通信芯片进行实现。
存储器1200可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选地,该存储器1200包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1200可用于存储指令、程序、代码、代码集或指令集。存储器1200可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等,该操作系统可以是安卓(Android)系统(包括基于Android系统深度开发的系统)、苹果公司开发的IOS系统(包括基于IOS系统深度开发的系统)或其它系统。存储数据区还可以存储终端1000在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
屏幕1300可以为触摸显示屏,该触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在终端1000的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的应用间通信方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的应用间通信方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种应用间通信方法,其特征在于,所述方法用于终端,所述终端中安装有第一应用、第二应用和认证应用,所述第一应用和所述第二应用运行于系统的富执行环境REE,所述认证应用运行于系统的可信执行环境TEE,所述方法包括:
所述第一应用向所述认证应用发送注册请求,所述注册请求中包含所述第一应用对应的应用密码;
所述认证应用根据所述应用密码生成公私钥对,并对所述公私钥对进行存储、公钥哈希和密码哈希进行关联存储,所述公钥哈希是对所述公私钥对中的公钥进行哈希得到,所述密码哈希是对所述应用密码进行哈希得到;
所述认证应用向所述第一应用发送公钥哈希;
所述第一应用根据所述公钥哈希和第一随机数生成认证信息;
所述第一应用向所述第二应用发送包含所述认证信息的认证请求;
所述第二应用根据所述认证请求,向所述第一应用发送第一消息,所述第一消息中包含第一响应信息,所述第一响应信息根据所述认证信息生成,且所述第一响应信息经过所述认证应用加密;
所述第一应用根据所述第一消息,向所述第二应用发送第二消息,所述第二消息中包含第二响应信息,所述第二响应信息根据所述第一响应信息生成,且所述第二响应信息经过所述认证应用加密;
若所述第二响应信息通过认证,所述第二应用则向所述第一应用发送认证成功响应;
所述第一应用根据所述认证成功响应与所述第二应用进行应用间通信。
2.根据权利要求1所述的方法,其特征在于,所述第二应用根据所述认证请求,向所述第一应用发送第一消息,包括:
所述第二应用根据所述认证信息生成第一未加密信息,所述第一未加密信息中包含所述公钥哈希、更新后的所述第一随机数和第二随机数;
所述第二应用向所述认证应用发送所述第一未加密信息;
所述认证应用查找所述公钥哈希对应的公钥;
所述认证应用根据所述公钥对所述第一未加密信息进行加密,得到所述第一响应信息;
所述认证应用向所述第二应用发送所述第一响应信息;
所述第二应用根据所述第一响应信息向所述第一应用发送所述第一消息。
3.根据权利要求2所述的方法,其特征在于,所述第一应用根据所述第一消息,向所述第二应用发送第二消息,包括:
所述第一应用通过所述认证应用对所述第一响应信息进行解密,得到所述第一未加密信息;
所述第一应用根据所述第一未加密信息生成第二未加密信息,所述第二未加密信息中包含所述公钥哈希、再次更新后的所述第一随机数和更新后的第二随机数;
所述第一应用通过所述认证应用对所述第二未加密信息进行加密签名,得到所述第二响应信息;
所述第一应用根据所述第二响应信息向所述第二应用发送所述第二消息。
4.根据权利要求3所述的方法,其特征在于,所述第一应用通过所述认证应用对所述第一响应信息进行解密,得到所述第一未加密信息,包括:
所述第一应用向所述认证应用发送所述公钥哈希、所述密码哈希和所述第一响应信息;
所述认证应用对所述公钥哈希和所述密码哈希进行验证;
若所述公钥哈希和所述密码哈希通过验证,所述认证应用则根据所述公钥哈希对应的私钥,对所述第一响应信息进行解密,得到所述第一未加密信息。
5.根据权利要求3所述的方法,其特征在于,所述第一应用通过所述认证应用对所述第二未加密信息进行加密签名,得到所述第二响应信息,包括:
所述第一应用向所述认证应用发送所述公钥哈希、所述密码哈希和所述第二未加密信息;
所述认证应用对所述公钥哈希和所述密码哈希进行验证;
若所述公钥哈希和所述密码哈希通过验证,所述认证应用则根据所述公钥哈希对应的私钥,对所述第二未加密信息进行加密签名,得到所述第二响应信息。
6.根据权利要求4或5所述的方法,其特征在于,所述认证应用对所述公钥哈希和所述密码哈希进行验证,包括:
所述认证应用获取所述公钥哈希对应的公私钥对和所述密码哈希对应的公私钥对;
若所述公钥哈希对应的公私钥对与所述密码哈希对应的公私钥对相同,所述认证应用则确定所述公钥哈希和所述密码哈希通过验证。
7.根据权利要求3所述的方法,其特征在于,所述若所述第二响应信息通过认证,所述第二应用则向所述第一应用发送认证成功响应,包括:
所述第二应用向所述认证应用发送所述公钥哈希和所述第二响应信息;
所述认证应用查找所述公钥哈希对应的公钥;
所述认证应用根据所述公钥对所述第二响应信息进行签名验证;
若所述第二响应信息通过签名验证,所述认证应用则对所述第二响应信息进行解密,得到所述第二未加密信息;
所述认证应用向所述第二应用发送所述第二未加密信息;
若所述第二未加密信息通过验证,所述第二应用则确定所述第二响应信息通过认证,并向所述第一应用发送认证成功响应。
8.一种应用间通信装置,其特征在于,所述装置包括:第一应用模块、第二应用模块和认证应用模块,所述第一应用模块和所述第二应用模块运行于系统的REE,所述认证应用模块运行于系统的TEE;
所述第一应用模块,用于向所述认证应用模块发送注册请求,所述注册请求中包含所述第一应用模块对应的应用密码;
所述认证应用模块,用于根据所述应用密码生成公私钥对,并对所述公私钥对进行存储、公钥哈希和密码哈希进行关联存储,所述公钥哈希是对所述公私钥对中的公钥进行哈希得到,所述密码哈希是对所述应用密码进行哈希得到;
所述认证应用模块,用于向所述第一应用模块发送公钥哈希;
所述第一应用模块,用于根据所述公钥哈希和第一随机数生成认证信息;
所述第一应用模块,用于向所述第二应用模块发送包含所述认证信息的认证请求;
所述第二应用模块,用于根据所述认证请求,向所述第一应用模块发送第一消息,所述第一消息中包含第一响应信息,所述第一响应信息根据所述认证信息生成,且所述第一响应信息经过所述认证应用模块加密;
所述第一应用模块,用于根据所述第一消息,向所述第二应用模块发送第二消息,所述第二消息中包含第二响应信息,所述第二响应信息根据所述第一响应信息生成,且所述第二响应信息经过所述认证应用模块加密;
所述第二应用模块,用于若所述第二响应信息通过认证,则向所述第一应用模块发送认证成功响应;
所述第一应用模块,用于根据所述认证成功响应与所述第二应用模块进行应用间通信。
9.一种终端,其特征在于,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如权利要求1至7任一所述的应用间通信方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如权利要求1至7任一所述的应用间通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910958739.6A CN110659474B (zh) | 2019-10-10 | 2019-10-10 | 应用间通信方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910958739.6A CN110659474B (zh) | 2019-10-10 | 2019-10-10 | 应用间通信方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110659474A CN110659474A (zh) | 2020-01-07 |
CN110659474B true CN110659474B (zh) | 2021-07-30 |
Family
ID=69040466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910958739.6A Active CN110659474B (zh) | 2019-10-10 | 2019-10-10 | 应用间通信方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110659474B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468606A (zh) * | 2020-03-30 | 2021-10-01 | 华为技术有限公司 | 一种应用程序的访问方法及电子设备 |
CN111459869B (zh) * | 2020-04-14 | 2022-04-29 | 中国长城科技集团股份有限公司 | 一种数据访问的方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1979515A (zh) * | 2005-12-09 | 2007-06-13 | 三星电子株式会社 | 管理多个证书的设备和方法 |
CN101523800A (zh) * | 2006-10-10 | 2009-09-02 | 高通股份有限公司 | 用于双向认证的方法和装置 |
CN108418812A (zh) * | 2018-02-12 | 2018-08-17 | 北京豆荚科技有限公司 | 一种基于可信执行环境的智能终端安全消息服务方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060195689A1 (en) * | 2005-02-28 | 2006-08-31 | Carsten Blecken | Authenticated and confidential communication between software components executing in un-trusted environments |
-
2019
- 2019-10-10 CN CN201910958739.6A patent/CN110659474B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1979515A (zh) * | 2005-12-09 | 2007-06-13 | 三星电子株式会社 | 管理多个证书的设备和方法 |
CN101523800A (zh) * | 2006-10-10 | 2009-09-02 | 高通股份有限公司 | 用于双向认证的方法和装置 |
CN108418812A (zh) * | 2018-02-12 | 2018-08-17 | 北京豆荚科技有限公司 | 一种基于可信执行环境的智能终端安全消息服务方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110659474A (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3605989B1 (en) | Information sending method, information receiving method, apparatus, and system | |
US9838205B2 (en) | Network authentication method for secure electronic transactions | |
ES2687191T3 (es) | Método de autentificación de red para transacciones electrónicas seguras | |
CN110492990B (zh) | 区块链场景下的私钥管理方法、装置及系统 | |
KR101653010B1 (ko) | 휴대용 장치 연관 | |
CN112425114B (zh) | 受公钥-私钥对保护的密码管理器 | |
KR101634828B1 (ko) | 장치-스테이션 연결 프로토콜 | |
EP3324572B1 (en) | Information transmission method and mobile device | |
CN108566381A (zh) | 一种安全升级方法、装置、服务器、设备和介质 | |
WO2020173332A1 (zh) | 基于可信执行环境的应用激活方法及装置 | |
CN109714176B (zh) | 口令认证方法、装置及存储介质 | |
JP2004538584A (ja) | 電子装置における情報の処理方法、システム、電子装置及び処理ブロック | |
US11088822B2 (en) | Methods, systems, and media for using dynamic public key infrastructure to send and receive encrypted messages | |
TW201324225A (zh) | 用於電子裝置之暫時安全開機流程之系統與方法 | |
US20240031129A1 (en) | Data encryption method, data decryption method, terminal, and storage medium | |
CN108027853B (zh) | 多用户强认证令牌 | |
JP2019514314A (ja) | 暗号化メッセージを送受信するために動的公開鍵インフラストラクチャを用いる方法、システム、及び媒体 | |
CN111178884A (zh) | 信息处理方法、装置、设备及可读存储介质 | |
KR20210046357A (ko) | 블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치 | |
CN114266033A (zh) | 验证码生成方法、装置、验证码登录系统及电子设备 | |
CN110659474B (zh) | 应用间通信方法、装置、终端及存储介质 | |
CN106992978B (zh) | 网络安全管理方法及服务器 | |
EP4037250A1 (en) | Message transmitting system with hardware security module | |
CN114221764A (zh) | 基于区块链的公钥更新方法、装置和设备 | |
CN113127844A (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 |