Urządzenia mobilne przetwarzają coraz większe ilości danych osobowych. Obecność takich danych wrażliwych, a także stałe połączenie z ze światem zewnętrznym, spowodowały zwiększone inwestycje ze strony osób o złych zamiarach, które chcą wykorzystać luki w oprogramowaniu, aby osiągnąć swoje cele.
Systemy operacyjne, korzystając z urządzeń zarządzania pamięcią (MMU), zapewniają abstrakcje, które izolują od siebie niepowiązane procesy. Tylko komponenty wchodzące w skład Trusted Computing Base (TCB) mogą być programowane bezpośrednio przez te jednostki MMU.
Ten model był podstawą implementacji prywatności i bezpieczeństwa od czasu wprowadzenia systemów operacyjnych typu Unix. To wymaganie staje się jednak problematyczne, ponieważ dzisiejsze TCB jest zbyt duże: obejmuje większość sterowników urządzeń i magistral, złożonych algorytmów szeregowania, systemów plików, stosów sieciowych i protokołów, pamięci podręcznych, wykonywalnych parserów i programów wczytujących oraz gniazd. Zapewnienie bezpieczeństwa w każdym rogu tego skomplikowanego systemu jest bardzo trudne.
Rdzeń systemu Linux ma ponad 20 milionów linii kodu, a częstotliwość zmian i przepisywania jest zadziwiająca. Ten wzrost jest ogromną pomocą dla Androida i naszego ekosystemu. Jednak duży TCB utrudnia zapewnienie braku podatności, które można wykorzystać.
Dostawcy sprzętu, takie jak TrustZone firmy Arm, umożliwiają podmiotom przetwarzającym obsługę w trybie bezpiecznym i oznaczanie transakcji pamięci jako „bezpiecznej” lub „niezabezpieczonej”. W takich systemach dane wrażliwe są przechowywane i dostępne tylko bezpośrednio w bezpiecznym świecie, co umożliwia świadczenie usług w niezabezpieczonym świecie na żądanie.
Głównym ograniczeniem takich rozwiązań jest to, że domeny są zbyt ogólne: tylko bezpieczne i niepewne. Wraz z poszerzaniem się zakresu zastosowań wymagających izolacji od systemu operacyjnego rośnie powierzchnia ataku, a luki w zabezpieczeniach mogą doprowadzić do skompromitowania całego urządzenia.
Kolejnym ograniczeniem obecnych rozwiązań jest to, że są one zaprojektowane z myślą o świecie stosunkowo statycznym, w którym zasoby dla wszystkich przypadków użycia są uwzględniane i przydzielane z wyprzedzeniem. Te rozwiązania nie są wystarczające w przypadku dynamicznych zastosowań, w których zasoby są przydzielane na żądanie.
Ponadto interfejsy API używane poza systemem operacyjnym Androida są sfragmentowane i ograniczają naszą zdolność do wdrażania przypadków użycia na skalę Androida, w tym podstawowych interfejsów API, takich jak Keymint i Gatekeeper.
Aby rozwiązać te ograniczenia i umożliwić Androidowi zapewnienie solidnej podstawy dla zastosowań nowej generacji, Android 13 wprowadza bezpieczną wirtualizację jako platformę wirtualizacji Androida (AVF).
Głównym celem AVF jest zapewnienie bezpiecznego i prywatnego środowiska wykonania w przypadku zastosowań nowej generacji.