Android OS'e duyulan güveni daha da artırmak için Google Play üzerinden güncelleme olarak sunulan her Android OS modülünü (Mainline olarak adlandırılır) şeffaflık günlüğümüzde listelemeyi taahhüt ediyoruz. Bu modüllerle ilgili iddialarımızı doğrulamak için şeffaflık günlüğünü yayınlarız. Önceden yüklenmiş modüller, Pixel İkili Şeffaflığı kapsamında olduğundan açıkça listelenmemiştir.
Tehdit Modeli
Şeffaflık sistemleri, tedarik zinciri saldırılarını tespit etmek ve böylece önlemek için kullanılabilir. Bazı örneklerle açıklayalım.
Bir saldırganın, Mainline modülünü (APEX veya APK dosyası olabilir) kötü amaçlı olarak değiştirdiğini ve hatta Google Play üzerinden dağıtım için kullanılan imzalama anahtarıyla imzalamayı başardığını varsayalım. Şüpheli bir modül alan herkes, modülün gerçekliğini doğrulamak için ikili şeffaflık günlüğüne sorgu gönderebilir. Google'ın ilgili modül meta verilerini günlük dosyasına eklemediğini görürler ve güvenliği ihlal edilmiş OS modülüne güvenmemeleri gerektiğini anlarlar.
Günlüğe yayınlama, imzalama içeren yayınlama sürecinden ayrı bir işlem olduğundan saldırganın yalnızca anahtarı ele geçirmesi yeterli olmaz.
Bu günlüğü standart bir tanık protokolü kullanarak herkese açık bir tanık ağına da entegre etmeyi planlıyoruz. Bu nedenle, harici ve bağımsız tarafları bu herkese açık günlüğün bütünlüğünü izlemeye teşvik ediyoruz. Bu taraflar, günlüğün yalnızca ekleme özelliğini onaylayabilir ve herhangi bir kurcalamayı bildirebilir.
Bu tür bir şeffaflık sisteminin varlığı ve saldırıların daha kolay tespit edilebilmesi, kötü amaçlı faaliyetleri engeller. Bir işletim sistemi modülü saldırıya uğrarsa ancak kullanıcılar yalnızca günlükte bulunanlara güvenirse saldırıya uğrayan modülün herkese açık olarak gösterilmesi gerekir. Bu sayede, güvenliği ihlal edilmiş modüllerin varlığının keşfedilme olasılığı artar ve dağıtımının kaldırılması için işlem yapılabilir.
Hak Talebinde Bulunan Taraf Modeli
Hak Sahibi Modeli, doğrulanabilir bir sistemdeki rolleri ve yapıları tanımlamak için kullanılan bir çerçevedir. Android Mainline Modülleri Şeffaflığı söz konusu olduğunda, bu günlükte kaydedilen bir modül dosyasının karma değerinin, kamuya açık kullanım için tasarlanmış resmi bir Android modülünün belirli bir sürümünü temsil ettiği iddia edilir.
- MainlineModule hak talebi: (Ben, Google,
$hashModule'nin$mainlineModuleiçin olduğunu iddia ediyorum), burada:
$mainlineModule kopyasına sahip olan herkes bu talebi doğrulayabilir.
Doğrulama sayfasında bu işlemle ilgili ayrıntılı talimatlar verilmektedir.
Bu adımlar hem normal APK'lar hem de Mainline modülleri (APK veya APEX dosyaları olabilir) için geçerlidir.
Günlük İçeriği
Google, bir Mainline modülünün yeni bir sürümünü yayınladığında Mainline Modülleri Şeffaflık Günlüğü'ne ilgili bir giriş ekler.
Bu günlükteki her giriş dört meta veri parçası içerir:
- İmzalı bir Android Mainline modülünün APK veya APEX'inin karması. Bu, dosyanın tamamının SHA256 özetinin onaltılık dizesidir.
- Yukarıdaki karma türünün açıklaması. Bu bir dizedir.
- Modülün paket adı. Bu bir dizedir.
- Modülün sürüm numarası (versionCode). Bu, sıfır olmayan bir tam sayıdır.
Bir günlük girişinin biçimi, aşağıdaki örnekte gösterildiği gibi, dört bilgi parçasının yeni satır (\n) karakteriyle birleştirilmesidir:
hash\nhash_description\npackage_name\npackage_version\n
Ana hat modülü APK veya APEX dosyası olabileceğinden karma açıklaması SHA256(APK) veya SHA256(APEX) olabilir.