2016-08-28 15 views
17

numaralı telefonu kullanırken uyarı almam gerekiyor. Bu yüzden bu kodu kullanarak almak:Android Studio, PackageManager.GET_SIGNATURES

Signature[] sigs = c.getPackageManager().getPackageInfo(c.getPackageName(), 
    PackageManager.GET_SIGNATURES).signatures; 

Fakat Android Studio bana bu uyarıyı veriyor: getPackageInfo dan


Okuma uygulama imzaları: düzgün valide değilse uygulama imzaları yararlanılabilir; Ayrıntılar için sorun açıklaması konusuna bakın. daha az ... (Ctrl + F1) Uygulama imzalarının hatalı şekilde doğrulanması, kötü amaçlı bir uygulamanın hem gerçek sertifikalı hem de sahte bir sertifikayla Google Play Store'a gönderildiği ve sorun yaratmaması gereken işlevlere veya bilgilere erişebileceği sorunlara yol açabilir Başka bir uygulama nedeniyle sadece sahte sertifikayı kontrol etmek ve geri kalanını göz ardı etmek. Lütfen bu yöntemle döndürülen tüm imzaları doğruladığınızdan emin olun.


bu durumda imzaları doğrulamak için ne anlama geliyor

? Bir sunucuya karşı imza attıklarıdan emin olmak için imzaları kontrol edeceğim, demek istedikleri bu mu?

Yerel sınamada, tüm bu çıktılar, Integer numaralı tek bir negatiftir ve kodun sahip olabileceği gibi array değildir.

+2

Bu tür bir şey için gerçek dokümanlar isteyen [bir sorun] (http://code.google.com/p/android/issues/detail?id=221143) başvurusunda bulundum. "İmzaları kontrol et" algoritmanızın iyi olması, iyi olmanız gerektiği sürece bunu kabul ediyorum. Ancak, ne hakkında uyardıklarını netlemediğimden emin olamam. – CommonsWare

+2

Yani hiç kimse, uyarının ne anlama geldiğini bilmiyor mu? – Zoe

cevap

11

Açılır pencerenin izlenmesi Android Studio'nun this source code fragment numarasına yönlendirilir.
Aynı dosyada outern kaynağına bir bağlantı içeren a line vardır.
Daha fazla izleme "Fake ID" güvenlik açığı hakkında this presentation yol açar.

Description of a problem:

sorun Android zinciri Güvenilirlik-oluşturduğunda, doğrulama işlemi, sadece 'denek' yerine ayrıntıları içinde sağlanan bir ile gerçek bir anahtar karşılaştırılması karşılaştırır olmasıdır sertifikanın imzalayıcısı. Sonuç olarak, bir saldırgan, güvence zincirini tinkerleyebilir ve bir tarafın imzaladığını iddia edebilir - parti fiilen imzalamadan.

Bu hata nedeniyle yanlış bir sertifika zinciri oluşturulur ve APK'ya gömülü olan ancak uygulamayı gerçekten imzalamak için kullanılmamış meşru sertifikalar içerebilir.

Bu güvenlik açığını engelleyen Android kaynak kodu için: the commit3. Bu, aygıtın Android 4.4 sürümüne sahip olması durumunda sorun yaşanmıyor demektir. Düşük Android API cihazları çalıştırırken, bu zararlara neden olabilir.

+2

Bu nedenle sertifikanın tehlikeye girmesine neden olabilecek bilinen bir hatadır. "Otomatik olarak" sabitlenmiş mi yoksa ona karşı/korumak için eklenmesi gereken başka bir kod var mı? – Zoe

+0

KitKat'tan bu yana, sertifika zincirinin değiştirilmesi veya değiştirilmesiyle ilgili bir sorun oluşmamalıdır. Ancak bir paketin sertifika parmak izini gerçekten kontrol etmek isterseniz, [this] (http: // stackoverflow) 'a bir göz atın.com/a/22506133/6507689) (daha düşük API aygıtlarında yardımcı olabilir). –