国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Android與iOS終端安全機(jī)制比較分析

2015-05-11 05:40何國鋒HeGuofengZengYing
互聯(lián)網(wǎng)天地 2015年11期
關(guān)鍵詞:密鑰應(yīng)用程序終端

何國鋒,曾 瑩/He Guofeng,Zeng Ying

(中國電信股份有限公司上海分公司 上海200085)

1 引言

移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,離不開移動(dòng)數(shù)據(jù)網(wǎng)絡(luò)和移動(dòng)智能終端的發(fā)展。移動(dòng)數(shù)據(jù)網(wǎng)絡(luò)從GPRS/cdma1x 2G時(shí)代開始,經(jīng)歷了WCDMA/Ev-Do時(shí)代,一直到4G時(shí)代,網(wǎng)絡(luò)速度大大提升。移動(dòng)智能終端市場出現(xiàn)過 Symbian、Windows Phone、Android 以及iOS等多個(gè)操作系統(tǒng),有些已經(jīng)退出市場,有些卻成為市場主流,縱觀當(dāng)前各種活躍的移動(dòng)應(yīng)用,主要仍以iOS和Android兩大陣營為主。

到2014年年底,智能手機(jī)全球出貨量達(dá)12.86億部,中國市場智能手機(jī)出貨量也達(dá)4.5億部,而全球智能手機(jī)用戶數(shù)量更是達(dá)17.5億人。在全球大多數(shù)發(fā)達(dá)地區(qū),如北美、西歐等部分國家,智能手機(jī)的滲透率已超過六成;在全球智能手機(jī)整體出貨量中,Android智能手機(jī)出貨量達(dá)10.6億部,市場份額高達(dá)82.3%;蘋果智能手機(jī)出貨量為1.78億部,市場份額為14%;微軟 Windows Phone智能手機(jī)出貨量為3 500萬部,市場占有率僅為2.7%[1]。

智能手機(jī)的發(fā)展與普及也為移動(dòng)應(yīng)用的快速發(fā)展帶來了契機(jī),越來越多的工作應(yīng)用和生活應(yīng)用在移動(dòng)終端上被用戶使用。與傳統(tǒng)手機(jī)相比,移動(dòng)智能終端已經(jīng)成為信息獲取和傳播越來越重要的載體,并開始影響和改變?nèi)藗兊墓ぷ骱蜕?,因此,移?dòng)終端的安全性也顯得愈加重要。

不同陣營的移動(dòng)智能終端由于設(shè)計(jì)理念的差異,其安全機(jī)制也不盡相同。只有深入了解其安全機(jī)制,才能充分利用其優(yōu)勢,設(shè)法彌補(bǔ)其不足,提升其安全性。本文將圍繞移動(dòng)終端兩大陣營剖析其安全機(jī)制,并通過對比分析,最終提出安全建議。

2 移動(dòng)終端安全機(jī)制的總體架構(gòu)

客戶對智能終端通常有以下幾個(gè)主要方面的安全需求。

(1)數(shù)據(jù)存儲(chǔ)安全

這是客戶最核心的安全需求,例如,存在閃存中的數(shù)據(jù)是否安全?是否會(huì)被其他人通過非法途徑獲?。恳恍┓欠☉?yīng)用是否會(huì)偷偷讀取用戶數(shù)據(jù)?或者他人拿到終端通過芯片分析是否能獲得原始數(shù)據(jù)?這需要在應(yīng)用級(jí)、系統(tǒng)級(jí)、設(shè)備級(jí)層面都進(jìn)行充分考慮。

(2)應(yīng)用安全可信

安裝的應(yīng)用來源是否可信?一個(gè)非法應(yīng)用一旦被安裝在設(shè)備上,并且給予了授權(quán),設(shè)備上的數(shù)據(jù)就變得不可控。同時(shí)考慮不同應(yīng)用運(yùn)行時(shí)是否有隔離,應(yīng)用中輸入的數(shù)據(jù)是否會(huì)被其他應(yīng)用截獲。

(3)身份認(rèn)證和權(quán)限管理

通俗地說,這就是合適的人使用合適的工具,訪問合適的數(shù)據(jù)。設(shè)備是否有合適的手段進(jìn)行訪問控制,設(shè)置只有授權(quán)人員才能訪問終端;是否有合適的手段進(jìn)行權(quán)限控制,設(shè)置不同的應(yīng)用僅能訪問的授權(quán)數(shù)據(jù)。

(4)網(wǎng)絡(luò)安全

在用戶對外傳輸數(shù)據(jù)時(shí),要確保其他應(yīng)用不能獲得傳輸?shù)臄?shù)據(jù)。

為了便于分析,通常將移動(dòng)智能終端模型分為5個(gè)層次,如圖1所示。

最底層是硬件,主要包括終端的CPU、內(nèi)存、存儲(chǔ)為主的設(shè)備單元,組成一個(gè)可計(jì)算的終端。

固件則是在微代碼層面組織各硬件單元,為上層操作系統(tǒng)提供標(biāo)準(zhǔn)化接口。硬件和固件組成一個(gè)可安裝操作系統(tǒng)的智能終端。

