企业移动管理技术的探索与分析

2015-12-25 11:51王川牟琳雷灵光向继
软件 2015年8期

王川++牟琳++雷灵光++向继

摘要:随着移动设备在企业中的大批出现,不同设备、不同操作系统平台、大量移动应用程序的管控让IT部门捉襟见肘。为此,企业移动管理系统(简称,EMMS)应运而生。然而,从目前来看EMMS仍然是一个正在发展中的产业,相关的功能和技术仍然在不断的探索和完善中。本文从技术层面,探索和分析iOS和Android平台EMMS功能的发展现状,包括产业模式、管控机制实施过程、功能支持程度等,并通过对比分析探讨不同实现方案的优势和劣势,以及其中可能存在的安全隐患,为iOS和Android平台EMMS产品的设计和开发提供参考,也为选择EMMS产品的企业提供客观的了解。同时,期望能在总结中对EMMS的未来发展提供一些思考。

关键词:企业移动管理;移动应用管理;移动设备管理;移动内容管理;COPE设备;BYOD设备

中图分类号:TP311

文献标识码:A

DOI:10.3969/j.issn.1003-6970.2015.08.010

0 引言

随着移动设备的普及,越来越多的移动应用程序在企业的管理和办公中发挥重要作用,为企业提供了高效和便利。然而,伴随着移动设备在企业中的大批出现,不同设备、不同操作系统平台、大量移动应用程序的管控让IT部门捉襟见肘。为此,企业移动管理系统(简称,EMMS)应运而生,EMMS充分利用移动互联网、智能移动终端,为企业提供集移动设备管理(简称MDM)、移动应用管理(简称,MAM)、移动内容管理(简称MCM)于一体的全方位解决方案,从而更好的帮助企业解决COPE(企业下发设备)设备的统一综合管控和BYOD(员工自带设备)设备的安全应用。随着EMMS需求的凸显,许多大型IT产商也开始竞相角逐企业移动管理市场,着手研制企业移动管理系统或斥巨资收购成熟的企业移动管理产品。比如,2014年1月,虚拟软件巨头VMware公司以15.4亿美元的价格收购移动设备管理领域顶级公司AirWatch。然而,从目前来看,EMMS仍然是一个正在发展中的产业,相关的功能和技术仍然在不断的探索和完善中。本文力图从技术层面对EMMS的现状作一个总结和分析,以期在总结中对EMMS的未来发展提供一些思考。

EMMS提供的管控功能主要是针对移动终端设备、设备上的应用、设备上的文档等,必须依托于移动终端设备来完成,因此离不开移动终端操作系统的支持。主流的移动操作系统如iOS、Android等也逐渐在系统底层提供了EMMS相关功能的支持。比如Apple从iOS5开始提供MDM管控的相关功能,并且随着iOS6、iOS7、iOS8的发布,可以实施的管控功能不断增加;Google从Android2.2开始提供MDM管控功能,但是相比iOS,Android系统提供的管控功能非常有限。除了管控能力支持有差异,iOS和Android系统在EMMS功能的实现原理上也有很大不同。本文从技术层面,探索和分析iOS和Android平台EMMS功能的发展现状,包括产业模式、管控机制实施过程、功能支持程度等,并通过对比分析探讨不同实现方案的优势和劣势,以及其中可能存在的安全隐患,为iOS和Android平台EMMS产品的设计和开发提供参考,也为选择EMMS产品的企业提供客观的了解。

1 iOS平台企业移动管理技术

iOS平台的企业移动管理采用Server-based机制,即所有关键的管控操作(比如设备功能的禁用和启用)都是由服务器端发起的,客户端能够自主管控的功能非常有限。本节从产业模式、管控机制实施过程、功能支持程度等方面分析iOS平台的企业移动管理技术。

1.1 产业模式

