在这里我们只谈基本的设备管理(MDM),其他的设计到内容管理,邮件管理的暂且不谈,这里也会涉及到一些应用管理的部分。
MDM或者说是EMM,由于其使用场景特殊,基本要求对设备的管理具有闭环的生命周期。
也可以叫做设备绑定或者设备启用,不论是COPE或者是BYOD的设备,都要求对设备和服务器进行绑定,服务器创建设备或者用户,下发注册信息,设备输入注册信息通过认证,就表示该设备绑定成功。
通过注册的设备,一般会下发一些初始的配置策略,来对设备进行检测或者进行基本管理,在设备使用中,后台会相继下发不同的策略,对设备进行不同的管理。
用户在使用设备的时候,要遵守后台针对该设备下发的管理策略,例如密码强度要求,WIFI使用权限,摄像机使用权限等,当检测到用户的非法操作时,进行相应的处理,例如警告或者上报服务器。设备配置以及使用不会受到登陆状态影响,只要设备已经绑定,服务器就会有权限对设备进行策略下发以及管理。
或者叫做设备解绑,解绑之后设备恢复自由,恢复到设备绑定之前的状态,设备解绑不能由用户进行自操作,需要经过后台的授权或者同意,非法的解绑动作应该被禁止,启迪思创就通过计算认证碼的方式来防止非法解绑,以及通过Hook的方法禁止用户关闭设备管理器。
设备整体的声明周期如下图所示:
设备淘汰时,需要进行企业信息擦除,包括下发的配置策略,产生的数据以及安装的企业应用,但是不能影响BYOD设备中的个人信息。
策略下发基本上都通过推送来完成,一般都是由服务器主动下发策略,此时需要保持长连接,一般的策略有三个部分:命令,目标,数据。
MDM和其他管理策略型的系统不同,严重依赖于后台的管理,所以需要做到完全并且强制遵从策略,基于这一点,我们一定要做服务端认证。
数据管理主要涉及到数据隔离以及数据擦除两部分。
根据目前的调研,大多数厂商没有做到真正意义上的数据隔离,基本上都是用隐藏文件+加解密的方式进行折中处理,真正要实现数据隔离,要使用到定制的ROM或者企业定制设备来完成,或者使用基于CPU的安全空间技术(Knox)来进行隔离,在Android5.0之后,可以使用Android for Work来限制应用之间的访问,以及文件共享机制的控制,但是也不能完全的实现数据隔离。
数据擦除可以分为三种:
针对性的擦除某个应用的数据以及缓存数据,这个应用恢复到刚安装时的状态
擦除整个设备的数据,进行Factory reset恢复出厂设置,比较危险,会擦除MDM应用以及数据,不到萬不得已不建议这样做,
软擦除,使用MDM指令或者策略来对企业应用进行安装,卸载或者进行企业wipe,设备丢失擦除基本上就是进行企业wipe
远程控制
远程控制基于策略下发,服务器通过下发指令,进行设备的控制,例如修改配置信息,发送短信,打电话,控制WIFI,蓝牙等。
应用管理
通常会在MDM系统之上搭建企业应用商店,这样就扩展到MAM的层次,同时,应用管理也是展现MDM能力的一个表现窗口,通过服务器进行应用分发,通过策略进行应用的强制安装或者建议安装,也可以通过策略进行应用升级,直接进行应用安装等。
MDM和推送
推送是MDM中策略分发的基础,MDM中大部分的指令,策略以及操作都需要由服务器向客户端发起,推送是最合适的选择。
推送中的重难点之一就是要做到进程保活,同时,MDM中设备的监测也要做到进程保活,所以进程保活是我们要做的基础工作。
演变路径
前期我们需要把MDM完成,由MDM为基础,延伸到应用管理,内容管理,邮件管理,最终演变为企业移动化管理的解决方案(EMM)。
国内同类厂商功能整理
我们主要参看来国内在这方面比较有代表性的厂商,总结其在MDM方面的主要功能。
华为AnyOffice
华为AnyOffice是主要面向企业移动办公的一个方案,提供的产品形式是SDK,具有如下功能:
- 使用网关认证进行VPN通信以及单点登陆,这一点可能需要和华为的网关进行结合使用
- 文件以及SQLite的加密存储,基于基本的IO流读写,重写IO的读写方法,以及SQL数据库的读写方式,来实现文件以及数据库的加解密
华为的这个SDK基本上没有设备管理的功能,但是通过重写IO进行数据库以及文件的加解密这种方式是值得我们学习的,也是目前大多数厂商的做法。
中国移动MDM
中国移动MDM是中国移动为企业提供的MDM平台,官网看不出有什么特点,基本功能:
- 多终端统一管理,设备信息统计,密码管理,支持Android以及iOS的手机以及Pad
- 远程锁定和擦除,企业wipe以及恢复出厂设置
- 应用管理,应用统一发布以及批量升级和卸载
- 企业文件分发,利用推送将文件推送给用户,本地加密存储
- 企业数据和个人数据进行隔离,需要使用定制操作系统或者专用终端
- 终端功能限制,相机,蓝牙,WIFI等功能限制
- 设备配置信息,APN,VPN,WIFI,邮箱配置
中国移动MDM提供的基本功能模块和其他厂商的没有什么区别,但是可以通过定制操作系统或专用终端实现双域功能,并且支持三星Knox,这点值得我们学习。
智衍企业移动管理平台
智衍企业移动管理平台在国内算是比较成熟的企业移动解决方案提供者,有以下功能:
- 自带企业门户,可以实现统一企业入口,单点登陆,统一认证,结合自家的推送产品可以实现统一推送
- 自带企业应用商店,应用黑白名单,强制安装卸载,结合企业门户实现多个企业APP之间的单点登陆
- 基本的MDM功能比较完善,具有网络黑白名单管控功能
- 根据组织架构进行文件分发文件操作权限控制
- 有专用的安全浏览器,网页访问和文件下载管控,数据清除,协议黑白名单,网站黑白名单
智衍企业移动管理平台的特点是功能比较全面,且常年耕耘企业移动管理,技术和产品比较成熟,结合自身的移动开发平台,推送平台以及云平台,很容易形成围绕自家产品的生态。
烽火星空MobileArk企业移动管理平台
烽火星空MobileArk企业移动管理平台从产品介绍上看,和智衍差不多,大概功能也很类似,
- 同样具有企业应用开发平台,IM平台,可供第三方厂商集成
- 用户管理采用多租户模式,可以使用本地数据库,AD/LDAP。第三方SSO等方式,实现用户认证
- 基本的MDM功能比较完善,利用企业门户实现应用分发,
- 文档内容加密存储,对授权的应用开放访问权限,由客户端控制对文档的拷贝、黏贴、转发操作
启迪国信NQSky EMM
启迪国信NQSky EMM是国内实力较强的企业移动信息化解决方案提供者,有如下特点
- 提供SDK建立VPN通道,可以介入自家的NQSky EMM 进行准入控制
- 在EMM客户端实现了单点登陆,其他管理应用使用EMM客户端进行认证,实现了统一的身份管理
- 自有的推送服务
- MDM功能比较成熟
- 提供有SDK和API,供其他厂商以及企业应用集成,具有很强的开放能力
- 通过安全接入,身份管理以及推送增强自身能力
启迪国信提供的企业移动信息化解决方案远超出了EMM的范畴,是目前国内比较成熟的厂商,对我们来说很有借鉴意义。
MDM客户端
基本的MDM功能,实现方式在Android有对应的API:
- 数据擦除,恢复出厂设置,密码配置规则都可以通过设备管理器来实现
- 蓝牙,WIFI,网络,摄像机等功能的限制的使用,可以通过Android API实现,
- APN,VPN,WIFI,邮箱配置通过API可以实现
- 应用管理需要通过建立监测服务,以及系统包管理器结合来实现
- 设备信息采集也可通过API获取
这些功能大部分需要通过服务器推送来触发,推送在国内基本上只有两种方式,第三方推送平台以及自建推送服务器,但是不论使用哪种,在客户端都需要考虑进程保活问题。
客户端消息处理
客户端实现消息处理器,大部分的MDM客户端和服务器采用自定义协议,走Socket形式的TCP长连接,接受到消息后传入到消息处理器,由消息处理器解析协议,并根据不同类型的消息进入对应的消息处理模块,在一些场景中,消息处理完毕之后,还需要上报服务器处理的结果。
客户端配置
由于客户端通常面对的是多租户模式的服务器,客户端在一般在注册前,要进行一些简单的配置,或者是在注册时一并进行配置,这些配置包括要注册集团域,IP端口或者是HTTPS信任证书,在FlyvyMDM客户端中采用了二维码的方式进行这些配置,可以值得我们借鉴。
Android for Work
Android5.0之后的特性,可以帮助我们创建另外一个配置文件,区别于私人的配置文件,基于这个配置可以实现在同一台设备上同时支持工作应用和个人应用,工作数据通过work profile和个人数据隔离出来。但是在Android上,需要通过Google Play Services来实现Afw,并且需要去Google购买使用授权,国外一些厂商可以完成这些服务,包括Google自身的App for work团队,VMware的airwatch,以及思杰。
WSO2
WSO2之前提供了一套开源的EMM前后端方案,现在已经升级成了IOT管理服务器,但是依然是开源,增加了物联网设备的管理,Iot Server为我们提供了在功能和代码方面实现的思路,可参考性极大,缺点在于后台基于WSO2的Carbon中间件实现,并且架构比较庞大,理解起来可能比较困难,想彻底理解其中的原理不是一件容易的事情。