操作系統(tǒng)可以分為兩部分,一部分是操作系統(tǒng)核心,主要負(fù)責(zé)文件系統(tǒng)管理、進(jìn)程調(diào)度等;另一部分是運(yùn)行環(huán)境,主要包括沙箱、網(wǎng)絡(luò)隔離、內(nèi)存控制、接口獨(dú)占等。

應(yīng)用則是客戶使用的功能軟件。

各個(gè)層面安全需求考慮的安全因素也不盡相同。硬件層面需要考慮終端的CPU是否安全,內(nèi)存數(shù)據(jù)是否會(huì)被竊取,存儲(chǔ)中的數(shù)據(jù)是否安全被保護(hù);固件層面需要考慮固件是否會(huì)被替換,是否存在安全漏洞等;操作系統(tǒng)核心需要考慮文件系統(tǒng)是否安全,進(jìn)程間是否有漏洞;運(yùn)行環(huán)境需要考慮網(wǎng)絡(luò)數(shù)據(jù)是否隔離,內(nèi)存是否共享,接口是否獨(dú)占等;應(yīng)用層面需要考慮應(yīng)用是否合法,代碼是否被篡改,是否存在漏洞等。

下面將分析當(dāng)前市場兩大移動(dòng)終端陣營分別是如何保障安全的。

3 Android安全機(jī)制

3.1 軟件層次結(jié)構(gòu)

Android是業(yè)界流行的開源移動(dòng)平臺(tái),受到廣泛關(guān)注并被多個(gè)手機(jī)制造商作為手機(jī)的操作系統(tǒng)平臺(tái)。Android作為一個(gè)移動(dòng)設(shè)備的平臺(tái),其軟件層次結(jié)構(gòu)包括操作系統(tǒng)(OS)、中間件(MiddleWare)和應(yīng)用程序(Application)。根據(jù)Android的軟件框圖,其軟件層次結(jié)構(gòu)自下而上分為以下4個(gè)層次[2],如圖2所示。

(1)操作系統(tǒng)層

Android使用Linux 2.6作為操作系統(tǒng),Linux是一個(gè)開放的操作系統(tǒng),Linux 2.6也是一種標(biāo)準(zhǔn)技術(shù)。Android對操作系統(tǒng)的使用包括核心和驅(qū)動(dòng)程序兩部分,Android的Linux核心為標(biāo)準(zhǔn)的Linux 2.6內(nèi)核;驅(qū)動(dòng)包括顯示、內(nèi)存、相機(jī)、音頻、Wi-Fi、鍵盤、藍(lán)牙、電源燈。

(2)Android 運(yùn)行環(huán)境

Android運(yùn)行環(huán)境包括各種底層庫和虛擬機(jī)。其中,庫主要包括C庫、多媒體框架、2D圖像引擎、SSL、OpenGL、界面管理工具、SqLite、WebKit、FreeType等。庫以系統(tǒng)中間件的形式提供,與移動(dòng)設(shè)備的平臺(tái)應(yīng)用密切相關(guān)。

Android運(yùn)行環(huán)境中的虛擬機(jī)技術(shù)使用Dalvik。Dalvik虛擬機(jī)和一般Java虛擬機(jī)(Java VM)不同,它執(zhí)行的不是Java標(biāo)準(zhǔn)的字節(jié)碼(Bytecode),而是Dalvik可執(zhí)行格式(.dex)的執(zhí)行文件。在執(zhí)行過程中,每一個(gè)應(yīng)用程序即一個(gè)進(jìn)程 (Linux的一個(gè)Process)。二者最大的區(qū)別在于Java VM是基于棧的虛擬機(jī)(Stack-Based),而 Dalvik是基于寄存器的虛擬機(jī)(Register-Based)。后者最大的好處在于可以根據(jù)硬件實(shí)現(xiàn)更大的優(yōu)化,這更適合移動(dòng)設(shè)備的特點(diǎn)。

(3)應(yīng)用程序框架

Android的應(yīng)用程序框架為應(yīng)用程序?qū)拥拈_發(fā)者提供APIs。主要提供UI程序中所需控件:Views(視圖組件),包括 Lists(列表)、Grids(柵格)、Text Boxes(文本框)、Buttons(按鈕)等以及嵌入式的Web瀏覽器。Android的應(yīng)用程序可以利用應(yīng)用程序框架中的API開發(fā)以下幾個(gè)組件:Activity(活動(dòng))、Broadcast Intent Receiver(廣播意圖接收者)、Service(服務(wù))、Content Provider(內(nèi)容提供者)。

(4)應(yīng)用程序

Android的應(yīng)用程序主要是用戶界面(User Interface),通常以Java程序編寫,其中還可以包含各種資源文件(放置在res目錄中)。Java程序及相關(guān)資源經(jīng)過編譯后,將生成一個(gè)APK包。Android本身提供了主屏幕(Home)、聯(lián)系人(Contact)、電話(Phone)、瀏覽器(Browsers)等眾多的核心應(yīng)用。 同時(shí),應(yīng)用程序的開發(fā)者還可以使用應(yīng)用程序框架層的API實(shí)現(xiàn)自己的程序。

