2016-08-28 6 views
17

मुझे पैकेज हस्ताक्षर प्राप्त करने की आवश्यकता है। इसलिए मैं यह इस कोड का उपयोग मिलता है:पैकेजमैनेजर का उपयोग करते समय एंड्रॉइड स्टूडियो चेतावनी .GET_SIGNATURES

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

लेकिन एंड्रॉयड स्टूडियो मुझे यह चेतावनी देता है: getPackageInfo से


पढ़ना एप्लिकेशन हस्ताक्षर: अगर ठीक से मान्य नहीं किया एप्लिकेशन हस्ताक्षर शोषण किया जा सकता है; विवरण के लिए समस्या स्पष्टीकरण देखें। कम ... (Ctrl + F1) ऐप हस्ताक्षर की अनुचित सत्यापन से ऐसे मुद्दों का कारण बन सकता है जहां एक दुर्भावनापूर्ण ऐप अपने असली प्रमाणपत्र और नकली प्रमाण पत्र दोनों के साथ Play Store पर सबमिट हो जाता है और कार्यक्षमता या जानकारी तक पहुंच प्राप्त नहीं करता है किसी अन्य एप्लिकेशन के कारण केवल फर्जी प्रमाणपत्र की जांच कर रहे हैं और बाकी को अनदेखा कर रहे हैं। कृपया इस विधि द्वारा लौटाए गए सभी हस्ताक्षर मान्य करना सुनिश्चित करें।


यह इस मामले में हस्ताक्षर मान्य करने के लिए क्या मतलब है क्या? मैं यह सुनिश्चित करने के लिए सर्वर से हस्ताक्षर की जांच करने जा रहा हूं कि वे मेल खाते हैं, क्या उनका मतलब क्या है?

स्थानीय परीक्षण पर, सभी आउटपुट एक नकारात्मक Integer है, और array नहीं है क्योंकि कोड के पास होगा।

+2

मैंने इस तरह की चीज़ के लिए वास्तविक दस्तावेज़ मांगने के लिए [एक मुद्दा] (http://code.google.com/p/android/issues/detail?id=221143) दायर किया है। मैं मानता हूं कि जब तक "हस्ताक्षर की जांच करें" के लिए आपका एल्गोरिदम सभ्य है, तो आपको ठीक होना चाहिए। लेकिन, चूंकि मैं स्पष्ट नहीं हूं कि वे किस बारे में चेतावनी दे रहे हैं, मैं निश्चित नहीं हो सकता। – CommonsWare

+2

तो कोई भी वास्तव में जानता है कि चेतावनी का क्या अर्थ है? – Zoe

उत्तर

11

पॉपअप टेक्स्ट का पता लगाना एंड्रॉइड स्टूडियो के this source code fragment की ओर जाता है।
उसी फ़ाइल में a line बाहरी संसाधन का एक लिंक है।
आगे की ट्रैकिंग "नकली आईडी" भेद्यता के बारे में this presentation की ओर ले जाती है।

Description of a problem:

समस्या

कि जब एंड्रॉयड श्रृंखला के- विश्वास बनाता है, सत्यापन प्रक्रिया केवल 'विषय' के बजाय का ब्यौरा भीतर प्रदान एक के साथ वास्तविक कुंजी की तुलना की तुलना करता है प्रमाण पत्र के हस्ताक्षरकर्ता। नतीजतन, एक हमलावर श्रृंखला के विश्वास के साथ झुका सकता है और पार्टी द्वारा हस्ताक्षरित होने का दावा करता है - पार्टी वास्तव में हस्ताक्षर किए बिना।

इस बग के कारण एक गलत प्रमाणपत्र श्रृंखला उत्पन्न होती है, और इसमें वैध प्रमाणपत्र शामिल हो सकते हैं, जो एपीके में एम्बेडेड हैं लेकिन वास्तव में एप्लिकेशन पर हस्ताक्षर करने के लिए उपयोग नहीं किए गए थे।

एंड्रॉइड स्रोत कोड में the commit है, जो इस भेद्यता का उपयोग करने से बचाता है। इसका मतलब है कि डिवाइस में एंड्रॉइड 4.4 है तो समस्या नहीं हो रही है। कम एंड्रॉइड एपीआई डिवाइस चलाते समय, यह नुकसान पहुंचा सकता है।

+2

तो यह एक ज्ञात बग है जो प्रमाणपत्र को समझौता करने का कारण बन सकता है। क्या यह "स्वचालित रूप से" तय है या क्या कोई और कोड है जिसे हल करने/इसके खिलाफ सुरक्षा के लिए जोड़ा जाना है? – Zoe

+0

किटकैट के बाद, सर्टिफिकेट चेन प्रतिस्थापन या संशोधन के साथ कोई समस्या नहीं उठानी चाहिए। लेकिन यदि आप वास्तव में एक पैकेज के प्रमाणपत्र फिंगरप्रिंट की जांच करना चाहते हैं तो [इस] (http: // stackoverflow पर एक नज़र डालें।कॉम/ए/22506133/6507689) (निचले एपीआई उपकरणों पर सहायक हो सकता है)। –

संबंधित मुद्दे