2010-06-20 16 views
8

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

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

क्या कोई सुरक्षा जोखिम है जिसे हम हैशिंग के बजाय एन्क्रिप्शन का उपयोग कर बना रहे हैं?

+7

* एक हैशिंग लाइब्रेरी विकसित करें? :( –

+1

हां। अच्छा पकड़। मेरा मतलब हैशिंग लाइब्रेरी को शामिल करना। यह शायद एक दिन के काम से भी कम है, लेकिन मुझे लगा कि सुरक्षा के बारे में और जानने के लिए यह एक अच्छा मौका होगा। – Pace

उत्तर

5

सिफर टेक्स्ट के साथ सादे पाठ को संग्रहीत करके आप टेस्ट तारों का एक अच्छा भंडार बना रहे हैं यदि कोई आपकी कुंजी खोजना चाहेगा। चूंकि आप स्पष्ट रूप से एन्क्रिप्ट करने के लिए कहा कुंजी का उपयोग करते हैं मैं कहूंगा कि यह जोखिम है।

याद रखें, केंद्रीय डेटाबेस के बारे में अच्छी बात यह है कि कुछ दिन किसी को डेटा प्राप्त होगा। यदि इतिहास कम से कम कोई सबक है।

+0

टेस्ट तारों के लिए अनुमति देने वाले सादे टेक्स्ट के बारे में अच्छा बिंदु। इसके बारे में सोचा नहीं। – Pace

+0

तो यदि आप केंद्रीय डेटाबेस नहीं हैं तो समाधान होने का प्रस्ताव क्या है? –

+0

मूल रूप से वे पहले से ही क्या पूछते हैं: उसी स्थान पर सादे टेक्स्ट और सिफरटेक्स्ट को संग्रहीत करने के बजाय हैशिंग। उन्होंने पहले से ही नोट किया है कि हैशिंग संभव था समाधान – Joey

1

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

1

एन्क्रिप्टेड किए जा सकने वाले किसी भी डेटा को भी डिक्रिप्ट किया जा सकता है।

हैशिंग एक तरीका है, विशेष रूप से यदि आप नई SHA2 विधियों का उपयोग करते हैं।

0

आपने कमजोर बिंदु के रूप में कुंजी की गोपनीयता पेश की है, मैं कहूंगा कि यह जोखिम है, हालांकि गंभीरता का अनुमान लगाने से अधिक जानकारी मिल जाएगी।

दूसरी तरफ हैशिंग पूरी तरह से टकराव ढूंढने में कठिनाई पर भरोसा करेगी, जो शायद उस महत्वपूर्ण रहस्य को रखने से अधिक सुरक्षित परिदृश्य है।

1

जो मैं समझता हूं उससे आप अपने डेटा की अखंडता प्राप्त करना चाहते हैं (यानी आप यह हासिल करना चाहते हैं कि कोई भी बदल नहीं सकता है, आप डेटा अनजान हैं)। यह डिजिटल हस्ताक्षर (उदा। आरएसए, डीएसए) या एक मैक (संदेश प्रमाणीकरण कोड) का उपयोग करके हासिल किया जा सकता है। एक मैक एक डिजिटल हस्ताक्षर के सममित समकक्ष है, जो आमतौर पर एक असममित योजना है।

तो आपके मामले में, एक मैक (उदाहरण के लिए एचएमएसी) एक अच्छा विकल्प होना चाहिए!

4

यदि यह एक सममित सिफर है जिसका आप उपयोग कर रहे हैं, और सिस्टम 'शत्रुतापूर्ण' माहौल में तैनात किया गया है, तो यह एक प्रश्न है कि एक प्रेरित व्यक्ति कुंजी को अलग कर सकता है और अपने स्वयं के (या अन्य) लाइसेंस पर हस्ताक्षर कर सकता है डेटा।

उन मामलों में आपको अपनी निजी कुंजी के साथ लाइसेंस "हस्ताक्षर" करने के लिए एक एसिमेट्रिक साइफर की आवश्यकता होती है जो एक कंप्यूटर पर सुरक्षित रूप से दूर रखा जाता है और बाहरी दुनिया से कोई कनेक्शन नहीं होता है। ठीक है, मामूली असाधारण, लेकिन एक सुरक्षित वातावरण में।

एक सादा हैश इस मामले में मदद नहीं करेगा क्योंकि इन्हें जाली लाइसेंस पर हस्ताक्षर करने के लिए उपयोग किया जा सकता है। यदि आप यह सुनिश्चित करना चाहते हैं कि केवल आप लाइसेंस परिवर्तनों को स्वीकार कर सकें, तो लाइसेंस को एन्क्रिप्ट करने के लिए एक एसिमेट्रिक साइफर का उपयोग करना (या लाइसेंस का हैश) सबसे सरल तरीका है।

+0

मैं इसमें और अधिक देखूंगा, धन्यवाद! – Pace

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