对移动终端上的应用进行身份验证的方法及装置制造方法及图纸

技术编号:11152783 阅读:162 留言:0更新日期:2015-03-18 09:21
本发明专利技术提出对移动终端上的应用进行身份验证的方法及装置。方法包括:为刚开发出的apk文件生成非对称密钥对:非对称公钥和私钥;从该apk文件中解析出应用的声明文件,根据所述私钥对所述声明文件进行加密,得到该apk文件的身份验证文件,所述身份验证文件和所述公钥被编译到该apk文件中;当该apk文件被安装到移动终端的安卓平台上后,若发现该apk文件对应应用被打开,则从该apk文件中找到所述身份验证文件和所述公钥,根据所述公钥对所述身份验证文件进行解密,从该apk文件中解析出应用的声明文件,判断解密结果是否与该声明文件一致,若是,确认该apk文件合法。本发明专利技术无需联网,就可对应用内容的合法性进行鉴定。

【技术实现步骤摘要】
对移动终端上的应用进行身份验证的方法及装置
本专利技术涉及智能终端
,尤其涉及对移动终端上的应用进行身份验证的方法及装置。
技术介绍
只有使用证书进行数字签名之后的应用程序才能安装到移动终端的Android (安卓)平台上,Android操作系统的代码签名采用自签名机制,其主要作用如下: 一、开发者身份溯源。签名信息中包含开发的身份信息,可以追溯开发者的身份。 二、安装时的验证保护。Android平台在安装新应用时,会解析新应用的包名和签名。如果移动终端上已装有和新应用相同包名的应用,且两者签名不一致,则新应用将无法在移动终端上安装成功。 三、保证应用信息的完整性。移动终端的Android平台在安装新应用时,会校验应用信息的摘要和签名信息中对应的摘要是否一致,以确保应用没有被修改和篡改过。 应用经过数字签名后,在其应用apk (applicat1n package,安装包)中会增加一个META-1NF的文件夹,其中包含MANIFEST.MF, CERT.SF, CERT.RSA等三个文件。在移动终端的Android平台安装新应用时,其验证过程如下: 步骤O1:计算CERT.SF文件的Hash值; 步骤02:用包含公钥的证书验证CERT.RSA文件,将得到的结果和步骤01得到的Hash值进行比较,如果相同,则表明CERT.SF文件是未被篡改的。 步骤03:由于CERT.SF文件包含了 apk包中的MANIFEST.MF文件的Hash值,而MANIFEST.MF文件包含了 apk包中其他文件的Hash值,因此从CERT.SF文件中可以得到其他文件的正确Hash值。 步骤04:计算apk包中的其他文件的Hash值,判断计算得到的Hash值和MANIFEST.MF文件中列出的Hash值是否对应一致,从而判断apk包的完整性。 通过上述介绍,可以发现Android平台现有的代码签名机制仅仅可以保证应用的完整性和开发者身份的辨识,主要缺点如下: 一、用户无法鉴别应用内容本身是否合法。比如,应用是否留有后门程序、是否包含非法内容等特征是无法通过现有机制得到保证的。 二、能力提供方无法鉴别应用的合法身份。业务能力通常以jar包的形式提供给开发者,并最终集成到开发者的应用apk中。在能力开放的过程中,能力提供方逐渐发现:如果不对使用能力的具体应用进行监管,会出现很多严重的运营问题。比如,一个开发者开发一个恶意应用,在其中无限循环Ping与服务器的接口,可能造成能力提供方服务器的接口拥塞。对于一些收费的能力而言,如果能力提供方不对应用进行校验,就无法确认该应用使用了哪些需要付费的能力,这还会造成能力提供方的经济损失。 造成这些问题的根本原因是因为Android现有签名机制是自签名的,不需要权威机构签名和审核,用户或能力提供方需要完全依靠自身经验来判断应用的合法性。 目前有部分企业尝试建立Android平台上统一的CA(Certificate Authority,认证授权)机构来解决上述问题,但同样也会产生如下缺点: 一、可以覆盖的应用存在局限性。Android平台由Google公司完全掌控,出于开放性的承诺,Android平台是完全开源开放的。现阶段各个终端厂家、应用商城提供方、应用开发方都有自己的签名证书,第三方机构很难要求全产业链来使用同一的证书,也缺乏推行这种统一证书的制约手段。 二、与市场上的存量应用不兼容。比如,存量市场上的应用A使用的是X证书,如果应用A的升级版使用统一 CA机构的Y证书,则该升级版本将无法替换终端上已安装的应用A。 另外,市场上还有一部分企业,采用联网检查签名的机制来解决合法性验证的问题。比如,能力提供方要求开发者将自身的签名文件和应用包名上传至自己的服务器。在应用每次使用能力前,均需将文件签名和应用包上传至服务器进行校验。这种方法的实质是用签名备份来约束开发者,如果发现应用是恶意的,则通过备份的签名追溯到开发者。 但该方法依赖于每次使用能力前的联网校验,增加了普通用户的等待时间。同时,如果用户身份网络状况不好的地区,还会因联网失败而无法继续使用应用,造成很不好的用户体验。
技术实现思路
本专利技术提供对移动终端上的应用进行身份验证的方法、系统及装置,以实现无需联网,就可对应用内容的合法性进行鉴定。 本专利技术的技术方案是这样实现的: 一种对移动终端上的应用进行身份验证的方法,该方法包括: 为刚开发出的应用安装包apk文件生成非对称密钥对:非对称公钥和私钥;从该apk文件中解析出应用的声明文件,根据所述私钥对所述声明文件进行加密,得到该apk文件的身份验证文件,所述身份验证文件和所述公钥被编译到该apk文件中; 当该apk文件被安装到移动终端的安卓平台上后,若发现该apk文件对应应用被打开,则从该apk文件中找到所述身份验证文件和所述公钥,根据所述公钥对所述身份验证文件进行解密,从该apk文件中解析出应用的声明文件,判断解密结果是否与该声明文件一致,若是,确认该apk文件合法。 所述根据所述私钥对所述声明文件进行加密,得到该apk文件的身份验证文件包括: 计算每个声明文件的MD5摘要,将计算得到的MD5摘要存储为文件1,计算文件I的MD5摘要,将文件I的MD5摘要存储为文件2,用所述私钥对文件2进行签名,得到文件3,将文件1、文件2和文件3打包压缩得到该apk文件的身份验证文件; 所述根据所述公钥对所述身份验证文件进行解密,从该apk文件中解析出应用的声明文件,判断解密结果是否与该声明文件一致包括: 根据所述公钥解密身份验证文件中的文件3,得到文件5,判断文件5和文件2是否一致,若一致,从该apk文件中解析出应用的声明文件,计算每个声明文件的MD5摘要,并将得到的MD5摘要存储为文件6,计算文件6的MD5摘要,判断文件6的MD5摘要是否和文件2相同,若相同,确认该apk文件合法。 所述从该apk文件中解析出应用的声明文件之后、根据所述私钥对所述声明文件进行加密之前进一步包括: 在该声明文件中自定义用户权限; 所述从该apk文件中解析出应用的声明文件之后、判断解密结果是否与该声明文件一致之前进一步包括: 判断该声明文件中是否包含自定义用户权限,若是,执行所述判断解密结果是否与该声明文件一致的动作;否则,认为该apk文件非法。 所述身份验证文件和所述公钥被编译到该apk文件中进一步包括: 应用开发者对该应用的签名文件被编译到该apk文件中; 所述从该apk文件中解析出应用的声明文件之后、计算每个声明文件的MD5摘要之前进一步包括: 从声明文件中排除掉应用签名文件。 所述将文件1、文件2和文件3打包压缩得到该apk文件的身份验证文件之后、所述身份验证文件和所述公钥被编译到该apk文件中之前进一步包括: 所述身份验证文件被放到该apk文件对应的应用工程的assets目录中,同时,所述公钥被放在该apk文件的静态库中,该静态库被集成到该apk文件对应的应用工程中; 所述从该apk文件中找到所述身份验证文件和所述公钥包括: 从该apk文件的assets目录中找到所述身份验证文件,将该身份本文档来自技高网
...
对移动终端上的应用进行身份验证的方法及装置

