2011-12-19 20 views
7

मुझे एंड्रॉइड एप्लिकेशन के माध्यम से वेब सेवा के लिए अनुरोध करने की आवश्यकता है। webservice को आवश्यकतानुसार डिज़ाइन किया जा सकता है।सुरक्षित वेब सेवा अनुरोध

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

क्या कोई समाधान है जो 100% सुरक्षित होगा?

+0

इसे देखें। मुझे लगता है कि वे एक ही बात पूछ रहे हैं: http://stackoverflow.com/questions/2320937/securing-communication-from-android-to-a-web- सेवा – eboix

+0

मैंने सवाल पूछने से पहले इस जवाब को पढ़ा - लेकिन मुझे नहीं लगता कि यह ऐप के रिवर्स इंजीनियरिंग के मुद्दे को हल करता है। –

+0

आप डेटा एन्क्रिप्ट कर सकते हैं, डीबी में कुंजी के हैश स्टोर कर सकते हैं, और डीबी एन्क्रिप्ट कर सकते हैं। यह – Mal

उत्तर

6

कोई 100% सुरक्षित नहीं है, आप बस अपने हमलावर के लिए चीजें कठिन बना सकते हैं। चीजें आप पर विचार कर सकते हैं:

  • एन्क्रिप्शन - एन्क्रिप्टेड चैनल पर अपने अनुरोध पासिंग बुनियादी सूंघने से बंद हो जाएगा (इस MITM के साथ मुकाबला किया जा सकता है)

  • कहानियो - अपने इरादे कठिन समझने के लिए जब वे करते हैं बनाओ अपने ऐप के साथ छेड़छाड़ की गई नोटिस और इसके साथ सौदा करने की क्षमता - अपने अनुप्रयोग

इस के दूसरे भाग विघटित शमन है। इसे संभालने का एक सामान्य तरीका प्रत्येक क्लाइंट को पहले रन पर एक अद्वितीय टोकन असाइन करना है, फिर इसे अपनी सेवा में प्रत्येक कॉल पर एक तर्क के रूप में पास करें।

इस तरह अगर कोई आपके ऐप को डिमंपाइल करता है और आपकी सेवा को कॉल करने के तरीके को समझता है तो आप कम से कम निगरानी कर सकते हैं जहां अपमानजनक अनुरोध आ रहे हैं और संदिग्ध व्यवहार की निगरानी भी कर सकते हैं (यानी एक छोटी अवधि में एक ही कुंजी से एकाधिक अनुरोध विभिन्न आईपी पते पर)। वहां से आप अवरुद्ध कुंजी शुरू कर सकते हैं।

+1

+1 अच्छा जवाब, सर्वोत्तम के लिए आशा करें - सबसे खराब – amelvin

+0

के लिए तैयार करें यह देखें http://shabbirdhangot.wordpress.com/2014/07/12/secure-web-service-url-in-android/ –

2

आप "हैकिंग" के बारे में चिंतित हैं, लेकिन किसी भी सुरक्षा चर्चा का आधार जोखिम को परिभाषित कर रहा है।

आप किसके खिलाफ सुरक्षा करने की कोशिश कर रहे हैं?

उदाहरण के लिए, क्या आप सर्वर पर किसी और के कनेक्शन को पढ़ने के लिए हमलावर के खिलाफ सुरक्षा करने की कोशिश कर रहे हैं?

इस परिदृश्य के लिए एक सरल और सुरक्षित समाधान आपके सममित एन्क्रिप्शन कुंजी के लिए असममित कुंजी एक्सचेंज का उपयोग करना होगा, या मौजूदा प्रोटोकॉल का उपयोग करना होगा (उदा। एचटीटीपीएस)। मैन-इन-द-बीच हमलों के खिलाफ बचाव के लिए सर्वर की निजी कुंजी (या HTTPS का उपयोग करते समय प्रमाणपत्र) को एम्बेड करें। रिवर्स-इंजीनियरिंग आपका ऐप यहां हमलावर की मदद नहीं करेगा।

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