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