【技术保护点】
一种对移动终端上的应用进行身份验证的方法,其特征在于,该方法包括:为刚开发出的应用安装包apk文件生成非对称密钥对:非对称公钥和私钥;从该apk文件中解析出应用的声明文件,根据所述私钥对所述声明文件进行加密,得到该apk文件的身份验证文件,所述身份验证文件和所述公钥被编译到该apk文件中;当该apk文件被安装到移动终端的安卓平台上后,若发现该apk文件对应应用被打开,则从该apk文件中找到所述身份验证文件和所述公钥,根据所述公钥对所述身份验证文件进行解密,从该apk文件中解析出应用的声明文件,判断解密结果是否与该声明文件一致,若是,确认该apk文件合法。

【技术特征摘要】
1.一种对移动终端上的应用进行身份验证的方法,其特征在于,该方法包括: 为刚开发出的应用安装包apk文件生成非对称密钥对:非对称公钥和私钥;从该apk文件中解析出应用的声明文件,根据所述私钥对所述声明文件进行加密,得到该apk文件的身份验证文件,所述身份验证文件和所述公钥被编译到该apk文件中; 当该apk文件被安装到移动终端的安卓平台上后,若发现该apk文件对应应用被打开,则从该apk文件中找到所述身份验证文件和所述公钥,根据所述公钥对所述身份验证文件进行解密,从该apk文件中解析出应用的声明文件,判断解密结果是否与该声明文件一致,若是,确认该apk文件合法。2.根据权利要求1所述的方法,其特征在于,所述根据所述私钥对所述声明文件进行加密,得到该apk文件的身份验证文件包括: 计算每个声明文件的MD5摘要,将计算得到的MD5摘要存储为文件I,计算文件I的MD5摘要,将文件I的MD5摘要存储为文件2,用所述私钥对文件2进行签名,得到文件3,将文件1、文件2和文件3打包压缩得到该apk文件的身份验证文件; 所述根据所述公钥对所述身份验证文件进行解密,从该apk文件中解析出应用的声明文件,判断解密结果是否与该声明文件一致包括: 根据所述公钥解密身份验证文件中的文件3,得到文件5,判断文件5和文件2是否一致,若一致,从该apk文件中解析出应用的声明文件,计算每个声明文件的MD5摘要,并将得到的MD5摘要存储为文件6,计算文件6的MD5摘要,判断文件6的MD5摘要是否和文件2相同,若相同,确认该apk文件合法。3.根据权利要求1所述的方法,其特征在于,所述从该apk文件中解析出应用的声明文件之后、根据所述私钥对所述声明文件进行加密之前进一步包括: 在该声明文件中自定义用户权限; 所述从该apk文件中解析出应用的声明文件之后、判断解密结果是否与该声明文件一致之前进一步包括: 判断该声明文件中是否包含自定义用户权限,若是,执行所述判断解密结果是否与该声明文件一致的动作;否则,认为该apk文件非法。4.根据权利要求2所述的方法,其特征在于,所述身份验证文件和所述公钥被编译到该apk文件中进一步包括: 应用开发者对该应用的签名文件被编译到该apk文件中; 所述从该apk文件中解析出应用的声明文件之后、计算每个声明文件的MD5摘要之前进一步包括: 从声明文件中排除掉应用签名文件。5.根据权利要求1或2所述的方法,其特征在于,所述将文件1、文件2和文件3打包压缩得到该apk文件的身份验证文件之后、所述身份验证文件和所述公钥被编译到该apk文件中之前进一步包括: 所述身份验证文件被放到该apk文件对应的应用工程的assets目录中,同时,所述公钥被放在该apk文件的静态库中,该静态库被集成到该apk文件对应的应用工程中; 所述从该apk文件中找到所述身份验证文件和所述公钥包括: 从该apk文件的assets目录中找到所述身份验证文件,将该身份验证文件读到移动终端的安全数字存储SD卡的指定目录中,将该身份验证文件在SD卡中的路径传递给Dex类加载器,以使得:当该应用使用能力时,Dex类加载器根据该路径动态加载该身份验证文件,同时,当该应用使用能力时从该apk文件的静态库中读取所述公钥。6.根据权利要求1或2所述的方法,其特征在于,所述非对称密钥对为:RSA密钥对。7.一种对移动终端上的应用进行身份验证的系统,其特征在于,包括: 身份验证文件生成模块:为刚开发出的应用安装包apk文件生成非对称密钥对:非对称公钥和私钥;从该apk文件中解析出应用的声明文件,根据所述私钥对所述声明文件进行加密,得到该apk文件的身份验证文件,所述身份验证文件和所述公钥被编译到该apk文件中; 身份验证模块:当该apk文件被安装到移动终端的安卓平台上后,若发现该apk文件对应应用被打开,则从该apk文件中找到所述身份验证文件和所述公钥,根据所述公钥对所述身份验证文件进行解密,从该apk文件中解析出应用的声明文件,判断解密结果是否与该声明文件一致,若是,确认该apk文件合法。8.根据权利要求7所述的系统,其特征在于,所述身份验证文件生成模块根据所述私钥...

【专利技术属性】
技术研发人员:吴博靳泽宇
申请(专利权)人:中国移动通信集团公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1