मैं अपने सी # .NET ऐप्स में से किसी एक में फ़ाइलों का एन्क्रिप्शन और डिक्रिप्शन शामिल करना चाहता हूं। परिदृश्य सरल है: उपयोगकर्ता ए उपयोगकर्ता बी को एईएस 256-एन्क्रिप्टेड फ़ाइल भेजता है। स्पष्ट टेक्स्ट पासवर्ड को एक अलग चैनल (जैसे फोन कॉल या जो कुछ भी) पर आदान-प्रदान किया जाता है।स्पष्ट टेक्स्ट पासवर्ड से सुरक्षित पासवर्ड बनाने के लिए Rfc2898DeriveBytes का उपयोग करते समय नमक का महत्व
मैं क्या समझ मैं एक अधिक सुरक्षित हो सकता है 10,000 राउंड का उपयोग कर पासवर्ड में उपयोगकर्ता का स्पष्ट पाठ पासवर्ड परिवर्तित करने के लिए Rfc2898DeriveBytes का उपयोग करना चाहिए से। (this article देखें)।
जो मुझे समझ में नहीं आता वह मेरे परिदृश्य में नमक की भूमिका है। आम तौर पर शब्दकोश हमलों को रोकने के लिए हैशिंग पासवर्ड में नमक का उपयोग किया जाता है। लेकिन मेरे परिदृश्य में पीबीकेडीएफ 2 अल्गो का उपयोग पीबीकेडीएफ 2-राउंड द्वारा आवश्यक अतिरिक्त गणना जोड़कर स्पष्ट टेक्स्ट पासवर्ड को कम या आसान अनुमानित कमजोरियों की भरपाई करने के लिए किया जाता है।
यदि मैं यादृच्छिक नमक चुनता हूं तो रिसीवर को सही ढंग से डिक्रिप्ट करने के लिए नमक को भी जानना होगा। यदि मैं निरंतर नमक का उपयोग करता हूं, तो हैकर आसानी से मेरे कोड को इंजीनियर कर सकते हैं और मेरे निरंतर नमक का उपयोग करके ब्रूट फोर्स हमलों को चला सकते हैं (हालांकि वे पीबीकेडीएफ 2 पुनरावृत्तियों के लिए वास्तव में धीमे धन्यवाद होंगे)।
मैं क्या समझ रहा लेकिन मेरी स्थिति में एक निरंतर नमक का उपयोग करें और एक अच्छा स्पष्ट पाठ पासवर्ड नियम लागू लगातार नमक की कमजोरी की भरपाई करने के लिए कोई विकल्प नहीं है से। क्या मेरी धारणा सही है?
एईएस के लिए यादृच्छिक चतुर्थ होना चाहिए (मुझे लगता है कि वह ईसीबी के अलावा कुछ मोड का उपयोग कर रहा है जो सुरक्षित नहीं है)। नमक हैश से पासवर्ड प्राप्त करने के लिए इंद्रधनुष तालिका का उपयोग कर रोक रहा है, लेकिन हमलावर के पास इस परिदृश्य में इस हैश को प्राप्त करने का कोई तरीका नहीं है क्योंकि इसे केवल एन्क्रिप्शन के लिए एक कुंजी के रूप में उपयोग किया जाता है। –
@MaciejS एक हमलावर सामान्य पासवर्ड से बड़ी संख्या में चाबियों का प्रीकंपूट कर सकता है और आगे काम किए बिना किसी भी संदेश के खिलाफ तालिका का उपयोग कर सकता है। – ntoskrnl
आप इस तरह के हमले को रोकने के लिए सही नमक का उपयोग किया जाना चाहिए। –