2011-02-02 15 views
5

मैं इसमें उपयोगकर्ता की दुकान पासवर्ड के लिए एक .net (सी #) खिड़कियों आवेदन लिख रहा हूँ में पासवर्ड के बारे में अभ्यास, KeyPass की तरह, LastPass, roboforms आदिआम मेमोरी

उपयोगकर्ता डेटा मैं में रखने के लिए है संसाधित करने के लिए स्मृति में इस डेटा में उपयोगकर्ता के पासवर्ड भी शामिल हैं।

अब मेरी प्रश्न हैं:

  1. कोई कुछ उपकरण या स्मृति डंप का उपयोग कर मेमोरी डाटा पढ़ सकते हैं?
  2. यदि हां तो कैसे? क्या कोई ऐसा उपकरण साझा कर सकता है? मैंने CurrProcess, HeapViewer, ProcessExplorer और ProcessView अनुप्रयोगों के साथ प्रयास किया लेकिन मेमोरी डंप में कोई निजी डेटा नहीं मिला,
  3. क्या मुझे स्मृति पासवर्ड में सुरक्षा सुनिश्चित करने के लिए कुछ और सीखना है।

धन्यवाद

उत्तर

3

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

अपने पासवर्ड की सुरक्षा के लिए, कोबी ने SecureString कक्षा का उल्लेख किया, जिसे सुरक्षित रूप से स्मृति में तारों को स्टोर करना माना जाता है। हालांकि यह कक्षा 100% सुरक्षा नहीं है (जब भी आप इसका उपयोग करते हैं तो पासवर्ड डिक्रिप्ट किया जाता है), लेकिन पासवर्ड कैप्चर करने की संभावना कम होती है।

8

आप अपनी चिंताओं में सही हैं, स्मृति में तार नहीं सुरक्षित हैं।
आप शायद SecureString कक्षा की तलाश में हैं।

1

मैं Keepass (संस्करण 2.xx) के स्रोत कोड की खोज करने का सुझाव दूंगा। यह .NET में लिखा गया है, और यह उन मुद्दों से संबंधित है जिनके बारे में आप चिंतित हैं।

1

मेरा अनुभव सुरक्षा में सीमित है, लेकिन मुझे उम्मीद है कि इस मददगार होगा

  1. हाँ, यह संभव है
  2. आप WinDbg + एसओएस का उपयोग कर सकते वस्तु के आंतरिक प्रतिनिधित्व से आप चाहते हैं लगभग कुछ भी पाने के लिए
  3. बीसीएल में SecureString नामक एक विशेष श्रेणी है जो आपकी आवश्यकताओं के अनुरूप होनी चाहिए।
5

यदि आप पासवर्ड के लिए रैम को छीनने वाले किसी के बारे में चिंतित हैं, तो आपके पास और अधिक महत्वपूर्ण समस्याएं हैं। यदि किसी दुर्भावनापूर्ण उपयोगकर्ता के पास रैम तक पहुंच है, तो मशीन पर एक कीलॉगर ड्रॉप करना, या सॉफ़्टवेयर में चाबियाँ कहां उपयोग की जाती हैं, या कुंजी को डिक्रिप्ट करने के बाद बाधित करने के लिए तुच्छ है। आदि आदि

सामान्य नियम है, अगर किसी के पास मशीन तक पहुंच है, तो सुरक्षा के आधार पर इसका खेल।

+2

-1 सबसे पहले यह किसी भी तरह से ओपी के प्रश्न का उत्तर नहीं देता है और वहां आपका परिदृश्य केवल एक ही संभव है। एप्लिकेशन में अभी भी एक बग हो सकता है जो हमलावर को पढ़ने (यादृच्छिक) स्मृति को पढ़ने की अनुमति देता है। SecureString इस तरह के मामले के लिए पूरी तरह से मान्य है क्योंकि जैसे ही आपको ऑब्जेक्ट की आवश्यकता नहीं है, आप इसे रिलीज़ कर सकते हैं। तारों के साथ आप नहीं कर सकते हैं। अन्य मामलों में क्रेडिट कार्ड जानकारी जैसी समझदार जानकारी हो सकती है जब आपका वेबपृष्ठ या एप्लिकेशन क्रैश हो जाता है और मेमोरी डंप बनाया जाता है (यानी ओएस क्रैश हो जाता है और आप इसे ट्रैक करने के लिए डेवलपर के लिए डंप जमा करते हैं)।स्ट्रिंग के साथ, अब आपने – Tseng

+0

@Tseng को बहुत समझदार जानकारी भी भेजी है। प्रश्नकर्ता ने पूछा कि वह किसी ऐसे उपकरण का उपयोग करके पासवर्ड से कैसे रक्षा कर सकता है जो सीधे स्मृति तक पहुंचता है। मेरा जवाब (जो मैं पीछे खड़ा हूं) कहता है कि अगर हमलावर स्मृति तक पहुंच सकता है, तो ऐसा कुछ भी नहीं है जो आप कर सकते हैं। सुरक्षित स्ट्रिंग कुछ दुर्लभ मामलों में मदद कर सकती है, लेकिन यह बिल्कुल इस मुद्दे को हल नहीं करती है। आपके परिदृश्य में जब संवेदनशील जानकारी सादे पाठ में होती है तो मेमोरी डंप लिया जा सकता है। – PaulG

+0

"1. क्या कोई उपकरण या ** मेमोरी डंप ** का उपयोग कर मेमोरी डेटा पढ़ सकता है?" स्पष्ट रूप से मेमोरी डंप शामिल हैं, जो तब भी हो सकता है जब आपका ओएस क्रैश हो और – Tseng

संबंधित मुद्दे