[अस्वीकरण: मैं एक सुरक्षा / क्रिप्टो पेशेवर हूं और हर दिन इस तरह की सुरक्षा वास्तुकला के सवालों से निपटता हूं।]
आप इस तरह से क्रेडेंशियल्स को संग्रहीत करने की समस्या पर ठोकर खा चुके हैं, जो एक अप्राप्य प्रक्रिया उन्हें एक्सेस कर सकती है, लेकिन एक आक्रमण नहीं कर सकता। यह एक अच्छी तरह से ज्ञात और हल करने के लिए बहुत मुश्किल समस्या है।
यदि आपके IoT डिवाइस में कुछ केपीएम की तरह मदरबोर्ड में अंतर्निहित हार्डवेयर की -स्टोर है, या एंड्रॉइड हार्डवेयर-समर्थित केइस्टोर या ऐप्पल सिक्योर एन्क्लेव के बराबर है , तो आप इसका उपयोग कर सकते हैं।
पारंपरिक सर्वर के साथ आप एचएसएम या स्मार्ट कार्ड का उपयोग कर सकते हैं, लेकिन एकमात्र पूर्ण सॉफ्टवेयर समाधान जिसके बारे में मुझे पता है कि सभी हार्डवेयर उपकरणों के सीरियल नंबरों के संयोजन से निर्मित "हार्डवेयर फिंगरप्रिंट" से कुछ एईएस कुंजी प्राप्त करना है। फिर क्रेडेंशियल्स को एन्क्रिप्ट करने के लिए उस एईएस कुंजी का उपयोग करें। एक ही सर्वर पर चलने वाली एक प्रक्रिया एईएस कुंजी को फिर से संगठित कर सकती है और क्रेडेंशियल्स को डिक्रिप्ट कर सकती है, लेकिन एक बार जब आप सर्वर से फाइल निकालते हैं, तो यह अनिवार्य रूप से अन-डिक्रिप्टेबल होता है।
IoT दो कारणों से एक रिंच फेंकता है:
हार्डवेयर सीरियल नंबर अद्वितीय हैं, यह धारणा शायद पकड़ में नहीं आती है, और
सर्वर के विपरीत, हमलावरों के पास डिवाइस तक भौतिक पहुंच होती है, इसलिए संभवतः डिक्रिप्शन प्रोग्राम को चलाने के लिए डिवाइस पर एक शेल प्राप्त कर सकते हैं।
हार्डवेयर एन्क्रिप्शन (टीपीएम) और "हार्डवेयर फ़िंगरप्रिंट" एन्क्रिप्शन दोनों सबसे अच्छे हैं, क्योंकि मौलिक रूप से, यदि कोई स्थानीय प्रक्रिया डेटा को डिक्रिप्ट कर सकती है, तो एक हमलावर उस स्थानीय प्रक्रिया को चलाने में सक्षम हो सकता है।
तो मानक चाल की तरह लग रहा है कि यह यहाँ काम नहीं करता है। पहला सवाल जो आपको खुद से पूछने की ज़रूरत है:
- मेरा खतरा मॉडल क्या है / यह परियोजना
Secure <--> Convenient
पैमाने पर कहां बैठती है ?
अंत में, मुझे लगता है कि आपको या तो यह तय करने की आवश्यकता है कि security > convenience
और प्रत्येक बूट-अप ( @ BenceKaulics के उत्तर जैसी किसी चीज़ का उपयोग करके ) में एक मानव ने क्रेडेंशियल्स दर्ज किया है , या आप यह निर्णय लेते हैं security < convenience
और केवल डिवाइस पर क्रेडेंशियल्स डालते हैं, हो सकता है कि आप किसी तरह का विरोध करें महसूस करो कि फर्क पड़ता है।
यह एक कठिन समस्या है जिसे IoT उपकरणों की प्रकृति द्वारा कठिन बना दिया गया है।
पूर्णता के लिए, इस समस्या का पूर्ण विकसित औद्योगिक समाधान है:
- प्रत्येक IoT डिवाइस को निर्माण के समय एक अद्वितीय RSA सार्वजनिक कुंजी दें। डिवाइस क्रम संख्या के विरुद्ध db में इस सार्वजनिक कुंजी को रिकॉर्ड करें।
- एक उचित सर्वर पर संवेदनशील क्रेडेंशियल्स को स्टोर करें, चलो इसे "गेटवे" कहते हैं।
- जब कोई IoT डिवाइस गेटवे (इसकी RSA कुंजी का उपयोग करके) को प्रमाणित करता है, तो गेटवे संग्रहीत सत्रांक का उपयोग करके इसके लिए एक सत्र खोलता है और सत्र टोकन को डिवाइस पर वापस भेजता है।
- सर्वोत्तम सुरक्षा के लिए, गेटवे एक भौतिक (या वीपीएन) गेटवे है, ताकि IoT डिवाइस से सभी ट्रैफ़िक गेटवे से गुजरें और आपके पास फ़ायरवॉल नियमों और सामान पर अधिक नियंत्रण हो - आदर्श रूप से डिवाइस को प्रत्यक्ष (गैर-वीपीएन सुरंग रहित) होने से रोकता है। इंटरनेट का इस्तेमाल।
इस तरह, और एक डिवाइस से समझौता करने वाले हमलावर को एक सत्र खोला जा सकता है, लेकिन कभी भी क्रेडेंशियल्स तक सीधी पहुंच नहीं है।