2010-12-10 10 views
8

मैं उपयोगकर्ता द्वारा जेनरेट किए गए टेक्स्ट को डेटाबेस में सुरक्षित रूप से संग्रहीत करने का तरीका जानने का प्रयास कर रहा हूं (ताकि केवल उपयोगकर्ता ही उसका उपयोग कर सके संग्रहीत पाठ)। मैं रेल को एन्क्रिप्ट कर सकता था और उपयोगकर्ता के पासवर्ड को कुंजी के रूप में उपयोग करके उपयोगकर्ता की टेक्स्ट एंट्री को डिक्रिप्ट कर सकता था, लेकिन यदि उपयोगकर्ता कभी भी अपना पासवर्ड भूल गया तो वहां उनकी पिछली सामग्री/टेक्स्ट को कभी भी डिक्रिप्ट करने का कोई तरीका नहीं होगा (चूंकि रेल ऐप केवल स्टोर करने के लिए बीसीआरपीटी का उपयोग करता है पासवर्ड का हैश)।डेटाबेस में उपयोगकर्ता द्वारा जेनरेट किए गए टेक्स्ट को सुरक्षित रूप से संग्रहीत करना (रूबी/रेल) ​​

क्या कोई जानता है कि यह कैसे किया जा सकता है? ऐसा लगता है कि ड्रॉपबॉक्स इस तरह कुछ करता है: "ड्रॉपबॉक्स सर्वर पर संग्रहीत सभी फाइलें एन्क्रिप्टेड (एईएस -256) हैं और आपके खाते के पासवर्ड के बिना पहुंच योग्य नहीं हैं।" (http://www.dropbox.com/help/27) फिर भी वे आपको अपना पासवर्ड रीसेट करने की अनुमति देते हैं और मुझे लगता है कि वे कहीं भी अपना सादा टेक्स्ट पासवर्ड स्टोर नहीं करते हैं।

मुझे क्या याद आ रही है? किसी भी सुझाव के लिए बहुत आभार होगा। धन्यवाद!

+3

मुझे विश्वास नहीं है कि ड्रॉपबॉक्स (और अन्य) में ऐसे डेटा हैं जो "आपके खाता पासवर्ड के बिना पहुंच योग्य नहीं हैं"। वे क्या कह रहे हैं कि वे इसे डिक्रिप्ट कर सकते हैं, लेकिन वे आपको पहले प्रमाणित किए बिना ऐसा नहीं करेंगे। संभवतः वे कुंजी और एन्क्रिप्टेड डेटा को बहुत अलग रखते हैं, ताकि अगर कोई हार्ड ड्राइव खो देता है, तो डेटा सुरक्षित रहेगा। –

उत्तर

-1

एक दो नोंक एन्क्रिप्शन योजना के साथ Gintautas 'विकल्प 1 पर बिल्ड:

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

भाग 2 द्वारा प्रदान की गई "स्थैतिक सुरक्षा" सिस्टम फ़ाइलों में पहुंच प्राप्त करने वाले सिस्टम में घुसपैठियों के खिलाफ सुरक्षा करती है। शायद 100% सटीक सुरक्षा के बाद आप नहीं हैं, लेकिन करीब आ रहे हैं।

+0

आमतौर पर हैक सिस्टम लाइव होते हैं, इसलिए अगर स्टार्टअप पर एन्क्रिप्टेड वॉल्यूम घुमाया गया है, तो हमलावर इसे सब कुछ पढ़ने में सक्षम होगा। मुझे आपके सुझाव के लिए कोई लाभ नहीं दिख रहा है। –

0

तर्क तय है कि केवल दो विकल्प हैं:

  1. आप सर्वर (उपयोगकर्ता के कुंजी हैश या कुछ अन्य पहचानकर्ता) के लिए जाना जाता एक कुंजी का उपयोग कर एन्क्रिप्ट। घुसपैठियां संभावित रूप से सभी एन्क्रिप्टेड डेटा को पढ़ सकती हैं, लेकिन उपयोगकर्ता कभी भी एन्क्रिप्शन टोकन खो नहीं सकता क्योंकि यह आपके सर्वर पर है।
  2. आप केवल उपयोगकर्ता को ज्ञात कुंजी (जैसे उसका पासवर्ड) का उपयोग कर डेटा एन्क्रिप्ट करते हैं। फिर घुसपैठियां एन्क्रिप्टेड डेटा को पढ़ने में सक्षम नहीं होंगी, लेकिन यदि उपयोगकर्ता अपनी कुंजी खो देता है, तो डेटा यादृच्छिक बिट्स के ढेर के समान होता है।

यह स्पष्ट है कि ड्रॉपबॉक्स ने इस तथ्य से (1) चुना है कि वे आपका पासवर्ड रीसेट करने की अनुमति देते हैं।

+0

धन्यवाद। यह समझ आता है। तो फिर आप एन्क्रिप्टेड सामग्री तक पहुंचने वाले सर्वर पर घुसपैठ करने के बिना विकल्प 1 का पालन कैसे करते हैं और इसे डिक्रिप्ट करने की कुंजी (क्योंकि मुझे लगता है कि कुंजी सर्वर पर संग्रहीत की जानी चाहिए)? यही है, वेब ऐप को डेटाबेस और एन्क्रिप्शन कुंजी तक पहुंच की आवश्यकता है ताकि यदि आप वेब सर्वर तक पहुंच प्राप्त करते हैं, तो आप डेटा तक पहुंच प्राप्त कर सकते हैं, है ना? यदि ऐसा है, तो एन्क्रिप्शन/डिक्रिप्शन की उस विधि को कौन सी सुरक्षा प्रदान की जाएगी? क्षमा करें, मुझे यहां कुछ स्पष्ट याद आना चाहिए। –

+0

सुरक्षा लाभ यह है कि उपयोगकर्ता के डेटा तक पहुंच के लिए पर्याप्त नहीं है, आपको उस डेटा तक पासवर्ड भी एक्सेस करना होगा, जो अधिक सुरक्षित हो सकता है (उदा।, एक अलग सुरक्षा-कठोर मशीन पर एक पृथक वेब सेवा पर संग्रहीत)। –

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

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