Android主要從系統(tǒng)安全、權(quán)限管理、數(shù)據(jù)保護(hù)、應(yīng)用安全4個(gè)方面進(jìn)行安全設(shè)計(jì)。

3.2 系統(tǒng)安全

Android采用開源模式,OS和終端生產(chǎn)商沒有綁定關(guān)系。因此,在系統(tǒng)設(shè)計(jì)時(shí),硬件和軟件采用松耦合設(shè)計(jì)。

由于Android是基于Linux 2.6的,因此大部分沿用了Linux的系統(tǒng)安全特性。Linux系統(tǒng)是開源的,并且在業(yè)界廣泛使用,代碼經(jīng)過數(shù)萬人檢查,其安全性值得信賴。

在硬件設(shè)備啟動(dòng)時(shí),會(huì)啟動(dòng)設(shè)備自身的固件,固件再啟動(dòng)Android系統(tǒng)。在初次安裝Android系統(tǒng)時(shí),固件會(huì)檢查Android系統(tǒng)的完整性,然后才能進(jìn)行安裝,一般而言,終端廠商會(huì)驗(yàn)證是否為自己公司所簽發(fā)的系統(tǒng)。如果設(shè)備上安裝的是第三方的操作系統(tǒng),則首先修改引導(dǎo)固件。

在Android系統(tǒng)中,不會(huì)對最終用戶開放Root權(quán)限,這利用了Linux本身的管理機(jī)制。因此,一般用戶無法修改系統(tǒng)Kennel,甚至系統(tǒng)級(jí)應(yīng)用。一些用戶為了精簡系統(tǒng),修改系統(tǒng)核心,則需要獲得Root權(quán)限,即所謂的Root,然而Root后會(huì)給系統(tǒng)帶來安全風(fēng)險(xiǎn)。

3.3 權(quán)限管理

Android系統(tǒng)是一個(gè)權(quán)限分離的系統(tǒng),利用Linux已有的權(quán)限管理機(jī)制,通過為每一個(gè)應(yīng)用程序分配不同的用戶標(biāo)識(shí)(UID)和GID,從而使得不同應(yīng)用程序之間的私有數(shù)據(jù)和訪問(Native以及Java層通過這種Sandbox機(jī)制,都可以實(shí)現(xiàn))達(dá)到隔離的目的。系統(tǒng)中的UID分為3類,即普通用戶、根用戶和系統(tǒng)用戶。普通用戶是指所有使用系統(tǒng)的真實(shí)用戶,這類用戶可以使用用戶名及密碼登錄系統(tǒng);根用戶也就是Root用戶,它的ID是0,也被稱為超級(jí)用戶,Root賬戶擁有對系統(tǒng)的完全控制權(quán),可以修改、刪除任何文件,運(yùn)行任何命令;系統(tǒng)用戶是指系統(tǒng)運(yùn)行時(shí)必須有的用戶,但并不是指真實(shí)的使用者。在Android系統(tǒng)中,一個(gè)UID表示一個(gè)應(yīng)用程序。應(yīng)用程序在安裝時(shí)被分配UID,應(yīng)用程序在設(shè)備上的存續(xù)期間內(nèi),UID保持不變。對于普通的應(yīng)用程序,GID即UID。

與此同時(shí),Android還在此基礎(chǔ)上進(jìn)行擴(kuò)展,提供了Permission機(jī)制,它主要是用來對應(yīng)用可以執(zhí)行的某些具體操作進(jìn)行權(quán)限細(xì)分和訪問控制,同時(shí)提供了PER-URI權(quán)限機(jī)制,用來提供對某些特定的數(shù)據(jù)塊進(jìn)行點(diǎn)到點(diǎn)方式的訪問。

在系統(tǒng)底層上,Android限制了應(yīng)用對一些API的存取,如Android并不提供直接操縱SIM卡的API。當(dāng)?shù)谌紸PP存取相關(guān)地理位置、相機(jī)、藍(lán)牙、短信等受保護(hù)的API時(shí),需要得到使用者另外的許可。

在Android系統(tǒng)中,對權(quán)限的管理是在應(yīng)用安裝時(shí)確定的,一般在Mainfest中描述,如果用戶不能接受應(yīng)用的權(quán)限需求,則不能安裝應(yīng)用。在Android 4.2后,也可以在安裝應(yīng)用后再更改權(quán)限。

3.4 數(shù)據(jù)保護(hù)

Android系統(tǒng)采用進(jìn)程沙箱隔離、權(quán)限聲明、訪問控制、進(jìn)程通信、內(nèi)存管理等機(jī)制來確保系統(tǒng)及應(yīng)用的數(shù)據(jù)安全。

(1)進(jìn)程沙箱隔離機(jī)制

