SHARE THE PERSPECTIVE
Sağlama toplamı, baytları bir referansla eşleştirir. İmza, bütünlüğü bir anahtara bağlar. Hiçbiri tek başına yazılımın güvenli olduğunu kanıtlamaz.

Bir Android APK'sını yüklemeden önce üç kontrolü birbirinden ayırın: Bu dosya beklenen sürümle eşleşiyor mu? Beklenen anahtarla mı imzalanmış? Bağımsız derleyiciler, belirtilen kaynak koddan aynı çıktıyı yeniden üretebiliyor mu? SHA-256 sağlama toplamı, APK imzası ve yeniden üretilebilir derleme bu soruları farklı şekillerde yanıtlar.

Bunların hiçbiri tek başına kötü amaçlı yazılım hakkında kesin bir hüküm vermez. Doğru şekilde imzalanmış ve yeniden üretilebilir bir programda da bir güvenlik açığı veya kasıtlı olarak zararlı davranış bulunabilir.

Her doğrulama yöntemi neyi ortaya koyar?

Kontrol Yararlı sonuç Önemli sınır
Dosyanın SHA-256 özeti Elinizdeki baytlar, güvenilir belirli bir özetle eşleşir Hem dosyayı hem de özeti değiştiren bir saldırgan bu karşılaştırmayı etkisiz bırakabilir
APK imzasının doğrulanması Paketin imzası, imzalama sertifikası kullanılarak doğrulanır Hangi imzalama anahtarının beklendiğini belirlemelisiniz; yalnızca geçerlilik, yayıncının kimliğini kanıtlamaz
Yeniden üretilebilir derleme karşılaştırması Belirtilen çıktı, belgelenmiş girdilerden yeniden oluşturulabilir Kaynak kodun ve ikili dosyanın eşleşmesi, kaynak kodun güvenli olduğunu kanıtlamaz
Güvenlik incelemesi Belirli tasarım veya uygulama sorunları değerlendirilmiştir İncelemenin kapsamı, sürümü, bulguları ve çözümlenmemiş sorunları önemlidir

Android, yükleme ve güncellemeler için APK'ların imzalanmasını gerektirir. Play App Signing ile Google, uygulama imzalama anahtarını yönetebilir ve bir uygulama paketinden dağıtım APK'ları oluşturabilir. Bunlar belgelenmiş güven düzenlemeleridir; herhangi bir aracının, geçerli imzayı koruyarak paketi sessizce değiştirebildiğinin kanıtı değildir. Android'in uygulama imzalama kılavuzu.

1. adım: tam olarak hangi çıktıyı kontrol ettiğinizi belirleyin

Uygulama sürümünü, yayın kanalını, dosya adını ve hedeflenen platform varyantını kaydedin. APK'yı gönderen aynı istenmeyen mesajdan kopyalanmış bir sağlama toplamı yerine, yayıncının resmî dağıtım sayfasını kullanın.

Doğrudan yayıncıdan indirilen bir APK, uygulama mağazasının belirli bir cihaz için oluşturduğu APK'dan farklı olabilir. Farklı sürümler, mimariler, paketleme veya imzalama düzenlemeleri meşru biçimde farklı dosya özetleri üretebilir. Bir uyuşmazlığı müdahale kanıtı saymadan önce aynı nitelikteki çıktıları karşılaştırdığınızdan emin olun.

Pratikte sorulması gereken soru şudur: Beklenen değer nereden geldi ve bu kaynağa neden güveniyorum? Özeti çevrimdışı hesaplamak, çevrimiçi elde edilen referans özetin güvenilirliği sorununu çözmez.

2. adım: SHA-256 özetini yerel olarak hesaplayın

messenger.apk yerine indirdiğiniz dosyanın adını yazın. Bu örnekler dosyayı okur; yüklemez.

Linux:

sha256sum messenger.apk

macOS:

shasum -a 256 messenger.apk

Windows Komut İstemi:

certutil -hashfile messenger.apk SHA256

Yalnızca gösterimdeki boşlukları ve büyük/küçük harf farkını göz ardı ederek özetin tamamını karşılaştırın. Sadece ilk veya son birkaç karakteri karşılaştırmayın. Karşılaştırmayı tekrarlayabilmek için beklenen özeti, yayın/sürüm bilgileriyle birlikte saklayın.

Değerler farklıysa yüklemeden önce durun. Çıktıyı ve sürümü kontrol edin, uygunsa güvenilir kaynaktan yeniden indirin ve açıklanamayan uyuşmazlığı yayıncıya sorun. Beklenen sağlama toplamını, elinize geçmiş olan dosyayla eşleşecek şekilde “düzeltmeyin”.

3. adım: APK imzasını kontrol edin

Android SDK Build Tools kullananlar için Google'ın apksigner belgeleri, imza doğrulamayı ve sertifika bilgilerinin çıktısını açıklar:

apksigner verify --verbose --print-certs messenger.apk

Doğrulama, APK'nın desteklediği platformlar için başarılı olmalıdır. İmzalayan sertifikaya ilişkin bilgileri, güvenilir bir sürüm kaydıyla veya yayıncının belgelenmiş imzalama anahtarı geçmişiyle karşılaştırın. Tanımadığınız bir anahtarla atılmış imza, “doğrulandı” sözcüğü sayesinde güvenilir hâle gelmez. Meşru bir imzalama anahtarı değişimi de uyuşmazlığı yok saymanızı söyleyen bir talimat değil, kanıt gerektirir.

APK dosyasının SHA-256 özeti ile imzalama sertifikasının SHA-256 parmak izi farklı değerlerdir. Birini diğeriyle karşılaştırmayın.

4. adım: yeniden üretilebilir derleme kanıtlarını arayın

Yeniden üretilebilir derleme iddiası; tanımlanmış bir kaynak kod revizyonu, derleme ortamı, talimatlar ve hedef çıktı gerektirir. Bağımsız taraflar bu çıktıyı yeniden oluşturabilmeli ve sonucu karşılaştırabilmelidir. Reproducible Builds projesinin tanımı, bu girdileri iddianın bir parçası sayar.

Bir mesajlaşma uygulaması için yararlı sürüm kanıtları arasında kaynak kod etiketi, sabitlenmiş bağımlılık ve araç zinciri sürümleri, derleme talimatları ve bağımsız karşılaştırma sonuçları yer alır. Tam olarak neyin karşılaştırıldığını sorun: imzasız bir çıktı mı, imzalı bir APK mı, yoksa paketin belirli içerikleri mi? Yalnızca kaynak kod ve indirme özeti yayımlandığı için derlemenin yeniden üretilebilir olduğu sonucuna varmayın.

Yeniden üretilebilirlik, incelenmiş kaynak kod ile dağıtılan kod arasındaki bağlantıyı güçlendirir. İncelenmemiş bir uygulamayı güvenli bir protokole dönüştürmez veya çalışan bir telefonun ele geçirilmediğini kanıtlamaz.

Livara'nın Proof Lab'i bu süreçte nereye oturur?

Livara'nın Proof Lab'i, APK'nın özetini yerel olarak hesaplayıp yayımladığı özetle karşılaştırmayı sunar. Buradaki kriptografik gösterimlerin kapsamı, mesajlaşma protokolünün tamamına yönelik bir denetimden daha dardır. Özet kontrolünü belirtilen amacı için, beklenen sürüm ve imzalama bilgileriyle birlikte kullanın; bunu yeniden üretilebilir derlemelerin veya arka kapı bulunmadığının bağımsız kanıtı saymayın.

Tehdit modeli, hem APK'nın hem de gösterilen özetin değiştirilebildiği durumda ortaya çıkan sınırlamayı açıkça belirtir. Bu nedenle referans değerinizin kaynağı, hesaplamayı doğru yapmak kadar önemlidir.

Sık sorulan sorular

Eşleşen bir sağlama toplamı, APK'nın güvenli olduğunu kanıtlar mı?

Hayır. Referansın güvenilir olduğu ve özet işlevinin güvenlik özelliklerinin geçerli olduğu varsayımıyla, referans özetle eşleşmeyi ortaya koyar. Programın davranışını değerlendirmez.

Sağlama toplamı eşleşiyorsa imza doğrulaması gereksiz midir?

Hayır. Bu kontroller farklı kanıtlar sağlar. İmza, paket bütünlüğünü bir anahtara bağlar; dosya özeti ise belirli bir bayt dizisini tanımlar.

Mağazadan indirilen dosya, web sitesindeki APK özetiyle eşleşmek zorunda mı?

Yalnızca aynı çıktı olmaları bekleniyorsa. Önce yayın kanalını, sürümü ve paketlemeyi kontrol edin. Açıklanamayan bir uyuşmazlık, otomatik bir suçlama veya otomatik onay değil, araştırma gerektirir.

Bu kontroller telefonumda zaten bulunan casus yazılımları tespit edebilir mi?

Hayır. Cihazın o anki çalışma durumundaki her bileşeni değil, bir yükleme çıktısını değerlendirirler.

Derlemenizi Proof Lab ile Doğrulayın
CONTINUE THE THREADAndroid & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