2012-04-07 8 views
20

मुझे अब सब कुछ मिल गया है और एमक्यूटीटी के लिए काम कर रहा है। मैं आईबीएम wmqtt.jar और Mosquitto दलाल का उपयोग कर रहा ..एमक्यूटीटी सुरक्षा - विषयों की सदस्यता लेने वाले दुर्व्यवहारियों को कैसे रोकें?

मेरे जावा सर्वलेट दलाल के लिए एक MQTTConnection बनाता है और विषय "AndroidDeviceID/myAppName" के अंतर्गत प्रकाशित करता है ..

एंड्रॉयड ग्राहक है कि एक ही का सदस्य बनता विषय ...

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

यह कैसे ठीक से बचाया जाता है?

+1

यह लिंक MQTT और सुरक्षा अवधारणाओं के लिए फायदेमंद हो सकता है: http: //www.hivemq.com/mqtt-security-fundamentals/ –

उत्तर

13

मच्छर उपयोगकर्ता नाम और पासवर्ड प्रमाणीकरण के माध्यम से सुरक्षा प्रदान करता है साथ ही पहुंच नियंत्रण सूचियों वाले विषयों तक पहुंच सीमित करता है। Mosquitto.conf मैन पेज में विवरण हैं: http://mosquitto.org/man/mosquitto-conf-5.html

+2

ग्रेट धन्यवाद, मैंने अभी भी जावा एमक्यूटीटी के नवीनतम संस्करण में माइग्रेट करना शुरू कर दिया है - एक्लिप्स पाहो - http://git.eclipse.org/c/p aho/org.eclipse.paho.mqtt.java.git/ऐसा लगता है कि यह कनेक्ट होने पर उपयोगकर्ता नाम/पासवर्ड का समर्थन करेगा। एक मुद्दा जो अभी भी मेरे पास है, वह एन्क्रिप्शन है .. मेरा अन्य सभी डेटा एसएसएल पर भेजा जा रहा है ... एमक्यूटीटी संदेश तत्काल संदेश संदेश के पूर्वावलोकन होंगे, इसलिए मैं इसे गोपनीय मानता हूं। नेट यातायात को दूर करने से रोकने के बारे में कोई विचार? –

+0

खैर मुझे लगता है कि मैं पाठ पर अपनी खुद की सरल obfuscation विधि बना सकता हूं जो पीछे और आगे जाता है, हम्म .. हालांकि मुझे एसएसएल एन्क्रिप्शन और प्रमाण पत्र प्रमाणीकरण के साथ काफी कुछ नहीं मिल रहा है। लेकिन शायद आईबीएम के वाणिज्यिक एमएमक्यूटी ब्रोकर के बिना जाकर मैं सबसे अच्छा कर सकता हूं? –

+0

मच्छर भविष्य में एसएसएल समर्थन प्राप्त करेंगे। इस बीच आप सरल संदेश एन्क्रिप्शन कर सकते थे ... मुझे पता नहीं है कि सबसे अच्छा जवाब नहीं है। – ralight

3

सामान्य रूप से, एमक्यूटीटी सुरक्षा को "प्रकाश" रखता है क्योंकि इसे मूल रूप से बंद सेंसर नेटवर्क के उपयोग के लिए डिज़ाइन किया गया था। यह प्रदान करने के लिए ब्रोकर कार्यान्वयन के लिए नीचे है। एसएसएल और उपयोगकर्ता नाम/पासवर्ड बैकएंड को संभालने का तरीका तय करें।

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

5

एसीएल क्या ग्राहकों विषयों की सदस्यता, मैं एक Auth-प्लगइन का उपयोग कर रहा ऐसा करने के लिए, यहाँ है लिंक mosquitto auth plugin

+2

क्या आपने रेडिस के साथ ऑथ प्लगइन का उपयोग किया है? मैं मूल्यों के साथ संघर्ष कर रहा हूं: auth_opt_redis_userquery ?? और auth_opt_redis_aclquery ?? – TheAshwaniK

+2

मैं mysql के साथ auth प्लगइन का उपयोग कर रहा हूँ। [कार्यान्वयन] में देखें (https://github.com/jpmens/mosquitto-auth-plug/blob/master/be-redis.c) आपकी मदद कर सकता है। – achuth

2

आप अभिगम नियंत्रण और विषयों की अनुमति से निपटने का एक और अधिक कस्टम रास्ते की जरूरत है की अनुमति नहीं देता है, कोशिश HiveMQ MQTT ब्रोकर का उपयोग करना। प्रलेखन में समझाया गया है कि आप एक प्लगइन के साथ अपने व्यवहार को लागू कर सकते हैं। यह दृष्टिकोण आपको पूरी तरह से यह तय करने की अनुमति देता है कि क्लाइंट, प्रकाशन और सदस्यता के प्रमाणीकरण और प्रमाणीकरण को कैसे प्रबंधित किया जाता है [1]। यदि आप रुचि रखते हैं तो अपनी खुद की प्लगइन से शुरू करने का सबसे अच्छा तरीका यहां वर्णित है [2]।

वैसे, एचआईवीएमक्यू [3] के लिए टीएलएस को कॉन्फ़िगर करना भी बहुत आसान है।

ईसाई (HiveMQ टीम)

[1] http://www.hivemq.com/docs/plugins/1.5.0/#auth-permission-chapter

[2] http://www.hivemq.com/documentations/getting-started-plugins/

[3] http://www.hivemq.com/docs/hivemq/1.5.0/#hivemqdocs_ssl_tls

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

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