应用安全性认证方法及装置与流程

文档序号:12693435阅读:176来源:国知局
应用安全性认证方法及装置与流程

本申请涉及计算机领域,尤其涉及一种应用安全性认证方法及装置。



背景技术:

随着计算机技术的发展,各类应用(APP)层出不穷,应用的安全性越来越受到关注。目前对应用的安全性的认证方法为:

在应用安装或初始运行时对应用进行认证,以应用安装时对应用的认证过程为例,具体的应用认证方法为:在应用发布时将应用的APK(安装包)文件的哈希值写入安装文件的外壳中。在应用安装时,从该安装文件的外壳中获取应用发布时的APK文件的哈希值,并从安装文件中获取当前安装的应用的APK文件的哈希值,将该应用发布时的APK文件的哈希值与当前安装的应用的APK文件的哈希值进行比较,若一致,则表明应用未被篡改,为合法的应用;否则说明应用可能被篡改,从而可采取相应的措施,如停止安装或停止加载。

上述应用认证方法至少存在如下问题:

1、应用发布时的原始APK文件的哈希值被写入应用安装文件的外壳中,很容易被攻击者获取并篡改,从而依据该篡改后的APK文件的哈希值无法准确认证应用的合法性。

2、只有在应用安装或初始运行时执行对应用的认证,无法发现钓鱼、假冒应用或恶意用户发起的恶意服务请求等行为。

因此,目前的应用认证方法无法有效实现应用的安全性认证。



技术实现要素:

本申请解决的技术问题之一是,提供一种应用安全性认证方法及装置,实现应用的安全认证。

根据本申请一方面的一个实施例,提供了一种应用安全性认证方法,所述方法包括:

接收通过所述应用发起的业务的服务器业务请求;

响应于接收到所述服务器业务请求,获取所述应用的应用安全性指标数据;

将服务器业务请求和应用安全性指标数据传递到服务器,其中服务器一方面对服务器待处理业务请求进行业务响应,另一方面根据获取的应用安全性指标数据对应用的安全性进行认证。

根据本申请另一方面的一个实施例,提供了一种应用安全性认证方法,所述方法包括:

响应于接收到通过所述应用发起了服务器业务请求的通知,获取所述应用的应用安全性指标数据;

将获取的应用安全性指标数据传递到服务器,其中服务器根据获取的应用安全性指标数据对应用的安全性进行认证。

根据本申请另一方面的一个实施例,提供了一种安全功能组件,包括:

接收单元,用于接收通过所述应用发起的-服务器业务请求;

获取单元,用于响应于接收到所述服务器业务请求,获取所述应用的应用安全性指标数据;

传递单元,用于将服务器业务请求和应用安全性指标数据传递到服务器,其中服务器一方面对服务器业务请求进行业务响应,另一方面根据获取的应用安全性指标数据对应用的安全性进行认证。

根据本申请另一方面的一个实施例,提供了一种包括上面所述的安全功能组件的终端。

根据本申请另一方面的一个实施例,提供了一种安全功能组件,包括:

获取单元,用于响应于接收到通过所述应用发起的服务器业务请求的通知,获取所述应用的应用安全性指标数据;

传递单元,用于将获取的应用安全性指标数据传递到服务器,其中服务器根据获取的应用安全性指标数据对应用的安全性进行认证。

根据本申请另一方面的一个实施例,提供了一种包括上面所述的安全功 能组件的终端。

根据本申请另一方面的一个实施例,提供了一种应用安全性认证方法,所述方法包括:

接收通过所述应用发起的服务器业务请求、以及应用的应用安全性指标数据,所述应用的应用安全性指标数据在终端伴随着通过所述应用发起的服务器业务请求而获取;

对所述的服务器业务请求进行业务响应;

根据获取的应用安全性指标数据对应用的安全性进行认证。

根据本申请另一方面的一个实施例,提供了一种应用安全性认证装置,所述装置包括:

接收单元,用于接收通过所述应用发起的服务器业务请求、以及应用的应用安全性指标数据,所述应用的应用安全性指标数据在终端伴随着通过所述应用发起的服务器业务请求而获取;

业务响应单元,用于对服务器业务请求进行业务响应;

应用认证单元,用于根据获取的应用安全性指标数据对应用的安全性进行认证。

根据本申请另一方面的一个实施例,提供了一种包括上面所述的装置的服务器。

根据本申请另一方面的一个实施例,提供了一种应用安全性认证方法,所述方法包括:

接收应用的应用安全性指标数据,所述应用安全性指标数据在终端伴随着通过所述应用发起的业务而获取;

根据获取的应用安全性指标数据对应用的安全性进行认证。

