Android系統(tǒng)到底安不安全?細(xì)數(shù)Android7.0 Nougat的幾大安全增強(qiáng)功能
關(guān)于Android7.0 Nougat(牛軋?zhí)?
眾所周知,2016年的GoogleI/O開(kāi)發(fā)者大會(huì)已經(jīng)在美國(guó)時(shí)間的5月18日成功召開(kāi)了,而在此次大會(huì)上,Google公司也正式發(fā)布了新版的AndroidN操作系統(tǒng)。2016年8月22日,Google開(kāi)始正式向用戶(hù)推送Android7.0 Nougat正式版。
在性能方面,AndroidN不僅對(duì)編譯器進(jìn)行了優(yōu)化,而且還在圖形處理方面做了更新。AndroidN下的軟件運(yùn)行速度將提升3-6倍,而且由于引入了全新的JIT編譯器,使得app的安裝速度提升了將近75%。
在可操作性方面,AndroidN更是在用戶(hù)操作的便捷性上做了一些提升。Nougat不僅加入了全新的分屏多任務(wù)功能,而且還加入了多任務(wù)快速切換功能。這個(gè)功能可以幫助用戶(hù)解決在兩個(gè)任務(wù)之間頻繁切換的問(wèn)題。
當(dāng)然了,這些功能性的升級(jí)和拓展并不是我們這篇文章所要關(guān)注的重點(diǎn),我們的注意力當(dāng)然要放在AndroidN的安全性提升上。接下來(lái),我給大家簡(jiǎn)單描述一下新版的Android7.0 Nougat中到底新增了哪些安全保護(hù)功能。
新的安全特性
在今年夏天,Google公司的Android開(kāi)發(fā)團(tuán)隊(duì)向外界展示了Android7.0 Nougat(牛軋?zhí)?中很多新添加的安全增強(qiáng)特性。除此之外,Google還將更加重視Android項(xiàng)目的漏洞獎(jiǎng)勵(lì)計(jì)劃,Google公司會(huì)對(duì)每一位向Android項(xiàng)目提交漏洞的白帽子予以積極響應(yīng)。
在系統(tǒng)的安全性方面,Android引入了一種新型的直接啟動(dòng)模式(DirectBoot Mode),重新設(shè)計(jì)了mediaserver的整體架構(gòu),提升了媒體棧(MediaStack)的安全性,并且更新了Android系統(tǒng)處理可信任證書(shū)的機(jī)制。除此之外,Android還提升了Nougat下應(yīng)用程序的安全性,并且會(huì)對(duì)設(shè)備啟動(dòng)過(guò)程進(jìn)行更為嚴(yán)格的檢測(cè)。更值得注意的是,Google更新了Android操作系統(tǒng)的Linux內(nèi)核,這樣可以最大程度地降低設(shè)備的攻擊面,并增強(qiáng)了對(duì)設(shè)備內(nèi)存的保護(hù)。
除了上述這些新的安全特性之外,AndroidN還支持全新的文件加密模式,用戶(hù)將可以對(duì)單獨(dú)的文件進(jìn)行加密。需要注意的是,這種加密是在Android操作系統(tǒng)啟動(dòng)的時(shí)候就已經(jīng)開(kāi)始了,這樣可以最大程度地保證所謂“系統(tǒng)盲點(diǎn)”時(shí)間內(nèi)的信息安全。
還有一個(gè)功能對(duì)于國(guó)人而言可能就有些雞肋了,新的AndroidN在進(jìn)行系統(tǒng)更新時(shí)會(huì)在后臺(tái)主動(dòng)下載更新固件,并在用戶(hù)重啟手機(jī)的時(shí)候自動(dòng)升級(jí)系統(tǒng)。反正國(guó)人所使用的大多數(shù)Android設(shè)備都不會(huì)第一時(shí)間收到Google的更新推送,而且Android操作系統(tǒng)的實(shí)際更新迭代速度確實(shí)太慢,所以這并不是什么值得我們期待的功能。
接下來(lái),我們挑選了幾個(gè)比較重要的安全增強(qiáng)性能來(lái)進(jìn)行分析。請(qǐng)各位同學(xué)繼續(xù)往下看!
直接啟動(dòng)模式(DirectBoot Mode)
在之前版本的Android操作系統(tǒng)中,如果用戶(hù)開(kāi)啟了密碼保護(hù)功能,那么用戶(hù)就需要在設(shè)備的啟動(dòng)過(guò)程中輸入密碼(圖形或文字密碼)。當(dāng)設(shè)備啟動(dòng)成功之后,設(shè)備中存儲(chǔ)的數(shù)據(jù)也就解密完成了。Android7.0 Nougat更新了設(shè)備底層的加密處理機(jī)制,并且大幅減少了設(shè)備的啟動(dòng)時(shí)間,提升了手機(jī)的重啟速度。現(xiàn)在,手機(jī)中類(lèi)似電話app和鬧鐘這樣的應(yīng)用會(huì)在你輸入密碼之前就啟動(dòng)完成了。在這個(gè)模式下,系統(tǒng)已經(jīng)處于正常的運(yùn)行狀態(tài)了,但是仍然會(huì)限制某些隱私數(shù)據(jù)的訪問(wèn)。這也就意味著,在你首次啟動(dòng)并且沒(méi)有輸入密碼的情況下,你不僅可以正常接聽(tīng)來(lái)電,你的鬧鐘也會(huì)按時(shí)叫醒你起床。我們稱(chēng)該模式為“直接啟動(dòng)”模式(DirectBoot Mode)。
如果你想讓你所開(kāi)發(fā)的app在用戶(hù)解鎖設(shè)備之前就運(yùn)行的話,你需要在AndroidManifest.xml文件中顯式地聲明下列信息,并選擇需要加入“直接啟動(dòng)”模式的app組件:
- <activity|provider|receiver|service ...
- android:directBootAware=”true”>
如果你的app需要在“直接啟動(dòng)”模式下運(yùn)行的話,需要使用下面這個(gè)新增的broadcast:
- Intent.ACTION_LOCKED_BOOT_COMPLETED
但是需要注意的是,當(dāng)用戶(hù)解鎖了設(shè)備之后,所有的app仍然會(huì)接收到下面這個(gè)broadcast:
- Intent.ACTION_BOOT_COMPLETED
全新的加密機(jī)制
Android N引入了全新的安全加密機(jī)制,基于文件的加密將會(huì)大幅度提升用戶(hù)體驗(yàn)度。在這種全新的加密機(jī)制之下,系統(tǒng)存儲(chǔ)空間和用戶(hù)配置存儲(chǔ)空間將會(huì)分開(kāi)進(jìn)行加密。這與全盤(pán)加密不同,因?yàn)槿P(pán)加密會(huì)將設(shè)備中所有的數(shù)據(jù)一次加密完成。
基于文件的加密機(jī)制可以通過(guò)更細(xì)粒度地加密來(lái)保護(hù)每一位用戶(hù)的數(shù)據(jù)安全,而且還可以提升被加密文件的獨(dú)立性。設(shè)備中的每一份文件都會(huì)使用一個(gè)唯一的密鑰來(lái)加密,而能夠解密這些文件的只有你的設(shè)備密碼。
除此之外,近些年來(lái)Android生態(tài)系統(tǒng)也在不斷增強(qiáng)設(shè)備的安全保護(hù)性能。從Marshmallow(Android6.0)開(kāi)始,加密功能已經(jīng)成為了Android設(shè)備的必備功能。像Nexus5X和6P這樣的設(shè)備會(huì)使用單獨(dú)的密鑰,而這些密鑰只能通過(guò)受信任的硬件來(lái)訪問(wèn),例如ARMTrustZone。從Nougat(Android7.0)開(kāi)始,所有的新設(shè)備不僅必須要提供對(duì)密鑰存儲(chǔ)的硬件支持,而且還要在這些密鑰被使用之前,即當(dāng)用戶(hù)解鎖設(shè)備時(shí),提供防止暴力破解的安全保護(hù)。這樣一來(lái),你的所有數(shù)據(jù)只能夠在特定的設(shè)備上由你來(lái)進(jìn)行解密。
App安全性提升
Android Nougat是目前最安全的Android操作系統(tǒng),而且對(duì)于應(yīng)用開(kāi)發(fā)人員而言,這個(gè)版本的Android也是最容易進(jìn)行開(kāi)發(fā)的。原因如下:
1.如果某個(gè)app需要與其他的app共享數(shù)據(jù),現(xiàn)在必須顯式地通過(guò)Content Provider來(lái)提供需要共享的文件,例如FileProvider。應(yīng)用程序私有目錄(通常在/data/data/目錄下)的Linux權(quán)限必須設(shè)置為”0700”,app的目標(biāo)APILevel必須為24以上(APILevel 24+)。
2.為了讓app更加輕松地控制網(wǎng)絡(luò)通信數(shù)據(jù)的訪問(wèn)權(quán)限,API Level24+以上的系統(tǒng)將不再支持用戶(hù)使用自簽名的證書(shū)了。除此之外,所有安裝了新版Android系統(tǒng)的設(shè)備必須使用相同的證書(shū)頒發(fā)機(jī)構(gòu)。
3.通過(guò)設(shè)備的網(wǎng)絡(luò)安全配置,開(kāi)發(fā)人員可以更加方便地配置網(wǎng)絡(luò)安全策略。
除此之外,Google也在不斷完善Androidapp的權(quán)限機(jī)制和安全功能,目的就是為了防止用戶(hù)受到某些潛在的惡意app影響。
1.提升了設(shè)備的隱私保護(hù),Google移除了某些可以持久訪問(wèn)目標(biāo)設(shè)備的標(biāo)識(shí),例如設(shè)備的MAC地址。
2.用戶(hù)接口層將無(wú)法顯示在權(quán)限對(duì)話框之上。因?yàn)槟承阂鈇pp會(huì)使用這種“點(diǎn)擊劫持”技術(shù)來(lái)嘗試獲取非法權(quán)限。
3.降低了設(shè)備管理程序時(shí)的耗電量,并禁用了onDisableRequested(),因?yàn)槟承├账鬈浖?huì)利用這個(gè)接口來(lái)非法獲取設(shè)備的控制權(quán)。
總結(jié)
Android Nougat對(duì)系統(tǒng)各個(gè)方面的安全性都進(jìn)行了大幅度地改進(jìn),Google公司的Android開(kāi)發(fā)團(tuán)隊(duì)將會(huì)繼續(xù)努力改善Android系統(tǒng)的安全性。與此前一樣,如果你對(duì)提升Android操作系統(tǒng)有任何建議的話,歡迎大家與Google公司的Android開(kāi)發(fā)小組聯(lián)系(security@android.com)。