应用商店和应用的安全管理机制

  • 1 概述
  • 2 应用商店管理机制
  • 2.1 苹果App Store的应用分发机制分析
  • 2.2 谷歌Play Market的应用分发机制分析
  • 2.3 其他第三方商店的应用分发机制分析
  • 3 终端应用管理机制
  • 3.1 应用签名检查
  • 3.2 应用权限申请
  • 3.3 应用调用能力管理
  • 4 可信应用和可信应用商店


1 概述

丰富多彩的应用是智能终端最重要的组成部分,但海量应用也给智能终端和消费者带来各种各样的安全风险,应用安全是移动互联网信息安全的关键。
应用安全贯穿应用的内容分发过程以及使用过程的始终。当前,应用内容审核及分发管理由各种各样的应用商店来保障,而应用使用安全则通过构建在智能终端系统的应用管理机制来维护

2 应用商店管理机制

应用商店体系由一个应用下载平台和一个终端客户端组成,为支持开发者的应用开发工作和应用作品上传等,通常还包括一个开发者社区。
通用的应用审核机制包括如下几方面:
1)签名审查,支持证书签名的商店会对开发者的应用签名进行审查,以保证应用来源的合法性。
2)内容审查,保证应用不违反当前法律、法规的各项要求,检查应用内容是否涉嫌侵权等。
3)应用收费情况检查,检查应用的收费点、价格、收费方式等,保障用户的消费安全。
4)安全性检查,检查应用是否有木马、病毒等安全风险。
5)功能性检查,依照开发者说明书对应用进行测试,验证应用的功能是否达到设计要求。

2.1 苹果App Store的应用分发机制分析

iOS AppStore在应用审核、上架、下载等方面的管理机制都有相应的安全措施。

苹果App Store应用发布流程如下:

app安全防护体系架构 app安全管理制度_app安全防护体系架构

开发者完成应用的开发和测试后,需要为这个应用创建唯一的AppID,然后申请获得通过WWDR的CA数字证书,为自己的应用签名,应用上传之后会经过苹果的审核,通过苹果严格的安全测试的应用方可在App Store上架。

经过签名的WWDR(WWDR, Apple WorldwideDeveloper Relations Certification Authority)的CA数字证书采用通用的X509格式,以PKCS#12格式存储,包含用户的公钥、用户个人信息、证书颁发机构信息、证书有效期等信息以及证书签名。证书格式如下图所示。

app安全防护体系架构 app安全管理制度_应用商店_02

证书的数字签名是将上述证书本身的内容使用散列算法得到一个固定长度的信息摘要,然后使用自己的私钥对该信息摘要加密生成数字签名,整个过程如下图所示。

app安全防护体系架构 app安全管理制度_开发者_03

iOS系统持有WWDR的公钥,系统首先会对证书内容通过指定的散列算法计算得到一个信息摘要;然后使用WWDR的公钥对证书中包含的数字签名解密,从而得到经过WWDR的私钥加密过的信息摘要;最后对比两个信息摘要,如果内容相同就说明该证书可信。整个证书验证过程如下图所示。

app安全防护体系架构 app安全管理制度_开发者_04

在验证了证书可信以后,iOS系统就可以获取到证书中包含的开发者的公钥,iOS系统通过从证书中获取到的公钥来验证开发者用该公钥对应的私钥签名后的代码,验证资源文件等有没有被更改破坏,并确定开发者的合法身份。

App Store对应用的审核非常严格,涉及功能、元数据、位置信息收集、推送通知、游戏信息管理、广告、商标和商品外观、内容、用户界面、支付机制、设备保护、隐私保护等各个方面。

2.2 谷歌Play Market的应用分发机制分析

Google Play Market的应用发布流程如下图所示。

app安全防护体系架构 app安全管理制度_开发者_05

与苹果App Store流程相比,Google Play Market的流程中没有申请AppID的环节,因为Android应用开发环节只需要定义应用名称,没有AppID的概念。

终端通过Google Play Market下载和安装应用的流程如下:

1)登录和验证授权:终端通过用户Google Play Market账号密码登录,登录成功之后,Google Play Market服务器将返回授权认证参数。