根据本申请另一方面的一个实施例,提供了一种应用认证组件,包括:

接收单元,用于接收应用的应用安全性指标数据,所述应用安全性指标数据在终端伴随着通过所述应用发起的服务器业务请求而获取;

认证单元,根据获取的应用安全性指标数据对应用的安全性进行认证。

本申请实施例终端的安全功能组件在接收到通过应用发起的服务器业务请求的情况下,获取所述应用的应用安全性指标数据,并将服务器业务请 求与获取的应用安全性指标数据传递给服务器,以便服务器一方面对服务器业务请求进行业务响应,另一方面根据获取的应用安全性指标数据对应用的安全性进行认证。实现了终端辅助服务器实现对应用安全性进行认证。

本申请实施例终端的安全功能组件在接收到通过应用发起的服务器业务请求情况下,获取应用的应用安全性指标数据,并将该应用安全性指标数据传递给服务器,以便服务器根据获取的应用安全性指标数据对应用的安全性进行认证,从而实现了终端辅助服务器实现对应用安全性进行认证。

本申请实施例服务器根据接收的通过所述应用发起服务器业务请求、以及应用的应用安全性指标数据,对服务器业务请求进行业务响应的同时,根据获取的应用安全性指标数据对应用的安全性进行认证,也就是本申请实施例将对应用安全性指标数据的认证放在服务器执行,有效防止该应用安全性指标数据被篡改的风险,从而保证了应用安全性认证的可靠性。如果放在客户端执行则很容易被攻击者篡改,从而应用安全性认证可靠性降低。且将应用的安全性认证结合在服务器业务响应中实现了服务器及时、准确、有效的发现应用是否被替换或篡改,从而可有效防止钓鱼、假冒应用或恶意用户发起的恶意服务请求等行为。

本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是根据本申请一个实施例的终端与服务器配合实现应用安全性认证的示意图。

图2是根据本申请一个实施例的应用安全性认证方法的流程图。

图3是根据本申请另一个实施例的应用安全性认证方法的流程图。

图4是根据本申请一个实施例的安全功能组件的结构示意图。

图5是根据本申请一个实施例的应用安全性认证装置的结构示意图。

图6是根据本申请另一个实施例的终端与服务器配合实现应用安全性认证的示意图。

图7是根据本申请又一个实施例的应用安全性认证方法流程图。

图8是根据本申请另一个实施例的安全功能组件的结构示意图。

图9是根据本申请又一个实施例的应用安全性认证方法的流程图。

图10是根据本申请一个实施例的应用认证组件结构示意图。

本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。

具体实施方式

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本申请,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本申请。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。

需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本申请,也应包含在本申请保护范围以内,并以引用方式包含于此。

后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。

这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本申请的示例性实施例的目的。但是本申请可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。

应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。

应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。

这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。

还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相 反的顺序来执行。

下面结合附图对本申请的技术方案作进一步详细描述。

如图1中所示为本申请实施例终端与服务器配合实现应用安全性认证的示意图。本申请实施例中由终端10将应用安全性指标数据发送给服务器11,实现终端10辅助服务器11实现对应用安全性进行认证。服务器11基于终端10发送的应用安全性指标数据对应用安全性进行认证。

图2是根据本申请一个实施例的应用安全性认证方法的流程图,该方法对应图1中的终端10侧的安全功能组件110的操作,用于终端10侧的安全功能组件110获取应用安全性指标数据,以便终端10发送该应用安全性指标数据给服务器11,以辅助实现服务器11对应用安全性进行认证。所述方法主要包括如下步骤:

S210、接收通过所述应用发起的服务器业务请求;

S220、响应于接收到所述服务器业务请求,获取所述应用的应用安全性指标数据;

S230、将服务器业务请求和应用安全性指标数据传递到服务器,其中服务器一方面对服务器业务请求进行业务响应,另一方面根据获取的应用安全性指标数据对应用的安全性进行认证。

为进一步理解本方案,下面对上述各步骤做进一步详细介绍。

步骤S210中所述的服务器业务请求包括但不限于如下业务的请求:来自应用的身份认证请求、支付请求、电子交易请求、业务数据数字签名请求等。也就是在不同场景该服务器业务请求不同,例如,其可以为携带用户身份信息的身份认证请求,所述用户身份信息包括但不限于以下至少一项:姓名、身份证号、电话号码等等。或者,所述服务器业务请求为同时携带用户身份信息及待签名数据的服务请求。

