Jeśli śledzisz rozwój Androida, na pewno słyszałeś nazwę „Verified Boot” w ciągu ostatnich kilku lat. Google wprowadził funkcję bezpieczeństwa w systemie Android 4.4 (Kitkat) w całkowicie nieinwazyjny sposób i powoli zwiększa jej widoczność w nowszych wersjach systemu operacyjnego Android.
W ciągu ostatnich kilku dni widzieliśmy wiadomości o obecności „Ściśle wymuszony zweryfikowany rozruch”W najnowszej wersji Google 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 dał użytkownikowi tylko ostrzeżenie, jeśli wykryje coś nie tak z partycją systemową, Android Nougat pójdzie o krok dalej i użyje tego, co Google nazywa „Ściśle wymuszonym zweryfikowanym rozruchem”, co spowoduje nie zezwalaj urządzeniu na uruchomienie w ogóle, jeśli wykryje anomalie w partycji, zmiany wprowadzone w bootloaderze lub obecność „złośliwego” kodu w urządzeniu. To nasuwa pytanie: „Co to dokładnie oznacza dla użytkowników?”, Okazuje się, że odpowiedź jest różna dla dwóch głównych kategorii użytkowników Androida (zwykłych i zaawansowanych), a my udzielimy odpowiedzi dla nich obu.
Ściśle wymuszony zweryfikowany rozruch
Najpierw trochę informacji na temat zweryfikowanego rozruchu: Zazwyczaj, gdy Android przeprowadza test weryfikacyjny na partycjach, robi to, dzieląc partycje na bloki 4KiB i porównując je z podpisaną tabelą. Jeśli wszystko się zgadza, oznacza to, że system jest całkowicie czysty. Jeśli jednak okaże się, że niektóre bloki zostaną naruszone lub uszkodzone, Android informuje użytkownika o problemach i pozostawia użytkownikowi rozwiązanie problemu (lub nie)..
Wszystko to ma się zmienić dzięki Androidowi Nougat i ściśle wymuszonemu zweryfikowanemu rozruchowi. Gdy Verified Boot działa w trybie wymuszonym, to nie będzie tolerować żadnych błędów w partycjach. Jeśli wykryje jakieś problemy, to nie pozwoli na uruchomienie urządzenia, i moc pozwól użytkownikowi na uruchomienie do środowisko trybu bezpiecznego, aby spróbować rozwiązać problemy. Jednak Strictly Enforced Verified Boot to nie tylko sprawdzanie złych bloków danych. Zwykle może również korygować błędy w blokach danych. Jest to możliwe dzięki obecności kodów Forward Error Correction, których można użyć do skorygowania błędów w blokach danych. Jednak to nie zawsze może działać, a jeśli tak nie jest, jesteś prawie martwy w wodzie.
Ściśle wymuszony zweryfikowany rozruch: dobry, zły i brzydki
1. Dobra
Wymuszenie zweryfikowanego rozruchu na urządzeniach z Androidem będzie działać zwiększyć bezpieczeństwo na urządzeniach. W przypadku, gdy urządzenie zostanie zainfekowane złośliwym oprogramowaniem, funkcja Strictly Enforced Verified Boot wykryje je przy następnym uruchomieniu urządzenia i albo je naprawi, albo prawdopodobnie poprosi o zrobienie czegoś z tym..
Ta funkcja będzie również sprawdzić, czy dane nie są uszkodzone, iw większości przypadków będzie w stanie skorygować wszelkie błędy wprowadzone w danych, dzięki kodom FEC. Google używa kodów FEC, które mogą popraw jeden nieznany błąd bitowy w 255 bitach. Jasne, wydaje się, że to dość mała liczba, ale spójrzmy na to z perspektywy, jeśli chodzi o urządzenie mobilne:
Uwaga: Poniższe wartości pochodzą z posta na blogu inżyniera Google Sami Tolvanena w witrynie Android Developers.
Google mógł użyć kodów RS (255 223) FEC: te kody byłyby w stanie skorygować 16 nieznanych błędów bitowych w 255 bitach, ale narzut przestrzeni z powodu 32 bitów nadmiarowych danych wyniósłby prawie 15%, a to dużo, zwłaszcza na urządzeniach mobilnych. Dodaj to do faktu, że Android jest dominującym systemem operacyjnym w budżetowych smartfonach, które są dostarczane z pamięcią 4-8 GB, a 15% dodatkowej przestrzeni z pewnością wydaje się dużo.
Poświęcając możliwości korekcji błędów na rzecz oszczędności miejsca, Google zdecydował się na użycie kodów RS (255 253) FEC. Te kody mogą poprawić tylko jeden nieznany błąd w 255 bitach, ale narzut przestrzeni wynosi tylko 0,8%.
Uwaga: RS (255, N) jest reprezentacją kodów Reeda-Solomona, które są rodzajem kodów korygujących błędy.
2. Złe
Słyszałeś kiedyś o „Monecie są dwie strony”? Oczywiście, że tak. Chociaż intencje Google dotyczące ściśle wymuszonego zweryfikowanego rozruchu były bez wątpienia czyste jak jednorożec, mają swój własny zestaw problemów.
Gdy ściśle wymuszony zweryfikowany rozruch sprawdza złośliwe oprogramowanie, sprawdza również nielegalne modyfikacje do jądra, bootloadera i innych rzeczy, którymi nie będę Cię nudzić, ale oznacza to, że Android Nougat prawdopodobnie napotka wiele problemów z rootowaniem i flashowaniem niestandardowych ROM-ów, ponieważ Verified Boot nie może rozróżnić niechcianego kodu złośliwego oprogramowania, i kod, który odblokował twój bootloader. Co oznacza, że jeśli twoje urządzenie zostało dostarczone z zablokowanym bootloaderem, a twój producent OEM nie pozwala na odblokowanie bootloadera, prawie nie możesz tego zrobić. Miejmy nadzieję, że ktoś wymyśli na to exploit.
Na szczęście większość ludzi, którzy rootują swoje urządzenia i flashują niestandardowe ROM-y w celu uzyskania dodatkowych funkcji i funkcjonalności, korzysta z telefonów przyjaznych programistom, takich jak Nexus. W tym temacie jest wiele do rozważenia i zdecydowanie nie jest to koniec niestandardowych ROM-ów, przynajmniej nie na urządzeniach wyposażonych w odblokowany bootloader lub które umożliwiają odblokowanie bootloadera. Jednak urządzenia takie jak telefony Samsung nie pozwalają oficjalnie na odblokowanie bootloadera, a na tych urządzeniach odblokowanie bootloadera z pewnością będzie postrzegane jako „problem” przez Verified Boot, uniemożliwiając uruchomienie urządzenia.
Innym problemem, który pojawi się w przypadku Strictly Enforced Verified Boot, jest taki, który wpłynie nawet na użytkowników, którzy tak naprawdę nie dbają o uzyskanie uprawnień roota lub instalację niestandardowych ROM-ów. Z biegiem czasu podczas korzystania z urządzenia może dojść do naturalnego uszkodzenia danych w pamięci; nie z powodu obecności złośliwego oprogramowania, ale po prostu dlatego, że tak się dzieje. Zwykle nie jest to problem, a przynajmniej nie tak poważny, jak zmieni go Verified Boot. Jeśli masz uszkodzone dane, których Strictly Enforced Verified Boot nie może naprawić podczas rozruchu, nie pozwoli to na uruchomienie urządzenia. Moim zdaniem jest to większy, bardziej widoczny problem niż niektóre uszkodzone dane na partycji użytkownika.
3. Brzydki
Wśród wszystkich korzyści wynikających z wymuszania Verified Boot i wszystkich potencjalnych problemów, prawdopodobnie najbardziej niepokojący jest fakt, że producenci OEM mogą zacząć nadużywać tego do blokowania swoich urządzeń w taki sposób, że ludzie nie będą mogli używać Androida do tego, do czego był przeznaczony. be: otwarty, przyjazny dla programistów i całkowicie konfigurowalny. Ściśle wymuszony zweryfikowany rozruch odda w ręce producentów OEM, moc zapewniającą, że ludzie nie będą w stanie odblokować programów ładujących na swoich urządzeniach, tym samym uniemożliwiając im instalowanie niestandardowych ROM i narzędzi rozszerzających funkcje, takich jak moduły Xposed.
ZOBACZ TAKŻE: Brak niestandardowej pamięci ROM z systemem Android N? Mamy dla Ciebie rozwiązanie
Android Nougat: radykalna zmiana w sposobie działania Androida?
Chociaż jesteśmy pewni, że intencją Google było po prostu uniknięcie potencjalnych problemów dla zwykłych użytkowników Androida, którzy nie wiedzieliby, co zrobić, gdyby ich urządzenie zostało dotknięte przez złośliwe oprogramowanie lub gdyby ich pamięć uszkodziła bloki danych, mogło to przekazać producentom OEM a producent jest idealnym narzędziem, aby zablokować użytkownikom życie z tym, co im zaoferowano, i nic więcej.
Oczywiście ktoś wymyśli exploit lub obejście tej sytuacji i mamy nadzieję, że tak się stanie, w prawdziwym duchu Androida. Dopóki jednak ktoś nie wymyśli rozwiązania, wszystko, co możemy zrobić, to upewnić się, że kupujemy nasze urządzenia od producentów przyjaznych programistom..
Wyróżnione zdjęcie dzięki uprzejmości: Flickr