MemGuard
मेमोरी में संवेदनशील जानकारी के भंडारण के लिए सॉफ़्टवेयर एन्क्लेव।
यह पैकेज मेमोरी में संवेदनशील डेटा के उजागर होने की संभावना को कम करने का प्रयास करता है। इसका उद्देश्य सभी प्रमुख ऑपरेटिंग सिस्टमों का समर्थन करना है और यह शुद्ध Go में लिखा गया है।
विशेषताएँ
- संवेदनशील डेटा को मेमोरी में XSalsa20Poly1305 से एन्क्रिप्ट और प्रमाणित किया जाता है। उपयोग की गई योजना कोल्ड-बूट हमलों से भी बचाती है।
- मेमोरी आवंटन भाषा रनटाइम को बायपास करके सिस्टम कॉल का उपयोग करके सीधे कर्नेल से संसाधनों का अनुरोध करता है। इससे गार्बेज-कलेक्टर का हस्तक्षेप टलता है।
- प्लेनटेक्स्ट डेटा संग्रहीत करने वाले बफ़र्स को गार्ड पेज और कैनरी मानों से मजबूत किया जाता है ताकि अनियमित पहुँच और ओवरफ्लो का पता लगाया जा सके।
- संवेदनशील डेटा को डिस्क को छूने से रोकने के प्रयास किए जाते हैं। इसमें स्वैपिंग को रोकने के लिए मेमोरी को लॉक करना और कोर डंप को संभालना शामिल है।
- कर्नेल-स्तरीय अपरिवर्तनीयता लागू की गई है ताकि संरक्षित क्षेत्रों में संशोधन के प्रयास से एक्सेस उल्लंघन हो।
- कई एंडपॉइंट सत्र शुद्धिकरण और सुरक्षित समाप्ति क्षमताओं के साथ-साथ सिग्नल हैंडलिंग प्रदान करते हैं ताकि अवशेष डेटा पीछे न रहे।
- साइड-चैनल हमलों को कम किया जाता है यह सुनिश्चित करके कि डेटा की प्रतिलिपि और तुलना स्थिर-समय (constant-time) में की जाती है।
कुछ विशेषताएँ libsodium से प्रेरित हैं, इसलिए उन्हें श्रेय जाता है।
पूर्ण दस्तावेज़ीकरण और API का संपूर्ण अवलोकन यहाँ पाया जा सकता है। रोचक और उपयोगी कोड नमूने examples उपपैकेज में मिल सकते हैं।
स्थापना
$ go get github.com/awnumar/memguard
API प्रयोगात्मक है और अस्थिर परिवर्तन हो सकते हैं। आपको एक संस्करण पिन करना चाहिए। [मॉड्यूल्स]
योगदान
./examples में प्रोग्राम नमूने प्रस्तुत करना।
- बग, कमजोरियों और API का उपयोग करने में किसी भी कठिनाई की रिपोर्ट करना।
- उपयोगी सुरक्षा और क्रिप्टो लाइब्रेरीज़ लिखना जो memguard का उपयोग करें।
- कर्नेल-विशिष्ट/CPU-विशिष्ट सुरक्षा लागू करना।
- प्रदर्शन सुधार प्रस्तुत करना।
मुद्दे बग रिपोर्ट करने और प्रस्तावों पर चर्चा के लिए हैं। पुल रिक्वेस्ट मास्टर शाखा के विरुद्ध की जानी चाहिए।