需要说明的是,本申请实施例由独立于所述应用的安全功能组件完成,因此,步骤S210接收通过所述应用发起的服务器业务请求。也就是,本申请实施例将服务器业务请求的发起的组件与具有应用认证数据搜集功能的安全功能组件分离,甚至可将安全功能组件设置于安全级别更高的可信环境中,例如,设置于内核层或硬件隔离环境,从而可以保证安全功能组件搜集 的认证数据是真实可靠的。避免了当应用软件本身被破解篡改时,安全性认证逻辑被绕过的问题。

本申请实施例的核心思想是对应用的认证结合在已有的业务响应中。按照已有技术,在接收到通过所述应用发起的服务器业务请求后,会将该请求发送给服务器,以便服务器对请求进行业务响应。本申请实施例为实现对应用的认证,如步骤S220中所述,在接收到通过所述应用发起的服务器业务请求后,会获取所述应用的应用安全性指标数据,将该应用安全性指标数据连同服务器业务处理请求一起发送给服务器进行处理,从而实现对应用的安全性进行认证。

所述的应用安全性指标数据即为可以对应用进行安全性认证信息的数据。所述应用安全性指标数据包括如下中的至少一项:

应用的真实性和完整性指标数据;

应用所运行环境的指标数据;

应用运行状态的指标数据。

其中,所述应用的真实性和完整性指标数据包括如下中的至少一项:

所述应用的安装包文件的哈希值;

应用的DEX文件的哈希值;

应用的安装包文件的开发者签名。

所述应用所运行环境的指标数据包括如下中的至少一项:

终端型号、操作系统软件版本、设备是否被破解(root)、设备安全设置、网络环境。

所述应用运行状态的指标数据包括如下中的至少一项:

业务请求发生时间、业务请求发生位置。

安全功能组件可通过不同可靠方式,从终端本地(如本地操作系统或可信运行环境等)获取该应用安全性指标数据。通过获取上述应用安全性指标数据,不但可以对应用真实性和完整性进行认证,还可以对应用运行环境以及运行状态进行认证和风险分析。避免了应用本身运行环境出现问题时,例如,终端被root,或刷机等,终端提供给服务器的应用安全性指标数据不可靠的问题。

步骤S230所述将服务器业务请求和应用安全性指标数据传递到服务器的一种实施例为:

直接将接收的服务器业务请求以及获取的应用安全性指标数据发送给服务器。

将服务器业务请求和应用安全性指标数据传递到服务器的另一种实施例为:

将服务器业务请求的全部或部分和应用安全性指标数据进行签名处理或发送到签名组件进行签名处理;

将签名处理后的服务器业务数据和应用安全性指标数据发送给服务器。

也就是,本申请实施例为保证数据的完整性和可靠性,在将服务器业务请求和应用安全性指标数据传递到服务器前,对服务器业务请求和应用安全性指标数据进行签名处理。其中,可以将签名组件与安全功能组件集中设置在一个软件实体中,也可以分离设置。在集中设置情况下,该安全功能组件可直接将服务器业务请求和应用安全性指标数据进行签名处理;在分离设置场景,可将服务器业务请求和应用安全性指标数据发送到签名组件进行签名处理。

另外,若将安全功能组件与签名组件分离设置,为进一步保证待签名数据的安全性,可将签名组件设置于安全环境中,例如设置于终端应用处理器的应用层、或内核层、或可信计算环境(trustzone)中。另外,在对应用安全性指标数据进行签名时,该签名组件只接受来自安全功能组件发送的签名请求,也就是,在签名组件接收到签名请求情况下,会识别签名请求发送者身份是否为安全功能组件,只有在确认的情况下,才进行签名处理,否则不执行签名处理。由于安全功能组件处于可信环境中,其申请签名的待签数据均为真实可靠的数据,本申请实施例的签名组件通过只接受安全功能组件的签名请求,可以进一步保证应用认证过程的安全性。

本申请一种实施例对服务器业务请求和应用安全性指标数据进行签名处理可以为:将服务器业务请求和应用安全性指标数据分别进行签名处理或发送到签名组件进行分别签名处理。也就是,分别为服务器业务请求和应用安全性指标数据添加数字签名,签名后的服务器业务数据和签名后的应用安 全性指标数据可以在同一消息中也可以分别发送给服务器。

另一种实施例对服务器业务请求和应用安全性指标数据进行签名处理可以为:

将服务器业务请求和应用安全性指标数据合在一起进行签名处理或发送到签名组件进行签名处理。即,将服务器业务请求和应用安全性指标数据作为一个待签数据包进行数字签名。

为服务器业务数据和应用安全性指标数据进行签名的处理过程,可以利用已有的非对称密钥加密协议,采用非对称密钥加密签名处理,例如,使用签名组件的私钥对服务器业务请求和应用安全性指标数据签名,并可选地,将对应的公钥信息发送给服务器,以便服务器根据该公钥信息获取对应公钥。