Android應(yīng)用程序在安裝時(shí)被賦予獨(dú)特的UID,并永久保持,應(yīng)用程序及其運(yùn)行的Dalvik虛擬機(jī)運(yùn)行于獨(dú)立的Linux進(jìn)程空間,與UID不同的應(yīng)用程序完全隔離。同一開發(fā)者可指定不同的應(yīng)用程序共享UID,進(jìn)而運(yùn)行于同一進(jìn)程空間,共享資源。使用相同數(shù)字簽名的不同應(yīng)用程序可以相互授予權(quán)限來訪問基于簽名的API。如果應(yīng)用程序共享UID,則可以運(yùn)行在同一進(jìn)程中,從而允許彼此訪問對方的代碼和數(shù)據(jù)。

(2)權(quán)限聲明機(jī)制

應(yīng)用程序需要顯式聲明權(quán)限、名稱、權(quán)限組與保護(hù)級(jí)別。不同的級(jí)別要求應(yīng)用程序行使此權(quán)限時(shí)的認(rèn)證方式不同:普通級(jí)申請即可用;敏感級(jí)需在安裝時(shí)由用戶確認(rèn)才可用;系統(tǒng)級(jí)則必須是系統(tǒng)用戶才可用。

(3)訪問控制機(jī)制

來自于阿美或自他承包商,有能力、經(jīng)驗(yàn)和資格識(shí)別腳手架安全風(fēng)險(xiǎn),驗(yàn)證腳手架是否符合阿美相關(guān)標(biāo)準(zhǔn)要求,同時(shí)記錄腳手架檢查及驗(yàn)收結(jié)果。腳手架檢查工程師也必須經(jīng)過阿美認(rèn)證,其證書有效期也是三年

傳統(tǒng)的Linux訪問控制機(jī)制能確保系統(tǒng)文件與用戶數(shù)據(jù)不受非法訪問。APP只有通過Android系統(tǒng)許可權(quán)檢查后,才可以存取個(gè)人信息,進(jìn)行敏感性輸入設(shè)備。

(4)進(jìn)程通信機(jī)制

Android采用Binder進(jìn)程通信機(jī)制,提供基于共享內(nèi)存的高效進(jìn)程通信。Binder基于Client-Server模式,提供類似COM與CORBA的輕量級(jí)遠(yuǎn)程進(jìn)程調(diào)用(RPC),通過接口描述語言(AIDL)定義接口與交換數(shù)據(jù)的類型,確保進(jìn)程間通信的數(shù)據(jù)不會(huì)溢出越界、污染進(jìn)程空間。

(5)內(nèi)存管理機(jī)制

基于標(biāo)準(zhǔn)Linux的低內(nèi)存管理(OOM)機(jī)制,設(shè)計(jì)實(shí)現(xiàn)了獨(dú)特的低內(nèi)存清理(LMK)機(jī)制,將進(jìn)程按重要性分級(jí)、分組,當(dāng)內(nèi)存不足時(shí),自動(dòng)清理最低級(jí)別進(jìn)程所占用的內(nèi)存空間。同時(shí),引入不同于傳統(tǒng)Linux共享內(nèi)存機(jī)制的Android共享內(nèi)存機(jī)制Ashmem(Anonymous Shared Memory),具備清理不再使用共享內(nèi)存區(qū)域的能力。

Android數(shù)據(jù)存儲(chǔ)基于Linux系統(tǒng),沒有使用硬件級(jí)加密和文件加密系統(tǒng)。

3.5 應(yīng)用安全

Android應(yīng)用程序包(.apk文件)必須被開發(fā)者數(shù)字簽名。在Android系統(tǒng)中預(yù)置了眾多可信的數(shù)字證書簽發(fā)機(jī)構(gòu),所有這些簽發(fā)機(jī)構(gòu)簽發(fā)的企業(yè)證書都可以簽發(fā)應(yīng)用。同時(shí),為了開發(fā)方便,還支持不檢查來源的應(yīng)用安裝方式。

在應(yīng)用市場方面,Google會(huì)在Google Play上自動(dòng)掃描市場中已經(jīng)存在的所有APP,分析它們是否包含潛在的安全威脅。同時(shí)通過構(gòu)建在云端的模擬器模擬APP在設(shè)備上執(zhí)行的狀態(tài),進(jìn)而找出隱藏的惡意行為。此外,Google Play還會(huì)掃描開發(fā)者賬戶,以防止惡意軟件開發(fā)者再度向Google提交惡意APP,通過此舉保證Google Play Store上APP的安全性。但由于生態(tài)不同,Android支持第三方市場的Android APP,很難保證所有的市場都是按照Google Play的安全標(biāo)準(zhǔn)執(zhí)行。

在系統(tǒng)層面,Android在4.2及以后的版本中增加了APP驗(yàn)證機(jī)制。當(dāng)使用者安裝第三方市場的APP時(shí),該驗(yàn)證機(jī)制便會(huì)向Google的服務(wù)器發(fā)送驗(yàn)證信息來確認(rèn)其安全性,如果返回的結(jié)果是否定的,那么系統(tǒng)便會(huì)阻止使用者繼續(xù)安裝。為了豐富自己的資料庫,除了Google Play外,Google還掃描網(wǎng)絡(luò)上各類APK文件。后續(xù)Google還將升級(jí)APP驗(yàn)證機(jī)制,升級(jí)后,APP驗(yàn)證機(jī)制將可以在后臺(tái)運(yùn)行,以監(jiān)測已經(jīng)安裝的APP是否有不軌行為。此舉大大降低了安裝第三方市場的APP給用戶帶來的風(fēng)險(xiǎn)。

