2012-07-05 19 views
11

कंपनी एक प्रोजेक्ट बनाता है और प्रेषक आईडी प्राप्त करता है। कंपनी अपने प्रेषक आईडी में एक ऐप, बेक बनाती है और ऐप को स्टोर में रखती है।Google क्लाउड मैसेजिंग सुरक्षा

अटैकर रिवर्स इंजीनियरों को ऐप रिवर्स करता है और प्रेषक आईडी और सर्वर इंटरफ़ेस दोनों को जीसीएम पंजीकरण आईडी प्राप्त करने के लिए उपयोग करता है।

अटैकर कंपनी के प्रेषक आईडी और सर्वर पंजीकरण इंटरफ़ेस में अपना स्वयं का ऐप बनाता है, स्टोर में ऐप डालता है। हमला ऐप मूल रूप से जीसीएम के रूप में कंपनी के वास्तविक ऐप का प्रतिरूपण करता है: यह कंपनी के प्रेषक आईडी से संदेश प्राप्त करने के लिए पंजीकरण करता है और फिर "असली" ऐप की तरह कंपनी के सर्वर पर अपनी जीसीएम पंजीकरण आईडी भेजता है।

अब कंपनी कुछ जानकारी अपने ऐप के सभी उदाहरणों में प्रसारित करना चाहता है। शायद यह एक अद्यतन की तुलना में एक अनुस्मारक उपलब्ध है। क्या कंपनी के ऐप के "वास्तविक" संस्करणों से "हमले ऐप" (जो वास्तविक की तरह पंजीकृत है) को अलग करने का कोई तरीका है?

+0

अच्छा सवाल लेकिन शायद यहां ओटी। – ceving

उत्तर

1

सी 2 डीएम के साथ भी यही समस्या हो सकती है, जिसे आप जीसीएम के लिए प्रोजेक्ट आईडी के बजाय प्रेषक ईमेल पता को छीन सकते हैं।

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

मैं नहीं देख सकता कि 'नकली/हैक' ऐप के लिए अधिसूचना कितनी उपयोगी हो सकती है, वे 'आपके पास नया संदेश' अधिसूचना के साथ क्या करने जा रहे हैं?

+1

क्या आपके पास कोई स्रोत है? – Schiavini

2

अच्छी तरह से, यह हमलावर ऐप के डीबग संस्करण में भी काम कर सकता है, लेकिन वह अपने ऐप को स्टोर में नहीं डाल सकता है। जीसीएम पहचान का हिस्सा ऐप आईडी है जिसे स्टोर में अद्वितीय होना चाहिए।

3

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

1

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

एक ऐप स्थापना, वैध या नहीं, कभी संदेश प्राप्त नहीं कर सकता है, यह अधिकृत नहीं है। (बशर्ते आप यह घोषित और C2D_MESSAGE अनुमति का उपयोग)

0

वास्तव में, गूगल चलो आप GCM के लिए एक सर्वर कुंजी, जिसकी मदद से आप सफेद सूची सर्वर आईपी के रजिस्टर ... तो आप अपने सर्वर आईपी जोड़ना चाहिए और आप सुरक्षित रहेंगे , क्योंकि केवल आपके सर्वर को उस कुंजी के साथ संदेश भेजने की अनुमति है।

0

इस मामले में जीसीएम सुरक्षित है।
GoogleApiConsole में ऐप पंजीकृत करने से पहले आप अपने मूल ऐप में अपने प्रेषक आईडी का भी उपयोग नहीं कर सकते हैं। इसका अर्थ यह है कि आप GoogleApiConsole में निजी कुंजी फ़िंगरप्रिंट इंगित करते हैं। बहुत हो गया।

0

मैं आपको अपना "अंतरिम सर्वर" रखने का सुझाव दूंगा जो एपीआई कुंजी का उपयोग करता है (प्रेषक आईडी जैसा कि आपने इसे संदर्भित किया है)। ऐप में इसे एम्बेड करने के बजाय।

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