服务器根据获取的应用安全性指标数据对应用进行安全性认证包括:

将获取的应用安全性指标数据与服务器通过不同于响应于接收到所述服务器业务请求而获取的所述应用安全性指标数据的方式获取的应用安全性指标数据进行比较;或者

对应用安全性指标数据进行有效性分析或合理性分析。

不同于响应于接收到所述服务器业务请求而获取的所述应用安全性指标数据的方式例如在被保护的应用在发布时,服务器可获得该应用发布的安全性指标数据(如应用的真实性和完整性指标数据)并存储于服务器,用于在接收到服务器业务请求时进行比较。或者,通过用户的其它应用、其它系统功能、其它设备获取该应用的安全性指标数据。例如,在终端上运行的其他应用或系统功能可向服务器报告终端运行环境的指标数据(终端型号、操作系统软件版本、设备是否被root、设备安全设置、网络环境等),这些数据可在接收到服务器业务请求时进行比较。再例如,用户拥有的其它终端设备(如手环、SIM卡等)可向服务器提供用户的位置信息,也可作为安全性指标对比数据。

对应用安全性指标数据进行的有效性分析或合理性分析可通过已有技术实现,通过这些有效性分析或合理性分析也能对应用的安全性进行认证。

本申请实施例将应用的安全性认证过程与以非对称加密技术为基础的 安全服务捆绑在一起,解决了移动环境中电子政务、电子商务的安全风险,特别是对信息安全要求较高的业务,例如,电子政务、电子交易类业务、金融类业务、支付类业务提供了可靠的保障。有效保证了提供金融支付业务的企业及用户个人利益。当然,也可以使用对称密钥加密签名处理。

本申请实施例将服务器业务请求和应用安全性指标数据发送给服务器的目的在于:服务器一方面对服务器业务请求进行业务响应,另一方面根据获取的应用安全性指标数据对应用的安全性进行认证,从而实现了终端为服务器提供对应用进行安全性认证的信息,辅助服务器实现应用安全性的认证。

另外,需要说明的是,发送服务器业务、请求和应用安全性指标数据给服务器的操作可以由安全功能组件执行,也可由其他发送功能模块执行,在由其他发送模块执行情况下,该安全功能组建需将该服务器业务请求和应用安全性指标数据发送给发送功能模块,再由该发送模块将服务器业务请求和应用安全性指标数据发送给服务器。

如图3中所示为本申请另一实施例提供的应用安全性认证方法,该方法对应图1中服务器侧的操作,用于服务器侧一方面对服务器业务请求进行业务响应,另一方面根据接收的应用安全性指标数据对应用的安全性进行认证。避免了目前对于恶意应用的安全性认证均是由终端来完成,服务器在业务操作中无法确定终端的应用是否为合法应用,因此,很难识别钓鱼、假冒应用或恶意用户的恶意服务请求等问题,实现了及时、准确、有效的发现应用被篡改或替换。所述方法主要包括如下步骤:

S310、接收通过所述应用发起的服务器业务请求、以及应用的应用安全性指标数据,所述应用的应用安全性指标数据在终端伴随着通过所述应用发起的服务器业务请求而获取;

S320、对所述的服务器业务请求进行业务响应;

S330、根据获取的应用安全性指标数据对应用的安全性进行认证。

为进一步理解本方案,下面对上述各步骤做进一步详细介绍。

步骤S310中所述的服务器业务请求包括但不限于如下业务请求:来自 应用的身份认证请求、支付请求、电子交易请求、业务数据数字签名请求等。也就是在不同场景该待处理业务请求会不同,例如,其可以为携带用户身份信息的身份认证请求,所述用户身份信息包括但不限于以下至少一项:姓名、身份证号、电话号码等等。或者,所述服务器业务请求为同时携带用户身份信息及待签名数据的服务请求。

所述的应用安全性指标数据即为可以对应用进行安全性认证信息的数据。所述应用安全性指标数据包括如下中的至少一项:

应用的真实性和完整性指标数据;

应用所运行环境的指标数据;

应用运行状态的指标数据。

其中,所述应用的真实性和完整性指标数据包括如下中的至少一项:

所述应用的安装包文件的哈希值;

应用的DEX文件的哈希值;

应用的安装包文件的开发者签名。

所述应用所运行环境的指标数据包括如下中的至少一项:

终端型号、操作系统软件版本、设备是否被root、设备安全设置、网络环境。

所述应用运行状态的指标数据包括如下中的至少一项:

业务请求发生时间、业务请求发生位置。