苹果在运营上采用比较封闭的系统生态,不仅iOS源码本身不开放,一般情况下,第三方系统想要接人iOS环境,都需要通过苹果的认证和管控。比如,第三方开发的APP必须通过苹果审核才能公开发布,而且只能通过iOS系统自带的App Store进行下载和安装(除非系统越狱)。在EMMS功能上,苹果也沿袭了一贯的封闭模式:首先,对开发者进行限制,在开发EMMS系统之前,苹果会对开发EMMS系统的企业资质进行认证,认证通过并获得企业开发证书之后才能着手开发iOS EMMS系统(具体参考0);其次,对管控的实施进行限制,在EMMS系统的运行中,必须使用苹果的推送服务器(简称APNS)下发管控策略,才能对iOS设备及设备上的应用实施管控,而且必须申请苹果颁发的APNS证书(具体参考0);最后,对能够进行的管控操作进行限制(具体参考0),企业开发的EMMS系统能够进行的管控仅限于苹果在MDM开发协议中定义和提供的。通过这些限制,苹果很容易对产业整体生态环境的安全性进行掌控,比如一旦发现某个企业的证书被恶意使用,直接撤销下发的企业证书或撤销APNS证书即可使EMMS的管控失效。

1.2 管控机制实施过程

前文提到苹果的EMMS管理采用Server-based机制,而且对开发者、管控流程进行了限制,这些可以在EMMS的管控机制实施过程中看到。总体来说,苹果采用图1所示EMMS管控框架,系统至少包含三部分,即被管控设备、执行管控的服务器、APNS,设备注册和管控的实施流程为:1)iOS客户端通过有线或无线的方式安装MDM管控配置文件(图1所示的Mdm.mobileconfig文件),在该文件中指定一个设备注册和管控指令获取的URL地址(服务器地址);2)iOS系统向所指定的设备注册URL发送注册请求,请求成功后设备进入监管状态;3)当需要下发管控操作(比如锁屏)或设备策略(比如密码策略、设备限制策略等)时,服务器端推送管控通知至APNS;4)APNS收到服务器端的管控通知,发送通知告知客户端有新的管控命令(仅发送一个简单的告知有新命令的消息,而不发送具体的命令);5)被管控的设备接收到消息,连接至管控指令获取URL,获取管控指令,执行管控操作并反馈执行结果。从该流程可以看出,客户端和服务器之间无需维护长连接,当需要下发管控指令时,服务器端只能通过APNS服务器唤醒设备,由设备主动连接服务器并获取管控指令,当管控指令执行完毕,客户端和服务器之间断开连接。而且iOS设备上无需安装客户端代码,苹果把执行管控指令和策略的功能内置到iOS系统底层。为此,苹果提供了一套标准规范对管控操作的发起进行限定,企业移动管理服务器只能按照标准的格式组装管控代码并配置服务器,才能保证管控操作正确、安全的执行。

首先,企业移动管理服务器只能通过苹果的APNS服务器进行管控指令和策略的下发,并且策略和指令必须按照苹果预先定义的格式进行组装才能在客户端正常执行,即XML格式的plist文件,图所示为iOS锁屏命令对应的plist文件。

其次,企业移动管理服务器必须接受iOS设备和APNS的认证后,才能正常发起管控,具体为:1)企业移动管理服务器必须配置为SSL服务器(图所示的SSL证书),iOS设备上通过安装SSL服务器证书的根证书对企业移动管理服务器进行认证.该根证书包含在图所示的Mdm.mobileconfig文件中(即图所示的SSL根证书,当为多级证书时,需要包含所有证书链上的证书),iOS设备通过HTTPS方式获取管控指令。可选地,企业管理服务器也可以对iOS设备进行认证,基于图所示的Device证书,该证书包含在Mdm.mobileconfig文件中;2)APNS认证企业移动管理服务器的管控推送请求,企业移动管理服务器通过APNS下发的管控通知使用苹果下发的一个推送证书(即图所示的APSP.p12)进行签名,认证通过后APNS才将管控通知转发至对应的iOS设备。

