2010-10-23 13 views
7

जब आप इस तरह के सीसीएस या SSNs जैसे संवेदनशील डेटा स्टोर करने के लिए की जरूरत है, आप करते हैं:डेटाबेस एन्क्रिप्शन या अनुप्रयोग स्तर एन्क्रिप्शन?

1), आवेदन के भीतर अपने स्वयं के एन्क्रिप्शन दिनचर्या का निर्माण एक कॉन्फ़िग फ़ाइल में कहीं एक गुप्त कुंजी को परिभाषित है, और फिर मैन्युअल रूप से एन्क्रिप्ट/डेटा को डिक्रिप्ट डेटाबेस में जा रहा है।

2) अंतर्निहित डीबी क्षमताओं का उपयोग करके डेटाबेस में सभी समस्याएं पुश करें (मुझे लगता है कि अधिकांश विक्रेता इसे पारदर्शी डेटाबेस एन्क्रिप्शन कहते हैं)।

आपके समाधान के लिए आपको क्या व्यापार-बंद मिलते हैं? क्या टीडीई की तुलना में अपना खुद का दिनचर्या खराब प्रदर्शन करता है? क्या कोड रखरखाव, या इसके विपरीत डीबी विक्रेता लॉक-इन समस्या है?

+0

आपने अपने प्रश्न में अपनी कंपनी के लिए एक लिंक क्यों पोस्ट किया? –

+0

क्षमा करें, आदत का बल, इस कारण मैं अपने ब्लॉग पर साइन-ऑफ करता हूं। अब हटा दिया गया। –

+0

मैंने एक बार स्टैक ओवरवरफ्लो पर एक अच्छा जवाब पोस्ट किया है [रिजेंडेल मैनेज्ड] (http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspx का उपयोग करके एप्लिकेशन स्तर एन्क्रिप्शन जोड़ने का एक शानदार तरीका बता रहा है।) कक्षा, और इसके ऊपर कुछ सुंदर बड़े हेल में मिला। मैं "एस्सुमिंग" हूं जिसे आप डीबी एन्क्रिप्शन पर निर्देशित करने जा रहे हैं। –

उत्तर

7

मैंने विभिन्न प्रकार की एन्क्रिप्शन तकनीकों का उपयोग किया है और मेरा मानना ​​है कि यह एक सिद्ध एन्क्रिप्शन दिनचर्या (यानी .NET पुस्तकालय) का उपयोग करके एप्लिकेशन पक्ष पर एन्क्रिप्ट करने के लिए आसान और अधिक सुरक्षित है।

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

यदि आप एप्लिकेशन में एन्क्रिप्ट/डिक्रिप्ट करते हैं, तो संवेदनशील डेटा (कुंजी सहित) कभी भी एप्लिकेशन सर्वर के बाहर प्रकट नहीं होता है। किसी को आपके सभी डेटा तक पहुंचने के लिए वेब सर्वर और डेटाबेस सर्वर दोनों से समझौता करना होगा।

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

संपादित करें:

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

+0

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

+1

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

+0

क्या ऐप एन्क्रिप्शन के लिए कोई पुस्तकालय उपलब्ध है? – Jus12

2

मैं मेयो, से सहमत हूं लेकिन डीबी में एन्क्रिप्शन पूरे सिस्टम के रखरखाव को सरल बना सकता है

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

यदि आप एप्लिकेशन एन्क्रिप्शन चुनते हैं तो आपको न केवल विकास चरण में बल्कि रखरखाव चरण में एल्गोरिदम शुद्धता के बारे में चिंता करनी होगी। आपको नो-रिग्रेशन के लिए यूनिट टेस्ट लागू करना होगा। आपको एन्क्रिप्शन एल्गोरिदम के परिवर्तन को प्रबंधित करना होगा क्योंकि शायद आप एक अलग और बेहतर एल्गोरिदम चाहते हैं।

और आपको यह सुनिश्चित करना होगा कि एन्क्रिप्टेड डेटा हमेशा डिक्रिप्ट किया जाएगा। यह एक स्पष्ट बात नहीं है, क्योंकि सॉफ़्टवेयर में बग और इतने पर हैं। खोया डेटा स्पष्ट डेटा से भी बदतर है ;-)

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

डीबी में एन्क्रिप्शन केवल डीबी में ही सुरक्षा करता है लेकिन आप डीबी के साथ कुछ प्रकार के एसएसएल संचार का उपयोग करने पर विचार कर सकते हैं। मुझे लगता है (लेकिन मुझे यकीन नहीं है) टीडीई इस तरह के सुरक्षित संचार लागू करता है।

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

आपको सिस्टम की सुरक्षा पर विचार करना होगा, लेकिन कार्यक्षमता भी। सुरक्षा अधिक है, कार्यक्षमता कम है। मुझे उम्मीद है कि मेरे विचार आपके लिए उपयोगी होंगे।

4

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

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

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

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

अपनी मूल पोस्ट में, आप एप्लिकेशन सर्वर पर कॉन्फ़िगरेशन फ़ाइल में एक गुप्त कुंजी छिपाने के बारे में बात करते हैं। इसके चेहरे पर, यह डोरमेट के नीचे सामने वाले दरवाजे की छिपाने के बराबर सुरक्षा की तरह लगता है। यदि आप ऐसा करते हैं, तो आपको इस बारे में सोचना होगा कि आप कैसे सुनिश्चित करेंगे कि अनधिकृत लोग कुंजी तक पहुंच नहीं प्राप्त कर सकते हैं।

1

होने के नाते पीसीआई-DSS अनुरूप अपने कानूनी दायित्व को दूर नहीं करता ...

वर्तमान में केवल दो राज्यों जो इस प्रकार की छूट प्रदान करते हैं: वाशिंगटन & मिनेसोटा ...

डीबीए के एक के रूप में बढ़ावा देना TDE पीसीआई-डीएसएस समाधान सावधानी बरतें!

TDE केवल आराम से डेटा की सुरक्षा करता है, न कि पारगमन या मेमोरी में डेटा को ... किसी जिसे पहुँच किसी भी उपकरण के साथ सभी डेटा पढ़ सकते हैं पढ़ा है में डेटा ...

IMHO TDE अच्छा जब संयुक्त एक मजबूत अनुप्रयोग स्तर एन्क्रिप्शन समाधान के साथ ... अकेले टीडीई का उपयोग कर एक अकेले समाधान के रूप में, यह एक टिकिंग टाइम-बम है कि पीसीआई क्यूएसए इसे पीसीआई-डीएसएस अनुपालन के रूप में बंद कर रहा है, इस पर ध्यान देने में विफल रहा है ... प्रतीक्षा करें जब तक कि वकीलों इस मौलिक दोष पर एक समझ प्राप्त न करें ...

कोई सुरक्षा गुरु आपको बताएगा कि सुरक्षा की परतें सबसे अच्छी दृष्टिकोण है ....

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