其中一种实施例,接收到的所述服务器业务请求、以及应用的应用安全性指标数据包含签名处理后的服务器业务请求、以及应用的应用安全性指标数据。且一种情况为:所述签名处理后的服务器业务请求、以及应用的应用安全性指标数据是分别签名处理后的服务器业务请求、以及应用的应用安全性指标数据。则在只接收到签名后的服务器业务请求,或只接收到签名后的应用安全性指标数据情况下,可等待全部签名数据接收到后再进行相应的操作。

另一种情况为:所述签名处理后的服务器业务数据、以及应用的应用安全性指标数据是服务器业务数据、以及应用的应用安全性指标数据合在一起后签名处理后的数据。

在接收到的服务器业务请求、以及应用的应用安全性指标数据是签名处理后的服务器业务请求、以及应用的应用安全性指标数据情况下,本申请实施例可执行如下操作:

对签名处理后的服务器业务请求、以及应用的应用安全性指标数据进行签名验证,从而验证服务器业务请求、以及应用的应用安全性指标数据的真实性及完整性。

其中一种实施例,若所述签名处理是非对称密钥加密签名处理,服务器业务请求、以及应用的应用安全性指标数据在终端用私钥签名处理,则所述对签名处理后的服务器业务请求、以及应用的应用安全性指标数据进行签名验证包括:使用公钥进行签名处理后的服务器业务请求、以及应用的应用安全性指标数据的签名验证。其中,在接收签名处理后的服务器业务请求、以及应用的应用安全性指标数据的同时可接收公钥信息,根据该公钥信息获取对应的公钥,从而使用公钥进行签名验证。或者在服务器本地保存公钥信息,根据该服务器本地保存的公钥信息获取对应的公钥,从而使用该对应的公钥进行签名验证。

步骤S320中对所述服务器业务请求进行业务响应包括但不限于对用户身份信息进行认证和/或对待签名数据进行验证等,该业务响应过程可采用已有技术实现,本申请实施例对此不做具体限制。

步骤S330是对应用安全性进行认证,具体为:根据获取的应用安全性指标数据对应用的安全性进行认证。具体的两种认证的方式前面已提及。

本申请实施例通过将应用的认证放在服务器侧执行,有效减小了该应用的认证数据被篡改的风险。且对应用安全性进行认证不但可以对应用真实性和完整性进行认证,还可以对应用运行环境以及运行状态进行认证。避免了应用本身运行环境出现问题时,例如,终端被root,或刷机等,终端提供给服务器的应用安全性指标数据不可靠的问题。另外,服务器侧还可以对应用安全性指标数据进行有效性和合理性分析,或者和同时从其他应用、系统功能或其他终端设备(如手环、SIM卡等)获得的指标数据进行比对,从而进行认证,实现了灵活的认证方式。

需要说明的是,本申请实施例对签名验证、对服务器业务请求进行业务 响应以及对应用安全性进行认证的步骤并无先后顺序的限制。可同时进行业务响应和应用安全性认证,也可先后进行。其中,为便提高认证效率,可首先执行签名验证,在签名验证成功情况下,再分别执行业务响应及应用安全性认证。若签名认证失败,则可直接回复认证失败响应,而不执行后续的业务响应及应用安全性认证的操作,当然本实施例并不局限于此。且三部分功能可由同一模块完成,也可由不同模块或不同服务器完成。

本申请实施例在所述三部分功能完成后,可以根据各自的结果发送响应给所述终端。其中,针对不同的结果可发送不同的响应给所述终端,例如,在应用安全性认证失败,而服务器业务请求的业务响应完成,以及签名认证通过情况下,返回的响应可以为:应用程序非法;在应用认证通过以及签名认证通过,而对服务器业务请求的业务响应失败情况下,返回的响应可以为:业务请求的响应失败。

在上述三部分功能均通过情况下服务器才会接受该应用后续的支付、转帐、电子交易、信息处理等业务请求。

本申请实施例解决了服务器对终端运行的应用的安全性认证问题,将应用的安全性认证过程与业务响应过程相结合,可有效检测应用的使用是否是用户本人意愿,可有效防止钓鱼、假冒应用或恶意用户的恶意服务请求等现象,从而可以及时、准确、有效的发现应用是否被篡改。

本申请实施例可应用于基于不对称加密技术的任何移动应用场景,例如身份认证、电子签名等,通过将应用的安全性认证过程与以非对称加密技术为基础的安全服务捆绑在一起,解决了移动环境中电子政务、电子商务的安全风险,特别是对信息安全要求较高的业务,例如,电子政务、电子交易类业务、金融类业务、支付类业务提供了可靠的保障。有效保证了提供金融支付业务的企业及用户个人利益。当然,也可以使用对称密钥加密签名处理。