4 iOS安全機(jī)制

4.1 系統(tǒng)安全模型結(jié)構(gòu)

iOS在系統(tǒng)設(shè)計(jì)時(shí)采用軟硬一體化的設(shè)計(jì)思路,操作系統(tǒng)采用閉源模式,其安全模型如圖3所示。

其模型和上文中的Android模型基本一致,但增加了一些部件,如在硬件中增加了加密模塊;在固件中增加了加密引擎提供給操作系統(tǒng)使用;在操作系統(tǒng)層面采用加密文件系統(tǒng);在數(shù)據(jù)存儲(chǔ)、訪問方面利用了軟硬一體的優(yōu)勢。它主要從系統(tǒng)安全、權(quán)限管理、數(shù)據(jù)保護(hù)和應(yīng)用安全4個(gè)方面進(jìn)行了安全設(shè)計(jì)[3]。

4.2 系統(tǒng)安全

iOS采用可信計(jì)算模型,確保在設(shè)備上運(yùn)行的每個(gè)軟件都是可信的、有效的。從設(shè)備啟動(dòng)到操作系統(tǒng)運(yùn)行,每個(gè)環(huán)節(jié)都需要驗(yàn)證,確保軟/硬件的正常、安全運(yùn)行。設(shè)備啟動(dòng)時(shí)從ROM讀取BootROM,這是在芯片生產(chǎn)時(shí)固化的,毫無疑問是可信的。BootROM含有蘋果根證書,可以驗(yàn)證后續(xù)的底層啟動(dòng)裝載器(Low-Level Bootloader,LLB),當(dāng) LLB 啟動(dòng)完成后,再驗(yàn)證啟動(dòng)裝載器(iBoot),將驗(yàn)證iOS Kernel。這個(gè)啟動(dòng)鏈確保底層的軟件未被修改或植入木馬,確保iOS運(yùn)行在有效的蘋果設(shè)備上。帶有移動(dòng)通信或Wi-Fi設(shè)備的通信子系統(tǒng)同樣通過這樣的啟動(dòng)鏈驗(yàn)證,系統(tǒng)是完整有效的。在整個(gè)啟動(dòng)過程中,任何一個(gè)環(huán)節(jié)出現(xiàn)驗(yàn)證失敗,將使iOS設(shè)備界面出現(xiàn)“Connect to iTunes”進(jìn)入恢復(fù)模式。如果BootRom不能驗(yàn)證LLB,則將直接進(jìn)入設(shè)備固件升級(jí)模式(Device Firmware Upgrade,DFU)。

在操作系統(tǒng)補(bǔ)丁發(fā)布或iOS升級(jí)時(shí),設(shè)備同樣會(huì)驗(yàn)證補(bǔ)丁或新版iOS是否由蘋果簽發(fā),只有驗(yàn)證合法才會(huì)進(jìn)行修補(bǔ)或升級(jí)。

4.3 權(quán)限管理

iOS系統(tǒng)對終端使用用戶不開放管理權(quán)限,因此,用戶不能直接修改系統(tǒng)核心或更改系統(tǒng)應(yīng)用。如果用戶需要更改核心應(yīng)用或安裝非APP Store的應(yīng)用,則需要獲得系統(tǒng)管理權(quán)限,就是通常所說的越獄,越獄是通過系統(tǒng)漏洞獲得系統(tǒng)管理權(quán)限的。

iOS采用系統(tǒng)控制權(quán)限的方式限制應(yīng)用對敏感數(shù)據(jù)或敏感輸入設(shè)備的訪問。由于iOS的所有應(yīng)用都進(jìn)行了安全檢查,終端使用者不必關(guān)心程序中的權(quán)限問題,但也因此給軟件開發(fā)者帶來了煩惱,他們可能因?yàn)闄?quán)限問題而無法正常使用應(yīng)用。

4.4 數(shù)據(jù)保護(hù)

iOS采用多種機(jī)制保障數(shù)據(jù)的安全,包括進(jìn)程沙箱隔離、權(quán)限管理、內(nèi)存管理等機(jī)制保障系統(tǒng)及應(yīng)用的數(shù)據(jù)安全。同時(shí),利用軟硬一體的機(jī)制,在數(shù)據(jù)存儲(chǔ)安全方面獨(dú)樹一幟。

