یکپارچه سازی fs-verity

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

fs-verity یک ویژگی هسته لینوکس است که به سیستم اجازه می‌دهد فایل‌های APK را با گواهی‌های دیجیتال قابل اعتماد به‌طور مداوم تأیید کند. هنگامی که پلتفرم این مکانیسم تأیید دسترسی را با یک گواهی قابل اعتماد از فروشگاه پشتیبانی شده مانند Play ارائه می‌کند، فروشگاه می‌تواند فایل‌های APK را با امضای fs-verity برای تأیید مداوم نصب کند. فایل‌های محافظت‌شده توسط fs-verity تغییرناپذیر هستند و درخواست‌های خواندن تنها در صورتی موفق می‌شوند که محتوا تأیید شود.

هنگامی که fs-verity در هسته پشتیبانی می‌شود، شرکا می‌توانند نوع جدید گواهی را از فروشگاه‌های مورد اعتماد خود در پارتیشن /product/etc/security/fsverity قرار دهند، گواهی‌ها در زمان راه‌اندازی روی کلیدهای هسته بارگیری می‌شوند. در دستگاهی که از این ویژگی پشتیبانی می‌کند، فروشگاه مورد اعتماد می‌تواند یک APK با امضای fs-verity مربوطه خود نصب کند.

پیاده سازی

دستگاه هایی که با اندروید R راه اندازی می شوند

fs-verity یک ویژگی هسته لینوکس است که از نسخه 5.4 آپدیت شده است و به کرنل رایج اندروید 4.14 و بالاتر بکپورت شده است. دستگاه‌های جدیدی که از هسته مشترک 4.14 یا بالاتر استفاده می‌کنند و از ext4 یا f2fs برای پارتیشن‌های داده‌های کاربر استفاده می‌کنند، نیازی به انجام هیچ اقدامی ندارند، زیرا از قبل از fs-verity از طریق هسته لینوکس پشتیبانی می‌کنند.

ارتقاء دستگاه ها به اندروید R

وصله های fs-verity باید به هسته دستگاه بکپورت شوند. برای ext4، fsverity را به پرچم fs_mgr در fstab اضافه کنید. سپس این ویژگی را می توان با تنظیمات زیر فعال کرد:

ro.apk_verity.mode=2

API

یک API عمومی جدید برای پرس و جو از وضعیت پشتیبانی دستگاه و تعیین اینکه آیا یک گواهی در دستگاه قابل اعتماد است یا خیر، معرفی شده است.

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

اعتبار سنجی

تست های VTS، CTS و GTS زیر را برای اعتبارسنجی پیاده سازی اجرا کنید.

  • [VTS] ApkVerityTest
  • [CTS] CtsAppSecurityHostTestCases:android.appsecurity.cts.ApkVerityInstallTest
  • [CTS] CtsSecurityHostTestCases#android.security.cts.KernelConfigTest
  • [GTS] GtsPlayFsiTestCases و GtsPlayFsiHostTestCases