2010-08-09 11 views
6

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

तो, मेरे ऐप के स्रोत कोड में एन्क्रिप्शन विधियों और "गुप्त" स्ट्रिंग को रखकर मैं कितना सुरक्षित होगा? क्या ऐप और सर्वर के बीच संचार को पूरा करने के लिए कोई और तरीका सुरक्षित है?

धन्यवाद।

उत्तर

6

हां, यह आसानी से पाया जा सकता है। अपने निष्पादन योग्य पर strings प्रोग्राम चलाएं और आपको शायद यह मिल जाएगा। इसके अलावा, आपके कार्यक्रम में कुछ भी "पाया" जा सकता है, क्योंकि यह आवश्यक रूप से पढ़ने के लिए खुला है।

सुरक्षित कनेक्शन के लिए एसएसएल का उपयोग करें। यह असममित एन्क्रिप्शन का उपयोग करता है, जिसका अर्थ है कि डेटा एन्क्रिप्ट करने की कुंजी वही नहीं है जिसे इसे डिक्रिप्ट करने की आवश्यकता होगी। इस तरह, भले ही हमलावर आपकी एन्क्रिप्शन कुंजी ढूंढें, फिर भी वे इसे डीकोड करने के लिए उपयोग नहीं कर सकते हैं। सभी प्रमुख HTTP सर्वर और क्लाइंट लाइब्रेरी HTTPS का समर्थन करते हैं, और यही वह करता है।

+0

धन्यवाद, एसएसएल कितना असुरक्षित एल्गोरिदम काम करता है, यह देखने के बाद, अभी तक सबसे सुरक्षित तरीके से कार्यान्वित करने के लिए सबसे आसान लगता है ... – pop850

+0

क्या एक हैकर एक ऐप चलने पर आंतरिक तारों को डंप करने के लिए संभव है? यदि हां, तो ऐसा करने से बचाने के लिए कोई रास्ता है? – vinnybad

+0

@ विन्नीबाड, आमतौर पर किसी प्रोग्राम की मेमोरी को डंप करना और इसे स्कैन करना संभव है, और इसे रोकने के लिए कोई निश्चित तरीका नहीं है। – zneak

4

क्या आपको लगता है कि "कुछ हद तक" वास्तव में क्या है? आपके निर्देश में प्रत्येक निर्देश और डेटा के प्रत्येक भाग में संभावित देखने के लिए खुला है। इसके अलावा, प्रत्येक डिवाइस के लिए एक ही कुंजी का उपयोग क्रिप्टोग्राफिक पागलपन में परम है।

बस HTTPS का उपयोग करें। एसएसएल/टीएलएस एक सुरक्षित, सिद्ध तकनीक है जो हर प्रमुख HTTP सर्वर और प्रत्येक प्रमुख HTTP क्लाइंट लाइब्रेरी में बनाई गई है।

2

आप एक सममित एल्गोरिदम का उपयोग करते हैं। यदि आपको उच्च सुरक्षा की आवश्यकता है तो शायद आपको एक अनिश्चित विधि माननी चाहिए। इस तरह आप हर सत्र में चाबियाँ भी दोबारा बना सकते हैं और केवल सार्वजनिक कुंजी का आदान-प्रदान करने की आवश्यकता है।

यहाँ कुछ उदाहरण:

  • आरएसए
  • Diffie-Hellman
  • ElGamal
  • ECDSA
  • XTR
0

के रूप में अन्य लोगों ने कहा, आप क्या प्रस्ताव कर रहे हैं पूरी तरह से असुरक्षित। अगर कोई आपके ऐप की परवाह करता है, तो वे रिलीज के 10 मिनट के भीतर इंटरनेट पर गुप्त कुंजी प्रकाशित करेंगे।

चीजें आप अनुसंधान की आवश्यकता है:

  1. Asymetric एन्क्रिप्शन एल्गोरिदम
  2. Diffie-Hellman कुंजी विनिमय

(नोट - मैं यह नहीं कह रहा हूँ उन आपकी समस्या का समाधान कर रहे हैं, लेकिन उनके बारे में सीखना आपको शामिल मुद्दों में शिक्षित करेगा और आपको समाधान लेने के लिए बेहतर तरीके से तैयार करेगा)

एक अतिरिक्त नोट पर, आप अभी क्यों उपयोग नहीं कर सकते एचटीटीपीएस कनेक्शन?

अंत में, यदि यह एन्क्रिप्शन योजना महत्वपूर्ण डेटा की रक्षा कर रही है, तो शायद आपको मदद करने के लिए परामर्शदाता को किराए पर लेने के लिए अच्छी तरह से सेवा दी जाएगी, क्योंकि विषय के लिए नौसिखिया होने के नाते, आप मूल गलतियों को सुनिश्चित करने के लिए निश्चित हैं।

1

आईओएस में एन्क्रिप्शन कुंजी जैसे सुरक्षित और (अपेक्षाकृत) आसानी से चीजें संग्रहीत करने के लिए कीचेन सेवाएं हैं। Keychain Services Programming देखें।

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

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

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