每個(gè)應(yīng)用在獨(dú)立的沙箱中運(yùn)行,每個(gè)應(yīng)用都有獨(dú)立的根目錄,確保自己的數(shù)據(jù)不被其他應(yīng)用訪問或修改,同時(shí)也不能訪問其他應(yīng)用的數(shù)據(jù)。如果需要訪問共享的資源,必須通過iOS提供的API。絕大多數(shù)應(yīng)用都以非特權(quán)用戶“mobile”身份運(yùn)行,不允許自我提權(quán)。iOS采用地址空間隨機(jī)化 (ASLR)技術(shù),使黑客攻擊更為困難,確保運(yùn)行時(shí)內(nèi)存安全,同時(shí)還采用全局權(quán)限管理機(jī)制,確保敏感數(shù)據(jù)或設(shè)備不被惡意程序訪問。

4.5 數(shù)據(jù)存儲(chǔ)安全

iOS采用硬件和軟件加密機(jī)制保護(hù)數(shù)據(jù)存儲(chǔ)和訪問安全。每一個(gè)iOS設(shè)備都有內(nèi)置的AES 256加密引擎,通過DMA通道連接閃存存儲(chǔ)和主系統(tǒng)內(nèi)存,使數(shù)據(jù)加/解密得以高效實(shí)現(xiàn)。每臺(tái)設(shè)備在制造過程中確定唯一識(shí)別碼 (UID)和一個(gè)設(shè)備組ID(GID),這些組合成AES 256位密鑰,此密鑰無法從外部讀取,只能通過AES引擎使用這個(gè)密鑰。UID是唯一的,蘋果不做任何記錄,GID代表設(shè)備類型。所有存儲(chǔ)在閃存中的數(shù)據(jù)都使用該密鑰加密,使加密數(shù)據(jù)被綁定到特定設(shè)備。例如,iOS文件系統(tǒng)加密就包括UID,如果存儲(chǔ)芯片在物理上從一個(gè)設(shè)備轉(zhuǎn)移到另一個(gè)設(shè)備,文件將無法讀取。

蘋果還提供安全擦除功能。大批量擦除數(shù)據(jù)對閃存是一個(gè)極大的挑戰(zhàn),為了解決這個(gè)問題,iOS設(shè)備引入了可擦除存儲(chǔ)(Effaceable Storage)設(shè)計(jì)。此功能設(shè)計(jì)只需訪問底層存儲(chǔ)技術(shù)來直接尋址和擦除小塊數(shù)據(jù),就可以使全部數(shù)據(jù)失效。

除了內(nèi)置于iOS設(shè)備的硬件加密功能外,蘋果還采用了層次化數(shù)據(jù)保護(hù)技術(shù),以進(jìn)一步保護(hù)存儲(chǔ)在閃存上的數(shù)據(jù)。數(shù)據(jù)保護(hù)使該設(shè)備既能滿足通用功能需求,如響應(yīng)電話呼叫,又能實(shí)現(xiàn)敏感數(shù)據(jù)高水平的加密。無論是蘋果自帶程序還是第三方應(yīng)用程序,都能使用層次化數(shù)據(jù)保護(hù)。

數(shù)據(jù)保護(hù)是在內(nèi)置iOS設(shè)備的硬件加密技術(shù)的基礎(chǔ)上,通過構(gòu)建和管理密鑰的層次結(jié)構(gòu)得以實(shí)現(xiàn)的,如圖4所示。

在文件系統(tǒng)中,所有文件的元數(shù)據(jù)都用文件系統(tǒng)密鑰進(jìn)行加密,文件系統(tǒng)密鑰是第一次安裝的iOS組合UID、GID等產(chǎn)生的。文件系統(tǒng)密鑰存儲(chǔ)在可擦除存儲(chǔ)區(qū)域。文件系統(tǒng)密鑰存儲(chǔ)在設(shè)備上,因此不使用此密鑰維護(hù)數(shù)據(jù)的保密性。它的目的是迅速擦除數(shù)據(jù),擦除此密鑰后,所有文件都無法訪問。

文件內(nèi)容由文件元數(shù)據(jù)中的文件密鑰進(jìn)行加密;文件密鑰由類密鑰加密,加密的文件內(nèi)容和文件元數(shù)據(jù)都由文件系統(tǒng)密鑰加密保存在存儲(chǔ)上。類密鑰由硬件的UID或用戶的密碼來保護(hù),這種層次結(jié)構(gòu)提供了靈活的性能。例如,更改文件的類密鑰只需要重新打包的每個(gè)文件的密鑰,密碼的改變只是再重新包裝類密鑰。類密鑰提供4種類型,分別對應(yīng)完整保護(hù)、關(guān)保護(hù) (文件打開時(shí)可使用)、無認(rèn)證保護(hù)(認(rèn)證后可使用)、無保護(hù),適用于不同的場景。

4.6 應(yīng)用安全

蘋果通過兩種機(jī)制保證應(yīng)用的安全,包括代碼簽名和沙盒模式。