本申请实施例还提供一种与图2所述的应用安全性认证方法对应的安全功能组件,该安全功能组件的结构示意图如图4中所示,该安全功能组件独立于所述应用,用于提供应用安全性指标数据给服务器,以辅助服务器实 现对应安全性进行认证,所述安全功能组件包括如下单元:

接收单元410,用于接收通过所述应用发起的服务器业务请求;

获取单元420,用于响应于接收到所述服务器业务请求,获取所述应用的应用安全性指标数据;

传递单元430,用于将服务器业务请求和应用安全性指标数据传递到服务器,其中服务器一方面对服务器业务请求进行业务响应,另一方面根据获取的应用安全性指标数据对应用的安全性进行认证。

所述应用安全性指标数据包括如下中的至少一项:

应用的真实性和完整性指标数据;

应用所运行环境的指标数据;

应用运行状态的指标数据。

所述应用的真实性和完整性指标数据包括如下中的至少一项:

所述应用的安装包文件的哈希值;

应用的可执行文件的哈希值;

应用的安装包文件的开发者签名。

所述待认证业务数据包括如下中的至少一项:

用户身份信息;

待签名数据。

所述传递单元430被配置为:

将服务器业务请求和应用安全性指标数据进行签名处理或发送到签名组件进行签名处理;

将签名处理后的服务器业务请求和应用安全性指标数据发送给服务器。

一种实施例,所述传递单元430被配置为:

将服务器业务请求和应用安全性指标数据分别进行签名处理或发送到签名组件进行分别签名处理。

另一种实施例,所述传递单元430被配置为:

将服务器业务请求和应用安全性指标数据合在一起进行签名处理或发送到签名组件进行签名处理。

签名组件只有在确认接收到来自安全功能组件的应用安全性指标数据 的条件下,才进行签名处理。

一种实施例,所述签名处理是非对称密钥加密签名处理。

本申请实施例还提供一种终端,该终端包括如上面所述的安全功能组件,该安全功能组件的结构及功能同上面所述,此处不再赘述。

本申请实施例还提供一种与图3中的应用安全性认证方法对应的应用安全性认证装置,该装置结构示意图如图5中所示,该装置主要包括:

接收单元510,用于接收通过所述应用发起的服务器业务请求、以及应用的应用安全性指标数据,所述应用的应用安全性指标数据在终端伴随着通过所述应用发起的服务器业务请求而获取;

业务响应单元520,用于对所述服务器业务请求进行业务响应;

应用认证单元530,用于根据获取的应用安全性指标数据对应用的安全性进行认证。该业务认证单元530即为图1中的应用认证组件。

所述应用安全性指标数据包括如下中的至少一项:

应用的真实性和完整性指标数据;

应用所运行环境的指标数据;

应用运行状态的指标数据。

所述应用的真实性和完整性指标数据包括如下中的至少一项:

所述应用的安装包文件的哈希值;

应用的可执行文件的哈希值;

应用的安装包文件的开发者签名。

所述服务器业务请求包括如下中的至少一项:

用户身份信息;

待签名数据。

当接收到的所述服务器业务请求、以及应用的应用安全性指标数据是签名处理后的服务器业务请求、以及应用的应用安全性指标数据,所述装置还包括:

签名验证单元540,用于对签名处理后的服务器业务请求、以及应用的应用安全性指标数据进行签名验证,从而验证服务器业务请求、以及应用的 应用安全性指标数据的完整性。

其中,一种实施例所述签名处理后的服务器业务请求、以及应用的应用安全性指标数据是分别签名处理后的服务器业务请求、以及应用的应用安全性指标数据。

另一种实施例所述签名处理后的服务器业务请求、以及应用的应用安全性指标数据是服务器业务请求、以及应用的应用安全性指标数据合在一起后签名处理后的数据。

一种实施例,若所述签名处理是非对称密钥加密签名处理,服务器业务请求、以及应用的应用安全性指标数据在终端用私钥签名处理,所述签名验证单元540被配置为:

用公钥进行签名处理后的服务器业务请求、以及应用的应用安全性指标数据的签名验证。

本申请实施例还提供一种服务器,该服务器包括如上面所述的应用安全性认证装置,该应用安全性认证装置的结构及功能如上面实施例中所述,此处不再赘述。

如图6中所示为本申请实施例终端与服务器配合实现应用安全性认证的示意图。本申请实施例中由终端60将应用安全性指标数据发送给服务器61,实现终端60辅助服务器61实现对应用安全性进行认证。服务器61基于终端60发送的应用安全性指标数据对应用安全性进行认证。

