Główna » jak » Poradnik SafetyNet Dlaczego Android Pay i inne aplikacje nie działają na urządzeniach z dostępem korzennym

    Poradnik SafetyNet Dlaczego Android Pay i inne aplikacje nie działają na urządzeniach z dostępem korzennym

    Rootowanie urządzenia z Androidem daje dostęp do szerszej gamy aplikacji i głębszego dostępu do systemu Android. Ale niektóre aplikacje - takie jak Google Android Pay - w ogóle nie działają na zrootowanym urządzeniu.

    Google używa czegoś, co nazywa się SafetyNet, aby wykryć, czy Twoje urządzenie jest zrootowane i blokuje dostęp do tych funkcji. Google nie jest jedyny - wiele aplikacji firm trzecich również nie działa na zrootowanych urządzeniach z Androidem, chociaż mogą one sprawdzić obecność root na inne sposoby.

    SafetyNet: Jak Google wie, że zakorzeniłeś swój telefon z Androidem

    Urządzenia z Androidem oferują "SafetyNet API", który jest częścią warstwy Usług Google Play zainstalowanej na urządzeniach z Androidem zatwierdzonych przez Google. Ten interfejs API "zapewnia dostęp do usług Google, które pomagają w ocenie zdrowia i bezpieczeństwa urządzenia z systemem Android", według Google. Jeśli jesteś programistą systemu Android, możesz wywołać ten interfejs API w swojej aplikacji, aby sprawdzić, czy urządzenie, na którym działasz, zostało zmodyfikowane.

    Ten interfejs API SafetyNet ma na celu sprawdzenie, czy urządzenie zostało zmodyfikowane - czy zostało zrootowane przez użytkownika, czy uruchomiło niestandardową ROM, czy zostało zarażone złośliwym oprogramowaniem niskiego poziomu, na przykład.

    Urządzenia dostarczane z Google Play Store i innymi zainstalowanymi aplikacjami muszą przejść Google Android "Pakiet testowy zgodności". Rootowanie urządzenia lub instalowanie niestandardowej pamięci ROM uniemożliwia urządzeniu "CTS Compatible". W ten sposób interfejs API SafetyNet może stwierdzić, czy jesteś zrootowany - sprawdza jedynie kompatybilność CTS. Podobnie, jeśli otrzymasz urządzenie z Androidem, które nigdy nie pojawiło się w aplikacjach Google - na przykład jeden z tych 20 USD wysyłanych bezpośrednio z fabryki w Chinach - w ogóle nie zostanie uznane za "kompatybilne z CTS", nawet jeśli nie zostało zrootowane.

    Aby uzyskać te informacje, Usługi Google Play pobierają program o nazwie "snet" i uruchamiają go w tle na urządzeniu. Program zbiera dane z urządzenia i regularnie wysyła je do Google. Google wykorzystuje te informacje do różnych celów, od uzyskania obrazu szerszego ekosystemu Androida, w celu ustalenia, czy oprogramowanie Twojego urządzenia zostało naruszone. Google nie wyjaśnia dokładnie, czego szuka sNet, ale najprawdopodobniej snet sprawdza czy twoja partycja systemowa została zmodyfikowana ze stanu fabrycznego.

    Możesz sprawdzić stan SafetyNet swojego urządzenia, pobierając aplikację taką jak SafetyNet Helper Sample lub SafetyNet Playground. Aplikacja zapyta usługę Google SafetyNet o stan urządzenia i poinformuje Cię o odpowiedzi uzyskanej z serwera Google.

    Aby uzyskać więcej szczegółów technicznych, przeczytaj ten post na blogu autorstwa Johna Kozyrakisa, stratega technicznego w Cigital, firmie zajmującej się bezpieczeństwem oprogramowania. Wkopał się w SafetyNet i wyjaśnia więcej o tym, jak to działa.

    To zależy od aplikacji

    SafetyNet jest opcjonalny dla twórców aplikacji, a twórcy aplikacji mogą z niego korzystać. SafetyNet tylko uniemożliwia działanie aplikacji, jeśli deweloper aplikacji nie chce, aby działała na zrootowanych urządzeniach.

    Większość aplikacji nie sprawdza w ogóle interfejsu SafetyNet API. Nawet aplikacja, która sprawdza interfejs SafetyNet API - podobnie jak aplikacje testowe - nie przestaje działać, jeśli otrzyma złą odpowiedź. Programista aplikacji musi sprawdzić interfejs SafetyNet API i uniemożliwić działanie aplikacji, jeśli dowie się, że oprogramowanie Twojego urządzenia zostało zmodyfikowane. Aplikacja Google Pay na Androida to dobry przykład tego działania.

    Android Pay nie będzie działać na urządzeniach z dostępem korzennym

    System płatności mobilnych Google Android Pay nie działa na zrootowanych urządzeniach z Androidem. Spróbuj go uruchomić, a zobaczysz komunikat "Nie można użyć Androida Pay". Google nie może zweryfikować, czy Twoje urządzenie lub działające na nim oprogramowanie jest kompatybilne z Androidem. "

    Nie chodzi tylko o ukorzenienie, oczywiście uruchomienie niestandardowej pamięci ROM również naraziłoby Cię na takie wymagania. Interfejs API SafetyNet twierdzi, że nie jest zgodny z systemem Android, jeśli używasz niestandardowej pamięci ROM, z której urządzenie nie pochodzi.

    Pamiętaj, że to nie tylko wykrywa rootowanie. Jeśli Twoje urządzenie zostało zainfekowane przez niektóre złośliwe oprogramowanie na poziomie systemu, które może szpiegować Androida Pay i inne aplikacje, interfejs API SafetyNet uniemożliwiłby działanie Androida Pay, co jest dobrą rzeczą.

    Zrootowanie urządzenia powoduje złamanie normalnego modelu zabezpieczeń systemu Android. Android Pay zwykle chroni Twoje dane płatności za pomocą funkcji Sandboxing Androida, ale aplikacje mogą wyskoczyć z piaskownicy na zrootowanym urządzeniu. Google nie ma możliwości dowiedzenia się, jak bezpieczny jest Android Pay na określonym urządzeniu, jeśli jest on zrootowany lub działa nieznana niestandardowa pamięć ROM, więc je blokuje. Inżynier Androida Pay wyjaśnił problem na forum programistów XDA, jeśli zechcesz przeczytać więcej.

    Inne sposoby Aplikacje mogą wykrywać root

    SafetyNet to tylko jeden ze sposobów, w jaki aplikacja może sprawdzić, czy działa na zrootowanym urządzeniu. Na przykład urządzenia Samsung zawierają system zabezpieczeń o nazwie KNOX. Jeśli zrootujesz swoje urządzenie, zadziała bezpieczeństwo KNOX. Samsung Pay, własna aplikacja Samsung do płatności mobilnych, nie będzie działać na zrootowanych urządzeniach. Samsung używa do tego celu KNOX, ale równie dobrze mógłby używać SafetyNet.

    Podobnie, wiele aplikacji innych firm zablokuje ci ich używanie, a nie wszystkie korzystają z SafetyNet. Mogą po prostu sprawdzić obecność znanych aplikacji i procesów root na urządzeniu.

    Trudno jest znaleźć aktualną listę aplikacji, które nie działają, gdy urządzenie jest zrootowane. Jednak RootCloak zapewnia kilka list. Te listy mogą być nieaktualne, ale są najlepsze, jakie możemy znaleźć. Wiele z nich to aplikacje bankowe i inne mobilne portfele, które blokują dostęp do zrootowanych telefonów, aby chronić dane bankowe przed przechwytywaniem przez inne aplikacje. Aplikacje do strumieniowania wideo mogą również odmówić działania na urządzeniu zrootowanym jako pewnego rodzaju środek DRM, próbując uniemożliwić nagrywanie chronionego strumienia wideo.

    Niektóre aplikacje można oszukać

    Google gra w kotka i myszkę z SafetyNet, stale aktualizując go, starając się wyprzedzić ludzi, którzy się nim rządzą. Na przykład programista Android Chainfire opracował nową metodę rootowania urządzeń z systemem Android bez modyfikowania partycji systemowej, znanej jako "root bez systemu". SafetyNet początkowo nie wykrył, że takie urządzenia zostały naruszone, a Android Pay działał - ale SafetyNet został ostatecznie zaktualizowany, aby wykryć tę nową metodę rootowania. Oznacza to, że Android Pay nie działa już wraz z systemowym rootem.

    W zależności od tego, jak aplikacja sprawdza dostęp roota, możesz go oszukać. Na przykład istnieją rzekomo metody rootowania niektórych urządzeń Samsung bez wyzwalania zabezpieczeń KNOX, co pozwoliłoby na kontynuowanie korzystania z usługi Samsung Pay.

    W przypadku aplikacji, które po prostu sprawdzają aplikacje rootowe w twoim systemie, istnieje Xposed Framework o nazwie RootCloak, który podobno pozwala ci ich oszukać. Działa to z aplikacjami takimi jak DirecTV GenieGo, Best Buy CinemaNow i Movies by Flixster, które zwykle nie działają na urządzeniach zrootowanych. Jeśli jednak te aplikacje zostały zaktualizowane do korzystania z sieci bezpieczeństwa Google, nie byłyby tak łatwe do oszukania w ten sposób.


    Większość aplikacji będzie działać normalnie po zrootowaniu urządzenia. Aplikacje mobilne to wielki wyjątek, podobnie jak inne aplikacje bankowe i finansowe. Płatne usługi przesyłania strumieniowego wideo czasami próbują zablokować Ci także możliwość oglądania ich filmów.

    Jeśli potrzebna aplikacja nie działa na Twoim zrootowanym urządzeniu, możesz zawsze odinstalować swoje urządzenie, aby z niego korzystać. Aplikacja powinna działać po przywróceniu urządzenia do bezpiecznego stanu fabrycznego.

    Image Credit: Danny Choo na Flickr