蘋果企業(yè)級MDM

根據(jù)2013年蘋果為企業(yè)級MDM提供的文檔 得出以下結論

一佑颇、蘋果MDM可以提供的功能

1粗蔚、概述:

a珍策、基本工作流程

蘋果企業(yè)級MDM方案通過提供一種叫做Configuration Profiles的文件來實現(xiàn)企業(yè)級MDM的安全驗證巾乳;通過IOS MDM COMMAND來實現(xiàn)的各種功能。

這種Configuration Profiles文件實際上是一種XML文件,包含了使設備同企業(yè)級系統(tǒng)協(xié)作的權限。

這種文件是被簽名和加密過的,所以無法改變方援,也無法分享給其他機器。

這種文件被安裝在設備上涛癌,安裝的途徑如下:

a犯戏、使用蘋果官方的「iPhone 配置實用工具.app」創(chuàng)建描述文件,將配置描述文件安裝到通過 USB 端口與電腦連接的設備上拳话;

b先匪、通過電子郵件或網(wǎng)頁分發(fā)配置描述文件;

上述兩種方式是常規(guī)的配置文件安裝方式

企業(yè)級MDM安裝方式如下:

c弃衍、移動設備管理服務器呀非,則可以分發(fā)僅包含服務器配置信息的初始描述文件,然后讓設備以無線方式獲取所有其他描述文件镜盯。

它的工作流程如下:


第一步:將包含了Third-Party MDM Server信息的Configuration Profile發(fā)送到設備岸裙。這將會給用戶呈現(xiàn)哪些信息將會被第三方服務器管理和查詢。

第二步:設備安裝Configuration Profile速缆。

第三步:設備接入降允,第三方服務器驗證設備允許接入。

第四步:第三方服務器通過蘋果推送服務器向設備發(fā)送推送通知艺糜,來通知設備執(zhí)行管理和查詢等操作剧董。(這里涉及到蘋果系統(tǒng)推送通知,后文會介紹)

第五步:設備執(zhí)行完任務后破停,直接與第三方服務器通信翅楼,發(fā)送執(zhí)行結果。

b真慢、IOS MDM COMMAND

在第四步里毅臊,設備執(zhí)行管理和查詢操作是通過IOS MDM COMMAND來實現(xiàn)的,它實現(xiàn)了一種 MDM COMMAND的協(xié)議

所有的指令都是通過plist屬性文件來完成的

比如 下面是一個請求UUID信息的command的plist黑界。它定義了RequestType管嬉、具體的Command指令


請求的響應也是通過plist文件呈現(xiàn)的,如下


蘋果企業(yè)級MDM并不是提供私有API接口园爷,而是將私有API接口的調(diào)用包裝起來宠蚂,僅僅提供這個包裝的接口式撼。

企業(yè)級MDM通過這種方式來保護內(nèi)部API的調(diào)用機制童社。

2、提供的功能

a著隆、設備信息查詢


b扰楼、設備管理


簡單的說 就是提供了以下功能

保證設備安全:遠程鎖定設備呀癣、遠程擦除設備數(shù)據(jù)等

獲取設備信息:如IMEI、UDID等

應用分發(fā):非越獄用戶可以不通過AppStore下載應用程序弦赖、MDM擁有下載安裝app的接口

設備配置:管理員可以通過遠程向iOS設備推送配置文件项栏,配置設備的網(wǎng)絡連接、網(wǎng)絡安全和應用程序設置等

備份和恢復:可以將設備上的數(shù)據(jù)遠程備份到指定的服務器上

二蹬竖、蘋果MDM申請布置流程

1沼沈、基本流程

參考:http://www.reibang.com/p/fef831dfe12c

基本步驟如下

a、申請企業(yè)開發(fā)者賬號币厕;(個人開發(fā)者賬號不能申請MDM證書)(這一步據(jù)說需要至少一個月的時間)

b列另、申請MDM證書;

c旦装、配置MDM服務器页衙,生成Configuration Profile、MDM證書阴绢,并將它們安裝在設備上

d店乐、推送通知,執(zhí)行MDM命令呻袭,獲取結果

2眨八、推送機制

這里順便提一下IOS系統(tǒng)的推送機制(了解的同學可跳過)

蘋果的推送有兩種:本地推送、遠程推送棒妨。這里企業(yè)級MDM推送指令是使用的遠程推送踪古。

a、申請推送證書券腔。這個證書是用來驗證開發(fā)者和對應的開發(fā)應用的伏穆,同時這個證書還用來生成每臺設備的UDID。

b纷纫、app請求使用推送功能枕扫,蘋果推送服務器會通過它的推送證書為這臺設備生成一個UDID發(fā)送給設備。

c辱魁、設備拿到UDID后烟瞧,保存起來,并發(fā)送給自己的服務器存儲起來染簇。

b参滴、每當有遠程推送需求的時候,自己的服務器將向蘋果服務器發(fā)送一個指令锻弓,要給哪臺設備(UDID)發(fā)送怎樣的推送砾赔,然后由蘋果服務器給設備發(fā)送推送通知。(當然,在注冊使用推送的時候暴心,用戶要同意接收這個app的推送通知)

三妓盲、用與不用蘋果MDM的區(qū)別

1、當前實現(xiàn)的demo中介紹

手機狀態(tài)監(jiān)控模塊實現(xiàn)如下:

地理位置同步 模塊實現(xiàn)如下:

應用列表管理模塊實現(xiàn)如下:

2专普、用與不用MDM企業(yè)級的區(qū)別