應(yīng)用是客戶使用終端的直接界面,如果一個(gè)應(yīng)用本身是惡意的,則會(huì)導(dǎo)致客戶數(shù)據(jù)損失。前面在系統(tǒng)安全中描述,iOS保證其內(nèi)核是安全的。同樣在啟動(dòng)應(yīng)用時(shí),也會(huì)檢查應(yīng)用的數(shù)字簽名,通過信任鏈檢查,確保應(yīng)用來自可信的來源,并且是完整的、未被篡改的,iOS不允許運(yùn)行未經(jīng)數(shù)字簽名檢查的應(yīng)用程序。同時(shí),iOS應(yīng)用程序在沙箱里執(zhí)行,確保用戶數(shù)據(jù)只能自己使用,并且不能訪問其他應(yīng)用的數(shù)據(jù)。

應(yīng)用包括隨設(shè)備提供的應(yīng)用程序,如Mail和Safari瀏覽器,是由蘋果公司簽署的。同時(shí)支持第三方應(yīng)用程序,為了開發(fā)iOS設(shè)備上的應(yīng)用程序,開發(fā)人員必須注冊APP ID并加入iPhone開發(fā)者計(jì)劃。每個(gè)開發(fā)人員的真實(shí)身份,無論是個(gè)人還是企業(yè),由蘋果公司證實(shí)并給予其簽發(fā)數(shù)字證書,開發(fā)程序提交APPStore必須采用此證書簽發(fā),以確保應(yīng)用程序來源可信。同時(shí)蘋果也會(huì)審查應(yīng)用,確保應(yīng)用功能和描述一致,并且不含有明顯的缺陷或其他問題。

當(dāng)然,企業(yè)也可以開發(fā)自己的企業(yè)應(yīng)用,不需要發(fā)布到APP Store。企業(yè)需要憑借DUNS號(hào)碼申請企業(yè)證書,同時(shí)獲得設(shè)備配置文件,安裝企業(yè)應(yīng)用的設(shè)備必須同時(shí)安裝設(shè)備配置文件,證明其設(shè)備和應(yīng)用屬于同一個(gè)企業(yè),這樣確保應(yīng)用不會(huì)被惡意使用。

5 Android和iOS安全機(jī)制比較

根據(jù)前面對Android和iOS安全機(jī)制的詳細(xì)分析可以發(fā)現(xiàn),兩者都采用了很多安全機(jī)制來保證終端的安全,包括操作系統(tǒng)安全、應(yīng)用安全、數(shù)據(jù)保護(hù)及權(quán)限管理。

可以按照糾錯(cuò)機(jī)制、操作系統(tǒng)安全、數(shù)據(jù)保護(hù)、內(nèi)存安全、應(yīng)用安全、權(quán)限管理等多個(gè)維度對兩大主流系統(tǒng)進(jìn)行比較,詳見表1。

在操作系統(tǒng)方面,Android采用成熟的開源Linux技術(shù),其安全基礎(chǔ)較好,可以發(fā)揮社區(qū)的綜合能力,促進(jìn)系統(tǒng)安全性的完善;iOS采用閉源模式,主要依賴自身的安全積累。

在信任鏈處理上,兩者也不完全一致。iOS采用從硬件到應(yīng)用統(tǒng)一信任鏈的模式,而Android采用更開放的信任模式,由用戶自主決定信任源。Android和iOS都采用了數(shù)字簽名技術(shù)來保證應(yīng)用的可靠性,但由于生態(tài)不同,對數(shù)字簽名證書的管理采用了不同的方式。在iOS中,數(shù)字簽名證書只有兩類,一類來自蘋果自身,另一類來自蘋果認(rèn)可的企業(yè)。iOS不僅在安裝時(shí)檢查數(shù)字簽名的有效性,同時(shí)還在每次運(yùn)營時(shí)檢查數(shù)字簽名的有效性。Android上并沒有“中央權(quán)威”來控制所有APP的簽名,各運(yùn)營商、OEM以及第三方市場都可以給APP簽名。

表1 Android和iOS安全機(jī)制比較

對權(quán)限管理的處理方式也不同。iOS采用全局控制的方式,使用戶不能單獨(dú)對某個(gè)應(yīng)用進(jìn)行限制;Android采用顯式權(quán)限管理模式,僅在安裝時(shí)檢查權(quán)限,由開發(fā)者決定權(quán)限需求。

總體來看,雖然Google和蘋果對各自系統(tǒng)的掌控能力不同,但雙方都在自己可控的范圍內(nèi)為Android和iOS做了很多安全考慮,包括系統(tǒng)、APP安裝及APP運(yùn)行方面,所以兩者各有優(yōu)勢。相對于iOS,Android把更多的選擇權(quán)交給了使用者,讓他們自行選擇。只要遵循安全機(jī)制,不隨意Root,安裝可信應(yīng)用,Android同樣可以安全、可靠。

6 展望和安全建議

通過對Android和iOS的安全機(jī)制比較,筆者認(rèn)為沒有哪個(gè)系統(tǒng)絕對安全。隨著應(yīng)用領(lǐng)域越來越廣,兩者被發(fā)現(xiàn)的安全漏洞也越來越多。相信在不斷的迭代開發(fā)中,兩個(gè)系統(tǒng)會(huì)越來越安全,安全機(jī)制也會(huì)越來越完善,讓用戶可以更放心地享受移動(dòng)互聯(lián)網(wǎng)給生活帶來的改變。

