2010-01-21 8 views
13

मैं अंदर स्वास्थ्य जानकारी के साथ एक आवेदन बना रहा हूँ। यह एप्लिकेशन उपभोक्ता-सामना करेगा मेरे साथ नया है। मैं आसानी से गोपनीयता चिंताओं को पूरी तरह से रखने की एक विधि चाहूंगा। चूंकि मैं सार्वजनिक रूप से सुलभ डेटाबेस में संवेदनशील डेटा को सुरक्षित करने के तरीकों की समीक्षा करता हूं, इसलिए मैं अक्सर डेटाबेस पारदर्शिता की धारणा में आ जाता हूं। इस विषय पर the original book और excellent tutorial on the subject from Oriellynet है।पारदर्शी डेटाबेस

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

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

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

मेरा प्रश्न: क्या मुझे अपने आवेदन में इस विधि को लागू करना चाहिए? क्या ऐसे अन्य ओपन सोर्स एप्लिकेशन हैं जो इस मार्ग से नीचे गए हैं कि मैं डेटाबेस डिज़ाइनों की तुलना कर सकता हूं (php/MySQL का उपयोग करके esp)? मैं किसी और को वास्तव में सुरक्षित तरीके से पीछा कर रहा हूं, लेकिन वास्तव में असुविधाजनक सुविधा सेट करता हूं? क्या कोई और डेटाबेस सुरक्षा मॉडल है जो अधिक लोकप्रिय और आधुनिक है जिसे मैंने याद किया है? डेटाबेस अनुवाद एक फड या एक वैध डेटाबेस डिजाइन विधि था जिसे मुझे गले लगाया जाना चाहिए? जबकि मैं हमेशा चर्चा की सराहना करता हूं, मैं वस्तुनिष्ठ उत्तर पसंद करूंगा कि मैं अपने डिजाइन में लाभ उठा सकता हूं।

उत्तर

1

पुन: पारदर्शी डेटाबेस। मुझे लगता है कि, फिंगरप्रिंट का उपयोग करें। पीड़ित पीड़ितों, या जो लोग अपने फिंगरप्रिंट खोने के बारे में क्या कहते हैं? उफ़। क्या उपयोगकर्ताओं के उस छोटे प्रतिशत के लायक है?

HIPAA के साथ स्वयं को परिचित करें, खासकर जब यह तकनीक की बात आती है। याद रखें कि Skynet * को छोड़कर कोई भी सिस्टम वास्तव में सुरक्षित नहीं है, और देखो कि उसके साथ क्या हुआ! मनुष्य प्रभारी हैं। जब आप एक मेडिकल कंपनी में काम करते हैं, तो आप एक एनडीए पर हस्ताक्षर करते हैं जो दर्शाता है कि आप अपनी कर्तव्यों के हिस्से के रूप में जो भी जानकारी सीखते हैं उसे जारी नहीं करेंगे क्योंकि यह गोपनीय है। लोगों के पासवर्ड रीसेट करने के लिए कोई होगा। यही वह तरीका है, क्योंकि हर कोई तकनीकी रूप से सक्षम नहीं है, और यही वह तरीका है जो अब तक रहता है। आपको केवल सुरक्षा को लागू करना होगा और साथ ही एचआईपीएए का कहना है।

  • सच में, एक और सचमुच सुरक्षित प्रणाली है: यह नेटवर्क और बिजली दोनों से अनप्लग है, और यह बंद हो गया है।
+0

मैं एक प्रणाली है कि नेटवर्क और बिजली से अनप्लग है, लेकिन अभी भी चल रहा है के बारे में सोचना कंपकंपी। – Amy

+0

मैं एक लैपटॉप के बारे में सोच रहा था, लेकिन एक संवेदनशील कंप्यूटर की छवि मेरे दिमाग को पार कर गई। – Trevoke

+0

यदि कोई ऐसा व्यक्ति है जो नेटवर्क से अनप्लग किया गया कंप्यूटर सोचता है तो सुरक्षित है, शायद इन लोगों को अभी तक नहीं देखा है: http://lasecwww.epfl.ch/keyboard/ – ercan

2

