Google'ın ürünlerinin şeffaflığına yaptığı sürekli yatırım kapsamında, iki yeni Google sistem hizmeti APK'sına şeffaflık ekliyoruz: Android System SafetyCore (com.google.android.safetycore) ve Android System Key Verifier (com.google.android.contactkeys). Bu APK'lar sırasıyla Google Mesajlar'daki hassas içerik uyarıları ve kriptografik anahtar doğrulama özelliğini destekler. Bu APK'larla ilgili iddialarımızı doğrulamak için yayınladığımız şeffaflık günlüğü.
Kapsam Dahilindeki Paketler
Bu bölümde, şeffaflık günlüğünde yer alan paketler ve ilgili kod şeffaflığı imzalama anahtarları açıklanmaktadır.
Android System SafetyCore
Android System SafetyCore (com.google.android.safetycore), uygulamalar için gizliliği korumaya yönelik cihaz üzerinde kullanıcı koruma altyapısı sağlayan bir Android sistem bileşenidir.
Bu APK'daki kod şu anda bu sertifika tarafından açıklanan aşağıdaki anahtarla imzalanmıştır:
-----BEGIN CERTIFICATE-----
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
4ZM=
-----END CERTIFICATE-----
Android System Key Verifier
Android System Key Verifier APK'si (com.google.android.contactkeys), Android'de kişi doğrulaması için kullanılan bir hizmettir. Kullanıcıların, mesaj göndermek istedikleri kişiyle iletişim kurduklarını doğrulamak için bir kişinin ortak anahtarlarını doğrulamalarına olanak tanır. Bu hizmet, farklı uygulamalarda ortak anahtar doğrulaması için birleşik bir sistemdir. QR kodu taraması veya numara karşılaştırması yoluyla doğrulama yapar.
Bu APK'daki kod şu anda bu sertifika tarafından açıklanan aşağıdaki anahtarla imzalanmıştır:
-----BEGIN CERTIFICATE-----
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
PLM=
-----END CERTIFICATE-----
Tehdit modeli
Şeffaflık sistemleri, tedarik zinciri saldırılarını tespit etmek ve böylece caydırmak için kullanılabilir. Bunu bazı örneklerle açıklayacağız.
Bir saldırganın, Google sistem hizmetleri APK'sını kötü amaçlı olarak değiştirdiğini ve hatta Google Play tarafından kullanılan imzalama anahtarıyla imzalamayı başardığını varsayalım. Kötü amaçlı APK'yı alan herkes, APK'nın orijinalliğini doğrulamak için ikili şeffaflık günlüğünü sorgulayabilir. Google'ın ilgili APK meta verilerini günlüke eklemediğini görürler ve güvenliği ihlal edilmiş APK'ya güvenmemeleri gerektiğini bilirler.
Günlüğe yayınlama işlemi, imzalama içeren sürüm işleminden ayrı bir işlem olduğundan (Ekosistem Diyagramı'nda gösterildiği gibi) saldırgan için çıta, yalnızca anahtarı tehlikeye atmanın ötesine geçer.
Bu günlüğü, standart bir şahit protokolü kullanarak herkese açık bir tanık ağına entegre etmeyi de planlıyoruz. Bununla birlikte, harici ve bağımsız tarafların bu herkese açık günlüğün bütünlüğünü izlemesini öneririz. Bu taraflar, günlükteki yalnızca ekleme özelliğini doğrulayabilir ve herhangi bir müdahaleyi bildirebilir.
Bu tür bir şeffaflık sisteminin varlığı ve saldırıların daha kolay bulunabilmesi, kötü amaçlı etkinlikleri caydırır. Bir APK'nın güvenliği ihlal edildiyse ancak kullanıcılar yalnızca günlüktekilere güveniyorsa güvenliği ihlal edilen APK'nın herkese açık olarak gösterilmesi gerekir. Bu sayede, güvenliği ihlal edilmiş APK'nın varlığı daha kolay tespit edilebilir ve dağıtımının kaldırılması için işlem yapılabilir.
Davacı Modeli
Claimant Model, doğrulanabilir bir sistemdeki rolleri ve yapıları tanımlamak için kullanılan bir çerçevedir. Google sistem hizmetleri APK şeffaflığı söz konusu olduğunda, bu günlükte kaydedilen imzalı ikili programların karmasının, ilgili Google sistem hizmetleri APK'ları için resmi kodu temsil ettiğini iddia ediyoruz.
- GoogleSystemServicesApk için hak talebinde bulunma: (Ben, Google,
$codeSignature
'nin$googleSystemServicesApk
için olduğunu iddia ediyorum.) Burada:$codeSignature
,$googleSystemServicesApk
'ın belirli bir sürümüne dahil edilen DEX dosyalarının ve yerel kitaplıkların listesini ve bunların karşılık gelen karma oluşturma işlemlerini içeren imzalı bir JSON Web Token'dır (JWT).$googleSystemServicesApk
, aşağıdaki paket grubundan bir Android paketidir (APK):{Android System SafetyCore (com.google.android.safetycore), Android System Key Verifier (com.google.android.contactkeys)}
$googleSystemServicesApk
belgesinin bir kopyasına sahip olan herkes yukarıdaki iddiayı doğrulayabilir. Bu süreci doğrulama sayfasında ayrıntılı olarak açıklıyoruz.
Günlük İçeriği
Google, yukarıda listelenen APK'ların yeni bir sürümünü yayınladığında Google Sistem Hizmetleri APK Şeffaflık Günlüğü'ne ilgili bir giriş ekler.
Bu günlükteki her giriş dört APK meta verisi içerir:
- Google tarafından geliştirilen bir APK'nın kod imzasının karması. Bu, kod şeffaflığı jetonunun (kod şeffaflığı JWT'si olarak da bilinir) SHA256 karmasının onaltılık dizesidir.
- Yukarıdaki karma oluşturma türünün açıklaması. Bu bir dizedir.
- APK'nın paket adı. Bu bir dizedir.
- APK'nın sürüm numarası (versionCode). Bu bir tam sayıdır.
Bir günlük girişinin biçimi, aşağıdaki şekilde gösterildiği gibi dört bilgi parçasının yeni satır (\n
) karakteriyle birleştirilmesidir:
hash\nSHA256(Signed Code Transparency JWT)\npackage_name\npackage_version\n
Bu sürümde kod şeffaflığını kullanmayı denediğimizi unutmayın.
Bu, APK'nın karması yerine kod şeffaflığı jetonunun özetini kaydettiğimiz anlamına gelir.
Bu nedenle karma açıklaması şu anda SHA256(Signed Code Transparency JWT)
olarak sabitlenmiştir.
Ayrıca bu örnek, uygulama imzalama anahtarları Google Play tarafından saklandığında uygulama geliştiricilerinin kod şeffaflığını nasıl kullanabileceğini gösterir.