2009-07-28 13 views
10

मेरे पास एक दिलचस्प एन्क्रिप्शन समस्या है। मुझे नहीं पता कि इसे हल किया जा सकता है लेकिन यहां जाता है:व्यवस्थापक से भी दो तरह से डीबी एन्क्रिप्शन सुरक्षित

डेटाबेस में संवेदनशील उपयोगकर्ता जानकारी शामिल है। इस प्रकार, उपयोगकर्ता की जानकारी एन्क्रिप्टेड (दो तरह से एन्क्रिप्शन) होना चाहिए। उपयोगकर्ता के पास लॉगिन/पासवर्ड होता है और इनका उपयोग दो तरह से एन्क्रिप्शन में किया जा सकता है। अब, एन्क्रिप्शन इस तरह से डिज़ाइन किया जाना है कि डेटाबेस टेबल को देखने वाले व्यवस्थापक भी उपयोगकर्ता की जानकारी को समझने में सक्षम न हों।

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

क्या कोई इस से बाहर निकलने का तरीका जानता है?

पीएस: यह एक वास्तविक समस्या है। मेरी कंपनी एक पूर्ण सुरक्षा कट्टरपंथी (आईएसओ 27001 और सभी) है और मुझे उपर्युक्त कार्यक्षमता के साथ एक प्रणाली को डिजाइन करने के लिए सौंपा गया है। वैसे, मैं एक PHP स्क्रिप्ट और MySQL का उपयोग कर रहा हूँ।

EDIT: शायद यह पहले स्पष्ट नहीं था, उपयोगकर्ता को इस उपयोगकर्ता की जानकारी को दिन-दर-दिन आधार पर देखने/संपादित करने की आवश्यकता है।

+0

प्रश्न: आपका डेटा एन्क्रिप्शन कितना मजबूत होना चाहिए? डेटा obfuscation (मतलब डेटा स्पष्ट पाठ के रूप में संग्रहीत नहीं किया जाएगा, लेकिन थोड़ा प्रयास के साथ लोग इसे डिक्रिप्ट कर सकते हैं) पर्याप्त हो, या आप एक * असली * मजबूत एन्क्रिप्शन योजना चाहते हैं? – Nicolas

+0

असली मजबूत एन्क्रिप्शन - डेटा की खोज की कोई संभावना नहीं है! –

+1

ठीक है, यदि आप डेटा को डिक्रिप्टेबल नहीं करना चाहते हैं, लेकिन साथ ही उपयोगकर्ता को डिक्रिप्ट डेटा प्रदर्शित करने की क्षमता की आवश्यकता है ... – Nicolas

उत्तर

15

जो आप चाहते हैं वह वसूली एजेंट है। सभी डेटा दो बार एन्क्रिप्ट करें: एक बार उपयोगकर्ता कुंजी के साथ, एक बार वसूली एजेंट (सार्वजनिक) कुंजी के साथ; कम से कम बाद वाले को असममित होना चाहिए। औपचारिक पहुंच प्रोटोकॉल (जैसे चार आंखों के सिद्धांत) के साथ, पुनर्प्राप्ति एजेंट कुंजी को एक भौतिक सुरक्षित में रखें। आमतौर पर, व्यवस्थापक एन्क्रिप्टेड डेटा तक नहीं पहुंच सकता है, लेकिन यदि उपयोगकर्ता कुंजी खो देता है, और वसूली अधिकृत है, तो पुनर्प्राप्ति कुंजी प्राप्त की जाती है।

वसूली एजेंट की कुंजी को एन्क्रिप्ट करने के तरीके भी हैं ताकि एम-आउट-एन-एन लोगों को इसका उपयोग करने के लिए सहमत होना पड़े।

संपादित करें: एक कार्यान्वयन रणनीति सबकुछ दो बार एन्क्रिप्ट करना है। वैकल्पिक रूप से, प्रत्येक डेटा सेट के लिए जिसे स्वतंत्र रूप से पुनर्प्राप्त करने की आवश्यकता होती है, एक ताजा सममित कुंजी बनाएं, और केवल उस कुंजी को दो बार एन्क्रिप्ट करें; मूल डेटा केवल सत्र कुंजी के साथ एन्क्रिप्ट किया जाता है।वह दृष्टिकोण कई स्वतंत्र पाठकों तक बढ़ा सकता है; इसके लिए पाठक प्रति असममित कुंजी की आवश्यकता होती है (ताकि आप सभी पाठकों की सार्वजनिक कुंजी के साथ सत्र कुंजी को एन्क्रिप्ट कर सकें - एक वसूली एजेंट हो)।

मैंने माइक्रोसॉफ्ट के Encrypting File System से शब्दावली की प्रतिलिपि बनाई, जिसकी योजना लागू हुई है।

+0

सरल और सुरुचिपूर्ण –

+0

क्या आप कुछ संदर्भ लिंक प्रदान कर सकते हैं जहां मैं आगे पढ़ सकता हूं? –

+0

आगे, सबकुछ दो बार एन्क्रिप्ट नहीं करना होगा कि उपयोगकर्ता स्वयं उपयोगकर्ता जानकारी को पुनः प्राप्त/संपादित नहीं कर पाएगा? –

1

नहीं किया जा सकता है।

सभी मामलों में, किसी को इसे डिक्रिप्ट करने के लिए कुंजी को फिर से बनाने में सक्षम होना चाहिए। आइए विकल्पों पर विचार करें:

  1. कुंजी सर्वर पर संग्रहीत। विफलता: व्यवस्थापक का उपयोग है।
  2. कुंजी उपयोगकर्ता के पासवर्ड से एन्क्रिप्ट की गई। विफलता: उपयोगकर्ता इसे भूल सकता है।

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

+0

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

+0

बैंक आदि उनके एन्क्रिप्शन –

+3

के लिए हार्डवेयर सुरक्षा मॉड्यूल का उपयोग करते हैं, मैं सहमत हूं, यह घोस्टबस्टर्स परिदृश्य है। गेटकीपर से कीमास्टर्स को अलग करें, उपयोगकर्ता के डेटा के नियंत्रण में उन लोगों से उपयोगकर्ता खाता पासवर्ड के नियंत्रण में लोग, और आप खराब कर्मचारी को विफलता के एक बिंदु के रूप में टालने में सक्षम होंगे। यह अच्छा है, क्योंकि विकल्प कुल प्रोटोनिक उलटा है। – zombat

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