क्या मुझे अपने आवेदन में इस विधि को लागू करना चाहिए? जीवन में अन्य चीजों की तरह, एक व्यापार बंद है :) यह शायद अधिक सुरक्षित है लेकिन निर्माण करना कठिन है।

क्या अन्य खुले स्रोत अनुप्रयोग हैं जो इस मार्ग से नीचे गए हैं कि मैं डेटाबेस डिज़ाइनों की तुलना कर सकता हूं (php/MySQL का उपयोग करके esp)?

पता नहीं है, मैं उपकरण कर रहे हैं वहाँ लगता है कि यह अपने आप को ऐसा करने के लिए :)

किसी और को सही मायने में सुरक्षित इस तरह का पीछा, लेकिन वास्तव में असुविधाजनक सुविधा सेट है?

हां, लेकिन ऐसा लगता है कि यह अभी भी एक अपरिपक्व स्थिति में है, जैसे आपकी समस्या खोने वाले पासवर्ड से संबंधित है।

क्या कोई अन्य डेटाबेस सुरक्षा मॉडल है जो अधिक लोकप्रिय और आधुनिक है जिसे मैंने याद किया है?

असल में दो प्रकार के डेटाबेस कनेक्शन हैं। एक विकल्प उपयोगकर्ताओं को एक वास्तविक डेटाबेस खाता देता है, दूसरा डेटाबेस पर सिंगल साइन-ऑन का उपयोग करना है। वेब के आने से पहले, क्लाइंट/सर्वर दुनिया में दोनों मॉडलों के समर्थक थे, लेकिन वेब डेवलपर्स के बीच एकल साइन-ऑन विधि अग्रणी है।

डेटाबेस अनुवाद एक फ़ैड या वैध डेटाबेस डिज़ाइन विधि था जिसे मुझे गले लगाया जाना चाहिए?

इतना मत सोचो, यूनिक्स पासवर्ड डेटाबेस, उदाहरण के लिए, एक बुनियादी पारदर्शी डेटाबेस का एक बड़ा उदाहरण है; link text

+0

उत्कृष्ट बिंदु। क्या आपके पास उल्लेख किए गए "सिंगल साइन-ऑन" मुद्दे पर अधिक जानकारी है? धन्यवाद, -FT – ftrotter

7

तो पढ़ने के लिए कुछ)

यहाँ

, मैं देख रहा है हाल ही में इसी तरह के कुछ पर, और एक ही मुद्दे पर मारा।

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

इस बिंदु पर, आप अभी भी स्थिति में हैं जहां उपयोगकर्ता अपना पासवर्ड भूल जाता है, तो उनके पास यह है।

  • अपने संगठन का प्रतिनिधित्व करने वाली सार्वजनिक/निजी कुंजी जोड़ी बनाएं, और सर्वर पर सार्वजनिक कुंजी स्टोर करें।
  • कुंजी के निजी हिस्से को कई घटकों में विभाजित करें और प्रत्येक को लोगों को दें (उदा। आपकी कंपनी के निदेशक) जिनके पास आपकी कंपनी की निरंतर सफलता में महत्वपूर्ण हिस्सेदारी (अधिमानतः वित्तीय) है। ऐसा करें कि किसी भी दो, या किसी भी तीन लोग एक साथ मिल सकते हैं और आवश्यकता होने पर पूर्ण निजी कुंजी बहाल कर सकते हैं। प्रत्येक व्यक्ति की कुंजी को अपने पासवर्ड से एन्क्रिप्ट करें।
  • जब कोई उपयोगकर्ता पंजीकृत होता है, साथ ही साथ अपनी कुंजी को अपने पासवर्ड से एन्क्रिप्ट कर रहा है, तो इसे संगठनात्मक सार्वजनिक कुंजी से एन्क्रिप्ट करें और इसे कहीं भी स्टोर करें।
  • पासवर्ड रीसेट फॉर्म बनाएं जो उपयोगकर्ता के पासवर्ड को रीसेट करने का अनुरोध रिकॉर्ड करता है, साथ ही कुछ सबूत के साथ कि उपयोगकर्ता कहता है कि वे हैं (उदा। चुनौती/प्रतिक्रिया)।
  • डेटाबेस में इन रीसेट अनुरोधों (वैकल्पिक रूप से सार्वजनिक कुंजी का उपयोग करके एन्क्रिप्ट किया गया) रिकॉर्ड करें।
  • प्रति घंटे/दिन/सप्ताह/महीने में, आवश्यक कुंजी धारकों को एक साथ प्राप्त करें, और अर्जित रीसेट अनुरोधों को संसाधित करने के लिए अपनी संयुक्त कुंजी का उपयोग करें, जो सफलतापूर्वक साबित हुए हैं कि वे कौन हैं जो वे कहते हैं।

