fs-verity Entegrasyonu

fs-verity , sistemin APK dosyalarını güvenilir dijital sertifikalarla sürekli olarak doğrulamasını sağlayan bir Linux çekirdeği özelliğidir. Platform, Play gibi desteklenen bir mağazadan alınan güvenilir bir sertifikayla bu erişime dayalı doğrulama mekanizmasını sağladığında, mağaza sürekli doğrulama için bir fs-verity imzasıyla APK dosyalarını yükleyebilir. fs-verity tarafından korunan dosyalar değişmezdir ve okuma istekleri yalnızca içerik doğrulanırsa başarılı olur.

Çekirdekte fs-verity desteklendiğinde, iş ortakları güvenilir mağazalarından yeni sertifika türünü /product/etc/security/fsverity ürün bölümüne koyabilir, sertifikalar önyükleme sırasında çekirdek anahtarlığına yüklenir. Bu özelliği destekleyen bir cihazda, güvenilir mağaza, karşılık gelen fs-verity imzasıyla bir APK yükleyebilir.

uygulama

Android R ile başlatılan cihazlar

fs-verity, 5.4'ten beri yukarı akışlı bir Linux çekirdeği özelliğidir ve Android ortak çekirdeği 4.14 ve daha yüksek sürümlere desteklenmiştir. Ortak çekirdek 4.14 veya üzerini kullanan ve kullanıcı verisi bölümleri için ext4 veya f2fs kullanan yeni cihazların, Linux çekirdeği aracılığıyla fs-verity'yi zaten destekledikleri için herhangi bir işlem yapmasına gerek yoktur.

Android R'ye yükseltilen cihazlar

fs-verity yamalarının aygıt çekirdeğine geri yüklenmesi gerekir. ext4 için fstab içindeki fs_mgr bayrağına fsverity ekleyin. Ardından, özellik aşağıdaki ayarla etkinleştirilebilir:

ro.apk_verity.mode=2

API

Cihazın destek durumunu sorgulamak ve bir cihazda bir sertifikaya güvenilip güvenilmediğini belirlemek için yeni bir genel API tanıtıldı.

  public final class FileIntegrityManager {
    public boolean isApkVeritySupported();
    @RequiresPermission(anyOf={
        android.Manifest.permission.INSTALL_PACKAGES,
        android.Manifest.permission.REQUEST_INSTALL_PACKAGES})
    public boolean isAppSourceCertificateTrusted(@NonNull java.security.cert.X509Certificate)
            throws java.security.cert.CertificateEncodingException;
  }

doğrulama

Uygulamayı doğrulamak için aşağıdaki VTS, CTS ve GTS testlerini çalıştırın.

  • [VTS] ApkVerityTest
  • [CTS] CtsAppSecurityHostTestCases:android.appsecurity.cts.ApkVerityInstallTest
  • [CTS] CtsSecurityHostTestCases#android.security.cts.KernelConfigTest
  • [GTS] GtsPlayFsiTest Cases & GtsPlayFsiHostTest Cases