CN103561006A - 基于安卓系统的应用认证方法和装置及应用认证服务器 - Google Patents

基于安卓系统的应用认证方法和装置及应用认证服务器 Download PDF

Info

Publication number
CN103561006A
CN103561006A CN201310507957.0A CN201310507957A CN103561006A CN 103561006 A CN103561006 A CN 103561006A CN 201310507957 A CN201310507957 A CN 201310507957A CN 103561006 A CN103561006 A CN 103561006A
Authority
CN
China
Prior art keywords
application
target application
authentication
described target
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310507957.0A
Other languages
English (en)
Other versions
CN103561006B (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201310507957.0A priority Critical patent/CN103561006B/zh
Publication of CN103561006A publication Critical patent/CN103561006A/zh
Application granted granted Critical
Publication of CN103561006B publication Critical patent/CN103561006B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种基于安卓系统的应用认证方法和装置及应用认证服务器。其中,该基于安卓系统的应用认证方法包括以下步骤:将目标应用的属性信息进行上传以进行网络认证,并接收目标应用的网络认证结果;在网络认证结果为合法的情况下,向目标应用提供服务或调用目标应用的服务。利用本发明提供的技术方案,在需要向目标应用提供服务或者接收目标应用的服务时,对目标应用进行网络认证,验证其安全性。从而可以实现服务提供应用和服务请求应用之间的相互认证,确保应用之间调用服务的安全性。

Description

基于安卓系统的应用认证方法和装置及应用认证服务器
技术领域
本发明涉及互联网安全领域,特别是涉及一种基于安卓系统的应用认证方法和装置及应用认证服务器。
背景技术
在安卓Android系统中,为了安全的需要,应用是被限制并运行在沙箱中的。为了实现应用之间的通讯和互动,安卓系统提供了多种方法。例如调用其他应用中的界面组件(Activity);发送广播消息(Intent和BroadcastReceiver);应用作为数据提供者(Provider);通过Socket之间进行数据传输;应用间使用共享内存。
以上在应用之间的通讯方法,各有特点。比如,广播和调用Activity方法成本比较低,使用方便。而数据提供者provider则适合于繁多且复杂的数据结构的共享。而Socket则适合应用之间的大数据传输。共享内存则用于避免应用之间的数据传输,提高整体效率,但读写操作控制复杂。总的说来,服务的实现成本是最高的,安卓系统在操作系统层面提供比较全面的支持,可以在应用之间实现比较灵活、更加高层的业务模型,用来完成实现复杂的业务。
对安卓系统的服务而言,当作为应用的服务运行时,会启动一个新的进程或者利用应用现有进程,创建一个服务对象。当其他应用调用到此服务时由此服务对象的代码完成具体的业务逻辑。
然而按照现有安卓系统的服务提供方式,服务提供应用无法对提供的数据进行存取保护。即使服务请求应用在存取数据时进行安全提示,但对用户而言,也不能有效分清服务请求的来源,在恶意应用请求提供服务时,无法进行有效的保护。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于安卓系统的应用认证装置和应用认证服务器和相应的安卓系统的应用认证方法。
根据本发明的一个方面提供了一种基于安卓系统的应用认证方法。该基于安卓系统的应用认证方法包括以下步骤:将目标应用的属性信息进行上传以进行网络认证,并接收目标应用的网络认证结果;在网络认证结果为合法的情况下,向目标应用提供服务或调用目标应用的服务。
可选地,将目标应用的属性信息进行上传以进行网络认证包括:上传目标应用的包名、签名、和版本码中的一项或多项至应用认证服务器,以供应用认证服务器进行黑名单过滤和白名单验证。
可选地,上传目标应用的包名、签名、和版本码至应用认证服务器包括:以JSON串方式上传目标应用的包名、签名、和版本码中的一项或多项至应用认证服务器。
可选地,接收目标应用的网络认证结果包括:接收认证服务器返回的认证数据包,认证数据包中包括:目标应用的服务提供标识、服务请求标识、读权限、写权限中的一项或多项。
可选地,在将目标应用的属性信息进行上传以进行网络认证之前还包括:对目标应用进行本地认证,得到目标应用的本地认证结果;在本地认证结果为合法的情况下,执行将目标应用的属性信息进行上传以进行网络认证的步骤。
可选地,对目标应用进行本地认证包括:读取目标应用中预先植入的签署文件,其中签署文件中包含由SDK证书签署的目标应用的属性信息;通过比对目标应用的属性信息与目标应用的签署文件得到本地认证结果。
根据本发明的另一个方面,还提供了一种基于安卓系统的应用认证装置。该基于安卓系统的应用认证装置包括:网络认证接口,用于将目标应用的属性信息进行上传以进行网络认证,并接收目标应用的网络认证结果;认证完成模块,用于在网络认证结果为合法的情况下,向目标应用提供服务或调用目标应用的服务。
可选地,网络认证接口被配置为:上传目标应用的包名、签名、和版本码中的一项或多项至应用认证服务器,以供应用认证服务器进行黑名单过滤和白名单验证;接收认证服务器返回的认证数据包,认证数据包中包括目标应用的服务提供标识、服务请求标识、读权限、写权限。
可选地,以上基于安卓系统的应用认证装置还包括:本地认证模块,用于目标应用进行本地认证,得到目标应用的本地认证结果。
可选地,本地认证模块被配置为:读取目标应用中预先植入的签署文件,其中签署文件中包含由SDK证书签署的目标应用的属性信息;通过比对目标应用的属性信息与目标应用的签署文件得到本地认证结果。
根据本发明的另一个方面,还提供了一种应用认证服务器。该应用认证服务器与上述介绍的任一种应用认证装置数据连接。该应用认证服务器包括:请求接收接口,用于接收应用认证装置上传的目标应用的属性信息;数据库计算模块,用于根据目标应用的属性信息与数据库中预先保存的应用名单进行匹配计算,以对目标应用进行安全认证得到目标应用的网络认证结果;结果下发模块,用于将网络认证结果进行数据打包,并下发给应用认证装置。
可选地,数据库计算模块包括:黑名单过滤子模块,用于判断目标应用的属性信息是否与数据库中预先保存的应用黑名单的属性信息一致,若是,认定目标应用非法;白名单认证子模块,用于判断目标应用的属性信息是否与数据库中预先保存的应用白名单的属性信息一致,若是,认定目标应用合法。
可选地,白名单认证子模块中的应用白名单的属性信息包括以下任意一种或多种:包名,签名,版本码,应用类型,验证类型,信息位;黑名单过滤子模块中的应用黑名单的属性信息包括以下任意一种或多种:包名,签名,版本码,验证类型。
根据本发明的又一个方面,还提供了另一种基于安卓系统的应用认证方法。该种基于安卓系统的应用认证方法包括:对目标应用进行本地认证,得到目标应用的本地认证结果;在本地认证结果为合法的情况下,向目标应用提供服务或调用目标应用的服务。
可选地,对目标应用进行本地认证包括:读取目标应用中预先植入的签署文件,其中签署文件中包含由SDK证书签署的目标应用的属性信息;通过比对目标应用的属性信息与目标应用的签署文件得到本地认证结果。
可选地,签署文件由目标应用的证书公钥和包名生成的散列值通过SDK证书签署得到,比对目标应用的属性信息与目标应用的签署文件包括:获取目标应用的证书公钥和包名,并由证书公钥和包名生成第一散列值;判断签署文件的散列值与第一散列值是否匹配,并判断签署文件的签名是否与SDK公钥签名一致。
可选地,在对目标应用进行本地认证之后还包括:将目标应用的属性信息进行上传以进行网络认证。
根据本发明的又一个方面,还提供了另一种基于安卓系统的应用认证装置。该基于安卓系统的应用认证装置包括:本地认证模块,用于对目标应用进行本地认证,得到目标应用的本地认证结果;认证完成模块,用于在本地认证结果为合法的情况下,向目标应用提供服务或调用目标应用的服务。
可选地,本地认证模块被配置为:读取目标应用中预先植入的签署文件,其中签署文件中包含由SDK证书签署的目标应用的属性信息;通过比对目标应用的属性信息与目标应用的签署文件得到本地认证结果。
可选地,以上应用认证装置还包括:网络认证接口,用于将目标应用的属性信息进行上传以进行网络认证,并接收目标应用的网络认证结果。
本发明的基于安卓系统的应用认证方法,在需要向目标应用提供服务或者接收目标应用的服务时,对目标应用进行网络认证,验证其安全性。从而可以实现服务提供应用和服务请求应用之间的相互认证,也就是实现了服务使用应用和服务提供应用的相互校验方法,确保双方都是合法安全的。
进一步地,本发明的技术方案可以采用本地验证和网络验证共同验证安全性其中本地验证可以采用通过比对证书签署文件与目标应用属性的方式进行,网络验证可以采用利用安全验证服务器预置的黑名单进行过滤和白名单认证,大大提高了安卓系统终端的可靠性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明一个实施例的网络验证的通信架构图;
图2是根据本发明一个实施例的基于安卓系统的应用认证装置100的示意图;
图3是根据本发明一个实施例的应用认证服务器200的示意图;
图4是根据本发明一个实施例的基于安卓系统的应用认证方法的示意图;
图5是根据本发明另一个实施例的基于安卓系统的应用认证方法的示意图;
图6是根据本发明一个实施例的基于安卓系统的应用认证方法进行网络认证的流程图;
图7是根据本发明一个实施例的基于安卓系统的应用认证方法中安全认证服务器200进行验证的流程图;
图8是根据本发明一个实施例的基于安卓系统的应用认证方法进行本地认证的流程图;以及
图9是根据本发明一个实施例的基于安卓系统的应用认证方法中签署文件的流程图。
具体实施方式
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
本发明的实施例的基于安卓系统的应用认证装置和认证方法所应用的环境为:运行安卓系统的终端中的两个应用S和C,其中应用C作为服务请求应用向应用S发出服务请求,应用S作为服务提供应用向应用C提供服务。以上服务可以为数据的共享或者特定的功能。在现有的安卓系统终端中,利用一个服务唯一标识完成验证后,就可以进行以上服务请求和服务提供,缺乏对应用的有效保护。本实施例中采用本地验证和网络验证方式提高以上应用的安全性。
图1是根据本发明一个实施例的网络验证的通信架构图,多个基于安卓系统的应用认证装置100向应用认证服务器200上传需要验证的目标应用的相关信息,由安全认证服务器200根据上传的信息,判断目标应用的合法性,向应用认证装置100返回验证结果。另外应用认证装置100还可以根据目标应用的信息进行本地验证。两种验证方式可以结合使用,也可以共同使用,大大提高了安全性。以下分别对基于安卓系统的应用认证装置100和应用认证服务器200的实施例进行介绍。
图2是根据本发明一个实施例的基于安卓系统的应用认证装置100的示意图,该基于安卓系统的应用认证装置100包括:网络认证接口120,用于将目标应用的属性信息进行上传以进行网络认证,并接收目标应用的网络认证结果;认证完成模块130,用于在网络认证结果为合法的情况下,向目标应用提供服务或调用目标应用的服务。
其中,以上目标应用的属性信息可以包括目标应用的包名、签名、和版本码中的一项或多项。网络认证结果返回的内容包括:目标应用的服务提供标识、服务请求标识、读权限、写权限中的一项或多项。
网络认证接口120可被配置为:上传目标应用的包名、签名、和版本码中的一项或多项至应用认证服务器200,以供应用认证服务器200进行黑名单过滤和白名单验证;接收认证服务器200返回的认证数据包,认证数据包中包括目标应用的服务提供标识、服务请求标识、读权限、写权限。
网络认证接口120上传目标应用的包名、签名、和版本码可以采用将信息打包为JSON串的数据格式。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。JSON采用与编程语言无关的文本格式,是一种理想的数据交换格式。JSON中的数据对象是属性、值对的集合,数据结构可以嵌套,提供了一种优秀的面向对象的方法,以便将元数据传输。
图3是根据本发明一个实施例的应用认证服务器200的示意图,其中,应用认证服务器200与上述介绍的任一种应用认证装置100数据连接。该应用认证服务器200包括:请求接收接口210,用于接收应用认证装置100上传的目标应用的属性信息;数据库计算模块220,用于根据目标应用的属性信息与数据库中预先保存的应用名单进行匹配计算,以对目标应用进行安全认证得到目标应用的网络认证结果;结果下发模块230,用于将网络认证结果进行数据打包,并下发给应用认证装置100。
以上应用认证服务器200中的数据库计算模块220可以采用黑名单过滤和白名单认证的方式进行安全认证。其中数据库计算模块220可以包括黑名单过滤子模块221和白名单认证子模块222中。其中,黑名单过滤子模块221,用于判断目标应用的属性信息是否与数据库中预先保存的应用黑名单的属性信息一致,若是,认定目标应用非法;白名单认证子模块222,用于判断目标应用的属性信息是否与数据库中预先保存的应用白名单的属性信息一致,若是,认定目标应用合法。白名单认证子模块222中的应用白名单的属性信息包括以下任意一种或多种:包名,签名,版本码,应用类型,验证类型,信息位;黑名单过滤子模块221中的应用黑名单的属性信息包括以下任意一种或多种:包名,签名,版本码,验证类型。
本实施例的基于安卓系统的应用认证装置100可以通过设置本地认证模块110对目标应用进行本地认证。其中,本地认证模块110,用于目标应用进行本地认证,得到目标应用的本地认证结果。
本地认证模块110可以利用目标应用中预先植入的签署文件与目标应用属性信息进行比对的方式进行。具体地,本地认证模块110被配置为:读取目标应用中预先植入的签署文件,其中签署文件中包含由SDK证书签署的目标应用的属性信息;通过比对目标应用的属性信息与目标应用的签署文件得到本地认证结果。
签署文件由目标应用的证书公钥和包名生成的散列值通过SDK证书签署得到,以上比对目标应用的属性信息与目标应用的签署文件的步骤具体包括:获取目标应用的证书公钥和包名,并由证书公钥和包名生成第一散列值;判断签署文件的散列值与第一散列值是否匹配,并判断签署文件的签名是否与SDK公钥签名一致;若以上判断结果均为是,本地认证结果为合法。
本地认证模块110可以结合以上网络认证接口120共同进行应用安全认证,例如首先进行本地认证,在本地认证结果为合法的情况下,进行网络验证。这种方式可以利用本地认证过滤掉一部分非法应用,降低了安全认证服务器200的压力。另外在无法进行网络认证的情况下,本实施例的基于安卓系统的应用认证装置100还可以单独使用本地认证方式进行。同样,本实施例的基于安卓系统的应用认证装置100也可以单独使用网络认证方式。
认证完成模块130,用于在网络认证结果和本地认证结果之一或全部为合法的情况下,才向目标应用提供服务或调用目标应用的服务。或者,首先进行本地认证,在本地认证结果合法后,进行服务提供或服务使用同时进行网络认证,在网络认证结果不合法时,及时终止进行服务提供或服务使用,在保证运行流畅的同时提高安全性。
本发明还提供了一种基于安卓系统的应用认证方法。该应用认证方法可以由以上实施例中应用认证装置100执行,完成目标应用的安全性认证。图4是根据本发明一个实施例的基于安卓系统的应用认证方法的示意图,如图所示,基于安卓系统的应用认证方法包括以下步骤:
步骤S402,将目标应用的属性信息进行上传以进行网络认证,并接收目标应用的网络认证结果;
步骤S404,在网络认证结果为合法的情况下,向目标应用提供服务或调用目标应用的服务。
其中,步骤S402具体的流程可以是:上传目标应用的包名、签名、和版本码中的一项或多项至应用认证服务器200,以供应用认证服务器200进行黑名单过滤和白名单验证。上传数据的数据格式可以采用JSON串的方式。
步骤S404具体的流程可以是:接收认证服务器200返回的认证数据包,认证数据包中包括:目标应用的服务提供标识、服务请求标识、读权限、写权限中的一项或多项。
此外在进行网络验证之前,还可以利用目标应用的属性信息进行初步验证。图5是根据本发明另一个实施例的基于安卓系统的应用认证方法的示意图,在此实施例中,在步骤S402之前,还可以包括以下步骤:
S502,对目标应用进行本地认证,得到目标应用的本地认证结果;仅在本地认证结果为合法的情况下,步骤S402的步骤。
其中步骤S502的具体流程可以包括:读取目标应用中预先植入的签署文件,其中签署文件中包含由SDK证书签署的目标应用的属性信息;通过比对目标应用的属性信息与目标应用的签署文件得到本地认证结果。
以下结合运行安卓系统的终端中的两个具体应用S和C对以上装置和方法进一步进行说明,其中应用C作为服务请求应用向应用S发出服务请求,应用S作为服务提供应用向应用C提供服务。
首先,应用C和应用S分别通过对方的本地证书进行认证,完成本地认证并确定本地认证结果为合法后,应用S启动服务,应用C接收服务。同时应用C和应用S分别启动网络认证流程。当网络认证结果为非法时,应用C停止使用服务,应用S结束提供服务,当网络认证结果为合法时,应用C继续使用服务,应用S继续提供。以上认证结果可以进行记录,作为之后服务请求的依据。
其中本地认证方法是,软件开发工具包SDK(Software Development Kit,简称SDK)的发行者会为每一个应用的使用者签署一个文件,签署的内容包括应用的关键信息,这些关键信息包括SDK的公钥和包名。应用S和应用C会在发行时植入这个文件。在提供或使用服务时,会检查对方是否合法。当不合法时,忽略该服务请求和服务提供。只有互相鉴定为合法的服务请求应用C和服务提供应用S,才会使用服务或提供服务
网络认证的过程是应用C和应用S均连接到安全认证服务器200,获取合法的应用C的清单和应用S的清单。对应用C而言,只有认证结果合法的应用S,应用C才会调用服务。对应用S而言,只有认证结果合法的应用C,应用S才会提供服务。
图6是根据本发明一个实施例的基于安卓系统的应用认证方法进行网络认证的流程图,如图所示,网络认证的过程的具体流程可以包括:
服务使用应用C对服务提供应用S进行验证的流程为:服务使用应用C搜集系统中所有可以提供服务的应用S,形成服务提供应用的集合,然后批量向安全认证服务器200上传集合中服务提供应用S的属性信息,查询这些服务提供应用S的合法性。安全认证服务器200返回合法有效的服务提供应用S的集合。C首先找到手机上所有的S,然后一次批量向服务器查询这些S,服务器返回合法有效的S的集合。
服务提供应用S对服务使用应用C进行验证的流程为:服务提供应用S发送认证服务使用应用C的请求,安全认证服务器200根据请求进行认证,并返回服务使用应用C的认证结果。
对于需要认证的应用,认证请求中包含的属性信息包括以下内容:目标应用的包名、签名、版本码。
安全认证服务器200返回的认证结果可以采用32位整数的数据格式,每个关键字段占据一位,例如:服务提供标识S位,服务请求标识C位,读权限位,写权限位,其中S位和C位标明了应用的标识类型为服务提供或服务使用。读权限位,写权限位分别用于提供以上应用的读写权限。
具体数据交互过程可以为:安卓系统的客户端提供单个或批量的应用的认证数据包,每个数据包包含以下字段:包名、签名、版本码,数据格式可以采用JSON串。认证服务器200根据以上信息通过黑名单过滤,然后查询白名单,得到通过验证的应用的信息位,并将认证结果返回给认证请求方。
图7是根据本发明一个实施例的基于安卓系统的应用认证方法中安全认证服务器200进行验证的流程图。安全认证服务器200中预置有数据库,数据库内维护一套安卓系统的应用的黑名单和白名单。数据的存取方式可以采用mysql+memcache,另外安全认证服务器200提供数据管理配置后台模块。
数据库内白名单的字段包括:包名,签名,版本码,应用类型,验证类型,信息位1,信息位2,信息位3;黑名单的字段包括:包名、签名、版本码和验证类型。
以上验证类型可以分为三类:第一类,只需要验证签名的应用,验证类型可以定义为1;第二类,需要验证签名和包名的应用,验证类型可以定义为2;第二类,签名、包名和版本码均需要验证的应用,验证类型可以定义为3。
以上信息位是用于配置应用权限的字段,可以预置为两个2个Int类型字段,1个String类型字段,其中使用3个信息位还可以作为预留字段用于功能的扩展。
安全认证服务器200的请求接收接口210可以单个或批量的应用查询接收,利用结果下发模块230将通过验证的应用的相关数据(包括:信息位1,信息位2和信息位3)返回。
一般来说,安全认证服务器200中的黑名单过滤和白名单验证均可以按照以下优先级进行,首先验证类型为1的只需验证签名的应用,然后验证类型为2的需要验证签名和包名的应用,最后验证类型为3的需要验证签名、包名以及版本码的应用。具体流程为:
在黑名单中验证类型为1的应用中查询是否有与目标应用签名一致的条目,如果出现应用上传的目标应用的签名与黑名单中验证类型为1的应用匹配,则认定目标应用不安全。
如果验证类型为1的黑名单数据没有与目标应用匹配,则对目标应用进行验证类型为2的黑名单匹配,具体过程为在黑名单中验证类型为2的应用中查询是否有与目标应用签名与包名均一致的条目,如果出现上传的目标应用的签名和包名均与黑名单中验证类型为2的应用匹配,则认定目标应用不安全。
如果验证类型为2的黑名单数据仍没有与目标应用出现匹配,则对目标应用进行验证类型为3的黑名单匹配;具体过程为在黑名单中验证类型为2的应用中查询是否有与目标应用签名、包名以及版本码均一致的条目,如果出现上传的目标应用的签名、包名以及版本码均与黑名单中验证类型为3的应用匹配,则认定目标应用不安全。
如果目标应用没有被以上3种验证类型的黑名单过滤掉,那么可以进入白名单认证流程,具体流程可以为:
首先,在白名单中验证类型为1的应用中查询是否有与目标应用签名一致的条目,如果出现上传的目标应用的签名与白名单中验证类型为1的应用匹配,则认定目标应用安全,取出白名单中对应的信息位。
如果验证类型为1的白名单数据没有与目标应用没有出现匹配,则对目标应用进行验证类型为2的白名单匹配,具体过程为在白名单中验证类型为2的应用中查询是否有与目标应用签名与包名均一致的条目,如果出现上传的目标应用的签名和包名均与白名单中验证类型为2的应用匹配,则认定目标应用安全,取出白名单中对应的信息位。
如果验证类型为2的白名单数据仍与目标应用没有出现匹配,则对目标应用进行验证类型为3的白名单匹配,具体过程为在白名单中验证类型为3的应用中查询是否有与目标应用签名、包名以及版本码均一致的条目,如果出现上传的目标应用的签名、包名以及版本码均与白名单中验证类型为3的应用匹配,则认定目标应用安全,取出白名单中对应的信息位。利用以上分级的黑名单过滤和白名单认证,可以进一步提高网络认证的效率。
获取到目标应用的信息位后,将结果返回给认证请求应用,完成网络认证过程。
网络认证是通过安全认证服务器200上的预置的应用数据进行认证,此外,还可以利用应用发布时签署的文件进行本地验证。图8是根据本发明一个实施例的基于安卓系统的应用认证方法进行本地认证的流程图,如图所示,本地认证的过程的具体流程可以包括:
步骤S802,读取目标应用中的植入的签署文件;
步骤S804,判断目标应用中是否存在该签署文件,若否,确定目标应用的本地认证结果为不合法;若是,执行步骤S806;
步骤S806,获取应用的包名和公钥,并计算公钥和包名的散列值;
步骤S808,判断计算出的散列值与上述签署文件的散列值是否匹配,若不匹配,说明目标应用篡改相关数据,确定目标应用的本地认证结果为不合法,若匹配,执行步骤S810;
步骤S810,判断SDK公钥与签署文件中的签名是否匹配;若匹配,确定目标应用的本地认证结果为合法,若不匹配,确定目标应用的本地认证结果为不合法。
以上本地认证主要是依靠SDK发布者植入目标应用的签署文件进行判断,其中签署文件的生成及植入应用的流程如下:图9是根据本发明一个实施例的基于安卓系统的应用认证方法中签署文件的流程图,该签署文件的流程包括:
步骤S902,SDK发布者接收应用开发者提供的证书公钥和包名;
步骤S904,SDK发布者利用公钥和包名计算散列值,并使用SDK的证书签署该散列值,生成签署文件;
步骤S906,应用开发者将SDK发布者生成的签署文件植入应用中,并使用应用开发证书对应用签名。
利用签署文件继承了引用的部分属性信息和SDK发布者的签名,避免了恶意应用对信息的篡改。
本发明实施例的基于安卓系统的应用认证方法和装置及应用认证服务器,在需要向目标应用提供服务或者接收目标应用的服务时,对目标应用进行网络认证,验证其安全性。从而可以实现服务提供应用和服务请求应用之间的相互认证,也就是实现了服务使用应用和服务提供应用的相互校验方法,确保双方的合法安全性。
进一步地,本发明的技术方案可以采用本地验证和网络验证共同验证安全性,其中本地验证可以采用通过比对证书签署文件与目标应用属性的方式进行,网络验证可以采用利用安全验证服务器预置的黑名单进行过滤和白名单认证,大大提高了安卓系统终端的可靠性。
利用本实施例提供的技术方案,结合改进的基于安卓系统的应用账号管理方法,大大提高了安卓系统中应用之间调用服务的安全性,保证了用户信息安全。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于安卓系统的应用认证装置及应用认证服务器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
本发明公开了A1.一种基于安卓系统的应用认证方法,包括:
将目标应用的属性信息进行上传以进行网络认证,并接收所述目标应用的网络认证结果;
在所述网络认证结果为合法的情况下,向所述目标应用提供服务或调用所述目标应用的服务。
A2.根据权利要求A1所述的应用认证方法,其中,将所述目标应用的属性信息进行上传以进行网络认证包括:
上传所述目标应用的包名、签名、和版本码中的一项或多项至应用认证服务器,以供所述应用认证服务器进行黑名单过滤和白名单验证。
A3.根据权利要求A2所述的应用认证方法,其中,上传所述目标应用的包名、签名、和版本码至应用认证服务器包括:以JSON串方式上传所述目标应用的包名、签名、和版本码中的一项或多项至所述应用认证服务器。
A4.根据权利要求A1至A3中任一项所述的应用认证方法,其中,接收所述目标应用的网络认证结果包括:接收所述认证服务器返回的认证数据包,所述认证数据包中包括:所述目标应用的服务提供标识、服务请求标识、读权限、写权限中的一项或多项。
A5.根据权利要求A1至A4中任一项所述的应用认证方法,其中,在将目标应用的属性信息进行上传以进行网络认证之前还包括:
对所述目标应用进行本地认证,得到所述目标应用的本地认证结果;
在所述本地认证结果为合法的情况下,执行将目标应用的属性信息进行上传以进行网络认证的步骤。
A6.根据权利要求A5所述的应用认证方法,其中,对目标应用进行本地认证包括:
读取所述目标应用中预先植入的签署文件,其中所述签署文件中包含由SDK证书签署的所述目标应用的属性信息;
通过比对所述目标应用的属性信息与所述目标应用的签署文件得到所述本地认证结果。
A7.根据权利要求A6所述的应用认证方法,其中,所述签署文件由所述目标应用的证书公钥和包名生成的散列值通过SDK证书签署得到,比对所述目标应用的属性信息与所述目标应用的签署文件包括:
获取所述目标应用的证书公钥和包名,并由所述证书公钥和包名生成第一散列值;
判断所述签署文件的散列值与所述第一散列值是否匹配,并判断所述签署文件的签名是否与SDK公钥签名一致;
若以上判断结果均为是,所述本地认证结果为合法。
本发明还公开了B8.一种基于安卓系统的应用认证装置,包括:
网络认证接口,用于将目标应用的属性信息进行上传以进行网络认证,并接收所述目标应用的网络认证结果;
认证完成模块,用于在所述网络认证结果为合法的情况下,向所述目标应用提供服务或调用所述目标应用的服务。
B9.根据权利要求B8所述的应用认证装置,其中,所述网络认证接口被配置为:
上传所述目标应用的包名、签名、和版本码中的一项或多项至应用认证服务器,以供所述应用认证服务器进行黑名单过滤和白名单验证;
接收所述认证服务器返回的认证数据包,所述认证数据包中包括所述目标应用的服务提供标识、服务请求标识、读权限、写权限。
B10.根据权利要求B8或B9所述的应用认证装置,还包括:
本地认证模块,用于所述目标应用进行本地认证,得到所述目标应用的本地认证结果。
B11.根据权利要求B10所述的应用认证装置,所述本地认证模块被配置为:
读取所述目标应用中预先植入的签署文件,其中所述签署文件中包含由SDK证书签署的所述目标应用的属性信息;
通过比对所述目标应用的属性信息与所述目标应用的签署文件得到所述本地认证结果。
本发明又公开了C12.一种应用认证服务器,与所述权利要求C8至C11中任一项所述的应用认证装置数据连接,包括:
请求接收接口,用于接收所述应用认证装置上传的所述目标应用的属性信息;
数据库计算模块,用于根据所述目标应用的属性信息与数据库中预先保存的应用名单进行匹配计算,以对所述目标应用进行安全认证得到所述目标应用的网络认证结果;
结果下发模块,用于将所述网络认证结果进行数据打包,并下发给所述应用认证装置。
C13.根据权利要求C12所述的应用认证服务器,其中,所述数据库计算模块包括:
黑名单过滤子模块,用于判断所述目标应用的属性信息是否与数据库中预先保存的应用黑名单的属性信息一致,若是,认定所述目标应用非法;
白名单认证子模块,用于判断所述目标应用的属性信息是否与数据库中预先保存的应用白名单的属性信息一致,若是,认定所述目标应用合法。
C14.根据权利要求C13所述的应用认证服务器,其中,
所述白名单认证子模块中的应用白名单的属性信息包括以下任意一种或多种:包名,签名,版本码,应用类型,验证类型,信息位;
所述黑名单过滤子模块中的应用黑名单的属性信息包括以下任意一种或多种:包名,签名,版本码,验证类型。
本发明还公开了D15.一种基于安卓系统的应用认证方法,包括:
对目标应用进行本地认证,得到所述目标应用的本地认证结果;
在所述本地认证结果为合法的情况下,向所述目标应用提供服务或调用所述目标应用的服务。
D16.根据权利要求D15所述的应用认证方法,其中,对目标应用进行本地认证包括:
读取所述目标应用中预先植入的签署文件,其中所述签署文件中包含由SDK证书签署的所述目标应用的属性信息;
通过比对所述目标应用的属性信息与所述目标应用的签署文件得到所述本地认证结果。
D17.根据权利要求D16所述的应用认证方法,其中,所述签署文件由所述目标应用的证书公钥和包名生成的散列值通过SDK证书签署得到,比对所述目标应用的属性信息与所述目标应用的签署文件包括:
获取所述目标应用的证书公钥和包名,并由所述证书公钥和包名生成第一散列值;
判断所述签署文件的散列值与所述第一散列值是否匹配,并判断所述签署文件的签名是否与SDK公钥签名一致。
D18.根据权利要求D15至D17中任一项所述的应用认证方法,在对所述目标应用进行本地认证之后还包括:
将所述目标应用的属性信息进行上传以进行网络认证。
本发明还公开了E19.一种基于安卓系统的应用认证装置,包括:
本地认证模块,用于对目标应用进行本地认证,得到所述目标应用的本地认证结果;
认证完成模块,用于在所述本地认证结果为合法的情况下,向所述目标应用提供服务或调用所述目标应用的服务。
E20.根据权利要求E19所述的应用认证装置,其中,所述本地认证模块被配置为:
读取所述目标应用中预先植入的签署文件,其中所述签署文件中包含由SDK证书签署的所述目标应用的属性信息;
通过比对所述目标应用的属性信息与所述目标应用的签署文件得到所述本地认证结果。
E21.根据权利要求E19或E20所述的应用认证装置,还包括:网络认证接口,用于将所述目标应用的属性信息进行上传以进行网络认证,并接收所述目标应用的网络认证结果。

Claims (10)

1.一种基于安卓系统的应用认证方法,包括:
将目标应用的属性信息进行上传以进行网络认证,并接收所述目标应用的网络认证结果;
在所述网络认证结果为合法的情况下,向所述目标应用提供服务或调用所述目标应用的服务。
2.根据权利要求1所述的应用认证方法,其中,将所述目标应用的属性信息进行上传以进行网络认证包括:
上传所述目标应用的包名、签名、和版本码中的一项或多项至应用认证服务器,以供所述应用认证服务器进行黑名单过滤和白名单验证。
3.根据权利要求1或2所述的应用认证方法,其中,接收所述目标应用的网络认证结果包括:接收所述认证服务器返回的认证数据包,所述认证数据包中包括:所述目标应用的服务提供标识、服务请求标识、读权限、写权限中的一项或多项。
4.根据权利要求1至3中任一项所述的应用认证方法,其中,在将目标应用的属性信息进行上传以进行网络认证之前还包括:
对所述目标应用进行本地认证,得到所述目标应用的本地认证结果;
在所述本地认证结果为合法的情况下,执行将目标应用的属性信息进行上传以进行网络认证的步骤。
5.根据权利要求4所述的应用认证方法,其中,对目标应用进行本地认证包括:
读取所述目标应用中预先植入的签署文件,其中所述签署文件中包含由SDK证书签署的所述目标应用的属性信息;
通过比对所述目标应用的属性信息与所述目标应用的签署文件得到所述本地认证结果。
6.根据权利要求5所述的应用认证方法,其中,所述签署文件由所述目标应用的证书公钥和包名生成的散列值通过SDK证书签署得到,比对所述目标应用的属性信息与所述目标应用的签署文件包括:
获取所述目标应用的证书公钥和包名,并由所述证书公钥和包名生成第一散列值;
判断所述签署文件的散列值与所述第一散列值是否匹配,并判断所述签署文件的签名是否与SDK公钥签名一致;
若以上判断结果均为是,所述本地认证结果为合法。
7.一种基于安卓系统的应用认证装置,包括:
网络认证接口,用于将目标应用的属性信息进行上传以进行网络认证,并接收所述目标应用的网络认证结果;
认证完成模块,用于在所述网络认证结果为合法的情况下,向所述目标应用提供服务或调用所述目标应用的服务。
8.一种应用认证服务器,与所述权利要求7所述的应用认证装置数据连接,包括:
请求接收接口,用于接收所述应用认证装置上传的所述目标应用的属性信息;
数据库计算模块,用于根据所述目标应用的属性信息与数据库中预先保存的应用名单进行匹配计算,以对所述目标应用进行安全认证得到所述目标应用的网络认证结果;
结果下发模块,用于将所述网络认证结果进行数据打包,并下发给所述应用认证装置。
9.一种基于安卓系统的应用认证方法,包括:
对目标应用进行本地认证,得到所述目标应用的本地认证结果;
在所述本地认证结果为合法的情况下,向所述目标应用提供服务或调用所述目标应用的服务。
10.一种基于安卓系统的应用认证装置,包括:
本地认证模块,用于对目标应用进行本地认证,得到所述目标应用的本地认证结果;
认证完成模块,用于在所述本地认证结果为合法的情况下,向所述目标应用提供服务或调用所述目标应用的服务。
CN201310507957.0A 2013-10-24 2013-10-24 基于安卓系统的应用认证方法和装置及应用认证服务器 Active CN103561006B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310507957.0A CN103561006B (zh) 2013-10-24 2013-10-24 基于安卓系统的应用认证方法和装置及应用认证服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310507957.0A CN103561006B (zh) 2013-10-24 2013-10-24 基于安卓系统的应用认证方法和装置及应用认证服务器

Publications (2)

Publication Number Publication Date
CN103561006A true CN103561006A (zh) 2014-02-05
CN103561006B CN103561006B (zh) 2017-05-10

Family

ID=50015156

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310507957.0A Active CN103561006B (zh) 2013-10-24 2013-10-24 基于安卓系统的应用认证方法和装置及应用认证服务器

Country Status (1)

Country Link
CN (1) CN103561006B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104836784A (zh) * 2014-09-25 2015-08-12 腾讯科技(北京)有限公司 一种信息处理方法、客户端和服务器
CN104933355A (zh) * 2015-06-18 2015-09-23 上海斐讯数据通信技术有限公司 移动终端可信应用的安装校验系统及其校验方法
CN106850590A (zh) * 2017-01-13 2017-06-13 北京神州泰岳信息安全技术有限公司 软件白名单管理方法及系统
CN107846390A (zh) * 2016-09-21 2018-03-27 阿里巴巴集团控股有限公司 应用程序的认证方法及装置
CN107911480A (zh) * 2017-12-08 2018-04-13 前海联大(深圳)技术有限公司 一种pos终端信息安全的增强方法
CN108600162A (zh) * 2018-03-13 2018-09-28 江苏通付盾科技有限公司 用户认证方法及装置、计算设备及计算机存储介质
CN109033758A (zh) * 2018-08-01 2018-12-18 北京景行锐创软件有限公司 一种许可证资源访问方法及系统
CN111095211A (zh) * 2017-10-13 2020-05-01 华为技术有限公司 一种应用启动的控制方法及用户终端
US10873466B2 (en) 2015-11-06 2020-12-22 Huawei International Pte. Ltd. System and method for managing installation of an application package requiring high-risk permission access

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176435A (ja) * 2007-01-17 2008-07-31 Hitachi Ltd 決済端末およびicカード
US20090292927A1 (en) * 2008-05-23 2009-11-26 Hsbc Technologies Inc. Methods and systems for single sign on with dynamic authentication levels
CN101888376A (zh) * 2009-05-15 2010-11-17 株式会社东芝 信息协作基础装置
US20120291114A1 (en) * 2011-05-13 2012-11-15 Cch Incorporated Single sign-on between applications
CN102891843A (zh) * 2012-09-18 2013-01-23 北京深思洛克软件技术股份有限公司 本地服务单元认证安卓客户端应用程序的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176435A (ja) * 2007-01-17 2008-07-31 Hitachi Ltd 決済端末およびicカード
US20090292927A1 (en) * 2008-05-23 2009-11-26 Hsbc Technologies Inc. Methods and systems for single sign on with dynamic authentication levels
CN101888376A (zh) * 2009-05-15 2010-11-17 株式会社东芝 信息协作基础装置
US20120291114A1 (en) * 2011-05-13 2012-11-15 Cch Incorporated Single sign-on between applications
CN102891843A (zh) * 2012-09-18 2013-01-23 北京深思洛克软件技术股份有限公司 本地服务单元认证安卓客户端应用程序的方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104836784A (zh) * 2014-09-25 2015-08-12 腾讯科技(北京)有限公司 一种信息处理方法、客户端和服务器
CN104836784B (zh) * 2014-09-25 2018-05-15 腾讯科技(北京)有限公司 一种信息处理方法、客户端和服务器
CN104933355A (zh) * 2015-06-18 2015-09-23 上海斐讯数据通信技术有限公司 移动终端可信应用的安装校验系统及其校验方法
US11637707B2 (en) 2015-11-06 2023-04-25 Huawei International Pte. Ltd. System and method for managing installation of an application package requiring high-risk permission access
US10873466B2 (en) 2015-11-06 2020-12-22 Huawei International Pte. Ltd. System and method for managing installation of an application package requiring high-risk permission access
CN107846390A (zh) * 2016-09-21 2018-03-27 阿里巴巴集团控股有限公司 应用程序的认证方法及装置
CN106850590A (zh) * 2017-01-13 2017-06-13 北京神州泰岳信息安全技术有限公司 软件白名单管理方法及系统
CN106850590B (zh) * 2017-01-13 2020-10-23 北京神州泰岳信息安全技术有限公司 软件白名单管理方法及系统
CN111095211A (zh) * 2017-10-13 2020-05-01 华为技术有限公司 一种应用启动的控制方法及用户终端
CN107911480A (zh) * 2017-12-08 2018-04-13 前海联大(深圳)技术有限公司 一种pos终端信息安全的增强方法
CN108600162A (zh) * 2018-03-13 2018-09-28 江苏通付盾科技有限公司 用户认证方法及装置、计算设备及计算机存储介质
CN108600162B (zh) * 2018-03-13 2021-04-30 江苏通付盾科技有限公司 用户认证方法及装置、计算设备及计算机存储介质
CN109033758B (zh) * 2018-08-01 2020-04-21 北京景行锐创软件有限公司 一种许可证资源访问方法及系统
CN109033758A (zh) * 2018-08-01 2018-12-18 北京景行锐创软件有限公司 一种许可证资源访问方法及系统

Also Published As

Publication number Publication date
CN103561006B (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
CN103561006A (zh) 基于安卓系统的应用认证方法和装置及应用认证服务器
JP7080242B2 (ja) 認証方法及びブロックチェーンに基づいた認証データ処理方法及び装置
CN110414268B (zh) 访问控制方法、装置、设备及存储介质
US8549326B2 (en) Method and system for extending encrypting file system
US11336635B2 (en) Systems and methods for authenticating device through IoT cloud using hardware security module
CN111163182B (zh) 基于区块链的设备注册方法、装置、电子设备和存储介质
EP3610623B1 (en) Protocol-level identity mapping
CN103858130A (zh) 管理权限方法、装置及终端
CN112039826B (zh) 应用于小程序端的登录方法和装置,电子设备,可读介质
CN111314172B (zh) 基于区块链的数据处理方法、装置、设备及存储介质
CN104363207A (zh) 多因子安全增强授权与认证方法
CN110555293A (zh) 用于保护数据的方法、装置、电子设备和计算机可读介质
CN113055380B (zh) 报文处理方法、装置、电子设备及介质
CN114117376B (zh) 身份认证的方法、分配动态密码的方法及相应的设备
CN109358859A (zh) 在区块链网络中安装智能合约的方法、装置及存储介质
KR20160018554A (ko) 신뢰 및 비신뢰 플랫폼에 걸쳐 인터넷 액세스가능 애플리케이션 상태를 로밍하는 기법
CN104065674A (zh) 终端设备以及信息处理方法
CN111045722A (zh) 智能合约打包方法、装置、系统、计算机设备及存储介质
EP3975499A1 (en) Authentication method and device, computing equipment and medium
CN108846671B (zh) 基于区块链的在线安全交易方法和系统
KR101458820B1 (ko) 공공 클라우드 환경에서의 안전한 데이터 관리 시스템 및 기법
CN103559430B (zh) 基于安卓系统的应用账号管理方法和装置
CN110445765B (zh) 基于区块链的数据共享方法、终端设备及介质
Angelogianni et al. How many FIDO protocols are needed? Surveying the design, security and market perspectives
Akram et al. A novel consumer-centric card management architecture and potential security issues

Legal Events

Date Code Title Description
C06 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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220718

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.