iOS平台的企业移动管理已经形成了一套较为标准、规范的操作流程,作为Server-based的管控机制,在管控实施过程中,苹果针对企业移动管理服务器提出了一套较为严格的安全要求,这在一定程度上保证了苹果的企业移动管理生态系统整体的安全性。

1.3 功能支持程度

在移动管理功能的支持上,苹果从iOS5开始引入MDM管控功能,在每次版本更新时就进一步丰富管控功能。总体来说,功能比较多,包含了设备设置、设备信息提取、设备管控、应用管控等,具体如表1所示。

2 Android平台企业移动管理技术

与iOS平台不同,Android平台的企业移动管理采用API-based机制,即所有关键的管控操作都是由客户端通过调用相关API实现的。为了对比分析方便,本节也从产业模式、管控机制实施过程、功能支持程度等方面分析Android平台的企业移动管理技术。

2.1 产业模式

谷歌的Android系统采用非常开放的系统生态:首先,Android系统本身是开放的,由于源代码开放,任何产商都可以修改并发布自己的Android系统及适配的移动终端;其次,Android应用发布是开放的,Android系统对第三方应用的发布没有硬性要求,无论是发布在官方应用商店(GooglePlay),还是第三方应用商店,都可以正常在Android移动终端下载、安装、运行,而且官方商店的应用发布无需通过像苹果AppStore那样严格的审核机制。在EMMS功能上,Android也采用比较开放的模式:首先,对开发者没有限制,任何熟悉Android应用开发和服务器开发的技术人员都可以很容易的开发并搭建自己的EMMS系统;其次,管控的实施过程完全由开发者自己控制,Android开放了可以进行设备管控的API,管控服务器、客户端、服务器和客户端之间的通信机制完全由开发者自行设计和实现,Android系统不做限制和要求。在管控功能的支持方面,由于管控主要是针对设备进行,因此能够进行的管控操作仅限于谷歌开放的管控API。但是理论上,由于Android系统本身是源代码开放的,因此只要开发者技术足够强,可以通过修改Android系统代码实现所有管控功能。

2.2 管控机制实施过程

Android平台EMMS功能采用API-based的实现方式,基于开放的设备管控API,开发者可以实现本地或远程的设备管控。与iOS平台不同,Android平台管控功能的实现主要在于客户端管控功能的激活和实现,对服务器端和通信机制不做要求,客户端的管控功能实施流程如下:

1)客户端应用程序需要注册一个广播服务类(继承自DeviceAdminReceiver)组件,并在该组件中包含如下三个信息:

申请管控权限,即android.permission.BIND—DEVICE_ADMIN

声明管控权限清单,下述方框为一个示例,声明该应用程序会进行密码限制、强制锁屏、擦除数据等管控操作

将应用注册为设备管理器,即在中添加

2)开发者选择合适的时刻激活应用程序的设备管控功能,在激活时会弹出对话框提示用户该应用申请为设备管理应用并能够对设备进行清单所示的管控操作,只有用户手动激活后应用才真正拥有设备管控权限。

3)通过用户确认后,开发者可以通过DevicePolicyManager类的相关接口发起”管控权限清单”中声明的管控操作。

在该流程中,管控权限的真正授予由用户参与,并且用户可以随时进入“设备管理器”查看申请设备管理权限的应用列表,手动激活或取消特定应用的设备管控功能。

2.3 功能支持程度

Android平台官方支持的管控功能比较有限,标准接口只提供少量MDM管控功能,通过DevicePolicyManager类的开放API接口实现,具体如表2所示:

3 对比分析

随着企业对EMMS系统的需求越来越普遍和急迫,苹果公司和谷歌公司也在其发布的新版本iOS和Android系统中不断丰富对设备管控功能的支持,而且后期势必会继续完善对EMMS功能的支持。由于系统生态环境不同,二者采用完全不同的方案,iOS仍然保留其封闭策略,Android则继续它的开放路线。本节从使用者和开发者两个角度分别分析不同的实施方案对用户的影响。

