क्या GPIO पिन के माध्यम से SRAM मॉड्यूल को नियंत्रित करना संभव है?


13

मैं रासपीआई को एक SRAM मॉड्यूल संलग्न करना चाहूंगा।

मेरा विचार एसडी कार्ड पर संवेदनशील (एन्क्रिप्टेड) ​​डेटा को स्टोर करना है लेकिन कुंजी को SRAM मॉड्यूल पर रखना है। इसकी अपनी बैकअप बैटरी (या सुपरकैपेसिटर ) होगी और एक एंटी-टैम्पर स्विच होगा जो बाड़े को खोलने पर सामग्री को मिटा देगा।

वहाँ केवल 8 उपलब्ध GPIO लाइनों के साथ SRAM को इंटरफ़ेस करने का कोई तरीका है?

SRAM मॉड्यूल को कम से कम 128 बिट्स (सबसे छोटी AES कुंजी का आकार) की क्षमता की आवश्यकता होगी, लेकिन यहां तक ​​कि 1-बिट वाइड मेमोरी के लिए 7 पता लाइनों और एक डेटा लाइन प्लस 2 या 3 नियंत्रण लाइनों की आवश्यकता होगी।

क्या यह किया जा सकता है? मैं सोच रहा हूं कि I / O लाइन का पुन: उपयोग करके धोखा देना संभव हो सकता है जिसे किसी और चीज के लिए डिज़ाइन किया गया था।

जवाबों:


4

