Android keystore फ़ाइल क्या है, और इसका उपयोग किस लिए किया जाता है?


128

यह एक सामान्य प्रश्न है, लेकिन विशेष रूप से मुझे इसमें रुचि है कि यह एंड्रॉइड के लिए उपयोग हो। कीस्टोर फ़ाइल क्या है, और इसका उपयोग किस लिए किया जाता है?

क्या कई एंड्रॉइड एप्लिकेशन अपने एप्लिकेशन को साइन करने के लिए एक ही कीस्टोर का उपयोग कर सकते हैं (वास्तव में इसका क्या मतलब है? .Apk?)?)?


1
आप दो विषयों को भ्रमित करते दिख रहे हैं। पहला कीस्टॉर है, और दूसरा एपीके साइन है। निकोले एलेनकोव के एंड्रॉइड सिक्योरिटी इंटरनल्स : एन-डेप्थ गाइड टू एंड्रॉइड के सिक्योरिटी आर्किटेक्चर को भी देखें
jww

जवाबों:


130

मैं जो उत्तर दूंगा वह यह है कि एक कीस्टॉर फाइल अपने आप को किसी को भी प्रमाणित करने के लिए है। यह केवल .apk फाइलों पर हस्ताक्षर करने तक ही सीमित नहीं है, आप इसका उपयोग व्यक्तिगत प्रमाणपत्रों को संग्रहीत करने, हस्तांतरित किए जाने वाले डेटा पर हस्ताक्षर करने और प्रमाणीकरण की पूरी विविधता के लिए कर सकते हैं।

एंड्रॉइड के लिए आप इसके साथ क्या करते हैं और शायद आप एपीके के साइन इन करने का उल्लेख करते हैं, तो यह आपका प्रमाणपत्र है। आप अपने आवेदन को अपनी साख के साथ ब्रांड कर रहे हैं। आप एक ही कुंजी के साथ कई अनुप्रयोगों को ब्रांड कर सकते हैं, वास्तव में, यह अनुशंसा की जाती है कि आप एक से अधिक अनुप्रयोगों को लिखने के लिए एक प्रमाण पत्र का उपयोग करें। आपके लिए कौन से एप्लिकेशन हैं, इस पर नज़र रखना आसान है।

मुझे यकीन नहीं है कि आपके निहितार्थ का क्या मतलब है। मुझे लगता है कि इसका मतलब यह है कि आपके प्रमाण पत्र के धारक कोई भी आपके आवेदन को अपडेट नहीं कर सकता है। इसका मतलब है कि यदि आप इसे जंगली में जारी करते हैं, तो उस प्रमाणपत्र को खो दें जिसका उपयोग आपने आवेदन पर हस्ताक्षर करने के लिए किया है, तो आप अपडेट जारी नहीं कर सकते, इसलिए उस प्रमाणपत्र को सुरक्षित रखें और यदि आवश्यक हो तो बैकअप लें।

लेकिन वाइल्ड में रिलीज करने के लिए साइन अप एप्स के अलावा, आप इसका उपयोग अपने डिवाइस को एसएसएल के सर्वर पर प्रमाणित करने के लिए कर सकते हैं यदि आप ऐसा चाहते हैं, (एंड्रॉइड से संबंधित) अन्य कार्यों के बीच भी।


2
बहुत अच्छा जवाब। यहां यह भी ध्यान रखना चाहिए कि अगर आपको अपने ऐप में "पुश डेटा" का उपयोग करने जा रहे हैं तो आपको कीस्टॉर फाइल की आवश्यकता है!
कपटीमिनारशैल

क्या कीस्टोर मशीन विशिष्ट है? या हम अपने ऐप को अपडेट करने के लिए किसी भी मशीन में इसका इस्तेमाल कर सकते हैं ??
जवार

7
अच्छे खर्च। क्या आप यह भी बता सकते हैं कि हमें KeyStorePassword, Key alias, KeyPassword की आवश्यकता क्यों है। यह तीन चाबियाँ होने के लिए बेमानी लगता है।
ARK

18

एंड्रॉइड मार्केट को सार्वजनिक या निजी कुंजी तंत्र (आपके निजी कुंजी के साथ प्रमाण पत्र पर हस्ताक्षर किए जाते हैं) का उपयोग करके आपको उन सभी ऐप्स पर हस्ताक्षर करने की आवश्यकता होती है, जिन्हें आप प्रमाण पत्र के साथ प्रकाशित करते हैं। यह सुरक्षा की एक परत प्रदान करता है, जो अन्य बातों के अलावा, दूरस्थ हमलावरों को आपके आवेदन के लिए दुर्भावनापूर्ण अपडेट को बाज़ार में लाने से रोकता है (सभी अद्यतनों को एक ही कुंजी के साथ हस्ताक्षरित होना चाहिए)।

से ऐप-साइन इन करना गाइड Android डेवलपर की साइट की:

