CN102891843A - 本地服务单元认证安卓客户端应用程序的方法 - Google Patents

本地服务单元认证安卓客户端应用程序的方法 Download PDF

Info

Publication number
CN102891843A
CN102891843A CN201210344786XA CN201210344786A CN102891843A CN 102891843 A CN102891843 A CN 102891843A CN 201210344786X A CN201210344786X A CN 201210344786XA CN 201210344786 A CN201210344786 A CN 201210344786A CN 102891843 A CN102891843 A CN 102891843A
Authority
CN
China
Prior art keywords
local service
client application
information file
authentication information
service unit
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
CN201210344786XA
Other languages
English (en)
Other versions
CN102891843B (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 Senseshield Technology Co Ltd
Original Assignee
Beijing Senselock Software Technology 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 Senselock Software Technology Co Ltd filed Critical Beijing Senselock Software Technology Co Ltd
Priority to CN201210344786.XA priority Critical patent/CN102891843B/zh
Publication of CN102891843A publication Critical patent/CN102891843A/zh
Priority to PCT/CN2013/083666 priority patent/WO2014044170A1/zh
Priority to US14/760,253 priority patent/US9900161B2/en
Application granted granted Critical
Publication of CN102891843B publication Critical patent/CN102891843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/128Anti-malware arrangements, e.g. protection against SMS fraud or mobile malware

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供了一种本地服务程序认证安卓客户端应用程序的方法。该方法先对客户端应用程序进行签名生成认证信息文件,当客户端应用程序在安卓系统中运行时,本地服务程序对认证信息文件进行认证,认证通过之后客户端应用程序才可正常使用本地服务程序提供的服务。通过本发明提供的方法,使得经篡改的客户端应用程序无法获取本地服务程序的功能,区隔了合法软件和恶意软件,确保了安卓系统和网络的安全性。

Description

本地服务单元认证安卓客户端应用程序的方法
技术领域
本发明涉及安卓系统中应用程序安全保护领域,特别涉及一种本地服务单元认证安卓客户端应用程序的方法。
背景技术
在安卓(Android)系统下,为了防止盗版软件的猖獗,谷歌开发了安卓签名机制,安卓签名机制标明了安卓客户端应用程序的发行机构,通过对比客户端应用程序的签名情况,来判断该客户端应用程序是否由“官方”发行,而不是被破解者篡改过重新签名打包的“盗版软件”。
安卓系统要求每一个安装进系统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。安卓系统将数字证书用来标识应用程序的作者和在应用程序之间建立信任关系,数字证书不是用来决定最终用户可以安装哪些应用程序。这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。
通过安卓签名工具签名后的客户端应用程序包中多了一个META-INF的文件夹,该文件夹中包含了加密信息,其他的文件则没有任何改变,这样就可以很容易去掉原有的签名信息,破解应用程序包,对代码篡改,生成恶意软件,然后重新签名,危害了开发者利益,甚至威胁到手机和网络的安全。
为了更进一步维护开发者的版权利益,防止盗版软件的猖獗,保护安卓系统下应用软件的安全,有开发者做了改进,增加安卓客户端应用程序包反编译的难度。目前已提出一种解决方案,意在解决在安卓系统下盗版应用的问题。解决方案如下:服务商提供一个本地服务单元(比如,本地服务程序),本地服务程序在安卓系统下作为原生service(服务),与安卓系统同时启动,在后台一直运行,本地服务程序提供如内存加密、文件加密、云服务器端函数远程调用等功能。安卓客户端应用程序调用本地服务程序提供的接口将关键值(比如游戏类应用程序中的金币值)、关键文件、关键代码等通过本地服务程序进行加密变换,在客户端应用程序运行时,根据客户端应用程序的调用需求对加密对象用本地服务程序进行实时解密运行,使得客户端应用程序难以进行反编译和静态分析,从而实现了对安卓系统应用的有效保护。
在这一过程中,客户端应用程序的关键值和关键代码通过本地服务程序存储在云服务器端,当客户端应用程序向云服务器端存储或获取关键值等需求时,需调用本地服务程序的远程(云服务器端)调用接口,由本地服务程序向云服务器端通信。本地服务程序作为客户端应用程序和云服务器端的中转站,起到连接两端桥梁的作用。
但是如果有一些恶意的客户端应用程序利用现有的本地服务程序不断地向云服务器端进行恶意操作(比如不断地向云服务器端存金币或者获取某些关键值)以获取利益,那么本地服务程序则无法辨别该客户端应用程序是否是从正规渠道下载下来的客户端应用程序,而不是用户自己编写的恶意客户端应用程序。因此,存在这样一种技术需求,即需要提供一种方法,该方法能够辨别安卓客户端应用程序是否被替换,从而及时阻止恶意客户端应用程序的执行,防止客户端应用程序的应用代码被恶意篡改。
发明内容
为了防止安卓系统中有恶意软件利用本地服务程序修改云服务器端数据以谋取利益,本发明提供了一种本地服务程序认证客户端应用程序的方法,所述方法包括如下步骤:
步骤1:采用加密算法对所述应用程序的客户端应用程序包进行加密,生成认证信息文件,其中所述客户端应用程序包对应于所述认证信息文件; 
步骤2:在安卓系统后台运行本地服务单元,;
步骤3:所述应用程序与所述本地服务单元建立binder通信;
步骤4:所述本地服务单元根据所述应用程序发送的信息搜索所述客户端应用程序包;
步骤5:如果搜索所述客户端应用程序包成功,则执行步骤6;否则,断开所述本地服务单元与所述应用程序的binder通信;
步骤6:所述本地服务单元读取所述认证信息文件;
步骤7:所述本地服务单元对所述认证信息文件进行认证;
步骤8:如果认证成功,则所述应用程序正常运行;否则,断开所述本地服务单元与所述应用程序的binder通信。
根据本发明的一个方面,在所述步骤1中,所述认证信息文件存于所述客户端应用程序包内部,或者存在远程云服务器端。
根据本发明的一个方面,在所述步骤4中,所述本地服务单元根据所述应用程序发送的用户ID和进程ID搜索对应的所述客户端应用程序包。
根据本发明的一个方面,在所述步骤4中,所述客户端应用程序包是APK包。
根据本发明的一个方面,在所述步骤6中,如果读取不到所述认证信息文件,所述本地服务单元向远程云服务器端搜索所述认证信息文件;如果在所述远程云服务器端搜索不到所述认证信息文件,则断开所述本地服务单元与所述应用程序的binder通信。
根据本发明的一个方面,如果搜索到所述认证信息文件,并且所述认证信息文件中包含密文和加密算法,则在步骤7中根据加密算法的类型选择相应的认证方法对认证信息文件中的密文进行认证。
根据本发明的一个方面,如果采用单向加密算法,由所述本地服务单元根据加密算法对所述客户端应用程序包进行加密以生成密文,然后将生成的所述密文与所述的认证信息文件中的密文进行认证;
如果采用双向加密算法,则由所述本地服务单元获取密钥,来解密所述认证信息文件中的密文。
 
根据本发明的一个方面,如果采用双向加密算法,则双向加密算法的密钥存储在所述本地服务单元的包中,或者存在云服务器端。
根据本发明的一个方面,在所述步骤8中,认证成功后,则所述应用程序正常运行,并且所述应用程序被允许调用所述本地服务单元的所提供的服务。
 
附图说明
   图1为本发明的流程示意图;
图2为本发明中本地服务程序与客户端应用程序之间建立binder通信过程的示意图;
图3为本发明实施例一中本地服务程序对客户端应用程序的认证过程的示意图。
图4为本发明实施例二中本地服务程序对客户端应用程序的认证过程的示意图。
具体实施方式
为了防止安卓系统中有恶意应用程序利用本地服务单元(在下文中称为本地服务程序)修改云服务器端数据,本发明提供了一种通过本地服务程序认证客户端应用程序的方法。
本地服务程序认证客户端应用程序的方法为:
采用加密算法对客户端应用程序包加密,生成认证信息文件,其中客户端应用程序包对应于一个认证信息文件;根据本发明的一个实施例,该认证信息文件的存储位置由开发者决定,可以存于客户端应用程序包内,也可以存于远程服务器中。
客户端应用程序启动;
本地服务程序与客户端应用程序建立binder通信;
本地服务程序与客户端应用程序双方建立binder通信后,本地服务程序根据客户端应用程序的用户ID和进程ID搜索对应的客户端应用程序包,例如,客户端应用程序包是安卓系统下常见的.APK包;
如果没有搜索到客户端应用程序包,则本地服务程序断开与客户端应用程序的binder通信,使得客户端应用程序无法获取本地服务程序提供的服务;
如果搜索到客户端应用程序包,则由本地服务程序读取客户端应用程序包中的认证信息文件;
如果读取不到认证信息文件,则存在两种可能:一是客户端应用程序包不完整,二是生成该认证信息文件的加密算法不同导致认证信息文件存储的位置不同,也就是说,该客户端应用程序的认证信息文件可能存于云服务器端;然后本地服务程序向云服务器端搜索认证信息文件,如果在云服务器端搜索不成功,则该客户端应用程序包确实不完整或者不合法,则本地服务程序将该客户端应用程序断开binder通信,不向这个客户端应用程序提供诸如加密功能服务;如果本地服务程序在云服务器端搜索到了认证信息文件,而且该认证信息文件包含密文和加密算法,那么根据本发明的一个实施例,本地服务程序根据加密算法对客户端应用程序包进行加密以生成密文,然后将生成的密文与认证信息文件中的密文进行比对认证。此外,根据本发明的一个实施例,除了上述单向加密算法的处理方式,还可用以下处理方式:先判断加密算法的类型,如果是单向加密算法,那么本地服务程序根据加密算法对客户端应用程序包进行加密以生成密文,然后将生成的密文与认证信息文件中的密文进行比对认证;若是双向加密算法,就用本地服务程序获取的密钥解密(认证)客户端应用程序的密文。
如果认证不成功,则本地服务程序与客户端应用程序断开binder通信,不向该客户端应用程序提供服务,如果认证成功,则客户端应用程序正常执行。
图1表示了其中的大部分处理流程。
所述的客户端应用程序包对应的认证信息文件是指经加密算法对客户端应用程序包加密所产生的密文。该认证信息文件根据加密算法的不同存储的位置也不同,认证信息文件可存放于客户端应用程序包内,也可存放于云服务器端,这是由所使用的加密算法的特点决定的。根据认证信息文件存储的位置不同,所对应的本地服务程序认证客户端应用程序的方法也不同。认证信息文件根据需要,除了包含密文,也可以包括加密算法、密钥存储位置等其它信息。
加密算法大体分为双向加密和单向加密。单向加密严格上说是一种摘要算法,是非可逆加密,例如MD5算法,其作用是将任意长度的信息变换成一定长的十六进制数字串(称作“摘要信息”),同时保证不同信息的摘要信息彼此不同。针对这种单向加密的算法,认证信息文件包括密文即摘要信息,加密算法为MD5等信息。根据单向加密的特征,该认证信息文件可存储在云服务器端,那么在客户端应用程序与本地服务程序建立连接后,本地服务程序从云服务器端下载认证信息文件,本地服务程序根据认证信息文件中的加密算法对客户端应用程序包重新生成密文与云服务器端下载的认证信息文件的密文进行比对验证,从而判断客户端应用程序是否合法。
根据本发明的一个实施例,单向加密的认证信息文件也可存于客户端应用程序包内,那么在客户端应用程序与本地服务程序建立连接后,本地服务程序根据认证信息文件中的加密算法对客户端应用程序包重新生成的密文与客户端应用程序包内的认证信息文件的密文进行比对验证,从而判断客户端应用程序是否合法。
双向加密算法分为对称加密和非对称加密,以非对称加密算法为例,根据公钥和私钥对,由私钥将客户端应用程序加密形成密文,那么该客户端应用程序的认证信息文件包括密文、公钥存储的位置等信息,其中公钥存储的位置可以在本地服务程序包内,也可以在云服务器端。本地服务程序根据认证信息文件中公钥存储的位置信息获取公钥,根据获取的公钥去验证客户端应用程序的认证信息文件的密文。 
所述的本地服务程序在安卓系统下表现为一个原生service(服务),与安卓系统一同启动,在后台运行,提供服务。本地服务程序提供认证客户端应用程序是否合法的服务,其同时也可以提供如内存加密、文件加密、远程(云服务器端)函数调用等功能模块,一方面为客户端应用程序提供本地加密服务,另一方面作为客户端应用程序与云服务器端的中转站与云服务器端进行数据交互。
本地服务程序与客户端应用程序的交互是基于binder的Client-Server的通信方式。binder是安卓系统进程间通信(IPC)方式之一。
binder通信概述:binder通信是一种client-server的通信结构,1.从表面上来看,是client通过获得一个server的代理接口,对server进行直接调用;2.实际上,代理接口中定义的方法与server中定义的方法是一一对应的;3.client调用某个代理接口中的方法时,代理接口的方法会将client传递的参数打包成为Parcel对象;4.代理接口将该Parcel发送给内核中的binderdriver;5.server会读取binderdriver中的请求数据,如果是发送给自己的,解包Parcel对象,处理并将结果返回;6.整个的调用过程是一个同步过程,在server处理的时候,client会block住。
安卓系统为每个安装好的APK分配UID,故UID是鉴别应用身份的重要标志,在安卓系统下,每一个不同的程序都有一个唯一的UID,一个应用里面可以有多个PID,binder利用通讯自带的UID/PID来实现进程和数据的隔离。binder 是基于Client-Server通信模式,在传输过程中,Client端发送的信息中添加安卓系统分配的UID/PID,这样Server端就可以根据发送方的UID/PID来鉴别Client端的身份,安全性高。在安卓系统中,本地服务程序作为binder的Server端,客户端应用程序作为binder的Client端。
ServiceManager概述:ServiceManager是一个Linux级的进程,是service的管理器。任何service在被使用之前,均要向SM(ServiceManager)注册,同时客户端需要访问某个service时,应该首先向SM查询是否存在该服务。如果SM存在这个service,那么会将该service的handle返回给client,handle是每个service的唯一标识符。
和DNS类似,ServiceManager的作用是将字符形式的binder名字转化成Client中对该binder的引用,使得Client能够通过binder名字获得对Server中binder实体的引用。注册了名字的binder叫实名binder,就象每个网站除了有IP地址外还有自己的网址。Server创建了binder实体,为其取一个字符形式,可读易记的名字,将这个binder连同名字以数据包的形式通过binder驱动发送给ServiceManager,通知ServiceManager注册一个名叫张三的binder,它位于某个Server中。驱动为这个穿过进程边界的binder创建位于内核中的实体节点以及ServiceManager对实体的引用,将名字及新建的引用打包传递给ServiceManager。ServiceManager收数据包后,从中取出名字和引用填入一张查找表中。
ServiceManager管理service进程,本地服务程序先在ServiceManager注册名字,成为实名binder,比如一个叫张三的binder对应着本地服务程序的引用。客户端应用程序作为相对于本地服务程序的Client端,它通过ServiceManager搜索名叫张三对应的binder引用,该引用即为本地服务程序的binder引用,客户端应用程序通过ServiceManager回复的binder引用向本地服务程序发送请求。
双方建立连接后,开始通信,本地服务程序根据 binder自带客户端应用程序在安卓系统下的用户ID、进程ID(UID/PID)号去识别客户端应用程序的身份,进而实现诸如进程间数据隔离、客户端应用程序是否合法的认证等功能。
综上所述,本发明有效地防止了非法客户端应用程序恶意篡改应用数据造成的破坏。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照图并给出具体的实施例,对本发明进一步详细说明。本领域的技术人员都应清楚,下述实施例仅仅是实现本发明的具体实现情况,而非对本发明的具体限制。本领域的技术人员根据下面具体实施例的技术教导,完全能够在不脱离本发明的范围的情况下进行各种改进、替换。
实施例一:
在本实施例中,生成客户端程序包的认证信息文件的加密算法为双向加密算法中的非对称加密算法,本实施例采用RSA 私钥对安卓客户端程序包APK中的class.dex文件加密。生成的认证信息文件存储在客户端应用程序包内部或者云服务器端。 
图2是本地服务程序与客户端应用程序建立binder通信的过程。本地服务程序安装后随着安卓系统的启动一直在后台运行,提供例如内存加密、文件加密和远程(云服务器端)函数调用等功能。
客户端应用程序要想获得本地服务程序提供的服务,要先与本地服务程序建立binder通信。图2主要包括三个模块,分别为ServiceManager、Service、Client。ServiceManager用来管理Service,Service用来管理Client。根据本发明的一个具体实施方式,本地服务程序对应Service模块,客户端应用程序对应Client模块。
本地服务程序先在ServiceManager注册服务。例如注册了一个叫做ls 的binder,ServiceManager管理一个表,表中维护着一个叫ls的binder引用。
客户端应用程序启动,向ServiceManager发送请求获取本地服务程序 binder的引用。
Client端向ServiceManager请求访问叫“ls”的binder引用,ServiceManager端通过查找名字叫做”ls”对应的binder引用,将该引用作为回复发送给请求的Client端的客户端应用程序。至此,本地服务程序与客户端应用程序建立了binder通信,安卓系统会为每次binder通信自动添加UID、PID信息,从而实现用户和进程间的数据隔离。
图3是本实施例中本地服务程序对客户端应用程序的认证过程。
步骤1:用RSA私钥对APK包内的class.dex文件加密,得到的密文保存在认证信息文件中,例如info.txt文件。公钥的存储位置保存在info.txt文件中,那么info.txt文件就是该客户端应用程序的认证信息文件。根据本发明的一个实施例,认证信息文件可保存在客户端应用程序包内部,也可存于云服务器端。
步骤2:客户端应用程序与本地服务程序建立binder通信,具体过程参见图2。
步骤3:本地服务程序根据客户端应用程序发送信息中附带的UID/PID搜索对应的客户端应用程序包,在安卓系统下应用程序包一般后缀为APK包。
步骤4:搜索客户端应用程序包成功,则执行步骤5;否则断开本地服务程序与客户端程序的binder通信。
步骤5:本地服务程序开始检测搜索到的客户端程序包内是否含有认证信息文件,本例中为info.txt文件,如果存在,则执行步骤7;否则执行步骤6。
步骤6:本地服务程序开始检测云服务器端是否存在搜索到的客户端应用对应的认证信息文件。如果存在,则执行步骤7;否则断开本地服务程序与客户端程序的binder通信。 
步骤7:本地服务程序读取认证信息文件的内容,获取公钥存储位置。
步骤8:若公钥存储在云服务器端,则执行步骤9;若公钥存储在本地服务程序包内部,则执行步骤10;若读取不到公钥存储的位置信息,则执行步骤11。
步骤9:公钥存储在云服务器端,本地服务程序通过远程调用函数获取云服务器端的公钥,若获取成功,则执行步骤12;否则断开本地服务程序与客户端应用程序的binder通信。
步骤10:公钥存储在本地服务程序包内部,本地服务程序在自己的程序包内搜索公钥,若搜索成功,则执行步骤12,否则断开本地服务程序与客户端应用程序的binder通信。
步骤11:若在认证信息文件中读取不到公钥存储的位置信息,那么本地服务程序先在本地服务程序自己的程序包内搜索公钥,若搜索成功,则执行步骤12;否则向云服务器端获取公钥;
步骤12:本地服务程序根据获取的公钥去解密认证信息文件的密文,若认证成功,则客户端应用程序可正常运行,并且可调用本地服务程序的服务;若认证不成功,说明客户端应用程序不合法,则断开本地服务程序与客户端应用程序的binder通信。
实施例二:
本实施例采用单向加密算法的MD5对客户端应用程序包加密,该算法常用于文件校验,不管文件多大,经MD5后都能生成唯一的MD5值。
本例的认证信息文件包括MD5值和相应的单向加密算法。如果客户端应用程序有变动,用MD5算法加密产生的MD5值一定不同,根据这一原理来实现对客户端应用程序的认证。
图4是本实施例的流程示意图,描述了在单向加密算法下本地服务程序对客户端应用程序的认证过程。
步骤1:用MD5算法对客户端应用程序包加密,产生的MD5值和加密算法组成的认证信息文件,认证信息文件可存储在云服务器端也可存于客户端应用程序包内部。
步骤2:客户端应用程序与本地服务程序建立binder通信,具体过程参见图2。
步骤3:本地服务程序根据客户端应用程序发送信息中附带的UID/PID搜索对应的客户端应用程序包,在安卓系统下应用程序包一般后缀为APK包。
步骤4:搜索客户端应用程序包成功,则执行步骤5;否则断开本地服务程序与客户端程序的binder通信。
步骤5:本地服务程序检测客户端应用程序包是否存在认证信息文件,若存在,则执行步骤7;否则执行步骤6。
步骤6:本地服务程序检测云端是否存在认证信息文件,若存在,则执行步骤7;否则判断客户端应用程序不合法,断开本地服务程序与客户端应用程序的binder通信。
步骤7:本地服务程序读取认证信息文件中的加密算法,用该加密算法对客户端应用程序包加密产生密文,用该密文与认证信息文件中的密文比对认证,如果认证成功,则执行步骤8;否则断开本地服务程序与客户端应用程序的binder通信。
步骤8:认证成功后,则客户端应用程序可正常运行,并且可调用本地服务程序的服务。
 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。

Claims (9)

1. 一种在安卓系统中对应用程序进行认证的方法,其特征在于,所述方法包括如下步骤:
步骤1:采用加密算法对所述应用程序的客户端应用程序包进行加密,生成认证信息文件,其中所述客户端应用程序包对应于所述认证信息文件; 
步骤2:在安卓系统后台运行本地服务单元;
步骤3:所述应用程序与所述本地服务单元建立binder通信;
步骤4:所述本地服务单元根据所述应用程序发送的信息搜索所述客户端应用程序包;
步骤5:如果搜索所述客户端应用程序包成功,则执行步骤6;否则,断开所述本地服务单元与所述应用程序的binder通信;
步骤6:所述本地服务单元读取所述认证信息文件;
步骤7:所述本地服务单元对所述认证信息文件进行认证;
步骤8:如果认证成功,则所述应用程序正常运行;否则,断开所述本地服务单元与所述应用程序的binder通信。
2. 根据权利要求1所述的方法,其特征在于,在所述步骤1中,所述认证信息文件存于所述客户端应用程序包内部,或者存在远程云服务器端。
3. 根据权利要求1-2所述的方法,其特征在于,在所述步骤4中,所述本地服务单元根据所述应用程序发送的用户ID和进程ID搜索对应的所述客户端应用程序包。
4. 根据权利要求3所述的方法,其特征在于,在所述步骤4中,所述客户端应用程序包是APK包。
5. 根据权利要求2所述的方法,其特征在于,在所述步骤6中,如果读取不到所述认证信息文件,所述本地服务单元向远程云服务器端搜索所述认证信息文件;如果在所述远程云服务器端搜索不到所述认证信息文件,则断开所述本地服务单元与所述应用程序的binder通信。
6. 根据权利要求1所述的方法,其特征在于,如果搜索到所述认证信息文件,并且所述认证信息文件中包含密文和加密算法,则在步骤7中根据加密算法的类型选择相应的认证方法对认证信息文件中的密文进行认证。
7. 根据权利要求6所述的方法,其特征在于,
如果采用单向加密算法,由所述本地服务单元根据加密算法对所述客户端应用程序包进行加密以生成密文,然后将生成的所述密文与所述的认证信息文件中的密文进行认证;
如果采用双向加密算法,则由所述本地服务单元获取密钥,来解密所述认证信息文件中的密文。
8. 根据权利要求6所述的方法,其特征在于,如果采用双向加密算法,则双向加密算法的密钥存储在所述本地服务单元的包中,或者存在云服务器端。
9. 根据权利要求1所述的方法,其特征在于,在所述步骤8中,认证成功后,则所述应用程序正常运行,并且所述应用程序被允许调用所述本地服务单元的所提供的服务。
CN201210344786.XA 2012-09-18 2012-09-18 本地服务单元认证安卓客户端应用程序的方法 Active CN102891843B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201210344786.XA CN102891843B (zh) 2012-09-18 2012-09-18 本地服务单元认证安卓客户端应用程序的方法
PCT/CN2013/083666 WO2014044170A1 (zh) 2012-09-18 2013-09-17 本地服务单元认证安卓客户端应用程序的方法
US14/760,253 US9900161B2 (en) 2012-09-18 2013-09-17 Method for certifying android client application by local service unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210344786.XA CN102891843B (zh) 2012-09-18 2012-09-18 本地服务单元认证安卓客户端应用程序的方法

Publications (2)

Publication Number Publication Date
CN102891843A true CN102891843A (zh) 2013-01-23
CN102891843B CN102891843B (zh) 2015-04-29

Family

ID=47535210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210344786.XA Active CN102891843B (zh) 2012-09-18 2012-09-18 本地服务单元认证安卓客户端应用程序的方法

Country Status (3)

Country Link
US (1) US9900161B2 (zh)
CN (1) CN102891843B (zh)
WO (1) WO2014044170A1 (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103441848A (zh) * 2013-08-16 2013-12-11 广东欧珀移动通信有限公司 移动终端的应用认证方法和系统
CN103473500A (zh) * 2013-09-06 2013-12-25 成都三零瑞通移动通信有限公司 一种Android系统下APK签名认证方法
CN103561006A (zh) * 2013-10-24 2014-02-05 北京奇虎科技有限公司 基于安卓系统的应用认证方法和装置及应用认证服务器
CN103595731A (zh) * 2013-11-29 2014-02-19 北京网秦天下科技有限公司 用于保护账户安全的系统和方法
WO2014044170A1 (zh) * 2012-09-18 2014-03-27 北京深思洛克软件技术股份有限公司 本地服务单元认证安卓客户端应用程序的方法
WO2014194824A1 (zh) * 2013-06-06 2014-12-11 中国银联股份有限公司 一种基于移动设备的认证方法和认证装置
CN104751028A (zh) * 2013-12-25 2015-07-01 北京壹人壹本信息科技有限公司 应用程序加密、解密的方法及装置
WO2015101149A1 (zh) * 2013-12-30 2015-07-09 北京网秦天下科技有限公司 基于应用证书来检测应用安装包的安全性的方法、终端以及辅助服务器
WO2016165215A1 (zh) * 2015-04-15 2016-10-20 中兴通讯股份有限公司 应用程序加载代码签名的方法和装置
JP2017516134A (ja) * 2014-04-23 2017-06-15 フージェン ランディー コマーシャル イクイップメント カンパニー リミテッドFujian Landi Commercial Equipment Co.,Ltd Apk署名を統一する方法及びそのシステム
JP2017517942A (ja) * 2014-04-23 2017-06-29 フージェン ランディー コマーシャル イクイップメント カンパニー リミテッドFujian Landi Commercial Equipment Co.,Ltd 多者間信用照会のapk署名方法及びシステム
CN107846390A (zh) * 2016-09-21 2018-03-27 阿里巴巴集团控股有限公司 应用程序的认证方法及装置
CN107919960A (zh) * 2017-12-04 2018-04-17 北京深思数盾科技股份有限公司 一种应用程序的认证方法和系统
CN108604991A (zh) * 2016-07-12 2018-09-28 金主汉 能够检测应用程序篡改的双通道认证代理系统及其方法
CN109117340A (zh) * 2018-06-29 2019-01-01 Oppo(重庆)智能科技有限公司 一种移动终端及其进程间通信的监控方法、存储介质
CN113312048A (zh) * 2021-06-10 2021-08-27 浪潮云信息技术股份公司 基于electron唤起本地工具的实现方法及系统

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10200866B1 (en) * 2014-12-12 2019-02-05 Aeris Communications, Inc. Method and system for detecting and minimizing harmful network device and application behavior on cellular networks
US9740856B2 (en) * 2015-05-13 2017-08-22 SEWORKS, Inc. Apparatus and method for managing gaming engine file in a mobile platform
US10860715B2 (en) * 2016-05-26 2020-12-08 Barracuda Networks, Inc. Method and apparatus for proactively identifying and mitigating malware attacks via hosted web assets
US10193690B1 (en) * 2017-09-29 2019-01-29 U.S. Bancorp, National Association Systems and methods to secure data using computer system attributes
CN108199830A (zh) * 2017-12-22 2018-06-22 沈阳通用软件有限公司 基于证书严格管控Android应用程序合法的方法
CN112488686A (zh) * 2020-11-19 2021-03-12 建信金融科技有限责任公司 一种安全支付方法、系统、电子设备及可读存储介质
CN112512046B (zh) * 2020-12-16 2023-03-24 南京理工大学 一种Android应用程序短信验证码认证过程安全性检测方法
CN113065124A (zh) * 2021-02-22 2021-07-02 北京万集科技股份有限公司 应用程序的运行方法和相关产品
US11750732B1 (en) 2023-02-20 2023-09-05 14788591 Canada Inc. System for introducing features to an in-vehicle infotainment system and method of use thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1635811A (zh) * 2003-12-26 2005-07-06 华为技术有限公司 一种移动终端获取服务提供者的信息的方法
CN1866870A (zh) * 2006-02-23 2006-11-22 华为技术有限公司 基于设备管理协议的软件合法性验证系统及验证方法
CN101266638A (zh) * 2008-04-16 2008-09-17 北京飞天诚信科技有限公司 软件保护的方法和系统
US20120054101A1 (en) * 2010-09-01 2012-03-01 American Express Travel Related Services Company, Inc. Application program interface based fraud mitigation

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293171B2 (en) * 2004-01-21 2007-11-06 Microsoft Corporation Encryption to BCC recipients with S/MIME
US20060059346A1 (en) * 2004-09-14 2006-03-16 Andrew Sherman Authentication with expiring binding digital certificates
US8645942B2 (en) * 2006-05-26 2014-02-04 Oracle International Corporation Software update syndication
US9043919B2 (en) * 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
JP5449905B2 (ja) * 2009-07-29 2014-03-19 フェリカネットワークス株式会社 情報処理装置、プログラム、および情報処理システム
US9137017B2 (en) * 2010-05-28 2015-09-15 Red Hat, Inc. Key recovery mechanism
CN102034059B (zh) * 2010-12-02 2013-09-04 东莞宇龙通信科技有限公司 应用程序管理方法、装置以及终端
US20140230012A1 (en) * 2011-08-15 2014-08-14 Arizona Board of Regents for and behalf of Arizona State University Systems, methods, and media for policy-based monitoring and controlling of applications
CN102300065A (zh) * 2011-08-31 2011-12-28 四川长虹电器股份有限公司 基于安卓平台的智能电视软件安全认证的方法
BR102012030476A2 (pt) * 2011-12-09 2015-10-06 Visa Int Service Ass método, meio de armazenamento legível em computador, e, sistema
US8844036B2 (en) * 2012-03-02 2014-09-23 Sri International Method and system for application-based policy monitoring and enforcement on a mobile device
CN103379481B (zh) * 2012-04-26 2015-05-06 腾讯科技(深圳)有限公司 一种实现安全防护的方法
CN102891843B (zh) * 2012-09-18 2015-04-29 北京深思洛克软件技术股份有限公司 本地服务单元认证安卓客户端应用程序的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1635811A (zh) * 2003-12-26 2005-07-06 华为技术有限公司 一种移动终端获取服务提供者的信息的方法
CN1866870A (zh) * 2006-02-23 2006-11-22 华为技术有限公司 基于设备管理协议的软件合法性验证系统及验证方法
CN101266638A (zh) * 2008-04-16 2008-09-17 北京飞天诚信科技有限公司 软件保护的方法和系统
US20120054101A1 (en) * 2010-09-01 2012-03-01 American Express Travel Related Services Company, Inc. Application program interface based fraud mitigation

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014044170A1 (zh) * 2012-09-18 2014-03-27 北京深思洛克软件技术股份有限公司 本地服务单元认证安卓客户端应用程序的方法
US9900161B2 (en) 2012-09-18 2018-02-20 Beijing Senseshield Technology Co., Ltd Method for certifying android client application by local service unit
TWI562653B (zh) * 2013-06-06 2016-12-11
WO2014194824A1 (zh) * 2013-06-06 2014-12-11 中国银联股份有限公司 一种基于移动设备的认证方法和认证装置
CN104243151A (zh) * 2013-06-06 2014-12-24 中国银联股份有限公司 一种基于移动设备的认证方法和认证装置
CN104243151B (zh) * 2013-06-06 2018-02-06 中国银联股份有限公司 一种基于移动设备的认证方法和认证装置
CN103441848A (zh) * 2013-08-16 2013-12-11 广东欧珀移动通信有限公司 移动终端的应用认证方法和系统
CN103473500A (zh) * 2013-09-06 2013-12-25 成都三零瑞通移动通信有限公司 一种Android系统下APK签名认证方法
CN103561006A (zh) * 2013-10-24 2014-02-05 北京奇虎科技有限公司 基于安卓系统的应用认证方法和装置及应用认证服务器
CN103595731A (zh) * 2013-11-29 2014-02-19 北京网秦天下科技有限公司 用于保护账户安全的系统和方法
CN104751028B (zh) * 2013-12-25 2018-08-17 北京壹人壹本信息科技有限公司 应用程序加密、解密的方法及装置
CN104751028A (zh) * 2013-12-25 2015-07-01 北京壹人壹本信息科技有限公司 应用程序加密、解密的方法及装置
WO2015101149A1 (zh) * 2013-12-30 2015-07-09 北京网秦天下科技有限公司 基于应用证书来检测应用安装包的安全性的方法、终端以及辅助服务器
JP2017516134A (ja) * 2014-04-23 2017-06-15 フージェン ランディー コマーシャル イクイップメント カンパニー リミテッドFujian Landi Commercial Equipment Co.,Ltd Apk署名を統一する方法及びそのシステム
JP2017517942A (ja) * 2014-04-23 2017-06-29 フージェン ランディー コマーシャル イクイップメント カンパニー リミテッドFujian Landi Commercial Equipment Co.,Ltd 多者間信用照会のapk署名方法及びシステム
WO2016165215A1 (zh) * 2015-04-15 2016-10-20 中兴通讯股份有限公司 应用程序加载代码签名的方法和装置
CN106155663A (zh) * 2015-04-15 2016-11-23 中兴通讯股份有限公司 应用程序加载代码签名的方法和装置
CN108604991B (zh) * 2016-07-12 2021-06-15 金主汉 能够检测应用程序篡改的双通道认证代理系统及其方法
CN108604991A (zh) * 2016-07-12 2018-09-28 金主汉 能够检测应用程序篡改的双通道认证代理系统及其方法
CN107846390A (zh) * 2016-09-21 2018-03-27 阿里巴巴集团控股有限公司 应用程序的认证方法及装置
CN107919960A (zh) * 2017-12-04 2018-04-17 北京深思数盾科技股份有限公司 一种应用程序的认证方法和系统
CN109117340A (zh) * 2018-06-29 2019-01-01 Oppo(重庆)智能科技有限公司 一种移动终端及其进程间通信的监控方法、存储介质
CN113312048A (zh) * 2021-06-10 2021-08-27 浪潮云信息技术股份公司 基于electron唤起本地工具的实现方法及系统
CN113312048B (zh) * 2021-06-10 2022-12-27 浪潮云信息技术股份公司 基于electron唤起本地工具的实现方法及系统

Also Published As

Publication number Publication date
WO2014044170A1 (zh) 2014-03-27
US20160277194A1 (en) 2016-09-22
US9900161B2 (en) 2018-02-20
CN102891843B (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN102891843B (zh) 本地服务单元认证安卓客户端应用程序的方法
CN107146120B (zh) 电子发票的生成方法及生成装置
EP1485769B1 (en) A method and arrangement for protecting software
EP2954448B1 (en) Provisioning sensitive data into third party network-enabled devices
CN101605137B (zh) 安全分布式文件系统
CN101404576B (zh) 一种网络资源查询方法和系统
CN101212293B (zh) 一种身份认证方法及系统
CN108347428B (zh) 基于区块链的应用程序的注册系统、方法和装置
CN108243176B (zh) 数据传输方法和装置
WO2008100264A2 (en) Digital rights management using trusted processing techniques
CN112187466B (zh) 一种身份管理方法、装置、设备及存储介质
CN109831311B (zh) 一种服务器验证方法、系统、用户终端及可读存储介质
CN110662091B (zh) 第三方直播视频接入方法、存储介质、电子设备及系统
CN105025019A (zh) 一种数据安全分享方法
KR101531662B1 (ko) 사용자 단말과 서버간 상호 인증 방법 및 시스템
CN115277168B (zh) 一种访问服务器的方法以及装置、系统
CN111080299B (zh) 一种交易信息的防抵赖方法及客户端、服务器
CN110020869B (zh) 用于生成区块链授权信息的方法、装置及系统
JP5452192B2 (ja) アクセス制御システム、アクセス制御方法およびプログラム
CN112417385A (zh) 安全控制方法及系统
CN112800392A (zh) 基于软证书的授权方法和装置、存储介质
Gaber et al. Privdrm: A privacy-preserving secure digital right management system
CN106789963B (zh) 非对称白盒密码加密方法和装置及设备
CN110572392A (zh) 一种基于Hyperledger网络的身份认证方法
CN106850592B (zh) 一种信息处理方法、服务器及终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: BEIJING SHENSI SHUDUN SCIENCE + TECHNOLOGY CO., LT

Free format text: FORMER OWNER: BEIJING SENSELOCK SOFTWARE TECHNOLOGY CO., LTD.

Effective date: 20150811

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150811

Address after: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Patentee after: BEIJING SHENSI SHUDUN TECHNOLOGY Co.,Ltd.

Address before: 100084 Beijing City, Haidian District Zhongguancun South Street No. 6 Building 1201 Zhucheng

Patentee before: Beijing Senselock Software Technology Co.,Ltd.

C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: 100193 Beijing, Haidian District, East West Road, No. 10, East Hospital, building No. 5, floor 5, layer 510

Patentee after: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Patentee before: BEIJING SHENSI SHUDUN TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder

Address after: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee after: Beijing Shendun Technology Co.,Ltd.

Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder