APK kimlik doğrulaması: Hızlı ve güvenilir yöntemler
APK imzası, uygulamanın değiştirilmediğini ve belirtilen geliştiriciye ait olduğunu doğrulayan dijital bir sertifikadır. İmzayı hızlıca kontrol edebilirsiniz: apksigner (SDK), keytool, yerleşik Android ayarları veya SHA-256 değerini resmi değerle karşılaştırmak — bu, sahteciliğe karşı güvenilir bir korumadır.
APK imzası nedir ve neden gereklidir?
APK imzası kriptografik bir mekanizmadır: Geliştirici dosyayı özel anahtarla imzalar ve Android kurulum sırasında imzayı genel anahtarla doğrular. Pratikte neden buna ihtiyaç duyulur:
- Güvenlik: Kodun değiştirilmesini ve kötü amaçlı yazılımın gizlice eklenmesini engeller.
- Güncellemeler: Sistem eski ve yeni sürümün imzalarını karşılaştırır; eşleşirse uygulama verileri korunur.
- Yayınlama: Mağazalar (Google Play dahil) yalnızca imzalı release derlemelerini kabul eder.
- Ayrım: Testler için hata ayıklama anahtarı ve üretim için release anahtarı — release aşamasında debug.keystore kullanılamaz.
Özel keystore dosyanızı kimseyle paylaşmayın. Anahtarın kaybolması veya güvenliğinin ihlal edilmesi, uygulamayı güvenli bir şekilde güncelleme yeteneğinizi ortadan kaldırır.
İmzalı APK nasıl oluşturulur (kısa ve pratik)
Android Studio'da (güncel sürümler için geçerlidir):
- Build → Generate Signed Bundle / APK seçeneğine gidin.
- APK'yı seçin → Next → Create new keystore (eğer yoksa).
- Yol, şifre, alias ve geçerlilik süresini belirtin; sertifika bilgilerini doldurun.
- Release build variant'ını seçin ve imzalayın.
keytool + jarsigner ile (örnek):
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore my-release-key.keystore app-release-unsigned.apk alias_name
Öneri: Nihai imzalama için apksigner kullanın ve Android 7+ için modern şemaları (v2/v3) etkinleştirin.
APK imzası nasıl kontrol edilir — Adım adım
Aşağıda root gerektirmeyen yöntemler bulunmaktadır:
- Android'de hızlı kontrol (kurulabiliyorsa)
- APK'yı kurun (veya yüklü uygulamayı açın).
- Ayarlar → Uygulamalar → [uygulama] → Sertifika bilgisi (veya İzinler → Sertifika).
- SHA-256 parmak izini resmi değerle karşılaştırın.
- apksigner (önerilir)
- Android SDK Platform-Tools / Build Tools'u yükleyin.
- Şunu çalıştırın:
apksigner verify --print-certs suspicious.apk
- Çıktıda SHA-256 parmak izine ve Issuer/Subject bilgilerine bakın.
- keytool (jar üzerinden)
keytool -printcert -jarfile app.apk
- Sertifika verilerini gösterir: Issuer, Subject, geçerlilik süresi.
- APK Analyzer (Android Studio)
- APK'yı sürükleyip bırakın → Signatures. İmza şemasını (v1/v2/v3) görsel olarak karşılaştırmak ve kontrol etmek için kullanışlıdır.
Kontrol sırasında pratik kontrol listesi:
- SHA-256 değerini resmi değerle karşılaştırın (geliştiricinin web sitesinde veya mağaza meta verilerinde).
- Geçerlilik tarihini ve yayıncıyı kontrol edin.
- Hız ve güvenlik için modern imza şemasının (v2/v3) kullanıldığından emin olun.
Sertifikanın SHA-256 parmak izini her zaman resmi kaynakla karşılaştırın; bu, sahteyi ayırt etmenin en kesin yoludur.
Sık yapılan hatalar
- "App not installed" veya "Kurulum engellendi" — imza eksik veya eski sürümle eşleşmiyor.
- Release aşamasında debug.keystore kullanımı — mağazaların reddetmesine ve güncelleme sorunlarına yol açar.
- Keystore kaybı — Aynı paket adı altında güncellemeleri yayınlayamazsınız.
- Eski algoritma ile imzalama (SHA1) — güvenlik riskleri ve yeni gereksinimlerle uyumsuzluk.
SSS
-
İmzanın Google Play'deki sürümle eşleştiğini nasıl anlarım? apksigner veya keytool ile elde edilen sertifika SHA-256 parmak izini, Play Console'da veya geliştiriciden alınan verilerde gösterilenle karşılaştırın.
-
Anahtarın güvenliği ihlal edilirse ne yapılmalı? Anahtarı değiştirin ve mümkünse Play App Signing gibi bir mekanizma kullanın veya kullanıcıları yeni paketle yeniden kurulum yapmaları konusunda bilgilendirin (anahtar değiştiğinde paket adının değişmesi gerekir).
-
İmza çevrimiçi olarak kontrol edilebilir mi? Servisler ve tarayıcılar mevcuttur, ancak yalnızca güvenilir araçlara güvenin; en iyi uygulama, SHA-256 değerini resmi kaynakla karşılaştırmaktır.
-
Keystore'un yedek kopyasını saklamak gerekir mi? Kesinlikle evet. Kopyayı güvenli bir depolama alanında tutun ve erişim şifrelerini belgeleyin.
Google Play dışından APK indiriyorsanız, önce imzayı kontrol edin (apksigner veya keytool ile), SHA-256 değerini karşılaştırın ve ancak sonra kuruluma izin verin. Bu birkaç dakika sürer ancak uygulama verilerini ve itibarını korur.