由于MDM中涉及到的功能基本都是需要使用apple的私有API的悯衬。

而使用私有API的風險如下:

a、不清楚蘋果內(nèi)部調(diào)用這些特定私有API的機制檀夹。也不清楚這些機制會不會隨著版本的變更而變動筋粗。

如,獲取應用管理列表這個功能里炸渡,需要事先獲取LSApplicationWorkspace的defaultworkspace亏狰,然后再在里面獲取每一個應用的信息合集LSApplicationProxy。

如偶摔,短信監(jiān)聽里 需要在IMDaemon中_loadServices里去調(diào)用didReceiveMessage函數(shù)暇唾。直接調(diào)用didReceiveMessage是沒用的。

b辰斋、API隨著系統(tǒng)版本的提升不斷的改變策州。

如,鎖屏API 在IOS5宫仗、6够挂、7中可以調(diào)用GraphicsServices.framework/GraphicsServices中的GSEventLockDevice()函數(shù);在8藕夫、9中GraphicsServices.framework/GraphicsServices已經(jīng)沒有這個函數(shù)了

如孽糖,獲取IMEI函數(shù) 在IOS5、6中可以通過[self?coreTelephonyInfoForKey:@"kCTMobileEquipmentInfoIMEI"];在IOS7中可以通過getValue(@"device-imei");來實現(xiàn) 在IOS8毅贮、9中均失效

可以肯定的是办悟,apple將會逐步完善保護私有API不被泄露使用,同時apple內(nèi)部的API調(diào)用機制不被人知滩褥。

class-dump可以dump出OC函數(shù)病蛉,然而并不能dump出C函數(shù),apple正是逐步將隱私API轉(zhuǎn)換成C函數(shù)瑰煎。

不用蘋果MDM并不是不能夠開發(fā)出企業(yè)級MDM的功能(如上面所述也開發(fā)出來了應用列表管理)铺然,只不過以上的風險使得開發(fā)的難度變得很大,難度主要在

a酒甸、不同IOS版本各種功能的適配

b魄健、搞清楚這些API的調(diào)用機制、這些API的變動需要花費非常多的時間

c插勤、目前系統(tǒng)內(nèi)部并沒有一套完善的解析IOS系統(tǒng)內(nèi)部機制的方法(應該要使用逆向工程)沽瘦;以上開發(fā)出來的功能都是我在網(wǎng)上找的柬甥,網(wǎng)上有的就可以試試,沒有的就沒辦法了

而使用蘋果企業(yè)MDM 仍然無法了解其系統(tǒng)內(nèi)部的機制 原因在IOS MDM COMMAND中有闡述過

使用蘋果企業(yè)MDM 除了第一其垄、二部分介紹的流程外,強調(diào)一點:

它不需要使用app卤橄,僅僅需要在手機上配置描述文件(Configuration Profile)绿满、建立服務器即可。

參考資料:http://blog.csdn.net/zhaoxy_thu/article/details/10473193

2窟扑、描述文件安全概覽

http://www.reibang.com/p/fef831dfe12c

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喇颁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子嚎货,更是在濱河造成了極大的恐慌橘霎,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件殖属,死亡現(xiàn)場離奇詭異姐叁,居然都是意外死亡,警方通過查閱死者的電腦和手機洗显,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門外潜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人挠唆,你說我怎么就攤上這事处窥。” “怎么了玄组?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵滔驾,是天一觀的道長。 經(jīng)常有香客問我俄讹,道長哆致,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任患膛,我火速辦了婚禮沽瞭,結果婚禮上,老公的妹妹穿的比我還像新娘剩瓶。我一直安慰自己驹溃,他們只是感情好,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布延曙。 她就那樣靜靜地躺著豌鹤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪枝缔。 梳的紋絲不亂的頭發(fā)上布疙,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天蚊惯,我揣著相機與錄音,去河邊找鬼灵临。 笑死截型,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的儒溉。 我是一名探鬼主播宦焦,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼顿涣!你這毒婦竟也來了波闹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤涛碑,失蹤者是張志新(化名)和其女友劉穎精堕,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蒲障,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡歹篓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了揉阎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滋捶。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖余黎,靈堂內(nèi)的尸體忽然破棺而出重窟,到底是詐尸還是另有隱情,我是刑警寧澤惧财,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布巡扇,位于F島的核電站,受9級特大地震影響垮衷,放射性物質(zhì)發(fā)生泄漏厅翔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一搀突、第九天 我趴在偏房一處隱蔽的房頂上張望刀闷。 院中可真熱鬧,春花似錦仰迁、人聲如沸甸昏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽施蜜。三九已至,卻和暖如春雌隅,著一層夾襖步出監(jiān)牢的瞬間翻默,已是汗流浹背缸沃。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留修械,地道東北人趾牧。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像肯污,于是被迫代替她去往敵國和親翘单。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理仇箱,服務發(fā)現(xiàn),斷路器东羹,智...
    卡卡羅2017閱讀 134,629評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,756評論 25 707
  • 老爸覺得這盒子好看 讓我?guī)砗贾?一開始 我是拒絕?的 公司小零件太多 什么筆削 鏡子 ?? 如今一掃而光 安安靜...
    PWong閱讀 343評論 0 0
  • 邊際人脈 翻看自己的微信聯(lián)系人Or QQ好友斟薇,數(shù)一數(shù)未來1.2年內(nèi)甚至一輩子都很有可能見不到一次面的朋友有多少,最...
    井底浛閱讀 1,354評論 0 3