contadores publicos Histats.com © 2005-2019 - Saltar al contenido

在Android牛軋糖中嚴格實施的經過驗證的啟動是什麼?

abril 4, 2020

如果您一直在關注Android的開發,那麼近年來您一定已經聽說過“ Verified Boot”這個名稱。 Google以一種完全非侵入性的方式在Android 4.4(Kitkat)中引入了安全功能,並且一直在提高其Android操作系統新版本中的可見性。

在過去的兩天裡,我們看到了有關“ 嚴格驗證啟動 “在世界上使用最廣泛的移動操作系統的最新Google版本中。AndroidNougat在設備啟動時將使用更高級別的安全檢查。在棉花糖中,經過驗證的啟動只會向用戶發出警告,以防為檢測系統分區是否有問題,Android Nougat會更進一步,並使用Google所謂的“嚴格強制驗證啟動”,如果設備檢測到以下情況,則根本無法啟動設備:分區,對引導加載程序進行的更改或設備上存在“惡意”代碼。這引出了一個問題:“這對用戶到底意味著什麼?”,對於以下兩個主要類別,答案是不同的Android用戶(臨時用戶和高級用戶),我們將為兩個用戶提供答案。

經過嚴格驗證的靴子

首先,提供有關“驗證啟動”的一些背景知識:通常,當Android運行分區驗證測試時,它將分區劃分為4KB的塊並將其與簽名表進行比較。如果一切順利,則意味著系統完全乾淨。但是,如果某些區塊被篡改或損壞,Android會通知用戶有關問題,並讓用戶修復(或不修復)。

Android牛軋糖和嚴格強制驗證啟動將改變一切。當經過驗證的引導以強制模式運行時, 不容忍任何失敗 在分區上。如果發現任何問題, 不允許設備啟動,Y 可以 允許用戶從 環境很安全 嘗試解決問題。但是,嚴格執行的驗證啟動不僅僅是檢查不良數據塊。通常,您也可以更正數據塊中的錯誤。由於存在前向糾錯碼,這是可能的,前向糾錯碼可用於糾正數據塊中的錯誤。但是,這可能並不總是有效,在不起作用的情況下,您已經死在水里了。

嚴格使用經過驗證的引導程序:好,壞和醜

1.好的

Android設備上的“經過驗證的啟動”應用 提高安全性 在設備上。萬一設備感染了惡意軟件,則在您下次啟動設備並對其進行修復或可能要求您對其進行處理時,“嚴格執行的驗證啟動”將對其進行檢測。

此功能也 檢查數據損壞 並且在大多數情況下,借助FEC代碼,您可以更正數據中輸入的所有錯誤。 Google使用的FEC代碼可以 修復255位中的未知位錯誤 。當然,這似乎是一個很小的數字,但讓我們對移動設備進行透視:

注意事項: 下面的值取自Google工程師Sami Tolvanen在Android開發人員上的博客文章。

Google可能使用了FEC RS代碼(255,223):這些代碼可以糾正255位中的16個未知位錯誤,但是由於32位冗餘數據而導致的空間開銷將近15%,並且很多,尤其是在移動設備上。再加上事實是Android是低成本智能手機上的主流操作系統,該智能手機配備4至8GB內存,而且15%的額外空間似乎很多。

通過犧牲糾錯功能以節省空間,Google決定使用FEC RS代碼(255,253)。這些代碼可以糾正255位中的單個未知錯誤,但是空間開銷僅為0.8%。

注意事項: RS(255,N)是Reed-Solomon碼的代表,它是一種糾錯碼。

2.不好

您聽說過“硬幣有兩個面”嗎?當然有雖然Google嚴格應用經過驗證的靴子的初衷無疑是純粹的嬰兒獨角獸,但它們確實存在自己的問題。

嚴格執行驗證啟動時 檢查惡意軟件,也搜尋 非法修改 在內核,引導加載程序和其他我不會煩您的內容中,但這意味著Android Nougat可能會遇到很多根本問題,並且閃爍自定義ROM,因為經過驗證的引導無法區分惡意軟件代碼垃圾郵件和解鎖引導加載程序的代碼。這意味著,如果您的設備隨附了鎖定的引導加載程序,而您的OEM不允許解鎖引導加載程序,那麼您實際上將無法執行該操作。希望有人發現這一壯舉。

幸運的是,大多數將自己的設備掛起並更新自定義ROM以獲得其他功能的人都會選擇Nexus等對開發人員友好的手機。關於此問題,有很多要考慮的因素,而且定制ROM絕對不是結束,至少不是在具有未鎖定的引導程序的設備上,或者在允許您解除引導程序的設備上。但是,諸如Samsung手機之類的設備並未正式允許Bootloader解鎖,並且在這些設備上,經過驗證的開機無疑會將解鎖視為“問題”,從而阻止了設備啟動。

嚴格強制驗證的引導所帶來的另一個問題是,即使實際上並不在乎獲得root用戶特權或安裝自定義ROM的用戶,也會受到影響。隨著時間的流逝,當您使用設備時,內存中可能會自然損壞數據。不是因為惡意軟件的存在,而是因為它的發生。通常這不是問題,或者至少不像經過驗證的啟動所驗證的那樣嚴重。如果您破壞了嚴格執行的驗證啟動無法在啟動時修復的數據,請不要允許您的設備啟動。我認為,這是一個比用戶分區上某些損壞的數據更大,更明顯的問題。

3.醜陋的

在“驗證啟動”應用程序的所有優點中以及在所有潛在問題中,最令人不安的可能是原始設備製造商可能開始不正確地使用它來鎖定其設備,以致人們無法使用Android的初衷:開放,對開發人員友好且可完全自定義。嚴格執行的驗證啟動將賦予原始設備製造商以權力,以確保人們無法解鎖其設備上的引導加載程序,從而阻止他們安裝自定義ROM和功能增強工具(例如Xposed模塊)。

Android Turrn:Android工作方式發生了根本變化嗎?

儘管我們確信Google的意圖僅僅是避免偶然的Android用戶遇到潛在的問題,但他們不知道在設備受到惡意軟件感染或內存損壞了數據塊的情況下該怎麼做,他本可以將其交付給OEM廠商,而製造商則是迫使用戶使用提供給他們的東西的完美工具,除此之外別無其他。

當然,有人會發現這種情況的利用或解決方法,我們希望本著Android的真正精神。但是,除非有人找到解決方案,否則我們作為用戶所能做的就是確保我們從對開發人員友好的製造商那裡購買設備。

特色圖片Cortesa:Flickr