Sıfır güven sinyalleri

Android, yöneticilerin bir cihazın güvenlik durumunu belirlemek için kullanabileceği çeşitli cihaz sinyalleri sağlar. Sıfır Güven güvenlik modelinde bu sinyaller, bir cihazın şirket bilgilerine erişmesine izin verilip verilmeyeceğini değerlendirmek için kullanılır.

Özellik Açıklama Tümüyle Yönetilen cihazlar Şirkete ait cihazlarda iş profili Şahıslara ait cihazlarda iş profili (KCG) Yönetilmeyen cihazlar
Oynat Integrity API Güven aracısı aşağıdaki sinyalleri alabilir:
  • Cihaz bütünlüğü
  • Uygulama bütünlüğü
  • Play lisans ayrıntıları
  • Yeni Play Protect kararı dahil olmak üzere ortam ayrıntıları
  • Evet Evet Evet Evet
    Güvenli Donanım mevcut / anahtar onayı Güven aracısı, PKI kimlik bilgilerinin güvenli donanımda oluşturulup depolandığını doğrulayabilir Evet Evet Evet Evet
    Cihaz Özellikleri Onayı Cihaz özellikleri, anahtar onayının bir parçası olarak onay kaydının Evet Evet Evet Evet
    Cihaz Güvenliği Güven aracısı, OS güvenlik yaması düzeyini doğrulayabilir Evet Evet Evet Evet
    Cihazda bekleyen OTA güncellemesi var mı? Güven aracısı, beklemede bir cihaz işletim sistemi güncellemesi olup olmadığını kontrol edebilir mevcut Evet Evet Evet Yok
    Mainline Güvenlik Yaması Düzeyi Güven aracısı, yüklü ana hat treninin güvenlik yaması düzeyini okuyabilir Evet Evet Evet Evet
    Kayıt Belirli bir kimlik Bir Güven aracısı, kendisine özgü benzersiz bir cihaz kimliğine erişebilir kurumsal Bu kimlik, iş profili yeniden oluşturma ve cihaz fabrikasında hayatta kalır sıfırlandı Evet Evet Evet Yok
    Yönetim Durumu (ve yöneten uygulama) Güven aracısı, bir cihazın yönetilip yönetilmediğini belirlemek için bunu kullanabilir. Evet Evet Evet Yok
    Disk şifreleme Güven aracısı, cihazın şifrelenmiş olup olmadığını kontrol edebilir (Android 8 desteği gerekiyorsa) Evet Evet Evet Evet
    İşletim Sistemi Sürümü Güven aracısı cihazın işletim sistemi sürümünü kontrol edip şu sınırın üzerinde olduğunu onaylayabilir: belirli bir sürüm Evet Evet Evet Evet
    Ağ durumuna erişme (Ağ durumu ve kablosuz ağ durumu) Güven aracısı etkin ağ durumu hakkında bilgi alabilir (hücresel ve kablosuz) Evet Evet Evet Evet
    Kablosuz Durumuna Erişme (Android 11 ve önceki sürümler, Android 12 ve sonraki sürümler hem geri çağırma hem de isteğe bağlı yaklaşımları destekler.) Güven aracısı, etkin kablosuz ağ hakkında bilgi edinebilir Evet Evet Evet Evet
    Proxy Ayarları Güven aracısı, geçerli varsayılan HTTP proxy ayarlarıyla ilgili bilgi edinebilir. Evet Evet Evet Evet
    Ekran kalite kontrolünü kilitleme Güven aracısı, erişim vermeden önce cihazda belirli kalitede bir ekran kilidinin yapılandırıldığından emin olabilir. Evet Evet Evet Evet
    Geliştirici seçenekler etkinleştirildi Geliştirici seçenekleri etkinleştirildiğinde güven aracısı, bir cihazın daha geniş bir saldırı yüzeyine sahip olduğunu tanımlayabilir Evet Evet Evet Evet
    Eşittir TLS üzerinden DNS etkin Güven aracısı, Gizli DNS modunun etkinleştirildiğinden emin olmak için bu özelliği kullanabilir Evet Evet Evet Evet
    SafetyNet Güvenli Tarama Güven aracısı, belirli bir URL’nin ilk kez tehdit olarak sınıflandırır. Evet Evet Evet Evet
    Harici Medya Montajlı Harici depolama birimi eklendiğinde Güven aracısı bilgilendirilebilir Evet Evet Evet Evet
    UsageStatsManager Güven aracısı, uygulamaların kullanım kalıplarını inceleyebilir Evet Evet Evet Evet1
    Güvenlik günlüğü Güven aracısı motor özelliklerini kullanarak uyumluluğu sağlamak ve davranışa dayalı bir parmak izi Evet Evet2 Evet2 Yok
    Ağ günlük kaydı Güven aracısı motor özelliklerini kullanarak uyumluluğu sağlamak ve davranışa dayalı bir parmak izi Evet Evet2 Evet2 Yok
    NetworkStatsManager Güven aracısı, uygulamanın belirli bir zaman içindeki ağ kullanımını sorgulayabilir aralık Evet Evet Evet2 Evet1
    Paket Görünürlük (Cihazdaki tüm uygulamaları listeleme) Güven aracısı cihazda hangi uygulamaların yüklü olduğunu sorgulayabilir Evet Evet3 Evet3 Evet
    Telefon durumunu okuma Tröst aracısı, mobil ağ bilgilerini, devam eden herhangi bir işlemin durumunu ve aramaları ve PhoneAccount listesi cihazda kayıtlı Evet Evet Evet Evet
    Cihazın en son yeniden başlatılma zamanı Güven aracısı sistemin çalışma süresini alabilir. Evet Evet Evet Evet
    Hesapları Al Güven aracısı, Hesap Hizmeti'ndeki hesap listesine erişmek için bu izinden yararlanabilir. Evet Evet3 Evet3 Evet1
    Pil seviyesindeki önemli değişiklikleri izleme Güven aracısı pil seviyesindeki önemli değişiklikleri izleyebilir Evet Evet Evet Evet
    Konum (Hassas, Kaba vb.) Güven aracısı, cihazın fiziksel konumuna erişebilir Evet Evet Evet1 Evet1

    1 Kullanıcı izniyle

    2 Yalnızca iş profili

    3 Erişim, iş profili bilgileriyle sınırlıdır

    Güven aracısı, com.google.android.modulemetadata modülünün PackageInfo dosyasına erişebilir ve buradan versionName aşağıdaki bilgileri alabilir:

    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
            }
    }
    

    SimpleDateFormat sınıfını kullanarak döndürülen dizeyi bir Date nesnesine ayrıştırabilirsiniz:

    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
    }
    

    Android 11 ve sonraki sürümlerde Android'in paket görünürlüğünü karşılamak için AndroidManifest.xml dosyanıza bir sorgu beyanı eklemeniz gerektiğini unutmayın:

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

    Güven aracısı, bir cihazın yönetimde olup olmadığını doğrulamak için bu yöntemleri kullanabilir hangi yönetim modunun etkin olduğunu görebilirsiniz.

    Cihaz yönetimini kontrol etme

    Bir cihazın yönetimde olup olmadığını kontrol etmek için getActiveAdmins() işlevini kullanın. Bu yöntemi, null değerini döndürürse cihaz yönetilmiyor.

    Tümüyle yönetilen cihaz olup olmadığını kontrol etme

    Cihazın tümüyle yönetilip yönetilmediğini kontrol etmek için isDeviceOwnerApp()'i kullanın.

    Şirkete ait bir cihazda iş profilini kontrol etme

    Bir cihazın şirkete ait cihazlar için iş profili yönetim modu kullanıp kullanmadığını kontrol etmek üzere isOrganizationOwnedDeviceWithManagedProfile() simgesini kullanın

    Şahıslara ait bir cihazda iş profili olup olmadığını kontrol etme

    Bir uygulamanın iş yerinde çalışıp çalışmadığını kontrol etmek için isProfileOwnerApp() aracını kullanın profilinizi oluşturun ve isOrganizationOwnedDeviceWithManagedProfile() adlı kullanıcının geri döndüğünü doğrulayın false.