图7是根据本申请一个实施例的应用安全性认证方法的流程图,该方法对应图6中的终端60侧的安全功能组件610的操作,用于终端60侧的安全功能组件610获取应用安全性指标数据,以便终端60发送该应用安全性指标数据给服务器61,以辅助实现服务器61对应用安全性进行认证。所述方法主要包括如下步骤:

S710、响应于接收到通过所述应用发起了服务器业务请求的通知,获取所述应用的应用安全性指标数据;

S720、将获取的应用安全性指标数据传递到服务器,其中服务器根据获取的应用安全性指标数据对应用的安全性进行认证。

下面对上述各步骤做进一步详细介绍。

步骤S710是由独立于所述应用的安全功能组件完成,这样可以将安全功能组件设置于可信的环境中,例如,设置于内核层或硬件隔离环境,从而可以保证安全功能组件搜集的认证数据是真实可靠的,避免了当应用软件本身被破解篡改时,安全性认证逻辑被绕过的问题。该安全功能组件是在接收到通过应用发起了服务器业务请求的通知的情况下,被触发获取应用的应用安全性指标数据。其中,触发该安全功能组件获取应用的安全性指标数据的方式包括如下任一种:

在应用发起服务器业务请求的情况下应用发送通知给安全功能组件,以通知安全功能组件应用发起了一个服务器业务请求,触发安全功能组件获取应用安全性指标数据;

应用、安全功能组件之外的第三方功能单元监视到应用发起服务器业务请求,通知安全功能组件通过应用发起了一个服务器业务请求,触发安全功能组件获取应用安全性指标数据。

该方法与图2对应的方法的区别在于,该安全功能组件可以独立处理应用安全性指标数据,它完全不处理服务器业务请求。服务器业务请求可能通过另外的组件转发到服务器进行业务响应。

所述的应用安全性指标数据即为可以对应用进行安全性认证信息的数据。所述应用安全性指标数据包括如下中的至少一项:

应用的真实性和完整性指标数据;

应用所运行环境的指标数据;

应用运行状态的指标数据。

其中,所述应用的真实性和完整性指标数据包括如下中的至少一项:

所述应用的安装包文件的哈希值;

应用的DEX文件的哈希值;

应用的安装包文件的开发者签名。

所述应用所运行环境的指标数据包括如下中的至少一项:

终端型号、操作系统软件版本、设备是否被root、设备安全设置、网络环境。

所述应用运行状态的指标数据包括如下中的至少一项:

业务请求发生时间、业务请求发生位置。

安全功能组件可通过不同可靠方式,从终端本地(如本地操作系统或可信运行环境等)获取该应用安全性指标数据。通过获取上述应用安全性指标数据,不但可以对应用真实性和完整性进行认证,还可以对应用运行环境以及运行状态进行认证和风险分析。避免了应用本身运行环境出现问题时,例如,终端被root,或刷机等,终端提供给服务器的应用安全性指标数据不可靠的问题。

步骤S720中所述的将获取的应用安全性指标数据传递到服务器的步骤包括:

直接将获取的应用安全性指标数据传递到服务器发送给服务器。

将获取的应用安全性指标数据传递到服务器的另一种实施例为:

将应用安全性指标数据进行签名处理或发送到签名组件进行签名处理;将签名处理后的应用安全性指标数据发送给服务器。

将获取的应用安全性指标数据传递到服务器的又一种实施例为:

将应用安全性指标数据发送到签名组件,以便签名组件将应用安全性指标数据和来自应用的服务器业务请求组合在一起后进行签名处理;

将签名处理后的组合数据发送给服务器,以便服务器一方面对服务器业务请求进行处理,另一方面根据应用安全性指标数据实现对应用的安全性进行认证。

也就是,本申请实施例为保证数据完整性和真实性,在将应用安全性指标数据传递到服务器前,对应用安全性指标数据进行签名处理。其中,可以将签名组件与安全功能组件集中设置在一个软件实体中,也可以分离设置。在集中设置情况下,该安全功能组件可直接将应用安全性指标数据进行签名处理;在分离设置场景,可将应用安全性指标数据发送到签名组件进行签名处理。

另外,若将安全功能组件与签名组件分离设置,为进一步保证待签名数据的安全性,可将签名组件设置于安全环境中,例如设置于终端应用处理器的应用层、或内核层、或可信计算环境(trustzone)中。另外,该签名组件 只接受来自安全功能组件发送的签名请求,也就是,在签名组件接收到签名请求情况下,会识别签名请求发送者身份是否为安全功能组件,若是安全功能组件,签名组件只有在确认接收到来自安全功能组件的签名请求情况下,才进行签名处理,否则不执行签名处理。由于安全功能组件处于可信环境中,其申请签名的待签数据均为真实可靠的数据,本申请实施例的签名组件通过只接受安全功能组件的签名请求,可以进一步保证应用认证过程的安全性。