सामान्य तौर पर, सभी डेवलपर्स के लिए अनुशंसित रणनीति आपके सभी अनुप्रयोगों को एक ही प्रमाण पत्र के साथ आपके अनुप्रयोगों के अपेक्षित जीवनकाल में हस्ताक्षर करने के लिए है। कई कारण हैं कि आपको ऐसा क्यों करना चाहिए ...

एक ही कुंजी का उपयोग करने के कुछ फायदे हैं - एक यह है कि एक ही कुंजी के साथ हस्ताक्षर किए गए अनुप्रयोगों के बीच डेटा साझा करना आसान है। एक और यह है कि यह एक ही प्रक्रिया में एक ही कुंजी के साथ हस्ताक्षर किए गए कई ऐप्स को चलाने की अनुमति देता है, इसलिए एक डेवलपर अधिक "मॉड्यूलर" अनुप्रयोगों का निर्माण कर सकता है।


10

आप आधिकारिक Android प्रलेखन पर हस्ताक्षर करने की प्रक्रिया के बारे में अधिक जानकारी यहाँ पा सकते हैं: http://developer.android.com/guide/publishing/app-signing.html

हां, आप एक ही कीस्टोर के साथ कई एप्लिकेशन साइन कर सकते हैं। लेकिन आपको एक महत्वपूर्ण बात याद रखना चाहिए: यदि आप Play Store पर कोई ऐप प्रकाशित करते हैं, तो आपको इसे एक गैर डीबग प्रमाणपत्र के साथ हस्ताक्षर करना होगा। और अगर एक दिन आप इस ऐप के लिए एक अपडेट प्रकाशित करना चाहते हैं, तो एपीके पर हस्ताक्षर करने के लिए उपयोग किया जाने वाला कीस्टोर समान होना चाहिए। अन्यथा, आप अपना अपडेट पोस्ट नहीं कर पाएंगे।


नहीं, यह गलत है। एपीके को साइन करने के लिए आप जिस कीस्टॉर का उपयोग करते हैं, वह अलग हो सकता है, लेकिन आप जिस कुंजी को एपीके को साइन करने के लिए उपयोग करते हैं, वह समान होनी चाहिए। कीस्टोर फ़ाइल बस एक फाइल है जो कुंजी और प्रमाण पत्र विरूपण को संग्रहीत करने के लिए उपयोग की जाती है, आपके पास एक ही कीस्टोर फ़ाइल में कई प्रमुख इकाइयाँ हो सकती हैं।
zeleven

0

एक कीटल का पूरा विचार आपके एपीके को एक अद्वितीय पहचानकर्ता के साथ उस एपीके के स्रोत को इंगित करने के लिए हस्ताक्षर करना है। एक keystore फ़ाइल (जो मुझे समझ में आता है) का उपयोग डिबगिंग के लिए किया जाता है, इसलिए आपकी एपीके में उत्पादन के लिए आपके एपीके पर हस्ताक्षर किए बिना एक कीटल की कार्यक्षमता है। तो हाँ, डीबगिंग उद्देश्यों के लिए आपको एक कीस्टॉर के साथ कई एपीके साइन करने में सक्षम होना चाहिए। लेकिन यह समझें कि, उत्पादन के लिए धकेलने पर आपको अपने द्वारा बनाए जाने वाले प्रत्येक एपीके के लिए विशिष्ट कुंजीपट की आवश्यकता होगी।


आपको इसे डीबग करने के लिए किसी एप्लिकेशन पर हस्ताक्षर करने की आवश्यकता नहीं है, या तो एमुलेटर में या वास्तविक डिवाइस पर।
मार्कस

मेरा मतलब यह नहीं है कि आप इसे डीबग करने के लिए साइन इन करें ... लेकिन आप अपने कीटूल के परीक्षण कार्यान्वयन के रूप में कीस्टोर का उपयोग कर सकते हैं।
एडम स्टॉर्म

मुझे नहीं लगता keytoolकि आपका क्या मतलब है। कीटूल एक जावा प्रोग्राम है जिसका उपयोग कीस्टोर्स को उत्पन्न करने के लिए किया जाता है।
ओट्रा जूल

हाँ, आप सही कह रहे हैं, केटूल मेरा मतलब नहीं है। मुझे लगता है कि 'की' मेरा मतलब है। मैं केवल पूछने वाले को यह समझाने की कोशिश कर रहा था कि आपके पास डीबगिंग के लिए एक सांप्रदायिक एपीके कुंजी हो सकती है, लेकिन प्रकाशित होने पर, प्रत्येक एपीके को संपादन और उन्नयन के लिए अद्वितीय कुंजी की आवश्यकता होगी।
एडम स्टॉर्म

हालांकि उन्हें अद्वितीय कुंजी की आवश्यकता नहीं है ... आप एक निजी कुंजी के साथ कई एपीके साइन कर सकते हैं, यह वास्तव में पसंद किया जाता है कि आप ऐसा करते हैं। क्या आप 10 ऐप्स के लिए 10 अलग-अलग सेर / चाबियों पर नज़र रखने की कल्पना कर सकते हैं?
ओट्रा जूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.