Jeśli śledziłeś rozwój Androida, w ciągu ostatnich kilku lat musiałaś usłyszeć nazwę "Verified Boot". Google wprowadził funkcję bezpieczeństwa w Androidzie 4.4 (KitKat), w całkowicie nieinwazyjny sposób, i powoli zwiększał swoją widoczność w nowszych wersjach systemu operacyjnego Android.
W ciągu ostatnich kilku dni widzieliśmy informacje o obecności " ściśle egzekwowanego zweryfikowanego rozruchu " w najnowszej iteracji Google'a na temat najczęściej używanego mobilnego systemu operacyjnego na świecie. Android Nougat użyje wyższego poziomu sprawdzania bezpieczeństwa podczas uruchamiania urządzenia. Podczas gdy na Marshmallow Verified Boot ostrzegał użytkownika, na wypadek, gdyby wykrył problem z partycją systemową, Android Nougat zrobi to krok dalej i użyje tego, co Google nazywa "Ściśle egzekwowanym Verified Boot", co nie pozwalają na uruchomienie urządzenia w ogóle, w przypadku wykrycia nieprawidłowości w partycji, zmian dokonanych w bootloaderze lub obecności "złośliwego" kodu w urządzeniu. To nasuwa pytanie: "Co dokładnie oznacza to dla użytkowników?", Okazuje się, że odpowiedź różni się dla dwóch głównych kategorii użytkowników Androida (zwykłych i zaawansowanych użytkowników), a my udzielimy odpowiedzi dla obu z nich .
Ściśle egzekwowany zweryfikowany rozruch
Po pierwsze, małe tło na Verified Boot: Zazwyczaj, gdy Android uruchamia test weryfikacyjny na partycjach, robi to, dzieląc partycje na bloki 4KiB i sprawdzając je pod podpisaną tabelą. Jeśli wszystko się powiedzie, oznacza to, że system jest całkowicie czysty. Jednakże, jeśli niektóre bloki zostaną uszkodzone lub uszkodzone, system Android poinformuje użytkownika o problemach i pozostawi go użytkownikowi, aby go rozwiązać (lub nie).
Wszystko to ma się zmienić dzięki Androidowi Nougat i dokładnie wprowadzonemu Verified Boot. Gdy Verified Boot działa w trybie Enforced, nie będzie tolerować żadnych błędów na partycjach. Jeśli wykryje jakieś problemy, nie pozwoli na uruchomienie urządzenia i może pozwolić użytkownikowi na uruchomienie się w trybie awaryjnym, aby spróbować rozwiązać problemy. Jednak Ścisły Wymuszony Zweryfikowany rozruch to nie tylko sprawdzanie bloków złych danych. Zwykle może również korygować błędy w blokach danych. Jest to możliwe dzięki obecności kodów korekcyjnych błędów przekazywania, które mogą być używane do korygowania błędów w blokach danych. Jednak to nie zawsze działa, aw przypadkach, gdy nie działa, jesteś prawie martwy w wodzie.
Ściśle wzmacniany zweryfikowany rozruch: dobry, zły i brzydki
1. Dobro
Wymuszenie zweryfikowanego rozruchu na urządzeniach z Androidem zwiększy bezpieczeństwo urządzeń. W przypadku zainfekowania urządzenia złośliwym oprogramowaniem, Strictly Enforced Verified Boot wykryje go przy następnym uruchomieniu urządzenia i albo je naprawi, albo prawdopodobnie poprosi o zrobienie czegoś.
Ta funkcja będzie również sprawdzać, czy nie doszło do uszkodzenia danych, a w większości przypadków będzie w stanie skorygować wszelkie błędy wprowadzone w danych, dzięki kodom FEC. Google stosuje kody FEC, które mogą poprawić jeden nieznany błąd bitowy w 255 bitach . Jasne, wydaje się, że to całkiem mała liczba, ale zróbmy to w perspektywie, jeśli chodzi o urządzenie mobilne:
Uwaga: poniższe wartości pochodzą z posta na blogu napisanego przez Google Engineer Sami Tolvanena na Android Developers.
Google mógł użyć RS (255, 223) kodów FEC: kody te byłyby w stanie skorygować 16 nieznanych błędów bitowych w 255 bitach, ale narzut na przestrzeń ze względu na 32 bity nadmiarowych danych, byłby prawie 15%, i to dużo, zwłaszcza na urządzeniach mobilnych. Dodajmy do tego fakt, że Android jest dominującym OS na budżetowych smartfonach, które mają pamięć 4-8 GB, a 15% dodatkowej przestrzeni z pewnością wydaje się dużo.
Poświęcając możliwości korekty błędów, na rzecz zaoszczędzenia miejsca, postanowiliśmy użyć kodów FEC RS (255, 253). Kody te mogą korygować tylko jeden nieznany błąd w 255 bitach, ale narzut miejsca zajmuje tylko 0, 8%.
Uwaga: RS (255, N) jest reprezentacją kodów Reeda-Solomona, które są typem kodów korekcji błędów.
2. Zły
Czy kiedykolwiek słyszałeś o "Istnieją dwie strony medalu"? Oczywiście, że masz. Podczas gdy zamiary Google z bezwzględnie wymagającym zweryfikowanym wzrostem były bez wątpienia czyste jak jednorożec, mają swój własny zestaw problemów.
Kiedy ściśle kontrolowany Verified Boot sprawdza pod kątem złośliwego oprogramowania, sprawdza również pod kątem nielegalnych modyfikacji jądra, bootloadera i innych rzeczy, które Cię nie nudzą, ale oznacza to, że Android Nougat prawdopodobnie napotka wiele problemów z rootowaniem, a także flashowanie niestandardowych ROM, ponieważ Verified Boot nie może odróżnić niepożądanego kodu złośliwego oprogramowania od kodu, który odblokował twój bootloader. Oznacza to, że jeśli twoje urządzenie ma zablokowany bootloader, a twój OEM nie pozwala na odblokowanie bootloadera, nie możesz tego zrobić. Mamy nadzieję, że ktoś wymyśli do tego exploita.
Na szczęście większość ludzi, którzy rootują swoje urządzenia i flashuje niestandardowe ROMy, aby uzyskać dodatkowe funkcje i funkcje, może korzystać z telefonów przyjaznych dla programistów, takich jak Nexus. Jest wiele do rozważenia w odniesieniu do tego tematu i zdecydowanie nie jest to koniec niestandardowych ROM-ów, przynajmniej nie na urządzeniach wyposażonych w odblokowany bootloader lub umożliwiających odblokowanie bootloadera. Jednak urządzenia takie jak telefony Samsung oficjalnie nie pozwalają na odblokowanie bootloadera, a na tych urządzeniach odblokowanie bootloadera będzie najprawdopodobniej postrzegane jako "problem" przez Verified Boot, zapobiegając uruchomieniu urządzenia.
Kolejny problem, który powstaje w przypadku ściśle egzekwowanego zweryfikowanego rozruchu, ma wpływ na użytkowników, którzy nie dbają o uzyskanie uprawnień root'a lub instalowanie niestandardowych ROM-ów. Z biegiem czasu, w miarę korzystania z urządzenia, w pamięci będzie zachowane naturalne uszkodzenie danych; nie ze względu na obecność złośliwego oprogramowania, ale po prostu dlatego, że tak się dzieje. Zazwyczaj nie jest to problem, a przynajmniej nie jest tak poważny jak Verified Boot. Jeśli uszkodzone dane nie są naprawiane podczas rozruchu, nie zezwoli na to, aby urządzenie się uruchomiło. Moim zdaniem jest to większy, bardziej widoczny problem, niż niektóre uszkodzone dane na partycji użytkownika.
3. Brzydki
We wszystkich korzyściach wynikających z egzekwowania zweryfikowanego rozruchu i wszystkich potencjalnych problemów, najbardziej niepokojącym jest prawdopodobnie to, że producenci OEM mogą zacząć nadużywać tego, aby zablokować swoje urządzenia, tak aby ludzie nie mogli korzystać z systemu Android w celu, do jakiego było przeznaczone. być: otwarte, przyjazne dla programistów i całkowicie konfigurowalne. Ściśle wdrożony Verified Boot dostarczy w ręce producentów OEM, dzięki czemu ludzie nie będą w stanie odblokować bootloaderów na swoich urządzeniach, co uniemożliwi im instalowanie niestandardowych ROM i narzędzi zwiększających funkcjonalność, takich jak Xposed Modules.
Android Nougat: radykalna zmiana w sposobie działania Androida?
Chociaż jesteśmy pewni, że zamiar Google'a polegał po prostu na unikaniu potencjalnych problemów dla zwykłych użytkowników Androida, którzy nie wiedzieliby, co zrobić, gdyby ich urządzenie zostało zainfekowane przez złośliwe oprogramowanie, lub gdyby ich pamięć uszkodziła bloki danych, mogła przekazać OEMs a producent to doskonałe narzędzie, które blokuje użytkownikom życie dzięki oferowanym produktom i niczym więcej.
Oczywiście, że ktoś wymyśli jakiś exploit lub obejście tego problemu, i mamy nadzieję, że tak, w prawdziwym duchu Androida. Dopóki ktoś nie znajdzie rozwiązania, wszystko, co my, użytkownicy, możemy zrobić, to upewnić się, że kupujemy nasze urządzenia od producentów przyjaznych dla programistów.
Wyróżniona uprzejmość graficzna: Flickr