首先,从EMMS系统开发者的角度来看,二者存在以下几个不同:1)门槛不同:iOS平台EMMS系统的开发门槛比较高,苹果对开发EMMS系统的开发者进行严格的身份审核,只有确认开发者为企业级用户才会授予企业开发者权限并允许其开发EMMS系统;在Android平台上,谷歌对开发者没有限制,任何人(包括企业和个人)都可以开发和搭建EMMS系统。2)灵活性不同:iOS平台采用Server-based的管控模式,Android平台采用Device-based(或者API-based)的管控模式,由于EMMS主要是针对设备进行管控,因此Android平台更容易实现一些细粒度的管控,比如特定时间打开相机功能、特定地点关闭网络功能等;而iOS平台,实现类似的管控需要客户端和服务器端之间进行多次的网络交互,因此需要保证较好的网络连通性,对于特定地点(比如保密场所)禁用网络功能等,由于没有网络则无法实现。3)开发难易程度不同:从0和0节的分析可以看出,iOS平台提供的标准EMMS功能比较丰富,包括大量的设备管控和应用管控功能,开发者只需要遵循苹果提供的标准MDM开发手册进行EMMS系统的开发,而且客户端硬件和软件版本比较有限,在平台兼容性实现方面也比较容易;而Android平台的标准开放接口仅能够进行相机管控、密码策略配置等少量的设备管控功能,对蓝牙、数据网络、本地应用等大部分的设备管控和应用管控只能由开发者通过非常规的手段实现,因此要求开发者熟悉Android系统的相关底层机制(而不仅仅是开放的API接口),此外Android平台从硬件到系统软件差异非常大,实现平台兼容性需要耗费较大精力。4)开发成本不同:iOS平台开发EMMS系统需要缴纳299美元/年的企业开发账号费用,而Android平台开发EMMS系统则完全免费。

其次,从EMMS系统使用者的角度来看,二者存在以下几个不同:1)系统安全性:在iOS平台上,苹果对EMMS系统的开发者进行限制,而且要求开发者采用苹果定义的一套安全认证机制来配置EMMS系统,并强制客户端和服务器之间采用SSL协议进行通信,由此从整体上保证了EMMS系统的安全性;而Android平台上,是否进行管控服务器的认证以及通信通道的安全保护完全由EMMS系统开发者决定,而且认证和安全保护的方案也由开发者自行设计,因此可能造成系统安全性参差不齐的情况。2)系统功能的规范性和稳定性:iOS平台提供的标准管控功能比较丰富,而且开发者只能遵循苹果提供的标准MDM开发手册进行EMMS系统的开发,因此可以确保功能的实现效果的一致性和规范性;Android平台提供的标准管控功能非常有限,为了达到运营的目的EMMS系统提供商需要通过一些非常规手段实现更丰富的管控功能,比如浏览器、Email、设置等本地应用以及蓝牙、移动网络等设备功能的管控,由于平台的差异性和实现方案的不同可能影响产品整体的规范性和稳定性。3)平台兼容性:iOS平台的终端产品类型比较有限,而且都是苹果研制的,加之苹果对EMMS系统的实现制定了一套专门的标准,因此可以实现较好的平台兼容性;而Android平台首先在EMMS功能上很多管控无法通过标准的接口实现,加之Android平台从硬件到系统差异性非常大,因此较难实现完全的平台兼容性。

4 结束语

作为一个新兴和正在发展中的产业,市场和企业对EMMS的功能需求仍在不断完善,不同操作系统平台对EMMS的功能支持也在不断丰富。总体来看,由于系统生态的差异,不同平台在EMMS功能的实现机制方面有较大差别,由此可能导致EMMS产品整体安全性、实现规范性上会有所不同。此外,当前不同平台对EMMS功能的支持更多体现在MDM和MAM方面,对MCM功能的特别支持暂无体现,仍需进一步完善。