Google Ürün Uygulaması Şeffaflığı

Google uygulamalarına ve ürünlerine duyulan güveni artırmak için her Google ürün paketini şeffaflık günlüğümüzde listelemeyi taahhüt ediyoruz. Bu paketlerle (APK'lar ve APEX'ler) ilgili iddialarımızı herkese açık olarak doğrulamak için şeffaflık günlüğünü yayınladık.

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, kötü amaçlı olarak bir Google uygulamasını veya ürününü 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. İkili şeffaflık günlüğü sayesinde, şüpheli bir paket (APK veya APEX) alan herkes, paketin gerçekliğini doğrulamak için bunu ek bir doğrulanabilir temel gerçek kaynağı olarak kullanabilir. Google'ın ilgili paket meta verilerini günlük dosyasına eklemediğini görürler ve güvenliği ihlal edilmiş pakete güvenmemeleri gerektiğini anlarlar.

Günlüğe yayınlama, imzalama içeren yayınlama sürecinden ayrı bir süreç olduğundan (Ekosistem Şeması'nda gösterildiği gibi) saldırganın yalnızca anahtarı tehlikeye atmasının ötesinde bir zorluk yaratır.

Bu günlüğü standart bir tanık protokolü kullanarak herkese açık bir tanık ağına da entegre etmeyi planlıyoruz. Bu arada, harici ve bağımsız tarafları herkese açık bu 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.

Böyle bir şeffaflık sisteminin varlığı ve saldırıların ek olarak keşfedilebilir olması, kötü amaçlı etkinlikleri engeller. Bir paketin güvenliği ihlal edilirse ancak kullanıcılar yalnızca günlükte bulunanlara güvenirse güvenliği ihlal edilen paketin herkese açık olarak gösterilmesi gerekir. Bu sayede, güvenliği ihlal edilmiş paketin 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. Google Ürün Uygulaması Şeffaflığı söz konusu olduğunda, bu günlükte kaydedilen bir paket dosyasının karma değerinin, kamuya açık kullanım için tasarlanmış resmi bir Google ürününün belirli bir sürümünü temsil ettiği iddia edilir.

  • ClaimGoogleApp: (I, Google, claim that $hashApp is for $googleApp), where:
    • $hashApp, belirli bir $googleApp sürümünün paket dosyasının (bölünmüş APK'lar ve APEX paketleri dahil) kriptografik karma değeridir (ör. SHA256).
    • $googleApp, Google'ın oluşturup dağıttığı bir uygulamayı veya ürünü oluşturan bir Android paketidir (APK veya APEX).

$googleApp kopyasına sahip olan herkes bu iddiayı doğrulayabilir ve bu süreci doğrulama sayfasında ayrıntılı olarak açıklıyoruz.

Günlük İçeriği

Google, bir APK veya APEX paketinin yeni sürümünü yayınladığında Google Ürünü Uygulama Şeffaflık Günlüğü'ne ilgili bir giriş ekler.

Bu günlükteki her giriş dört meta veri parçası içerir:

  1. Google tarafından imzalanmış bir paketin APK veya APEX dosyasının karması. Bu, dosyanın tamamının SHA256 özetinin onaltılık dizesidir.
  2. Önceki karma türünün açıklaması. Bu bir dizedir.
  3. Paketin paket adı. Bu bir dizedir.
  4. Paketin 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

Bir Google ürünü APK veya APEX dosyası olarak dağıtılabildiğinden karma açıklaması SHA256(APK) ya da SHA256(APEX) olarak ayarlanır. Bu sayede, her dosyanın içeriği kapsamlı bir şekilde ele alınır ve kullanıcıların bu ölçümü elde etmesi kolaylaşır.

Ekosistem Diyagramı

Doğrulanabilir Günlük Ekosistemi Şeması