2)应用下载安装:在Google Play Market服务器验证用户登录之后用户根据应用名称,获取应用的唯一标识ID,向服务器请求下载应用。Google Play Market服务器根据用户提交的授权认证参数及应用标识返回包含应用下载链接及cookie的信息给客户端,客户端解析信息文本提取应用的下载链接。客户端根据上一步获取的下载链接及cookie向服务器请求下载应用。

3)终端检查应用的签名证书,校验通过后安装。

2.3 其他第三方商店的应用分发机制分析

应用分发机制上,第三方商店大多类似,通过应用测试控制应用质量,通过安装在用户终端的商店客户端推送应用,大多不过度参与对应用运行其他环节的管控。

app安全防护体系架构 app安全管理制度_安全_06

联通沃商店应用发布流程:

(1)注册:联通沃商店的开发者入口是联通开发者社区,网址http://dev.wostore.cn/,根据注册页面注册流程指示使用手机号完成注册;

(2)签约:签约部分,主要是针对游戏类应用的内容购置和联运的合作协议、应用内支付的合作协议的签约,以及通用应用的信息安全责任承诺书、廉洁合作协议、保密协议等的签署。

(3)应用上传:开发者从开发者社区的“上传应用”栏目处上传应用,区分计费和免费应用类别,并针对计费应用提交计费点说明等文档。

(4)评测:开发者应用上传后,提交作品评测。

(5)应用上架:应用上架,提供给用户浏览和下载。

(6)联通开放能力:联通为应用开发者提供开放能力支持,包括计费能力接入、广告接入、流量能力接入、账户能力接入。

(7)费用结算:周期性地面向开发者结算应用费用。

3 终端应用管理机制

终端应用管理是应用安全的屏障。终端应用管理通过终端对应用的签名检查、功能权限检查、应用调用能力管理等细分机制,提高应用使用的安全性。

3.1 应用签名检查

在应用商店发布的应用大多都经过应用商店和开发者的签名以确保应用来源的安全性,终端的应用安装管理器会查询应用的签名以验证应用的合法性。
Android系统虽未对签名证书的来源进行严格的限定,但默认也会对应用来源进行检查。但实际使用中,相当多的Android用户会打开未知来源应用安装许可选项以安装其他来源的应用,在应用安装便利的同时破坏了系统的应用签名检查措施,为移动终端带来了安全风险。

3.2 应用权限申请

Android涉及的权限大致分为3类:
手机所有者权限,即Android手机用户不需要输入任何密码,就具有安装一般应用软件、使用应用程序等的权限;
ROOT权限,Android系统的最高权限,可以对系统中所有文件、数据进行任意操作;
Android应用程序权限,Android应用程序对Android系统资源的访问需要的相应访问权限,该权限在应用程序设计时设定,在Android系统中初次安装时生效。
Android定义了百余种permission,可供开发人员使用。
Android应用程序权限在应用APK(Android Package, Android,安装包)中的AndroidMainifest.xml文件进行说明。该文件罗列了应用程序运行时库、运行依赖关系、所需的系统访问权限等。程序员在进行应用软件开发时,需要通过设置该文件的uses-permission字段来显式地向Android系统申请访问权限。
Android系统对应用程序授权申请的处理流程如下:
1)进入处理应用程序授权申请的入口函数。
2)系统从被安装应用程序的AndroidManifest.xml文件中获取该应用正常运行需申请的权限列表。
3)显示对话框,请求用户确认是否同意这些权限需求。
4)若同意,则应用程序正常安装,并被赋予相应的权限;若不同意,则应用程序不被安装。系统仅提供给用户选择“安装”或者“取消”的权利,没有选择其中某些权限进行授权的权利。
Android Q 上对权限的使用要求更高!!!

3.3 应用调用能力管理

中国通信标准化协会组织制定了《移动智能终端安全能力技术要求》行业标准,标准中提到的移动智能终端安全能力,包括终端硬件安全能力、终端操作系统安全能力、终端外围接口安全能力、终端应用层安全要求、终端用户数据保护安全能力等。

4 可信应用和可信应用商店

可信应用商店,顾名思义即为手机用户提供经认证的安全可靠、种类丰富的App手机应用。
可信应用商店通过建立实名认证机制,完善安全检测技术,为用户提供安全下载,为运营开发者提供应用维护平台,为主管部门提供可溯源的应用备案,为建立规范有序的移动应用市场而努力。