Weryfikacja podczas uruchamiania

Weryfikacja podczas uruchamiania zapewnia, że uruchomiony kod pochodzi z zaufanego źródła (zwykle od producentów OEM urządzeń) i nie jest wynikiem ataku lub uszkodzenia. Umieszcza on pełny łańcuch zaufania, począwszy od chronionego sprzętowo korzenia zaufania do programu rozruchowego, partycji rozruchowej i innych zweryfikowanych partycji, w tym partycji system, vendor i opcjonalnie oem. Podczas uruchamiania urządzenia każdy etap weryfikuje integralność i autentyczność następnego etapu, zanim przekaże mu wykonanie.

Oprócz sprawdzania, czy na urządzeniach działa bezpieczna wersja Androida, Verified Boot sprawdza, czy jest to prawidłowa wersja Androida, korzystając z funkcji ochrony przed cofnięciem aktualizacji. Ochrona przed przywracaniem pomaga zapobiegać trwałemu wykorzystaniu luki w zabezpieczeniach, ponieważ zapewnia, że urządzenia są aktualizowane tylko do nowszych wersji Androida.

Oprócz weryfikacji systemu operacyjnego weryfikowane uruchamianie umożliwia też urządzeniom z Androidem komunikowanie użytkownikowi stanu integralności.

Tło

W Androidzie 4.4 dodano obsługę funkcji Verified Boot i jądra dm-verity. Ta kombinacja funkcji weryfikacyjnych stanowiła Weryfikację podczas uruchamiania 1.

W poprzednich wersjach Androida użytkownicy otrzymywali ostrzeżenia o uszkodzeniu urządzenia, ale nadal mogli go uruchomić. W Androidzie 7.0 zaczęliśmy ściśle egzekwować weryfikację podczas uruchamiania, aby uniemożliwić uruchamianie urządzeń z uszkodzonym oprogramowaniem. W Androidzie 7.0 dodano też obsługę korekcji błędów w transmisji, aby zwiększyć niezawodność w przypadku nieszkodliwego uszkodzenia danych.

Android w wersji 8.0 lub nowszej zawiera weryfikację podczas uruchamiania Androida (AVB), czyli referencyjną implementację weryfikacji podczas uruchamiania, która działa z Project Treble. Oprócz współpracy z Treble AVB znormalizował format nagłówka partycji i dodał funkcje ochrony przed cofnięciem.