थोड़ा सा संदर्भ
चूंकि आप AWS IoT के साथ MQTT का उपयोग कर रहे हैं, इसलिए आपको प्रमाणीकरण और सुरक्षा के लिए X.509 प्रमाणपत्र का उपयोग करने की उम्मीद है । अमेज़ॅन के पास थोड़ा सा मार्गदर्शन है कि आपको अपने प्रमाणपत्रों को कैसे सुरक्षित करना चाहिए, इसलिए मैं इसे यहां उद्धृत करूंगा:
प्रमाणपत्र उपकरणों के साथ उपयोग किए जाने वाले असममित कुंजी को सक्षम करते हैं। इसका मतलब है कि आप डिवाइस को सुरक्षित क्रिप्टोग्राफ़िक सामग्री की अनुमति के बिना किसी डिवाइस पर सुरक्षित भंडारण में निजी कुंजी जला सकते हैं।
चूंकि आप वर्तमान में STM32 की रीड आउट प्रोटेक्शन (RDP) का उपयोग कर रहे हैं , लेकिन सभी निर्धारित हमलावरों को आपकी वर्तमान योजना में आपके प्रमाणपत्र तक पहुँचने में परेशानी होगी:
ग्लोबल रीड आउट सुरक्षा एम्बेडेड इंजीनियरिंग कोड (फ्लैश मेमोरी में प्रीलोडेड) को रिवर्स इंजीनियरिंग से बचाने के लिए, डिबग टूल या घुसपैठ के अन्य साधनों का उपयोग करके डंपिंग की अनुमति देता है।
- स्तर 0 - कोई सुरक्षा नहीं (डिफ़ॉल्ट)
- लेवल 1 - फ्लैश मेमोरी को रैम लोडेड कोड द्वारा डिबगिंग या कोड डंपिंग द्वारा पढ़ने के खिलाफ संरक्षित किया जाता है
- स्तर 2 - सभी डीबग सुविधाएँ अक्षम हैं
क्या बाहरी भंडारण सुरक्षित होने वाला है?
यह शायद उतना सुरक्षित नहीं है । यदि आपके ग्राहक की निजी कुंजी चोरी हो जाती है, तो एक हमलावर डेटा भेज सकता है जो आपके डिवाइस से प्रतीत होता है, जब यह वास्तव में नहीं होता है। हालांकि यह स्पष्ट नहीं है कि आप कौन सा डेटा भेज रहे हैं, कोई भी अविश्वसनीय डेटा एक सुरक्षा जोखिम हो सकता है।
मुझे निजी रखने के लिए किन बिट्स की आवश्यकता होगी?
जब आप AWS IoT पर एक उपकरण प्रमाणपत्र बनाते हैं, तो आपको इस तरह की एक छवि देखनी चाहिए:
छवि बनाएं और AWS IoT प्रलेखन के एक उपकरण प्रमाणपत्र पृष्ठ को सक्रिय करें।
निजी कुंजी वह चीज है जिसे आपको वास्तव में रखने की आवश्यकता है ... निजी , और यदि संभव हो तो पठन-संरक्षित मेमोरी पर संग्रहीत किया जाना चाहिए। सार्वजनिक कुंजी और प्रमाणपत्र को साझा करने के लिए डिज़ाइन किया गया है, इसलिए यदि आप अंतरिक्ष से बाहर चल रहे हैं, तो आप उन्हें सुरक्षित रूप से बाहरी संग्रहण में स्थानांतरित कर सकते हैं। आप पृष्ठ पर थोड़ा और संदर्भ प्राप्त कर सकते हैं कि एसएसएल / टीएलएस कैसे काम करता है? सूचना सुरक्षा स्टैक एक्सचेंज और विकिपीडिया पर सार्वजनिक-कुंजी क्रिप्टोग्राफी । मुझे लगता है कि अगर मैं यह बताने के लिए कि निजी कुंजी को गुप्त रखने की आवश्यकता नहीं है, तो मैं आपको एक असंतुष्ट कर रहा हूँ।
।
विकिपीडिया से छवि , सार्वजनिक डोमेन में जारी की गई।
आपकी डिवाइस की सार्वजनिक कुंजी वह है जो आपके डिवाइस पर भेजने के लिए संदेशों पर हस्ताक्षर करने के लिए AWS IoT का उपयोग करता है (लेकिन यह साबित नहीं होता है कि कौन संदेश भेज रहा है )। इसलिए, वास्तव में, यह बहुत बड़ी आपदा नहीं है यदि कोई व्यक्ति सार्वजनिक कुंजी चुराता है, क्योंकि इसका मतलब गुप्त नहीं है।
निजी कुंजी क्या अपने डिवाइस का उपयोग करता है, संदेशों को डिक्रिप्ट करने तो यह एक थोड़ा बड़ा समस्या है एक हमलावर इस चुरा अगर है।
आपने यह भी पूछा कि अगर हमलावर ने रूटसीए प्रमाणपत्र को चुरा लिया तो क्या होगा? अगर किसी ने AWS IoT की निजी कुंजी चुरा ली है , तो यह विनाशकारी होगा, लेकिन आपके डिवाइस पर RootCA प्रमाणपत्र ऐसा नहीं है । RootCA.crt
कि अमेज़न दे आप है पूरी तरह से सार्वजनिक , और उद्देश्य आप सत्यापित कर सकते है कि आप किसी भी तरह से हमला किया जा रहा नहीं कर रहे हैं (सबसे अधिक संभावना एक मैन-इन-द-मिडल एडब्ल्यूएस IoT के सर्वर होने का नाटक) तो है।
हैक किए गए डिवाइस को क्या नुकसान हो सकता है?
आपका चुराया हुआ उपकरण केवल पॉलिसी में सूचीबद्ध कार्यों को कर सकता है । कम से कम विशेषाधिकार के सिद्धांत का पालन करने की कोशिश करें ; केवल अपने डिवाइस को विशेषाधिकारों की जरूरत है , इसलिए यदि सबसे खराब होता है, तो यह बहुत ज्यादा कहर बरपा नहीं सकता। आपके विशिष्ट मामले के लिए:
इस चीज़ को केवल 2 चैनलों (इसका नाम और डेटा फीड चैनल) पर प्रकाशित करने की अनुमति है, जो एक डेटा प्रोसेसर से जुड़ा है, जो आने वाले किसी भी दुष्ट पैकेट को अनदेखा करेगा।
अच्छी बात है। किसी भी हमले को केवल दो एमक्यूटीटी विषयों से अलग किया जाना चाहिए जो डिवाइस को प्रकाशित कर सकते हैं, इसलिए यह बड़े पैमाने पर नुकसान का कारण नहीं होगा।