所述签名处理可以是非对称密钥加密签名处理。当然并不局限于此。

服务器根据获取的应用安全性指标数据对应用的安全性进行认证也包括前述两种方式,故不赘述。

本申请实施例提供一种与上述应用安全性认证方法对应的安全功能组件,如图8中所述为所述安全功能组件结构示意图,所述安全功能组件独立于所述应用。该安全功能组件包括:

获取单元810,用于响应于接收到通过所述应用发起了服务器业务请求的通知,获取所述应用的应用安全性指标数据;

传递单元820,用于将获取的应用安全性指标数据传递到服务器,其中服务器根据获取的应用安全性指标数据对应用的安全性进行认证。

其中,所述应用安全性指标数据包括如下中的至少一项:

应用的真实性和完整性指标数据;

应用所运行环境的指标数据;

应用运行状态的指标数据。

所述应用的真实性和完整性指标数据包括如下中的至少一项:

所述应用的安装包文件的哈希值;

应用的可执行文件的哈希值;

应用的安装包文件的开发者签名。

所述传递单元820被配置为:

将应用安全性指标数据进行签名处理或发送到签名组件进行签名处理;

将签名处理后的应用安全性指标数据发送给服务器。

所述传递单元820被配置为:

将应用安全性指标数据发送到签名组件,以便签名组件将应用安全性指标数据和来自应用的服务器业务请求组合在一起后进行签名处理;

将签名处理后的组合数据发送给服务器,以便服务器一方面对服务器业务请求进行验证处理,另一方面根据应用安全性指标数据实现对应用的安全性进行认证。

所述签名处理是非对称密钥加密签名处理。

本申请实施例还提供一种终端,该终端包括如上面所述的安全功能组件,该安全功能组件的结构及功能同上面所述,此处不再赘述。

本申请实施例还提供一种应用安全性认证方法,如图9中所示为所述方法流程图,该方法对应图1及图6中应用认证组件的操作。该方法用于服务器侧的应用认证组件利用接收的应用安全性指标数据对应用安全性进行认证,所述方法包括如下步骤:

S910、接收应用的应用安全性指标数据,所述应用安全性指标数据在终端伴随着通过所述应用发起的服务器业务请求而获取;

S920、根据获取的应用安全性指标数据对应用的安全性进行认证。

步骤S910中所述的应用安全性指标数据包括如下中的至少一项:

应用的真实性和完整性指标数据;

应用所运行环境的指标数据;

应用运行状态的指标数据。

其中,所述应用的真实性和完整性指标数据包括如下中的至少一项:

所述应用的安装包文件的哈希值;

应用的可执行文件的哈希值;

应用的安装包文件的开发者签名。

本申请实施例还提供一种与上述应用安全性认证方法对应的应用认证组件,该应用认证组件的结构示意图如图10中所示,包括:

接收单元1010,用于接收应用的应用安全性指标数据,所述应用安全性指标数据在终端伴随着通过所述应用发起的服务器业务请求而获取;

认证单元1020,用于根据获取的应用安全性指标数据对应用的安全性进行认证。

其中,所述应用安全性指标数据包括如下中的至少一项:

应用的真实性和完整性指标数据;

应用所运行环境的指标数据;

应用运行状态的指标数据。

所述应用的真实性和完整性指标数据包括如下中的至少一项:

所述应用的安装包文件的哈希值;

应用的可执行文件的哈希值;

应用的安装包文件的开发者签名。

综上所述,本申请实施例终端的安全功能组件在接收到通过应用发起的服务器业务请求情况下,获取所述应用的应用安全性指标数据,并将服务器业务请求与获取的应用安全性指标数据传递给服务器,以便服务器一方面对服务器业务请求进行响应,另一方面通过根据从终端获取的应用安全性指标数据对应用安全性进行认证。

服务器根据接收的通过所述应用发起的服务器业务请求、以及应用的应用安全性指标数据,对服务器业务请求进行业务响应的同时,根据获取的应用安全性指标数据对应用的安全性进行认证,在认证在服务器端而不是在客户端进行,有效防止该应用安全性指标数据被篡改的风险,从而保证了应用安全性认证的可靠性。将应用的安全性认证结合在业务认证中实现了服务器及时、准确、有效的发现应用是否被替换或篡改,从而可有效防止钓鱼、假冒应用或恶意用户发起的恶意服务请求等行为。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的 电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1