2010-01-03 10 views
6

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

+7

आप "वास्तव में" लोगों को किसी भी कार्यक्रम को कम करने से नहीं रोक सकते हैं। आपके सुरक्षा मॉडल ने इसे बेहतर तरीके से लिया था। :-) –

+0

यदि मैं इसे वेबसर्वर (कुंजी) से लोड करता हूं, तो मैं यह कैसे सुनिश्चित करूं कि अनुरोध किसी और द्वारा किया जा सकता है (डिकंपाइल मानना) –

+0

http://en.wikipedia.org/wiki/Public-key_cryptography अनुरोध प्रमाणीकरण के लिए उपयोगी हो सकता है। –

उत्तर

8

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

असममित/सार्वजनिक-कुंजी क्रिप्टोग्राफ़ी वास्तव में वह समाधान है जिसे आप चाहते हैं। सार्वजनिक/निजी कुंजी जोड़ी बनाएं, फिर सार्वजनिक एप्लिकेशन को अपने एप्लिकेशन में रखें और निजी कुंजी को स्वयं रखें। तो फिर तुम दो बातें कर सकते हैं:

  • आपका आवेदन कर सकते हैं एन्क्रिप्ट संदेश सार्वजनिक कुंजी है कि केवल निजी कुंजी का उपयोग कर decrypted किया जा सकता है का उपयोग कर।
  • या, आप निजी कुंजी का उपयोग कर एक संदेश कर सकते हैं, जिसे आपके आवेदन में सार्वजनिक कुंजी का उपयोग करके प्रमाणित किया जा सकता है।
+0

सच। लेकिन यदि आप ऐप में निजी कुंजी या सार्वजनिक कुंजी डालते हैं, तो वे कुंजी का डिक्रिप्ट करने के लिए भी इसका उपयोग कर सकते हैं। –

+1

@ पैट्रिक बूस: यह असममित क्रिप्टो का काफी बिंदु है: आप सार्वजनिक कुंजी से निजी कुंजी की गणना नहीं कर सकते हैं। जिस तरह से यह काम करता है वह है कि आप अपने सर्वर पर * एन्क्रिप्ट * निजी कुंजी (जिसे आप किसी के साथ साझा नहीं कर रहे हैं, यह केवल सर्वर पर है) का उपयोग करके, और क्लाइंट पर ऐप में * सार्वजनिक * कुंजी है जिसके साथ यह है डिक्रिप्ट कर सकते हैं; साथ ही, क्लाइंट पर ऐप * सार्वजनिक * कुंजी के साथ संकेत करता है, और सर्वर निजी कुंजी का उपयोग करके सत्यापित करता है। * सार्वजनिक * कुंजी का उद्देश्य स्वतंत्र रूप से साझा किया जाना है। – Piskvor

+0

@Piskvor सुरक्षित सार्वजनिक कुंजी क्रिप्टोग्राफी होने के लिए आवश्यक है कि निजी कुंजी गुप्त रखी जाए। लेकिन क्या होगा यदि किसी को एप्लिकेशन में संग्रहीत निजी कुंजी मिलती है (उदा। इसे अपनाने से)? फिर वह सार्वजनिक कुंजी के साथ एन्कोड किए गए सभी गुप्त डेटा को पढ़ सकता है (बिल्कुल मूल एप्लिकेशन के रूप में)। क्या इसको रोकने के लिए कोई रास्ता है? – Piotr

1

एक निर्धारित पर्याप्त व्यक्ति आपकी कुंजी निकालने में सक्षम होगा, और वास्तव में इसके बारे में इतना कुछ नहीं किया जा सकता है। आप चाबियों को किसी भी तरह से खराब करने का प्रयास कर सकते हैं (बार को बढ़ाने के लिए कि उन्हें कितना निर्धारित होना चाहिए), लेकिन आप उन्हें कुंजी प्राप्त करने से नहीं रोक सकते हैं।

हालांकि, आपको गुप्त कुंजी को स्टोर करने की आवश्यकता के आधार पर, आप Asymmetric Key Cryptography का उपयोग करने में सक्षम हो सकते हैं। निजी कुंजी को सुरक्षित रखने में सक्षम होने के दौरान, आप एक सार्वजनिक कुंजी स्टोर करने में सक्षम होंगे जो एन्क्रिप्शन (डिक्रिप्शन नहीं) या प्रमाणीकरण उद्देश्यों तक सीमित हो सकती है।

+1

सार्वजनिक कुंजी केवल एन्क्रिप्शन और हस्ताक्षर सत्यापन के लिए उपयोगी है। –

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

  • कोई संबंधित समस्या नहीं^_^