存档

‘VPN’ 分类的存档

读《Android安全架构深究》:企业安全

2017年3月6日 没有评论

设备管理:

Android2.2引入设备管理API,以支持开发可执行系统安全策略,并基于设备当前级别,动态调整相关特性的应用。这种应用被称为设备管理员(device administrator)。设备管理员必须在设备安全设置中显式打开,并且如果处于激活状态将无法被卸载。被打开之后,设备管理员可以获取系统特殊权限:锁定设备、改变锁屏密码,甚至擦除整个设备。设备管理员一般会搭配一个特殊的企业账户,允许企业管理员设置只有符合安全策略的设备才能获取企业数据。安全策略可以静态植入设备管理程序,也可以作为配置或同步协议的一部分在服务端进行设置后推送到设备。
Androdi4.4支持的策略类型如表9-1所示,策略常量定义在DeviceAdminInfo类中。

实现方法:
使用管理类DeviecePolicyManager来暴露下层DevicePolicyManagerService系统服务的部分功能。DeviecePolicyManager外观类仅仅定义了一些常量,并将服务异常转换为错误码,并没有添加任何实际功能。
DevicePolicyManagerService由system_server启动,以system用户运行。该服务可以帮助第三方应用(不需要特殊权限)获取到相关的特权操作(如修改锁屏密码)。
特权管理:
DevicePolicyManagerService运行时,将会在内存中为每个设备用户维护一个内部的策略结构体。每个策略结构体中包含对特定用户的当前策略,以及所有激活的设备管理员元数据清单。因为每个用户可以打开多个拥有设备管理员功能的应用,所以需要从中选择出最严格的作为当前策略。每个激活的设备管理员应用的元数据中包含有应用信息和相关策略清单。
应用若想请求策略,那么需要添加一个XML资源文件,该文件在标签下添加所有欲使用的策略。在设备管理员应用激活前,系统处理这个XML文件,并显示对话框,令用户在启动前检查其请求的策略。
策略保存:
设备管理员被激活后,关闭的操作或策略的更新会被记录到目标用户的device_policies.xml文件中。设备所有者被保存到/data/system/目录下,其他用户保存到用户系统目录/data/users//下。device_policies.xml文件中包含每个激活管理员(active administrator)及其策略信息,以及一些当前锁屏密码的全局信息。
策略执行:
设备管理员策略可以有不同的颗粒,能够选择仅仅对当前用户或者对设备上的所有用户执行。
添加设备管理员:
实现设备管理员:
需要声明一个需要BIND_DEVICE_ADMIN权限的广播接收者,列出使用策略的一个XML资源文件,和处理ACTION_DEVICE_ADMIN_ENABLED intent的intent-filter。
设置设备所有者:
如果一个设备管理员应用是系统镜像的一部分,那么可以通过调用setDeviceOwner(String packageName, String ownerName)隐藏方法,将其设定为系统拥有者。虽然这个方法不需要特殊权限,但是只有设备被准备(Settings.Global.DEVICE_PROVISIONED为0)好之前才能够被调用(只有负责系统初始化的系统应用才有机会调用)。
成功调用这个函数会在/data/system/目录下写入一个device_owner.xml文件。
托管设备:
安装着所有者管理员的设备(owner administrator)被称为托管设备(managed device),对影响设备安全配置的修改与非托管设备有很多不同。
企业账户集成:。。。

阅读全文…

分类: Android, VPN, WIFI, 未分类 标签: ,