AVR / Arduino पर कोड सुरक्षित करना और अपडेट वितरित करना


9
  1. रिवर्स इंजीनियरिंग से किसी भी AVR आधारित डिवाइस पर फ्लैश किए गए कोड की रक्षा करने का सबसे अच्छा तरीका क्या है?
  2. कोड का खुलासा किए बिना उपयोगकर्ताओं को अपने दम पर फ्लैश करने के लिए अपडेट प्रदान करने का एक आसान तरीका क्या है? (क्या यह एक बूटलोडर के साथ है जो एन्क्रिप्टेड छवि को डिक्रिप्ट करता है?)

DRM को बढ़ावा देने के लिए मुझे ज्वाला न दें, मैं खुले प्लेटफार्मों के पक्ष में हूं - मैं बस उत्सुक हूं कि यह कैसे काम करेगा।


मत करो। नहीं है कोई रास्ता करने के लिए पूरी तरह से एक दुर्भावनापूर्ण व्यक्ति रिवर्स अपने हार्डवेयर / सॉफ्टवेयर इंजीनियरिंग की संभावना को रोकने। एंटी-रे उपाय जो भी करते हैं, उसे उलटने में अधिक समय लगता है।
कॉनर वुल्फ

जवाबों:


9

प्रथम:

चिप पर फ़्यूज़ हैं जो बाहरी टूल को चिप से कोड को पढ़ने से रोकने के लिए सेट किया जा सकता है। अपने डेटाशीट और / या प्रोग्रामर प्रलेखन में सुरक्षा फ़्यूज़ के लिए देखें।

यह सही नहीं है, लेकिन यह आपको साधारण हमलों से बचाता है।

दूसरा:

आप फर्मवेयर को सुरक्षित रूप से डाउनलोड नहीं कर सकते। AVR स्वयं-सुरक्षित क्षेत्रों को प्रोग्राम नहीं कर सकता है:

http://www.atmel.com/dyn/resources/prod_documents/doc1644.pdf

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


3
यदि फ़्यूज़ बिट सही नहीं है, तो किस तरह का अटैचमेंट इसे बायपास कर सकता है?

1
@ अज्ञात - रासायनिक रूप से चिप के आवरण को खोदना और इलेक्ट्रॉन माइक्रोस्कोप, लेजर, और माइक्रोप्रोसेस का उपयोग करके, इंटरफ़ेस को देखने और संपादित करने के लिए उपयोग करना। कम से कम $ 500 की लागत, लेकिन डिवाइस में जो भी काम कर रहे हैं, उससे सस्ता हो सकता है।
केविन वर्मर

@KevinVermeer क्या आपका मतलब $ 500 था? मुझे लगता है कि यह उससे कहीं अधिक महंगा होगा।
निकाहडेन 21

एडम, एक त्रुटि थी, इसलिए मैंने अपनी टिप्पणी को हटा दिया
hulkingticket 20

3

यदि यह महत्वपूर्ण है और आप विशेष रूप से अपने कोड को चुराने वाले प्रतियोगियों के बारे में चिंतित हैं, तो अपने कोड सेगमेंट पर IP सुरक्षा निकालें। यदि आप कोशिश कर रहे हैं और किसी भी परियोजना से पैसा कमाना चाहते हैं तो आपको इस पर गौर करना चाहिए।

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


1

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


1
मुझे लगता है कि @ अदम डेविस क्या कह रहा है, हालांकि, अगर आप एक बूटलोडर (यहां तक ​​कि आपने लिखा है) का उपयोग करते हैं तो आप लॉक बिट संरक्षित क्षेत्रों को प्रोग्राम नहीं कर सकते। इसलिए, यदि आपने अपना एन्क्रिप्टेड बूटलोडर लिखा है, तो आप चिप को पढ़ने से नहीं रोक सकते (समस्या 1)। ऐसा लगता है कि मैं लिंक और डेटाशीट से जो भी हो रहा हूं, वैसे भी।
लू

यदि बूटलोडर और कोड एन्क्रिप्ट किया गया है तो यह दूसरी समस्या को हल करेगा, पहली समस्या लगभग हल हो जाती है यदि वह एक सुरक्षित पर्याप्त एन्क्रिप्शन का उपयोग करता है। (यूसी की गति एक बोतल गर्दन हो सकती है)।
रिक_2047 15:17

सच। @ अदम डेविस ने ऊपर एक एन्क्रिप्टेड टोकन भाषा का सुझाव दिया।
लू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.