SafetyNet to mechanizm bezpieczeństwa opracowany przez Google, którego celem jest weryfikacja integralności urządzenia z systemem Android. Służy do sprawdzania, czy smartfon lub tablet nie został zmodyfikowany w sposób naruszający założenia bezpieczeństwa systemu – np. poprzez rootowanie, odblokowanie bootloadera czy instalację nieoficjalnego ROM-u.

SafetyNet był przez lata kluczowym elementem ekosystemu Androida, wykorzystywanym przez aplikacje bankowe, systemy płatności mobilnych oraz usługi wymagające wysokiego poziomu zaufania do urządzenia.

Jak działał SafetyNet

SafetyNet opierał się na mechanizmie SafetyNet Attestation API, który pozwalał aplikacjom sprawdzić stan systemu. Proces wyglądał w uproszczeniu tak:

  1. Aplikacja wysyłała zapytanie do usługi Google.
  2. System Android generował zestaw informacji o urządzeniu.
  3. Serwery Google analizowały dane i zwracały wynik weryfikacji.

SafetyNet sprawdzał m.in.:

  • czy system nie jest zrootowany,
  • czy bootloader nie został odblokowany,
  • czy urządzenie posiada certyfikację Google,
  • czy nie wykryto modyfikacji systemu,
  • czy środowisko nie jest emulatorem.

Wynik był przekazywany aplikacji w formie odpowiedzi pozytywnej lub negatywnej.

Zastosowanie SafetyNet

SafetyNet był wykorzystywany głównie w aplikacjach wymagających wysokiego poziomu bezpieczeństwa:

  • aplikacje bankowe,
  • Google Pay i inne systemy płatności NFC,
  • aplikacje streamingowe chroniące treści DRM,
  • gry online zabezpieczone przed oszustwami,
  • systemy firmowe wymagające zgodności z polityką bezpieczeństwa.

Jeśli urządzenie nie przechodziło testu SafetyNet, aplikacja mogła odmówić działania.

SafetyNet a root i custom ROM

Użytkownicy rootowanych urządzeń często napotykali problem z SafetyNet. System wykrywał modyfikacje i oznaczał urządzenie jako niezgodne.

W odpowiedzi społeczność opracowała narzędzia takie jak Magisk, które umożliwiały ukrywanie roota przed mechanizmem weryfikacji. Była to jednak ciągła „gra w kotka i myszkę” pomiędzy Google a twórcami narzędzi modyfikacyjnych.

Koniec SafetyNet i Play Integrity API

Google stopniowo wygasiło klasyczne SafetyNet Attestation API, zastępując je nowym rozwiązaniem – Play Integrity API.

Nowy system oferuje:

  • bardziej zaawansowaną weryfikację integralności urządzenia,
  • sprawdzanie zgodności aplikacji,
  • dodatkowe poziomy oceny bezpieczeństwa,
  • lepszą integrację z usługami Google Play.

Play Integrity API jest trudniejsze do obejścia niż stare SafetyNet i stanowi obecnie standardowy mechanizm weryfikacji urządzeń Android.

SafetyNet a prywatność

Mechanizm SafetyNet budził również dyskusje dotyczące prywatności, ponieważ weryfikacja odbywała się po stronie serwerów Google. Oznaczało to przesyłanie informacji o urządzeniu do infrastruktury Google.

Z punktu widzenia bezpieczeństwa rozwiązanie było skuteczne, ale ograniczało możliwość korzystania z niestandardowych systemów bez konsekwencji w postaci blokady aplikacji.

SafetyNet był systemem weryfikacji integralności urządzeń Android, wykorzystywanym do ochrony aplikacji wymagających wysokiego poziomu bezpieczeństwa. Sprawdzał, czy system nie został zmodyfikowany i czy spełnia wymagania Google. Choć dziś został zastąpiony przez Play Integrity API, odegrał istotną rolę w rozwoju zabezpieczeń Androida i relacji między otwartością systemu a potrzebą kontroli bezpieczeństwa.

Kategorie:

mgr Bartłomiej_Speth

Absolwent wydziału Fizyki Uniwersytetu im. Adama Mickiewicza w Poznaniu na kierunku Fizyka z informatyką. Miłośnik komputerów, sprzętu komputerowego oraz otwartego oprogramowania. Specjalizuje się w budowie, naprawach, modyfikacjach laptopów jak i jednostek stacjonarnych. Zapalony PC'towiec od momentu, w którym otrzymał swój pierwszy komputer z procesorem 80286.