Кореневе сховище Android вимагало оновлення OTA для додавання або видалення кореневих сертифікатів. В Android 14 цього не буде.
У Android є невелика проблема, яка піднімає свою потворну голову лише один раз на блакитний місяць, але коли це відбувається, це викликає певну паніку. На щастя, Google має рішення в Android 14, яке усуває цю проблему на зародку. Проблема полягає в тому, що сховище кореневих сертифікатів системи Android (кореневе сховище) можна було оновити лише за допомогою оновлення по повітрю (OTA) протягом більшої частини існування Android. Незважаючи на те, що OEM-виробники та оператори стали краще надсилати оновлення швидше та частіше, все ще може бути краще. Ось чому Google розробив рішення, щоб зробити кореневий магазин Android доступним для оновлення через Google Play, починаючи з Android 14.
Коли ви щодня виходите в Інтернет, ви вірите, що програмне забезпечення вашого пристрою налаштовано належним чином, щоб спрямовувати вас на потрібні сервери, на яких розміщені веб-сайти, які ви хочете відвідати. Встановлення правильного з’єднання є важливим, щоб ви не опинилися на сервері, який належить комусь із поганими намірами, але безпечно встановлення цього з’єднання також важливе, тому будь-які дані, які ви надсилаєте на цей сервер, шифруються під час передачі (TLS), і, сподіваємося, це нелегко підглядав. Ваша ОС, веб-браузер і програми встановлюватимуть безпечні з’єднання з серверами в Інтернеті (HTTPS), однак, якщо вони довіряють сертифікату безпеки сервера (TLS).
Оскільки в Інтернеті так багато веб-сайтів, ОС, веб-переглядачі та програми не підтримують список сертифікатів безпеки кожного сайту, якому вони довіряють. Натомість вони перевіряють, хто підписав сертифікат безпеки, виданий сайту: чи був він власноруч підписаний чи підписаний іншою організацією (центром сертифікації [CA]), якому вони довіряють? Цей ланцюжок перевірок може складатися з кількох рівнів, поки ви не досягнете кореневого ЦС, який видав безпеку сертифікат, який використовується для підпису сертифіката, який зрештою підписав сертифікат, виданий сайту, на якому ви перебуваєте відвідування.
Кількість кореневих центрів сертифікації набагато, набагато менша, ніж кількість веб-сайтів, які мають сертифікати безпеки, видані ними безпосередньо або через один або кілька проміжних центрів сертифікації, що робить можливим для ОС і веб-браузерів підтримувати список кореневих сертифікатів ЦС, які вони довіра. Android, наприклад, має список довірених кореневих сертифікатів, які надсилаються в системний розділ ОС, призначений лише для читання, за адресою /system/etc/security/cacerts. Якщо програми цього не роблять обмежити, яким сертифікатам довіряти, що називається закріпленням сертифіката, тоді вони за замовчуванням використовують кореневе сховище ОС, коли вирішують, чи довіряти сертифікату безпеки. Оскільки «системний» розділ доступний лише для читання, кореневе сховище Android є незмінним за межами оновлення ОС, що може створити проблему, коли Google хоче видалити або додати новий кореневий сертифікат.
Іноді це кореневий сертифікат скоро закінчиться, що потенційно може призвести до збою сайтів і служб, а веб-браузери видаватимуть попередження про незахищені з’єднання. У деяких випадках це ЦС, який видав кореневий сертифікат підозрюється як зловмисний або скомпрометований. Або a новий кореневий сертифікат виникає проблема, яку необхідно додати до кореневого сховища кожної основної ОС, перш ніж центр сертифікації зможе фактично почати підписувати сертифікати. Кореневе сховище Android не потрібно оновлювати так часто, але буває так, що відносно повільний темп оновлень Android стає проблемою.
Однак, починаючи з Android 14, кореневий магазин Android має можна оновлювати через Google Play. В Android 14 тепер є два каталоги, що містять кореневий каталог ОС: вищезгаданий immutable-outside-of-OTA. /system/etc/security/cacerts розташування та новий, оновлюваний /apex/com.[google].android.conscrypt/security/cacerts каталог. Останній міститься в модулі Conscrypt, модулі Project Mainline, представленому в Android 10, який забезпечує реалізацію TLS Android. Оскільки модуль Conscrypt можна оновлювати через системні оновлення Google Play, це означає, що кореневий магазин Android також буде оновлений.
Окрім можливості оновлення кореневого сховища Android, Android 14 також додає та видаляє деякі кореневі сертифікати в рамках щорічного оновлення Google кореневого сховища системи.
Кореневі сертифікати, додані в Android 14, включають:
- AC RAIZ FNMT-RCM СЕРВІДОРИ SEGUROS
- Кореневий CA безпечного сервера ANF
- Професійний авторизаційний сертифікат CIF A62634068
- Звичайно, Root E1
- Звичайно, Root R1
- Certum EC-384 CA
- Certum Trusted Root CA
- D-TRUST BR Root CA 1 2020
- D-TRUST EV Корінь CA 1 2020
- DigiCert TLS ECC P384 Корінь G5
- DigiCert TLS RSA4096 Root G5
- GLOBALTRUST 2020
- GlobalSign Root E46
- GlobalSign Root R46
- HARICA TLS ECC Root CA 2021
- HARICA TLS RSA Root CA 2021
- HiPKI Root CA - G1
- Корінь ISRG X2
- Безпека зв'язку ECC RootCA1
- Безпека зв'язку RootCA3
- Telia Root CA v2
- Tugra Global Root CA ECC v3
- Tugra Global Root CA RSA v3
- TunTrust Root CA
- Кореневий CA vTrus ECC
- vTrus Root CA
Кореневі сертифікати, видалені в Android 14, включають:
- Корінь торгових палат - 2008
- Глобальний корінь Cybertrust
- DST Корінь CA X3
- EC-ACC
- Основний центр сертифікації GeoTrust - G2
- Global Chambersign Root 2008
- GlobalSign
- Грецькі академічні та дослідницькі установи RootCA 2011
- Центр сертифікації мережевих рішень
- Кореневий центр сертифікації QuoVadis
- Sonera Class2 CA
- Staat der Nederlanden EV Root CA
- Staat der Nederlanden Root CA - G3
- TrustCor ECA-1
- TrustCor RootCert CA-1
- TrustCor RootCert CA-2
- Trustis FPS Root CA
- Універсальний кореневий центр сертифікації VeriSign
Для більш глибокого пояснення сертифікатів TLS ви повинні прочитати мого колегу Стаття Адама Конвея тут. Щоб отримати докладніший аналіз того, як працює оновлюваний кореневий магазин Android 14 і чому він з’явився, перегляньте стаття, яку я написав раніше на тему.