SRAM को स्थापित करने के लिए, मैं एक I2C / SPI मॉड्यूल का उपयोग करने का सुझाव दूंगा ( उदाहरण के लिए , GPIO लाइनों का उपयोग करने के बजाय। हालांकि संभावित रूप से धीमा, इसका मतलब है कि आपके पास अन्य चीजों के लिए अन्य GPIO लाइनें हैं और आपका SRAM काफी बड़ा हो सकता है।

हालांकि SRAM का उपयोग करने के लिए एक बड़ा नुकसान है। मान लीजिए आप अपने आरपीआई पर कुछ बहुत मूल्यवान जानकारी संग्रहीत करते हैं और मैं वास्तव में इसका मतलब हूँ। मान लीजिए कि मैं आपके आरपीआई में हैक कर सकता हूं और मनमाना कोड चला सकता हूं, तो मैं SRAM से आपकी कुंजी प्राप्त कर सकता हूं, जिसे डेटा को डिक्रिप्ट करना आवश्यक है। यह एक सुरक्षा जोखिम है। वैकल्पिक रूप से, आप एक AVR / PIC कॉपीरोसेसर का उपयोग कर सकते हैं, जिसे आप I2C / SPI / UART पर संवाद करते हैं। आरपीआई पर एन्क्रिप्शन / डिक्रिप्शन करने के बजाय, आप अपने डेटा को कॉपीप्रोसेसर को भेजेंगे और यह सुनिश्चित करेंगे कि आपके आरपीआई की कुंजी भेजने का कोई निर्देश नहीं है। हालाँकि, एक नई कुंजी उत्पन्न करने के लिए एक निर्देश हो सकता है, और निश्चित रूप से, आपके पास कॉपीरोसेसर पर संग्रहीत कई कुंजी हो सकती हैं। यह एक अच्छा सा प्रोजेक्ट बना सकता है।


धन्यवाद, लेकिन संवेदनशील डेटा को वैसे भी सीपीयू से गुजरना चाहिए (इसलिए यदि किसी को
पीयू में

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

2
कोई मतलब नहीं है। सामान्य मेमोरी की तुलना में डेटा वहां अधिक सुरक्षित नहीं होगा। जो कोई भी OS को रूट करता है, वह इसे किसी भी स्थान पर प्राप्त कर सकता है। जो कोई भी इसे जगह में नहीं मिला।
डेविड श्वार्ट्ज

@ डेविड श्वार्ट्ज: मुद्दा यह है कि (1) OS को रूट करने से आपको केस खोलने की जरूरत है (2) केस को खोलने से एक स्विच खुल जाता है जो SRAM को मिटा देता है। जो कोई भी ओएस को रूट करता है, उसके पास मुख्य मेमोरी और फ्लैश और (b) डेटा में बाहरी SRAM के लिए (a) एक्सेस होता है, इसलिए अब उनके पास फ़्लैश डेटा को डिक्रिप्ट करने की कुंजी नहीं है। स्पष्ट रूप से हमें अभी भी ओएस को नेटवर्क के माध्यम से रूट किए जाने से बचाना चाहिए (जैसा कि हम पहले से ही करते हैं।)
फाइन जूल 13'12

1
तब आप MCP79410 का उपयोग कर सकते थे । इसमें दो पिन सीरियल इंटरफ़ेस (घड़ी और डेटा), 64 बाइट्स SRAM, और बाहरी बैटरी से इनपुट के लिए एक पिन है। बस सुनिश्चित करें कि आपका छेड़छाड़ स्विच बैटरी और आपूर्ति वोल्टेज दोनों को जब्त करता है!
डेविड श्वार्ट्ज

4

आप SPI या I2C पर RAM का अनुकरण करने के लिए बस एक छोटे माइक्रोकंट्रोलर का उपयोग कर सकते हैं ।

सभी लेकिन बहुत छोटे micros में 128 बिट्स रैम की कुंजी होगी

जैसे

MSP430G2001 में RAM PIC12F508 के 128 बाइट्स , RAM के 50 बाइट्स (की के लिए 16 बाइट्स, 34 बाइट्स मुफ्त) PIC10F202 में 24 बाइट्स के रैम (16 बाइट्स के लिए 8 बाइट्स) मुफ्त हैं।

यदि आप वास्तव में सीरियल रैम पसंद करते हैं, तो वे भी मौजूद हैं

23K640 64kbit / 2.7-3.6V है


2

आप मान रहे हैं कि पाई पर केवल 8 gpio लाइनें उपलब्ध हैं। वास्तव में यह 17 तक संभव है।

मुझे नहीं पता कि उन्हें कैसे एक्सेस करना है, लेकिन आप यहां अधिक जानकारी पा सकते हैं

http://elinux.org/RPi_Low-level_peripherals


1
मैं बस निराश हो गया (मुझे लगता है कि मुझे समझाना चाहिए), क्योंकि आपने बहुत कुछ दिया बस एक लिंक था, व्याख्या नहीं की। (मुझे नहीं पता कि क्या आप इसकी सराहना करेंगे, लेकिन मैं लोगों को पसंद करता हूं, जैसे कि मेरे लोग बता रहे हैं कि उन्होंने क्यों
अपमानित किया है

मैंने सोचा था कि आप जान सकते हैं कि 8 से अधिक io लाइनें बहुत उपयोगी हैं, लेकिन मैं टिप्पणी की सराहना करता हूं
डेविड साइक्स

0

आप PCF8570P £ 1.50ish 256x8Bit SRAM की तरह I 2 C SRAM मॉड्यूल का उपयोग कर सकते हैं यह 2.5V और 6.0V के बीच संचालित होता है, इसमें एक पावर सेविंग मोड होता है, जो 50nA जितना कम होता है और ज़रूरत पड़ने पर अधिक RAM बनाने के लिए स्टैक्ड किया जा सकता है।

इसे सीधे I2C तक या कई I2C डिवाइस के लिए एक मास्टर तक हुक करें। केवल 2 GPIO, पावर और नेगेटिव का उपयोग करता है, जिसमें एक छोटी बैटरी का उपयोग करके RAM रिटेंशन से MCU पावर का विकल्प होता है।

यहाँ छवि विवरण दर्ज करें

यदि आप निजी कुंजी की सुरक्षा करना चाहते हैं तो एलेक्स चैम्बरलेन सुरक्षा चिंता को गंभीरता से लिया जाना चाहिए। संभवतः अपने कोड में किसी प्रकार का अलगाव पैदा करने के बारे में सोच रहे हैं जिसे SRAM तक पहुंचने के लिए वृद्धि की आवश्यकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.