Sygnały braku zaufania

Android dostarcza różnorodne sygnały z urządzeń, za pomocą których administratorzy mogą określać stan zabezpieczeń urządzenia. W modelu bezpieczeństwa opartym na zasadzie zaufania zerowego te sygnały są wykorzystywane do oceny, czy urządzenie powinno mieć dostęp do informacji firmowych.

Funkcja Opis Urządzenia w pełni zarządzane Profile służbowe na urządzeniach należących do firmy Profil służbowy na urządzeniach osobistych Urządzenia niezarządzane
Play Integrity API Pośrednik zaufania może pobierać te sygnały:
  • Integralność urządzenia
  • Integralność aplikacji
  • Szczegóły licencji w Google Play
  • szczegóły środowiska, w tym nową ocenę Google Play Protect;
  • Tak Tak Tak Tak
    Bezpieczeństwo Obecność sprzętu / atestacja klucza Broker zaufania może sprawdzić, czy jego dane logowania do infrastruktury klucza publicznego zostały wygenerowane i zmagazynowane na bezpiecznym sprzęcie. Tak Tak Tak Tak
    Attestacja właściwości urządzeń W ramach atestu można uwzględnić właściwości urządzenia atestu Tak Tak Tak Tak
    Urządzenie Poziom aktualizacji zabezpieczeń Broker zaufania może zweryfikować poziom aktualizacji zabezpieczeń systemu operacyjnego Tak Tak Tak Tak
    Czy na urządzeniu są oczekujące aktualizacje OTA Broker zaufania może sprawdzić, czy istnieje oczekująca aktualizacja systemu operacyjnego urządzenia dostępne Tak Tak Tak Nie dotyczy
    Poziom poprawki zabezpieczeń Mainline Broker zaufania może odczytywać poziom poprawek zabezpieczeń dla zainstalowanych pociąg mainline Tak Tak Tak Tak
    Rejestracja Określony identyfikator Broker zaufania ma dostęp do unikalnego identyfikatora urządzenia konkretnej firmy. Ten dokument tożsamości nie zostanie przywrócony po utworzeniu profilu służbowego ani w fabryce urządzenia resetuj Tak Tak Tak Nie dotyczy
    Stan zarządzania (i aplikacja do zarządzania) Broker zaufania może użyć tego do określenia, czy urządzenie jest zarządzane Tak Tak Tak Nie dotyczy
    Szyfrowanie dysku Broker zaufania może sprawdzić, czy urządzenie jest zaszyfrowane (jeśli potrzebna jest obsługa Androida 8) Tak Tak Tak Tak
    Wersja systemu operacyjnego Usługa pośrednicząca w zapewnieniu zaufania może sprawdzić wersję systemu operacyjnego urządzenia i potwierdzić, że jest ona nowsza niż określona wersja. Tak Tak Tak Tak
    Dostęp Stan sieci (stan sieci i stan Wi-Fi) Broker zaufania może uzyskiwać informacje o aktywnej sieci (sieci komórkowe i Wi-Fi) Tak Tak Tak Tak
    Dostęp do stanu Wi-Fi (Android 11 i starszych, Android 12 i nowsze wersje obsługują zarówno oddzwanianie, jak i na żądanie). Broker zaufania może uzyskać informacje o aktywnej sieci Wi-Fi Tak Tak Tak Tak
    Ustawienia serwera proxy Broker zaufania może uzyskać informacje o bieżącym domyślnym kodzie HTTP ustawieniach serwera proxy. Tak Tak Tak Tak
    Sprawdzanie jakości blokady ekranu Pośrednik zaufania może sprawdzić, czy urządzenie ma skonfigurowaną blokadę ekranu o odpowiedniej jakości, zanim przyzna dostęp. Tak Tak Tak Tak
    Dla programistów włączone opcje Broker zaufania może określić, że urządzenie ma szerszą powierzchnię ataku, gdy opcje programisty są włączone Tak Tak Tak Tak
    Jest Włączono DNS-over TLS Broker zaufania może wykorzystać tę funkcję, aby upewnić się, że tryb prywatnego DNS jest włączony. Tak Tak Tak Tak
    SafetyNet Bezpieczne przeglądanie Broker zaufania może sprawdzić, czy dany adres URL został sklasyfikowany przez Google jako znane zagrożenie. Tak Tak Tak Tak
    Zewnętrzny nośnik danych zamontowany Usługa zaufania może zostać powiadomiona o zamontowaniu pamięci zewnętrznej Tak Tak Tak Tak
    UsageStatsManager Usługodawca zaufania może analizować wzorce korzystania z poszczególnych aplikacji Tak Tak Tak Tak1
    Bezpieczeństwo logowanie Broker zaufania może wykorzystywać te dane w ramach swojego silnika kontekstowego, aby zapewnić zgodność z prawem i utworzyć odcisk palca oparty na zachowaniu. Tak Tak2 Tak2 Nie dotyczy
    Logowanie sieciowe Broker zaufania może wykorzystać te dane w ramach swojego kontekstowego mechanizmu, aby zapewnić zgodność z zasadami i utworzyć odcisk palca na podstawie zachowania Tak Tak2 Tak2 Nie dotyczy
    NetworkStatsManager Broker zaufania może wysyłać zapytania o wykorzystanie sieci przez aplikację w danym okresie interwał Tak Tak Tak2 Tak1
    Przesyłka Widoczność (lista wszystkich aplikacji na urządzeniu) Broker zaufania może zapytać, jakie aplikacje są zainstalowane na urządzeniu Tak Tak3 Tak3 Tak
    Czytaj Stan telefonu Broker zaufania może uzyskać informacje o sieci komórkowej, stanie trwających połączeń oraz liście kont telefonicznych zarejestrowanych na urządzeniu. Tak Tak Tak Tak
    Kiedy urządzenie zostało ostatnio ponownie uruchomione Broker zaufania może zapewnić czas działania systemu Tak Tak Tak Tak
    Pobierz konta Broker zaufania może wykorzystać to do uzyskania dostępu do listy kont w usłudze Konta. Tak Tak3 Tak3 Tak1
    Monitorowanie znaczących zmian poziomu naładowania baterii Broker zaufania może monitorować istotne zmiany w poziomie baterii Tak Tak Tak Tak
    Lokalizacja (drobna, gruba itp.) Broker zaufania może uzyskać dostęp do fizycznej lokalizacji urządzenia Tak Tak Tak1 Tak1

    1 Za zgodą użytkownika

    2 Tylko profil służbowy

    3 Dostęp ograniczony do informacji z profilu służbowego

    Broker zaufania może uzyskać dostęp do PackageInfo dla com.google.android.modulemetadata i stamtąd pobierz versionName:

    private fun mainlineVersion(context: Context): String? {
        val moduleProvider = "com.google.android.modulemetadata"
    
        return try {
                val pm = context.packageManager
                val packageInfo = pm.getPackageInfo(moduleProvider, 0)
                packageInfo.versionName
            } catch (e: PackageManager.NameNotFoundException) {
                null
            }
    }
    

    Zwrócony ciąg znaków możesz przeanalizować w obiekcie Date, używając klasy SimpleDateFormat:

    private val VERSION_NAME_DATE_PATTERNS = Arrays.asList(
          "yyyy-MM-dd",
          "yyyy-MM"
    )
    
    private fun parseDateFromVersionName(text: String): Date? {
        for (pattern in VERSION_NAME_DATE_PATTERNS) {
            try {
                val simpleDateFormat = SimpleDateFormat(
                    pattern,
                    Locale.getDefault()
                )
                simpleDateFormat.timeZone = TimeZone.getDefault()
                return simpleDateFormat.parse(text)
            } catch (e: ParseException) {
                // ignore and try next pattern
            }
        }
        return null
    }
    

    Pamiętaj, że w przypadku Androida 11 i nowszych musisz dodać deklarację zapytania w pliku AndroidManifest.xml, aby spełnić wymóg widoczności pakietu w Androidzie:

    <manifest package="com.example.game">
        <queries>
            <package android:name="com.google.android.modulemetadata" />
        </queries>
        ...
    </manifest>
    

    Broker zaufania może używać tych metod, aby sprawdzić, czy urządzenie jest zarządzane który tryb zarządzania jest aktywny.

    Sprawdź dostępne funkcje zarządzania urządzeniami

    Użyj funkcji getActiveAdmins(), aby sprawdzić, czy urządzenie jest zarządzane. Jeśli ta metoda zwróci wartość null, urządzenie jest niezarządzane.

    Sprawdź, czy jest w pełni zarządzane urządzenie

    Aby sprawdzić, czy urządzenie jest w pełni zarządzane, użyj isDeviceOwnerApp().

    Sprawdzanie profilu służbowego na urządzeniu należącym do firmy

    Użyj isOrganizationOwnedDeviceWithManagedProfile(), aby sprawdzić, czy urządzenie korzysta z trybu zarządzania profilem służbowym na urządzeniach należących do firmy.

    Sprawdzanie profilu służbowego na urządzeniu należącym do użytkownika

    Użyj polecenia isProfileOwnerApp(), aby sprawdzić, czy aplikacja działa w profilu służbowym, i sprawdź, czy isOrganizationOwnedDeviceWithManagedProfile() zwraca wartość false.