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