2012-06-09 16 views
7

मैं एक एंड्रॉइड एप्लिकेशन लिख रहा हूं जिसका उद्देश्य एईएस 256 का उपयोग करके फ़ाइलों को एन्क्रिप्ट और डिक्रिप्ट करना है। मैं उपयोगकर्ता द्वारा दर्ज पासवर्ड से एईएस कुंजी प्राप्त करने के लिए एईएस-सीबीसी मोड और पीबीकेडीएफ 2 का उपयोग कर रहा हूं। इसके अलावा, मैं प्रत्येक फ़ाइल की एन्क्रिप्शन कुंजी के लिए एक सुरक्षित, छद्म यादृच्छिक नमक उत्पन्न कर रहा हूं। मैं एन्क्रिप्टेड फ़ाइल के साथ चतुर्थ और नमक भंडारित कर रहा हूं, इसलिए मैं उन्हें फिर से पढ़ सकता हूं और फ़ाइल को डिक्रिप्ट करने में सक्षम होने के बाद बाद में पुन: उत्पन्न कर सकता हूं।एन्क्रिप्टेड फ़ाइल ब्रेक सुरक्षा के साथ नमक भंडारण करता है?

मेरा प्रश्न: एन्क्रिप्टेड फ़ाइल को तोड़ने सुरक्षा और नमक के ही किसी भी अर्थ के साथ-साथ नमक के संचय करता है? एन्क्रिप्शन कुंजी को खोजने के लिए एन्क्रिप्टेड फ़ाइल के खिलाफ नमक और चतुर्थ को ऑफ़लाइन ब्रूट फोर्स हमला करने वाला हमलावर नहीं हो सकता है?

उत्तर

10

नमक का मुख्य उद्देश्य गुप्त नहीं होना चाहिए, लेकिन यह सुनिश्चित करने के लिए कि हमलावर पासवर्ड को बलपूर्वक बल देने की कोशिश करते समय शॉर्टकट का उपयोग नहीं कर सकता है, जैसे इंद्रधनुष तालिकाओं (यानी एक मौजूदा तालिका, या एक नया एकाधिक एन्क्रिप्टेड फ़ाइलों के लिए उपयोग किया जाना चाहिए), या एक बार में कई एकत्रित फ़ाइलों (जो अलग-अलग लवण होना चाहिए) को ब्रूट-फोर्सिंग करना।

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

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

+0

लेकिन क्या होगा अगर हमलावर एक वैध नमक के साथ एक इंद्रधनुष तालिका का निर्माण करेगा जिसे वह फ़ाइल से cleartext में पढ़ सकते हैं? –

+9

@AlexAmiryan एक इंद्रधनुष तालिका का निर्माण कम से कम एक क्रूर बल हमले के रूप में महंगा है। तो यदि आप तालिका का पुन: उपयोग नहीं कर सकते (और यही वह लवण रोकता है), तो तालिका बनाने के लिए बेकार है। बस एक ब्रूट-फोर्स हमले को सीधे निष्पादित करें। – CodesInChaos

2

नमक को एक-तरफा फ़ंक्शन जैसे पासवर्ड हैशिंग के लिए उपयोग किया जाता है।

रैंडम चतुर्थ इस तरह के डेटा है कि बाद decrypted किया जा सकता है एन्क्रिप्ट करने के रूप में दो तरह के कार्यों के लिए प्रयोग किया जाता है।

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

आप उन्हें एन्क्रिप्टेड फ़ाइल के साथ स्टोर कर सकते हैं।

पीबीकेडीएफ 2 के साथ 1 से अधिक पुनरावृत्ति का उपयोग करें या अन्यथा यह काफी बेकार है। Wikipedia के अनुसार आईओएस 3 2,000 पुनरावृत्तियों का उपयोग करता है और आईओएस 4 10,000 का उपयोग करता है।

+1

क्या आप अधिक वर्णनात्मक हो सकते हैं क्यों एन्क्रिप्टेड फ़ाइल के साथ चतुर्थ और नमक को स्टोर करना सुरक्षित है? –