इसमें बहुत सारी चुनौतियां और विचार हैं। मैं इनमें से अधिकांश पर कुछ विचार मिल गया है, लेकिन बहुत दूसरों के विचारों में रुचि होगी:

  • कैसे एक से अधिक लोगों के बीच सुरक्षित रूप से विभाजित करने के लिए कुंजी ताकि कोई भी व्यक्ति संग्रहीत कुंजियां डिक्रिप्ट कर सकते हैं।
  • 'मास्टर कुंजी' वास्तव में गलत हाथों में गिरने पर दिखाई देने वाली कुंजियों की संख्या को कम करने के लिए कैसे करें।
  • यह सुनिश्चित करने के लिए कि अगर (स्वर्ग निषिद्ध) आपके कुंजी धारकों ने अपनी चाबियाँ खो दी हैं, तो (ए) डेटा के संपर्क में कोई जोखिम नहीं है, और (बी) कोई जोखिम नहीं है कि अचानक पासवर्ड रीसेट करने की क्षमता खो गई है सदैव।
  • सफलतापूर्वक यह सत्यापित करने के लिए कि वास्तव में कोई ऐसा कहता है कि वे आपके पूरे सुरक्षा दृष्टिकोण में एक चमकदार छेद बनाये बिना हैं।

जो भी आप इस क्षेत्र में लागू करते हैं, वह बिना किसी संदेह के पारदर्शी डेटाबेस दृष्टिकोण की सुरक्षा को कम करेगा, लेकिन यह आपके डेटा की प्रकृति के आधार पर एक सार्थक समझौता हो सकता है।

+0

शानदार प्रतिक्रिया। मुझे आश्चर्य है कि आपकी विधि लोगों पर निर्भर है, जो आम तौर पर क्षणिक होते हैं। शायद कोई "पासवर्ड रीसेट सेवा" सेट कर सकता है जो आपके द्वारा सुझाए गए कुछ समान प्रदान करेगा, लेकिन एक साधारण एपीआई के साथ। उदाहरण के लिए। क्या होगा यदि मेरे पास ऐसी सेवा थी जिसने अपनी सार्वजनिक कुंजी प्रकाशित की, जिससे आप ऑफिस स्टोरेज के लिए पासवर्ड/कुंजी एन्क्रिप्ट कर सकते हैं, एक एपीआई के साथ जो यह निर्धारित करेगा कि सेवा के लिए निजी कुंजी का उपयोग करने के लिए सेवा के लिए आपके कदमों को किस कदम से गुजरना होगा पासवर्ड ... उदाहरण के लिए, किसी विशिष्ट फोन नंबर ... आदि पर एक टेक्स्ट संदेश का उत्तर दें – ftrotter

+0

@ पॉल, क्या आपने कभी उपरोक्त को कार्यान्वित किया है? आपके द्वारा किए गए डिज़ाइन निर्णयों को जानना उत्सुक है। मुझे कई संभावित मुद्दों के साथ एक ही समस्या है। अपडेट प्राप्त करना दिलचस्प होगा। –

+0

@BillEisenhauer, क्षमा करें, नहीं मैंने नहीं किया - मैंने इस परियोजना को अंत में अवधारणात्मक चरण से परे कभी नहीं लिया क्योंकि मुझे इस समय उपलब्ध समय/ऊर्जा/धन की आवश्यकता है। यदि आप आगे चर्चा करना चाहते हैं तो अधिक बात करने में प्रसन्नता हो ... हालांकि यह सुनिश्चित नहीं है कि SO पर ऐसा कैसे किया जाए ?! –

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