然而再安全的機(jī)制,如果沒有遵循設(shè)計(jì)者理念的使用,就如同再安全的汽車,酒后駕駛總是會(huì)出現(xiàn)事故,無論是開發(fā)者還是用戶,都應(yīng)該遵照最小安全原則,安全使用手機(jī)。

第一,不要越獄和Root。對蘋果用戶而言,盡管越獄能讓其享受各種插件帶來的樂趣,但也會(huì)讓蘋果精心設(shè)計(jì)的安全機(jī)制功虧一簣;對Android用戶而言,Root同樣會(huì)在給其帶來便利的同時(shí),也給惡意軟件帶來便利。

第二,只從正規(guī)應(yīng)用商店獲取APP。對蘋果而言,就是只從 APP Store獲取APP。APP Store上的所有APP都在發(fā)布前經(jīng)過蘋果審查,確保其不存在任何惡意代碼。Android應(yīng)用商店相對較多,但用戶應(yīng)盡量選擇到其官方網(wǎng)站下載應(yīng)用,或到有人工審核的應(yīng)用商店下載應(yīng)用。

第三,不要隨意信任計(jì)算機(jī)。在用戶將蘋果設(shè)備第一次連接至某臺(tái)電腦時(shí),iOS會(huì)彈出對話框詢問你是否信任這臺(tái)計(jì)算機(jī)。一旦你選擇了信任,這臺(tái)電腦就有權(quán)訪問你存儲(chǔ)在設(shè)備上的所有個(gè)人信息。盡管iOS可以阻止安裝在設(shè)備中的APP竊取你的隱私,但是像Wirelurker這樣的惡意軟件還是可以通過感染被設(shè)備信任的電腦來繞過沙盒機(jī)制并讀取你存儲(chǔ)在設(shè)備中的資料。對Android設(shè)備而言,用戶應(yīng)關(guān)閉USB調(diào)試模式,避免電腦中惡意軟件隨意在設(shè)備上安裝軟件。

第四,謹(jǐn)慎賦予APP的隱私讀取權(quán)限。在某個(gè)APP第一次申請讀取你的某項(xiàng)隱私(如照片、通訊錄、使用麥克風(fēng)或相機(jī)等)前,iOS和Android系統(tǒng)都會(huì)詢問你是否批準(zhǔn)。如果你認(rèn)為某個(gè)APP不需要讀取你的資料(如一款游戲APP要求讀取你的通訊錄和照片),那么請堅(jiān)定地選擇 “不允許”。對于Android應(yīng)用,則需要在安裝時(shí)仔細(xì)審查應(yīng)用需要的權(quán)限,如果應(yīng)用需要的權(quán)限過多且不必要,則不應(yīng)安裝此應(yīng)用。

第五,不要隨意連接Wi-Fi。因?yàn)槟阌锌赡艿卿浀氖轻烎~Wi-Fi,從而導(dǎo)致你的終端和外部網(wǎng)絡(luò)的通信被全部截獲,可能包括你設(shè)備應(yīng)用登錄的賬號(hào)和密碼,導(dǎo)致意外損失。

隨著越來越多移動(dòng)互聯(lián)網(wǎng)應(yīng)用的出現(xiàn),除了原生態(tài)的APP應(yīng)用,HTML 5的應(yīng)用和混合應(yīng)用也將給移動(dòng)終端的安全帶來更大的挑戰(zhàn),未來的移動(dòng)互聯(lián)網(wǎng)安全會(huì)越來越受到各方重視。

[1] 賽迪智庫.移動(dòng)智能終端產(chǎn)業(yè)發(fā)展白皮書(2015版)[R].2015.

[2] 吳倩,趙晨嘯,郭瑩.Android安全機(jī)制解析與應(yīng)用實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2013.

[3]iOS Security Guide[EB/OL].http://www.docin.com/p-1199599678.htm l,2014.

猜你喜歡
密鑰應(yīng)用程序終端
從電話到自媒體終端——信息的力量
幻中邂逅之金色密鑰
幻中邂逅之金色密鑰
復(fù)雜線束在雙BCI耦合下的終端響應(yīng)機(jī)理
密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
X美術(shù)館首屆三年展:“終端〉_How Do We Begin?”
刪除Win10中自帶的應(yīng)用程序
谷歌禁止加密貨幣應(yīng)用程序
Android密鑰庫簡析
“吃人不吐骨頭”的終端為王
焦作市| 阳信县| 抚州市| 塔河县| 丹棱县| 海林市| 白水县| 涡阳县| 清远市| 沙坪坝区| 宝山区| 方正县| 南通市| 乐安县| 砀山县| 胶州市| 巨野县| 杨浦区| 四子王旗| 金溪县| 安陆市| 康平县| 凤翔县| 宜黄县| 临城县| 汝城县| 庄河市| 孝感市| 东乡族自治县| 乌海市| 仁寿县| 浑源县| 上林县| 宜兰市| 繁昌县| 黎平县| 关岭| 营口市| 厦门市| 张家港市| 塔河县|