2011-03-09 13 views
20

मुझे डाटाबेस टेबल में एन्क्रिप्टेड रूप में डेटाबेस फ़ील्ड (~ 3) की एक छोटी संख्या को स्टोर करना होगा।एसक्यूएल सर्वर बनाम नेट एन्क्रिप्शन

सामान्य रूप से, क्या सिमेट्रिक कुंजी एन्क्रिप्शन का उपयोग कर डेटाबेस में .NET क्रिप्टोग्राफी या एन्क्रिप्ट/डिक्रिप्ट डेटा का उपयोग करके किसी एप्लिकेशन के भीतर डेटा एन्क्रिप्ट/डिक्रिप्ट करना बेहतर होता है? दो तरीकों के पेशेवर/विपक्ष क्या हैं?

यहाँ मेरी पर्यावरण है: - इंट्रानेट वेब अनुप्रयोग
विकास प्लेटफार्म -
आवेदन दृश्य स्टूडियो 2010, ASP.Net, नेट फ्रेमवर्क 3.5
सर्वर ऑपरेटिंग सिस्टम - विंडोज सर्वर 2008
डाटाबेस - एसक्यूएल सर्वर 2008

उत्तर

11

यह एक अच्छा सवाल है।

लेने के लिए अपनी यह हिस्सा आंकड़ों के भंडारण के लिए जिम्मेदार भी इसके किसी भी एन्क्रिप्शन के लिए जिम्मेदार बताने के लिए है पर। इस मामले में, एसक्यूएल सर्वर एन्क्रिप्शन का प्रबंधन करने दें।

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

आप कोड में ऐसा है, तो हर एप्लिकेशन डेटा की दुकान का उपयोग करता है डेटा तक पहुँच प्राप्त करने के लिए अपने आप एन्क्रिप्शन/डिक्रिप्शन पुस्तकालय का उपयोग करना होगा। यदि एसक्यूएल सर्वर में किया जाता है, तो आप प्रक्रिया के बहुत ही अनजान हो सकते हैं, जबकि आप सुरक्षा के समान स्तर को बनाए रखते हैं।

इसके साथ, आपको SQL सर्वर से कनेक्शन एन्क्रिप्ट करने की क्षमता का लाभ उठाना चाहिए, जो वेब/ऐप सर्वर और डेटाबेस के बीच गति में होने पर डेटा को एन्क्रिप्ट किया जाता है। यह भी सुनिश्चित करने के लिए कि ब्राउज़र कभी ब्राउज़र -> वेब सर्वर -> डेटाबेस सर्वर के बीच डेटा डिक्रिप्ट नहीं किया गया है, आपको ब्राउज़र और अपनी वेबसाइट के बीच एसएसएल सक्षम होना चाहिए।

उम्मीद है कि मदद करता है।

+0

+1 सभी अच्छे अंक अच्छे :) –

3

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

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

साझा होस्टिंग परिवेश के लिए मैं सुरक्षा उद्देश्यों के लिए अनुप्रयोग के भीतर एन्क्रिप्शन करने के लिए पसंद करते हैं। उस स्थिति में मैं चाबियाँ नियंत्रित करता हूं न कि मेजबान प्रदाता।

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