2013-10-03 7 views
5

मैं पाइथन में एक प्रोग्राम बना रहा हूं जिसमें पासवर्ड हैशिंग शामिल होगा। मैं इस का उपयोग मान लें पासवर्ड प्राप्त करने के:रैम में पाइथन चर सुरक्षित रूप से ओवरराइट करें?

import getpass 
password = getpass.getpass("Password: ") 

और फिर यह हैश, वहाँ किसी भी तरह से सुरक्षित रूप से रैम से unhashed पासवर्ड के सभी निशान हटाने के लिए है?

+0

मुझे लगता है कि इस पोस्ट आप मदद कर सकते हैं: [http://stackoverflow.com/questions/1316767/how-can-i-explicitly-free-memory-in-python][1] [1]: http://stackoverflow.com/questions/1316767/how-can-i-explicitly-free-memory-in-python –

+3

आप संभवतः ऐसा क्यों करना चाहते हैं? अपनी याददाश्त को पढ़ने में सक्षम होने के लिए (वास्तव में वास्तव में कड़ी मेहनत) एक हैकर को किसी भी तरह रूट पहुंच प्राप्त करनी चाहिए थी। सुरक्षा की झूठी भावना बनाने के बजाय कृपया अपनी ऊर्जा को अधिक समझदार/सामान्य [हमले वैक्टर] (https://www.owasp.org) पर केंद्रित करें। – RickyA

+0

@RickyA आपको नहीं पता कि टीकेबीएक्स क्या करने की कोशिश कर रहा है, यह वास्तव में एक अच्छा सवाल है। – Joe

उत्तर

3

जैसा कि पहले चर्चा की गई थी कि आपके पास कस्टम कार्यान्वयन होने के बावजूद पाइथन में ऐसा करने का कोई मूर्ख तरीका नहीं है (हालांकि यह एक तरीका हो सकता है)।

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

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

कुछ डेटा ब्लॉक आंशिक रूप से आंशिक डेटा की बड़ी मात्रा बनाने के लिए आंशिक रूप से पुन: आवंटित किए जाते हैं। कल्पना करें कि यह क्या पसंद करेगा, 1, 2, 8 या यहां तक ​​कि 16 जीबी यादृच्छिक डेटा, और संभावित हैकर को उन सभी 0s और 1s में पासवर्ड ढूंढना होगा।

यदि कोई प्रक्रिया के निष्पादन के दौरान आपका पासवर्ड हैक करना चाहता है तो उसे मशीन के लिए रूट के रूप में लाइव पहुंच की आवश्यकता होगी; वह पहले बताए गए कारणों के बाद बाद में स्वैप को देखकर ऐसा नहीं कर सकता।

लेकिन अगर किसी के पास इस तरह की पहुंच है तो पासवर्ड प्राप्त करने के कई अन्य तरीके हैं। उदाहरण के लिए बस प्रोग्राम को डीबग करें, या बेहतर, बस स्रोत को बदलें और इसे पासवर्ड प्रिंट करें :)

अधिकांश हैकर्स ऐसी परेशानी से गुजरने से परेशान नहीं होंगे। हैकिंग ज्यादातर social engineering है, जो मूल रूप से उपयोगकर्ता को हैकर को अपना पासवर्ड स्वेच्छा से दे रहा है। Phishing एक ऐसी विधि है।

+0

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

+0

यह लड़का समझ में आता है! – RickyA

+1

"संभावित हैकर को इन सभी 0s और 1s में पासवर्ड ढूंढना होगा"। सबसे पहले, यह विचार है कि हैकर्स * संभवतः कभी नहीं कर सकता * यह करने के लिए एक बड़ा बयान है। ऐसे व्यावहारिक शोषण हैं जो विशेष चीज़ों को स्मृति या स्वैप में ढूंढने पर भरोसा करते हैं जहां आप नहीं सोचेंगे कि वहां से शुरू करने के लिए बहुत कुछ था। दूसरा, आप वास्तव में क्या करते हैं, पाठ की तरह दिखने वाले किसी भी चीज़ के लिए स्वैप फ़ाइल स्कैन करें। आपको बस पासवर्ड से बहुत कुछ मिलता है, फिर अनुमानों की सूची के रूप में इसका उपयोग करें। यही है, आप एक काम करने तक बारी के रूप में प्रत्येक बिट के साथ सीवन करने की कोशिश करके एक घास में एक सुई पा सकते हैं। –

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